Skip to content

Commit 076976b

Browse files
committed
fix: Update parameters
Update missing parameters and add to the table mode the parameter targets and system property written out for clarity Closes #4041
1 parent 1d17437 commit 076976b

File tree

1 file changed

+242
-38
lines changed

1 file changed

+242
-38
lines changed

articles/flow/configuration/properties.adoc

Lines changed: 242 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -95,156 +95,360 @@ When a system property and a servlet parameter have the same name, the system pr
9595
[[properties]]
9696
== Properties Defined
9797

98-
The following table contains the properties that are defined in the [classname]`com.vaadin.server.DeploymentConfiguration` and [classname]`com.vaadin.flow.server.Constants` classes. They're listed in alphabetical order. If you use Spring Boot, you should add the `vaadin.` prefix to them (e.g., change `brotli` to `vaadin.brotli`).
98+
The following table contains the properties that are defined in the [classname]`com.vaadin.server.DeploymentConfiguration`, [classname]`com.vaadin.flow.server.Constants` and [classname]`com.vaadin.flow.server.InitParameters` classes. They're listed in alphabetical order. If you use Spring Boot, you should add the `vaadin.` prefix to them (e.g., change `brotli` to `vaadin.brotli`).
9999

100-
[cols="1,1,4"]
100+
[cols="1,1,4,1,1"]
101101
|===
102-
|Property Name |Default Value |Description
102+
|Property Name
103+
|System Property
104+
|Description
105+
|Default Value
106+
|Mode
107+
103108

104109
|`applicationIdentifier`
105-
|`default-project-id`
110+
|`vaadin.applicationIdentifier`
106111
|Application identifier that's generated by default based on the project build settings (e.g., Maven's `groupId` and `artifactId`, the string value is hashed and prefixed with `app-`) -- during a production build. The property is used only for the moment by the daily active users license model. It can be configured by developers to differentiate end-users distribution between the same applications running in a cluster -- ones that have the same group and artifact IDs.
112+
|`default-project-id`
113+
|DAU
107114

108115
|`brotli`
109-
|`true`
116+
|`vaadin.brotli`
110117
|Determines whether pre-compressed https://github.com/google/brotli[Brotli] files should be used if accepted by the browser. Brotli files are created during a production build. The property is used only in production mode. Set to `false` if you want to serve uncompressed static resources.
118+
|`true`
119+
|Runtime
111120

112121
|`closeIdleSessions`
113-
|`false`
122+
|`vaadin.closeIdleSessions`
114123
|Closes the Vaadin session if no UI is active. A UI is considered active if it's open on the client-side and has any activity -- besides heartbeat requests. By default, heartbeat requests keep the Vaadin session open even when there isn't any user interaction. Set to `true` to close idle sessions. See `heartbeatInterval` below.
124+
|`false`
125+
|Runtime
126+
127+
|`devmode.componentTracker.enabled`
128+
|`vaadin.devmode.componentTracker.enabled`
129+
|Enable component tracking in development mode.
130+
|`true`
131+
|Dev
132+
133+
|`devmode.devTools.enabled`
134+
|`vaadin.devmode.devTools.enabled`
135+
|Parameter for enabling dev tools. In production mode will always evaluate as `false`.
136+
|`true`
137+
|Dev
138+
139+
|`devmode.frontendExtraFileExtensions`
140+
|`vaadin.devmode.frontendExtraFileExtensions`
141+
|Define additional frontend file extensions to copy from jar files to the application `frontend/generated/jar-resources`. Default extension copied are `.js`, `.js.map`, `.ts`, `.ts.map`, `.tsx`, `.tsx.map`, `.css` and `.css.map`.
142+
|``
143+
|Dev
115144

116145
|`devmode.hostsAllowed`
117-
|`null`
146+
|`vaadin.devmode.hostsAllowed`
118147
|Defines the hosts allowed to access Vaadin development tools. A comma-separated list of allowed hosts should be provided as the value. The `?` and `*` wildcards can be used (e.g., `192.168.1.*,172.17.?.*`). Loopback addresses are always allowed, regardless of the value set here.
148+
|`null`
149+
|Dev
119150

120151
|`devmode.liveReload.enabled`
121-
|`true`
152+
|`vaadin.devmode.liveReload.enabled`
122153
|Enables live reload. When using a server-side <<live-reload/index#, live reload tool>>, the browser is refreshed after code is rebuilt on the server. Set to `false` to disable automatic reloading of the browser. This applies only to development mode.
154+
|`true`
155+
|Dev
123156

124157
|`devmode.optimizeBundle`
125-
|`false`
158+
|`vaadin.devmode.optimizeBundle`
126159
|Optimizes frontend resource bundles. All frontend resources in the classpath are included by default in the generated bundle in development mode. When set to `true`, the frontend build creates an optimized bundle by including only frontend resources that are used from the application entry points. It uses bytecode scanning, which increases application start-up time. Set to `false` to skip the optimization in production mode.
160+
|`false`
161+
|Dev
162+
163+
|`devmode.output.pattern.timeout`
164+
|`vaadin.devmode.output.pattern.timeout`
165+
|Defines the time that we will wait for the frontend build tool to output either the success or error string for completion.
166+
|60000 ms
167+
|Dev
168+
169+
|`devmode.remoteAddressHeader`
170+
|`vaadin.devmode.remoteAddressHeader`
171+
|The name of the custom HTTP header that contains the client IP address that is checked to allow access to the dev mode server. The HTTP header is supposed to contain a single address, and the HTTP request to have a single occurrence of the header. If not specified, remote address are read from the `X-Forwarded-For` header
172+
|
173+
|Dev
127174

128175
|`devmode.sessionSerialization.enabled`
129-
|`false`
176+
|`vaadin.devmode.sessionSerialization.enabled`
130177
|Enables session serialization. When session serialization is enabled, [classname]`UI` instances and registered [classname]`StreamResource` instances are serialized or deserialized when restarting the development server. When set to `true`, for example, access control information can be preserved during development so that you don't need to log in for each change. This applies only to development mode.
178+
|`false`
179+
|Dev
131180

132181
|`devmode.usageStatistics.enabled`
133-
|`true`
182+
|`vaadin.devmode.usageStatistics.enabled`
134183
|Enables Vaadin to collect usage statistics that can guide further development. Statistics are collected based on features that are used in the application. No data is collected in production mode. Some usage statistics are collected through the web browser. See the https://github.com/vaadin/vaadin-usage-statistics[client-side collector repository] for instructions on how to opt out. This applies only to development mode.
184+
|`true`
185+
|Dev
186+
187+
|`devmode.vite.options`
188+
|`vaadin.devmode.vite.options`
189+
|Define extra options for VITE execution.
190+
|
191+
|Dev
135192

136193
|`disable.automatic.servlet.registration`
137-
|`false`
194+
|`vaadin.disable.automatic.servlet.registration`
138195
|Disables automatic servlet registration that's required by Vaadin applications. You must register Vaadin servlets if set to `true`.
196+
|`false`
197+
|Runtime
139198

140199
|`disable-xsrf-protection`
141-
|`false`
200+
|`vaadin.disable-xsrf-protection`
142201
|Disables cross-site request forgery protection. The protection is enabled by default. You should keep it enabled -- except for certain types of testing.
202+
|`false`
203+
|Runtime
143204

144205
|`eagerServerLoad`
145-
|`false`
206+
|`vaadin.eagerServerLoad`
146207
|Enables the client-side bootstrap page to include the initial JSON data fragment.
208+
|`false`
209+
|Runtime
147210

148211
|`enableErrorHandlerRedirect`
149-
|`false`
212+
|`vaadin.enableErrorHandlerRedirect`
150213
|If `{@code true}`, navigation error views implementing [interfacename]`HasErrorParameter` can be rendered for exceptions during RPC request handling.
214+
|`false`
215+
|Runtime
151216

152217
|`frontend.hotdeploy`
218+
|`vaadin.frontend.hotdeploy`
219+
|Enables development using the frontend development server instead of an application bundle. This applies only to development mode. Hilla will always force frontend hotdeploy to true.
153220
|`false`
154-
|Enables development using the frontend development server instead of an application bundle. This applies only to development mode.
221+
|Dev
155222

156223
|`heartbeatInterval`
157-
|300 seconds (i.e., 5 minutes)
224+
|`vaadin.heartbeatInterval`
158225
|Sets the heartbeat interval time. UIs that are open on the client-side send a regular heartbeat to the server indicating that they're still active even without ongoing user interaction. When the server doesn't receive a valid heartbeat from a given UI within a certain amount of time, it removes that UI from the session. The interval value is expressed in `seconds`. See also `closeIdleSessions`.
226+
|300 seconds (i.e., 5 minutes)
227+
|Runtime
159228

160229
|`i18n.provider`
161-
|`null`
230+
|`vaadin.i18n.provider`
162231
|Sets the fully-qualified name for the internationalization provider class. To translate strings for localization, the application should implement the `I18NProvider` interface and define the class name in the `i18n.provider` property. See the <<{articles}/flow/advanced/i18n-localization#, Localization documentation>> for details.
232+
|`null`
233+
|Runtime
234+
235+
|`launch-browser-delay`
236+
|`vaadin.launch-browser-delay`
237+
|Defines how long to wait before opening a new browser tab for the staring application. The time is counted always from the latest application start that would try to open a tab.
238+
|30 min
239+
|Dev
163240

164241
|`maxMessageSuspendTimeout`
165-
|5000 ms (i.e., 5 seconds)
242+
|`vaadin.maxMessageSuspendTimeout`
166243
|Sets the maximum time in `milliseconds` that the client waits for predecessors of an out-of-sequence message, before considering them missing and requesting a full state resynchronization from the server. For example, when a server sends adjacent `XmlHttpRequest` responses and pushes messages over a low-bandwidth connection, the client may receive the messages out of sequence. Increase this value if your application experiences excessive resynchronization requests. However, be aware that it degrades the UX with flickering and loss of client-side-only states, such as scroll position.
244+
|5000 ms (i.e., 5 seconds)
245+
|Runtime
246+
247+
|`menu.access.control`
248+
|`vaadin.menu.access.control`
249+
|Define a menu access control implmentation by giving a Fully Qualified Name to the control class.
250+
|
251+
|Runtime
252+
253+
|`node.download.root`
254+
|`vaadin.node.download.root`
255+
|Base URL for downloading Node.js during build.
256+
|'https://nodejs.org/dist/'
257+
|Build
258+
259+
|`node.version`
260+
|`vaadin.node.version`
261+
|Node.js version to get if one doesn't exist.
262+
|see FrontendTools.DEFAULT_NODE_VERSION
263+
|Build
264+
265+
|`node.auto.update`
266+
|`vaadin.node.auto.update`
267+
|If true framework installed Node.js will be automatically updated to 'nodeVersion' if older version installed.
268+
|'true'
269+
|Build
167270

168271
|`npm.excludeWebComponents`
169-
|false
272+
|`vaadin.npm.excludeWebComponents`
170273
|Excludes all Vaadin professional and core components from [filename]`package.json`. Material and Lumo themes are preserved. Excluded packages aren't installed by npm, which makes development bundles smaller. This property alone doesn't remove any Maven and Gradle dependencies. Supported also as a Vaadin Plugin property, `npmExcludeWebComponents`. See <<development-mode/index.adoc#exclude-vaadin-components, Optimize Bundle>> for more information.
274+
|'false'
275+
|Build
276+
277+
|`npm.postinstallPackages`
278+
|`vaadin.npm.postinstallPackages`
279+
|Define postinstall scripts that need to be executes after npm install completes.
280+
|''
281+
|Build
171282

172283
|`pnpm.enable`
173-
|`false`
284+
|`vaadin.pnpm.enable`
174285
|Enables `pnpm`, instead of `npm`, to resolve and download frontend dependencies. It's set by default to `false` since `npm` is used typically. Set it to `true` to enable `pnpm`. See <<development-mode/npm-pnpm-bun#, Switching Between npm, pnpm and bun>> for more information.
286+
|`false`
287+
|Build
175288

176-
|`bun.enable`
289+
|`pnpm.global`
290+
|`vaadin.pnpm.global`
291+
|Force use of system installed pnpm instead of a Flow managed one.
177292
|`false`
178-
|Enables `bun`, instead of `npm`, to resolve and download frontend dependencies. It's set by default to `false` since `npm` is used typically. Set it to `true` to enable `bun`. See <<development-mode/npm-pnpm-bun#, Switching Between npm, pnpm and bun>> for more information.
293+
|Build
179294

180-
|`productionMode`
295+
|`bun.enable`
296+
|`vaadin.bun.enable`
297+
|Enables `bun`, instead of `npm`, to resolve and download frontend dependencies. It's set by default to `false` since `npm` is used typically. Set it to `true` to enable `bun`. See <<development-mode/npm-pnpm-bun#, Switching Between npm, pnpm and bun>> for more information.
181298
|`false`
182-
|Sets the application to work in production mode. This disables most of the logged information to improve performance -- information that appears on the server and browser console. Development mode JavaScript functions aren't exported. Any `push` is given as a minified JavaScript file instead of a full-size one, and any static resources are cached. See the <<../production#,Deploying to Production>> for more information. Set to `true` when building applications for public deployment.
299+
|Build
300+
301+
|`build.folder`
302+
|`vaadin.build.folder`
303+
|Build directory for application
304+
|`${project.build.directory}`
305+
|Build
183306

184307
|`pushLongPollingSuspendTimeout`
185-
|`-1` (i.e., no timeout)
308+
|`vaadin.pushLongPollingSuspendTimeout`
186309
|Sets the timeout in `milliseconds` for network requests when using long polling transport. If you have long polling enabled with a proxy that has a timeout, set `pushLongPollingSuspendTimeout` to less time than the proxy timeout for clients to reconnect.
310+
|`-1` (i.e., no timeout)
311+
|Runtime
187312

188313
|`pushMode`
189-
|`disabled`
314+
|`vaaddin.pushMode`
190315
|Enables server push. The permitted values are `disabled`, `manual`, and `automatic`. See <<{articles}/flow/advanced/server-push#, Server Push>> for more information.
316+
|`disabled`
317+
|Runtime
191318

192319
|`pushServletMapping`
193-
|`""`
320+
|`vaadin.pushServletMapping`
194321
|Specifies the servlet mapping used for bidirectional (i.e., "push") client-server communication. Some Java application servers require special context. For example, you can specify websockets with this.
322+
|`""`
323+
|Runtime
195324

196325
|`react.enable`
197-
|`true`
326+
|`vaadin.react.enable`
198327
|Whether to use React Router, add React core dependencies, React integration helpers and Vaadin's provided React components (i.e., `@vaadin/react-components`). Fallbacks to `vaadin-router`, excludes all React dependencies and adds `Lit` dependencies, if set to `false`. Vaadin plugin configuration for the `reactEnable` property needs to be set to match the configuration property value. See <<../../upgrading#hilla-react-dependencies, Hilla & React Dependencies>> for more information.
328+
|`true`
329+
|Runtime
199330

200331
|`requestTiming`
201-
|`true` for development mode; `false` for production mode
332+
|`vaadin.requestTiming`
202333
|Includes basic timing information in responses that can be used for performance testing.
334+
|`true` for development mode; `false` for production mode
335+
|Runtime
336+
337+
|`require.home.node`
338+
|`vaadin.require.home.node`
339+
|Force use of Vaadin installed Node.js instead of a globally installed Node.js version.
340+
|`false'
341+
|Build
203342

204343
|`syncIdCheck`
205-
|`true`
344+
|`vaadin.syncIdCheck`
206345
|Enables synchronized ID checking. The synchronized ID is used to handle situations in which the client sends a message to a connector that has been removed from the server. It's set to `true`, by default. You should only disable it if your application doesn't need to stay synchronized, and suffers from a bad network connection.
346+
|`true`
347+
|Runtime
207348

208349
|`webComponentDisconnect`
209-
|300 seconds (i.e., 5 minutes)
350+
|`vaadin.webComponentDisconnect`
210351
|Sets the number of `seconds` that a Vaadin Flow application embedded as a Web Component waits for a reconnect before removing the server-side component from memory.
352+
|300 seconds (i.e., 5 minutes)
353+
|Runtime
211354

212355
|`sessionLockCheckStrategy`
213-
|assert
356+
|`vaadin.sessionLockCheckStrategy`
214357
|When production mode is enabled, the Vaadin session lock check is done according to this setting. By default, the check is done only if assertions are also enabled: this is to avoid the small performance impact of checking continuously the lock status. Alternative values are 'log' to log a warning, or 'throw' to fail with an `IllegalStateException`. The 'log' option also logs a full stack trace, enabling you to determine any problematic calls to Vaadin UI components from background threads. This is since Vaadin Flow version 24.4.
358+
|assert
359+
|Runtime
215360
|===
216361

217362

218363
== Vaadin Plugin Properties
219364

220365
The following table contains the properties that are used only by the Vaadin Maven and Gradle Plugin, and are not applicable for deployment configuration:
221366

222-
[cols="1,1,3,1"]
367+
[cols="1,1,4,1,1"]
223368
|===
224-
|System Property
225369
|Plugin Configuration
370+
|System Property
226371
|Description
227372
|Default Value
373+
|Mode
228374

229-
|`vaadin.ci.build`
230375
|`ciBuild`
376+
|`vaadin.ci.build`
231377
|Determines whether `npm ci` is run, instead of `npm i`, for production frontend builds. If you use `pnpm` or `bun`, the install command runs with the `--frozen-lockfile` parameter. The build fails if the [filename]`package.json` and the lockfile have mismatching versions.
232378
|`false`
379+
|Build
233380

234-
|`vaadin.force.production.build`
235381
|`forceProductionBuild`
382+
|`vaadin.force.production.build`
236383
|Forces Vaadin Flow to create a new production bundle, even if there is already a usable pre-compiled bundle. This is required usually when creating an optimized production bundle, and to load component sources to the browser on demand -- such as when opening a route where these components are used.
237384
|`false`
385+
|Build
386+
387+
|`frontendDirectory`
388+
|
389+
|Directory containing the project's frontend files. Can be given as relative or absolute.
390+
|`./src/main/frontend`
391+
|Build
392+
393+
|`generatedTsFolder`
394+
|
395+
|Directory where any generated frontend files should be put into. By default, the directory will be 'generated' and positioned below 'frontendDirectory'.
396+
|`null`
397+
|Build
398+
399+
|`javaSourceFolder`
400+
|
401+
|Source folder used for component scanning during development mode.
402+
|`${project.basedir}/src/main/java`
403+
|Dev
404+
405+
|`javaResourceFolder`
406+
|
407+
|Resources source folder used for component scanning during development mode.
408+
|`${project.basedir}/src/main/java`
409+
|Dev
410+
411+
|`npmFolder`
412+
|
413+
|Directory containing 'package.json'.
414+
|`${project.basedir}`
415+
|Build
416+
417+
|`openApiJsonFile`
418+
|
419+
|Defines where the OpenAPI json file is generated if required for exported services.
420+
|`${project.build.directory}/generated-resources/openapi.json`
421+
|Build
422+
423+
|`projectBasedir`
424+
|
425+
|Directory containing 'pom.xml' or 'build.gradle'.
426+
|`${project.basedir}`
427+
|Build
428+
429+
|`resourceOutputDirectory`
430+
|
431+
|Directory to place resources that are not served from the application.
432+
|`${project.build.outputDirectory}/META-INF/VAADIN/`
433+
|Build
434+
435+
|`webpackOutputDirectory`
436+
|
437+
|Directory to generate served resources as 'index.js' and other generated files.
438+
|`${project.build.outputDirectory}/META-INF/VAADIN/webapp/`
439+
|Build
238440

239-
|`vaadin.skip.dev.bundle`
240441
|`skipDevBundleRebuild`
442+
|`vaadin.skip.dev.bundle`
241443
|Prevents a frontend development bundle from being re-built, even if Vaadin Flow decides to use an existing compiled development bundle. This is mainly needed when re-bundling checker in Vaadin Flow has problems leading to false re-bundling, and one needs a workaround while it's being resolved.
242444
|`false`
445+
|Bundle
243446

244447
|`vaadin.clean.build.frontend.files`
245448
|`cleanFrontendFiles`
246449
|Clears the generated frontend files after building a project for production. It keeps the generated files if they existed before the build, or if this parameter is set to `false`. When building a bundle in development mode, the generated files are removed unless they existed before the build.
247450
|`true`
451+
|Bunlde
248452
|===
249453

250454
[discussion-id]`27BF72FB-1E23-42B0-B540-A602F9AD4571`

0 commit comments

Comments
 (0)