Advanced webapp configuration

This section lists the iObeya configuration parameters that can be set during the packaging process.

These parameters are stored in the context file ROOT.xml provided in the iObeya on-prem package. It is possible to modify these parameters later by editing the context file.

We recommend using the following directories instead of default directories.

  • assetStorage (mandatory): defines how the assets (images) will be stored.

    • filesystem: the images are stored in a folder on the server. Recommended for good performance, but needs to be backed up separately from the database.
  • assetDirectory (mandatory): defines the directory where the assets (images) will be stored. Can be relative to dataDirectory.

    • e.g. /var/iobeya/data/assets
    • e.g. assets
  • indexDirectory (mandatory): defines the directory where the indexes will be stored. Can be relative to dataDirectory.

    • e.g. /var/iobeya/data/index
    • e.g. index
  • useIndex (mandatory): Indexes are used to speed up some searches in iObeya. It is higly recommended to set it to true.

    • true or false
  • scimSearchStrategy (optional): changes the search strategy used

    • criteria: uses a strategy with database queries
    • client: everything is calculated on the client, which is likely not powerful enough if you have to manage a large number of users.
  • baseDirectory (mandatory): A root directory that can be used as a reference for other directories.

    • e.g. /var/iobeya
  • cacheDirectory (mandatory): defines the directory where all the cache files generated by the application will be stored. Can be relative to baseDirectory. This directory can be emptied when restarting the application.

    • e.g. /var/iobeya/cache
    • e.g. cache
  • dataDirectory (mandatory): defines the directory where all the files managed by the application will be stored. Can be relative to baseDirectory.

    • e.g. /var/iobeya/data
    • e.g. data
  • tempDirectory (mandatory): defines the directory where all the temporary files managed by the application will be stored. Can be relative to baseDirectory. This directory can be emptied when restarting the application.

    • e.g. /var/iobeya/temp
    • e.g. temp
  • hotDeployPollingFrequency (optional): determines the frequency, in seconds, at which the add-ons directory is scanned for new add-ons to be deployed.

    • Default value is 60 (i.e. 1 minute).
  • log4j2FilePath (optional): defines the path to an external log4j2.xml configuration file. If not set, all logs go to the main application server log file.

    • e.g. /var/iobeya/settings/log4j2.xml
  • pluginsPropertiesDirectory (optional): defines the directory for the add-on’s external properties file. If not set, add-ons that require configuration files will not start.

    • e.g. /var/iobeya/settings/plugins
  • chunkTempFolder (optional): folder used to temporarily store files during upload. If this parameter is not defined, the chunked-temp subfolder from tempDirectory will be used by default.

    • e.g. /var/iobeya/temp/chunked-temp
  • uploadTempDirectory (optional): folder used to temporarily store files during import. If this parameter is not defined, the upload_temp subfolder from tempDirectory will be used by default.

    • e.g. /var/iobeya/temp/upload_temp
  • OSGICacheDirectory (optional): folder used for caching add-ons. If this parameter is not defined, the osgi-cache subfolder from cacheDirectory will be used by default.

    • e.g. /var/iobeya/cache/osgi-cache
  • pluginsDirectory (optional): Folder used for storing add-ons. If this parameter is not defined, the add-ons subfolder from dataDirectory will be used by default.

    • e.g. /var/iobeya/data/plugins
  • bundledPluginsDirectory (optional): folder used for storing default add-ons. If this parameter is not defined, the bundled-plugins subfolder from cacheDirectory will be used by default.

    • e.g. /var/iobeya/cache/bundled-plugins
  • maxUploadSize (optional): determines the maximum file size, in bytes, for uploads to the application (example: board images, board backgrounds,..).

    • Default value is: 10485760 (i.e. 10 MB).
  • maxUploadHeight (optional): determines the maximum allowable height of an image to be uploaded, in pixels.

    • Default value is: 7560 pixels.
  • maxUploadWidth (optional): determines the maximum allowable width of an image to be uploaded, in pixels.

    • Default value is: 7560 pixels.
  • assetCacheSizeLimit (optional): determines the maximum allowable size of an asset to be put in memory cache, in bytes.

    • Default value is: 1048576 (i.e. 1 MB).
  • minScreenshotDelay (optional): used to define the minimum time (in milliseconds) between two screenshot generations for the same board.

    • Default value is 60000 ms (i.e. 1 minute).
  • minScreenshotIdleTime (optional): used to define the delay (in milliseconds) without board content modification, before screenshot generation begins.

    • Default value is 5000 ms (i.e. 5 seconds).
  • screenshotStripeSizePixel (optional): defines the size, in pixels, of strips used for PNG screenshot generation. This parameter can be used to reduce memory consumption while increasing the speed of screenshot generation, as well as the size of generated screenshot. The memory consumed per screenshot is 4x the value of this parameter. Using the maximum value of 38000000 pixels will yield the fastest completion speed, at the cost of 150 MB. The default value is set to 16 MB of memory use, but this can reduce the speed to 7x slower than the previously mentioned maximum value.

    • Default value is 83886080 (i.e 8 Megapixels).
  • pollingInterval (optional): defines how long (in milliseconds) a connection remains open until a message is available.

    • 20000 ms (i.e. 20 seconds).
  • clientWaitInterval (optional): defines how long (in milliseconds) the client waits before it reconnects to read a new message. This reduces the server load by adding latency.

    • 0 ms.
  • clientTimeout (optional): defines how long (in milliseconds) a client not connected (ie: network issue) is considered as “disconnected” by the server.

    • 120000 ms (i.e. 2 minutes).
  • timeToLive (optional): Default lifetime of a message (in milliseconds).

    • 240000 ms (i.e. 4 minutes).
  • clientIdleTimeout (optional): Idle time (in milliseconds) beyond which the client will be automatically disconnected. This measure can reduce the server load by disconnecting inactive users while increasing security by logging out idle terminals. Increase the value of this parameter if you want the sessions to remain active all day long.

    • 25200000 ms (i.e. 7 hours)
  • trashRetentiondays (optional): determines how many days deleted elements are stored and visible in the virtual trash bin in the virtual room. e.g. a value of “2” means that elements that have been in the trash for 2 days or more will be removed from the virtual trash bin. These elements will then be definitively deleted depending on the value of purgeRetentiondays.

    • Default value is 1 day.
  • purgeRetentiondays (optional): determines how many days deleted resources are stored on the platform. e.g. a value of “7” means that elements that have been in the trash for 7 days or more will be definitively removed from the platform when the next purge action occurs.

    • Default value is 7 days.
  • unknownRoomsInHome (optional): determines if public rooms are displayed on the navigation bar. For a large instance with a lot of public rooms, this parameter can provide better performance during the loading of rooms, if it is set to false.

    • Default value is true.
  • allowIFrame (optional): determines if iObeya should be allowed to be displayed in an iFrame or not. Setting this option to “true” will allow session cookies to be set as third party and thus allow iObeya authentication in an iFrame.

    • Default value is false
  • UpdateSyncCopyCountsIsActivated: deactivates the step “update sync copy counts” in the long run job.

    • Default value is true
  • RequestScreenshotsGenerationAtStartup: activate or deactivate system screenshots at startup

    • Default value is false
  • screenshotThreadPriority (since 4.13): controls the screenshot thread priority. It can get two possible values:

    • Default value is low
    • low: the screenshot thread will have low priority
    • normal: the screenshot thread will have normal priority
  • countOfScreenshotThreads (since 4.13): controls the number of threads to be used to generate screenshots. If the values of countOfFastScreenshotThreads and countOfSlowScreenshotThreads are set to “0”, these threads will process all screenshots. Otherwise, these threads will process new boards whose generation time has not yet been evaluated before beeing assigned to the fast or slow threads.

    • Default number is 1 thread.
  • countOfFastScreenshotThreads (since 4.23): controls the number of threads to be used to generate fast screenshots. A board screenshot is considered fast if the generation time is below or equal the “slow threshold” value defined in the platform administration interface.

    • Default number is 0 thread.
  • countOfSlowScreenshotThreads (since 4.23): controls the number of threads to be used to generate slow screenshots. A board screenshot is considered slow if the generation time is above the “slow threshold” value defined in the platform administration interface.

    • Default number is 0 thread.

    Note

    Using multi-threading to generate screenshots in a parallel way reduce the waiting time for board screenshots to be updated in iObeya. Activate slow and fast screenshots threads to solve pending screenshots queue issues (e.g. complex QCD boards, thousands of boards updated daily).

    For all options regarding screenshot threads (normal, fast and slow), make sure that the combined value of the three parameters for the screenshot process remains below half of the total number of CPUs assigned to the web application server.