Technology/Installation
Container - ab 39.5.24 bis 39.5.23 German English
Container - ab 39.5.24 bis 39.5.23 German English

Web Client Configuration

Information

  • Here you will find a description of the PLANTA Web Client configuration.

Basics

Information

  • There are several ways to apply configurations. Below, all options are listed from lowest to highest priority.

  • If a variable has been defined at more than one position, the position with the highest priority will be used:

    1. appsettings.json: Main (default) configuration, changes are not recommended

    2. appsettings.[Environment].json: environment-specific (e.g. production) configuration

    3. Environment variables

    4. Command line parameters

Define parameters outside the JSON format

Information

  • You have to use a particular format for environment variables and command line parameters:

Define parameters within a block

JSON:

Command line:

JavaScript
{ 
	"ConnectionSettings": { 
		"User": "username" 
	} 
}
--ConnectionSettings:User=username

Define parameters within an array

JSON:

Overwrite ServerB port in the command line:

JavaScript
{ 
	"ConnectionSettings": { 
		"Servers": [ 
			{ 
			 "Host":"serverA", 
			 "Port":1234 
			}, 
			{ 
				"Host":"ServerB", 
				"Port":4567 
			} 
		] 
	} 
}
--ConnectionSettings:Servers:1:Port=9999


Parameter

Information

  • The following parameters can be used to configure the Web Client.

Dotnet Settings

Information

  • The ASPNETCORE_ENVIRONMENT variable can be set to Development. This enables a button on the error screen that allows copying the stack trace.

Connection Settings

Information

  • Parameters which define the server start and the communication with the PLANTA Server.

  • They must be defined within the ConnectionSettings block.

Parameter

Type

Default

Description

From/Up to Version

CompressionLevel

int

6

Zlib compression level, number between 0 and 9. Will be ignored if UseCompression = “false”.


CultureCode

string

de-DE

Culture code which is used by the application. Depends on the host operating system. A list of culture codes can be found online as well.


IndividualParameters

string

null

individual_parameters parameter which is sent upon server start


KeepAliveTimeout

int

60

Time interval between keepalive signals sent to the PLANTA Server in seconds


RoutingRequestTimeout

int

5

Request timeout for routing requests to PLANTA link


RoutingApiKey

string

see appsettings.json

API key which the Web Client sends as the Apikey header with every routing request. Can be overwritten per installation, e.g. via the ConnectionSettings__RoutingApiKey environment variable. Without a value, the Web Client does not send a header and the webhook rejects the request


RoutingWebHook

string

null

The PLANTA link webhook which is required for routing


PanelDestructionDelay

int

1440

Time in minutes for which the web server saves panel information when the user has interrupted the connection or left the page


Password

string

null

Password parameter which is sent upon server start


SessionDestructionDelay

int

480

Time in minutes for which the web server saves session information when the user has interrupted the connection or left the page. If the parameter is missing, “120” applies. With SessionPerTab “true”, the value applies to tabs with an interrupted connection. For closed tabs, ClosedTabSessionDestructionDelay applies.


SessionPerTab

bool

false

With “true”, each browser tab gets its own session, so several tabs of one browser can be used at the same time. Each session counts against the licensed maximum and against the user’s Parallel sessions limit. A tab whose session is taken over by another tab returns to the login page. With “false”, all tabs of a browser share one session.

From Web 4.3.0

ClosedTabSessionDestructionDelay

int

1

Only with SessionPerTab “true”: time in minutes for which the session of a closed tab is kept. The value covers reloading, reopening via the browser history, and restoring in the Parallel sessions dialog. Values below 1 count as 1.

From Web 4.3.0

Servers

array

null

List of PLANTA Servers. Must contain at least one entry. Further information


UseCompression

bool

true

Defines whether communication with the PLANTA Server is to be compressed


User

string

null

User parameter which is sent upon server start


UseSSL

bool

false

Defines whether SSL is to be activated for communication with the PLANTA Server


Settings of the Servers parameter

Parameter

Type

Description

From/Up to Version

Host

string

server host name


Port

int

server port


gRPC Settings

Information

  • This block controls the gRPC connection to the PLANTA manager via which the Web Client loads the integrated agile views.

  • The parameters must be defined within the GrpcSettings block.

  • If ServerUrl remains empty, the address is formed from the host of ConnectionSettings:RoutingWebHook and a port. The port is the value of Port, otherwise the port the manager announces at login, otherwise “50051”. An explicitly set ServerUrl takes precedence.

  • If no address can be formed, the startup records this in the log and only the agile views are unavailable. The rest of the Web Client continues to work.

Parameter

Type

Default

Description

ServerUrl

string

empty

Complete gRPC address of the manager, e.g. http://manager:50051/. If the value remains empty, the address is derived from the webhook

Port

int

50051

Port of the derived address. Has no effect if ServerUrl is set. Without a value of its own, the Web Client from 4.2.5 uses the port the manager announces at login (from S 39.2.3), otherwise “50051”. A set value takes precedence. If it differs from the manager’s port, the Web Client records this in the log.

UseTls

bool

false

Determines whether the derived address uses https. Has no effect if ServerUrl is set. By default, the manager accepts gRPC unencrypted

DefaultToken

string

empty

Service token for calls without a session-specific token. Required for the Microsoft 365 integration

ClientIdentifier

string

empty

Identifier which the Web Client sends with gRPC calls

Example configuration

JSON
{
  "ConnectionSettings": {
    "RoutingWebHook": "https://manager.example.com:23333/api/webclient/routing"
  },
  "GrpcSettings": {
    "ServerUrl": ""
  }
}

AI Settings

Parameter

Type

Description

From/Up to Version

ChatHost

string

URL of the AI assistant chat.


The PLANTA AI Assistant is available in a separate container—that is where installation and configuration take place. If you have any questions, please contact your PLANTA consultant.

Data Protection Settings

Information

  • Parameters to control the Data Protection API.

  • They must be defined within the DataProtectionSettings block.

Parameter

Type

Default

Description

From/Up to Version

ApplicationName

string

PLANTA Webclient

The name of the application for data protection purposes.


KeysDirectory

string

%ApplicationFilesPath%/DataProtectionKeys

Directory path where data protection keys are stored.


EncryptionAlgorithm

string

AES_256_CBC

The encryption algorithm used for data protection, for possible values see here.


ValidationAlgorithm

string

HMACSHA256

The validation algorithm used for data protection, for possible values see here.


EncryptionCertificateThumbprint

string


The thumbprint of the encryption certificate used for data protection. If empty, the keys file is not encrypted.


Authentication Settings

Information

  • Parameters which are used to configure whether and how the reverse proxy informs us about the authenticated user. This requires the use of PLANTA secure.

  • The parameters must be defined within the AuthenticationSettings block.

Parameter

Type

Default

Description

From/Up to Version

ProxyAuth

bool

false

If this option is activated, the Web Client sends a message to the server during session initialization which informs it about the pre-authentication and the corresponding user code.


JwtAuth

bool

false

When enabled, the Web Client uses JWT/OIDC for authentication (enables OIDC flows).

Deprecated from 3.7.2

Use OidcEnabled instead.

Up to 3.7.1

JwtAuthOnClient

bool

false

When true, the client initiates the OIDC login flow by itself. Otherwise, the reverse proxy initiates the OIDC login flow.

Deprecated from 3.7.2

Use OidcEnabled instead.

Up to 3.7.1

OidcEnabled

bool

false

Enables OIDC authentication. Replaces the previous parameters JwtAuth and JwtAuthOnClient.

From 3.7.2

ProxyUserFormat

string

plain

The format in which the value is provided. So far, only the "plain" format has been implemented, which passes the header value to the server.


ProxyUserHeader

string

x-forwarded-user

Name of the HTTP header field that contains the user ID authenticated by the reverse proxy.


ProxyUserAccessToken

string

x-forwarded-access-token

Name of the HTTP cookie that contains the JWT access token


ProxyUserIdToken

string

x-forwarded-id-token

Name of the HTTP cookie that contains the JWT ID token


AppPathBase

string

/

Web base path that the reverse proxy uses for the Web Client, e.g. if the Web Client can be accessed on the reverse proxy under http://www.example.com/webclient, the base path will be /webclient.


ProxyLogoutRoute

string

/signed-out

Logout route which is opened when the user wants to terminate their session on the reverse proxy.


OidcSettings

OIDC Settings


Configuration for the OpenID Connect authentication


ReverseProxyJwtSettings

ReverseProxyJwtSettings


Configuration for the JWT authentication via reverse proxy (Cloudflare by default).


ReverseProxyJWT Settings

Parameter

Type

Default

Description

From/Up to Version

HeaderKey

string

Cf-Access-Jwt-Assertion

The HTTP header key that contains the application JWT from the reverse proxy. The authentication service also checks whether the header name contains Cf- to recognize the use of Cloudflare.


IssuerUrl

string


Expected iss claim value of the incoming token (e.g. your Cloudflare Access Issuer URL).


JwksUrl

string


JWKS endpoint URL used for validating the token signature.


Audience

string


Expected aud claim value. In Cloudflare Access, it is usually the 64-digit hex tag.


Notes

  • When JwtAuth is true and JwtAuthOnClient is false, the client tries to find the tokens made available by the reverse proxy either in cookies (standard OIDC cookies) or in the configured HeaderKey. If HeaderKey contains a Cf prefix and a matching request header exists, the reverse proxy/Cloudflare flow is used.

  • After successful validation, the client sends an XML message of the <ProxyToken type="1" .../> type that contains the application token in access_token to the backend. The backend must support type="1" and access_token as validated reverse proxy JWT.

OIDC Settings

Information

  • Parameters for configuring the OpenID Connect authentication.

  • They must be defined within the AuthenticationSettings.OidcSettings block.

Parameter

Type

Default

Description

From/Up to Version

ClientId

string


OAuth client ID that is used for token validation.


ClientSecret

string


Client secret that is used for authentication to the OIDC provider.


DiscoveryUrl

string


URL for the OIDC discovery document.

Deprecated from 3.7.2

Use IssuerUrl instead.

Up to 3.7.1

IssuerUrl

string


The base issuer URL of the OIDC provider (e.g. https://login.microsoftonline.com/tenant/v2.0). Replaces DiscoveryUrl. The discovery URL is derived automatically.

From 3.7.2

Scope

string


Access scope requested from the OIDC provider.


Authentication: Examples and Setup

Information

  • Below are common configuration scenarios and concrete examples for setting values via appsettings.json, environment variables, or command line.

Example A — Reverse-proxy header authentication (proxy tells backend the user ID)

  • appsettings.json:

JSON
{
  "AuthenticationSettings": {
    "ProxyAuth": true,
    "ProxyUserHeader": "x-forwarded-user"
  }
}
  • Environment variable (Windows PowerShell):

PowerShell
$env:AuthenticationSettings__ProxyAuth = "true"
$env:AuthenticationSettings__ProxyUserHeader = "x-forwarded-user"

Example B — Cloudflare Access / Reverse-proxy JWT (reverse proxy injects application JWT)

  • appsettings.json:

JSON
{
  "AuthenticationSettings": {
    "JwtAuth": true,
    "JwtAuthOnClient": false,
    "ReverseProxyJwtSettings": {
      "HeaderKey": "Cf-Access-Jwt-Assertion",
      "IssuerUrl": "https://your-team.cloudflareaccess.com",
      "JwksUrl": "https://your-team.cloudflareaccess.com/cdn-cgi/access/certs",
      "Audience": "PASTE_THE_64_CHAR_HEX_TAG_HERE"
    }
  }
}

Notes

  • The application will detect Cloudflare usage when the configured HeaderKey contains Cf- and a matching header exists on the request.

  • Ensure JwksUrl, IssuerUrl, and Audience exactly match the token claims issued by Cloudflare Access. If they do not match, validation fails.

Example C — OIDC client-initiated login with PKCE (browser performs OIDC flow)

  • appsettings.json:

JSON
{
  "AuthenticationSettings": {
    "JwtAuth": true,
    "JwtAuthOnClient": true,
    "OidcSettings": {
      "ClientId": "APPLICATION_CLIENT_ID",
      "ClientSecret": "YOUR_CLIENT_SECRET",
      "DiscoveryUrl": "https://login.example.com/.well-known/openid-configuration",
      "Scope": "openid profile email"
    }
  }
}

Behavior

  • The client will start the Authorization Code flow with PKCE and exchange the authorization code for id_token/access_token in the browser.

  • Tokens are validated and then forwarded to the backend with ProxyToken type="0".

WebAPI Authentication Settings

Parameter

Type

Default

Description

From/Up to Version

APIKey

string

APIKEY

API key which is used to access the web API endpoints


Adaptive Card Settings

Signature Settings

Parameter

Type

Default

Description

From/Up to Version

RsaPrivateKeyXml

string


XML formatted private RSA key for signing Adaptive Cards


Upload Settings

Information

  • Parameters that define the behavior for file uploads.

  • They must be defined within the FileUploadSettings block.

Parameter

Type

Default

Description

From/Up to Version

AllowedExtensions

string

.doc, .docx, .xls, .txt

File endings which can be uploaded


MaxFileSize

int

2000000

Maximum size of files, in bytes


ChunkSize

int

100000

If a number > 0 is defined, the file is uploaded in chunks of the specified size (in bytes). If 0 is defined, the file is uploaded in one request.


TemporaryFilePath

string

.

Path under which the files are temporarily saved during upload


Help Center Settings

Information

  • Parameters to configure the links and commands used in the Help Center menu.

  • They must be defined within the HelpCenterSettings block.

Parameter

Type

Default

Description

MainHelpUrl

string

https://help.planta.de/

URL for the main help center page.

VideoTutorialsUrl

string

https://www.youtube.com/@planta_gmbh/videos

URL for video tutorials.

TextTutorialsUrl

string

https://help.planta.de/project/?contextKey=GrundlagenProject

URL of the page opened by the Getting Started entry in the Help Center. Up to Web 4.3.1, the default was https://help.planta.de/de/project/.

PrivacyPolicyUrl

string

https://www.planta.de/datenschutzerklaerung/

URL for the privacy policy page. When set, a privacy policy link will be displayed in the feedback component.

AiConfigurationUrl

string

https://help.planta.de/de/tec/Container-ab-39.5.24/konfiguration-des-ki-assistenten-fur-webclient

URL for AI assistant configuration documentation. This link is shown when the AI assistant is disabled to help users learn how to set it up.

ModuleHelpCommandId

int?

null

Optional command ID to execute for module-specific help.

FieldHelpCommandId

int?

null

Optional command ID to execute for field-specific help.

MaxFeedbackTextLength

int

1000

Maximum character length allowed for feedback comment text. This limits how much text users can enter in the feedback form.

FeedbackTo

array

null

List of feedback destinations. Each destination has a Name and optional Args. Supported destinations: Console, Logger, File, and Service.

Feedback to Destination Details

Information

  • Console: Logs feedback to the console.

  • Logger: Logs feedback using the application's logger.

  • File: Logs feedback to a file. Requires Args.filepath (path to the file) and Args.encoding (file encoding, e.g., utf-8).

  • Service: Sends feedback to a service. Requires Args.url (URL of the feedback service).

Example configuration for FeedbackTo:

JSON
"FeedbackTo": [
  { "Name": "Console" },
  { "Name": "Logger" },
  {
    "Name": "File",
    "Args": {
      "filepath": "%ApplicationFilesPath%/feedback.log",
      "encoding": "utf-8"
    }
  },
  {
    "Name": "Service",
    "Args": {
      "url": "http://localhost:5159/api/feedback"
    }
  }
]

Message Dumper Settings

Information

  • Message Dumper saves the communication with PLANTA Server: one XML file per session.

  • Recordings are kept beyond the end of the session and beyond restarts. Their age, number, and size are limited by RetentionDays, MaxRetainedDumps, and MaxSizeBytes. The recording of a running session is never deleted.

  • Login data is masked as *** in the recording. All other field contents appear in plain text in the recording.

  • The parameters must be defined within the MessageDumperSettings block.

Parameter

Type

Default

Description

From/Up to Version

Enabled

bool

false

Records every session. Also enables downloading other users’ recordings in the Session logs dialog. Turn on for diagnosis only


LogDirectory

string

%ApplicationFilesPath%/Logs/Dump

Path under which message dump files are saved


AllowUrlParameter

bool

true

Create an XML recording of a session. It is started by adding ?client_create_dump=true to the URL. From 4.2.0, the parameter also controls the Start XML recording button in the Session logs dialog.


IncludeBinaryContent

bool

false

Writes binary content such as attachments, OLE objects, and images to the recording. With “false”, the attribute payloadOmittedChars replaces this content. Turn on before recording to analyze problems with attachments, OLE objects, or images

From 4.1.0

MaxSizeBytes

long

26214400 (25 MB)

Size limit per recording. When it is reached, recording stops and the file is closed with the marker DumpTruncated. With 0 or less there is no limit

From 4.1.0

RetentionDays

int

7

Age in days after the last change from which a recording is deleted

From 4.1.0

MaxRetainedDumps

int

100

Maximum number of recordings kept. Above it, the oldest are deleted first

From 4.1.0

Session Log Settings

Information

  • From Web Client 4.1.0.

  • Every session writes its own log file.

  • Users download their session log via the Session logs dialog.

    • Access to other users’ logs is a customizing right and can be restricted further via DownloadAccess.

  • The parameters must be defined within the SessionLogSettings block.

Parameter

Type

Default

Description

Enabled

bool

true

Writes a separate log file for each session. With “false”, the menu entry is omitted as well

DownloadAccess

string

AllUsers

Defines who may list and download session logs. “AllUsers”: users with customizing rights reach every session, all others only their own. “CustomizersOnly”: without customizing rights, the menu entry is not displayed. “Disabled”: the menu entry is not displayed for anyone

LogDirectory

string

%ApplicationFilesPath%/Logs/Sessions

Directory for the log files and their metadata files

MaxSizeBytes

long

10485760 (10 MB)

Size limit per session log. When it is reached, a truncation marker is appended and writing stops. With 0 or less there is no limit

RetentionDays

int

7

Age in days after the last change from which a log and its metadata file are deleted

MaxRetainedSessions

int

500

Maximum number of logs in the directory, including running sessions. Above it, the oldest finished logs are deleted first. A session that starts after the limit is reached gets no log

OutputTemplate

string

{Timestamp:dd/MM HH:mm:ss.fff} [{Level:u3}][{SourceContext}] {Message}{NewLine}{Exception}

Serilog output format of a log line

MinimumLevel

string

Information

Lowest level an event must reach to be written to the session log. A lower value also lowers the global minimum logging level and therefore affects all log sinks

Notes

  • Set MaxRetainedSessions well above the number of concurrent sessions. Every page call creates a session with a log even before login. When the limit is reached, no new logs are created, and finished logs are deleted at once.

  • The storage needed by the directory is at most MaxRetainedSessions × MaxSizeBytes. Size the volume accordingly.

  • Errors of session logging appear only in the container’s standard error output (stderr), not in the log itself.

Example configuration

JSON
{
  "SessionLogSettings": {
    "DownloadAccess": "CustomizersOnly"
  }
}

Virtualization Settings

Information

  • Virtualization is used to only render what is visible on screen to improve performance.

  • The parameters must be defined within the VirtualizationSettings block.

Parameter

Type

Default

Description

Enabled

bool

true

Enables the virtualization feature

OneDrive Settings

Information

  • Parameters for the OneDrive file picker, used by the Insert from OneDrive context menu entry for hyperlinks and for attachment links in the agile views.

  • The function runs in the browser and needs its own Azure app registration. The Microsoft 365 integration service is not used for it.

  • For setup in Azure, see Configure OneDrive Integration.

  • The parameters must be defined within the OneDriveSettings block.

Parameter

Type

Default

Description

LinkFromOneDrive

bool

false

Shows the Insert from OneDrive entry in the context menu of hyperlinks

ClientId

string


Client ID of the Azure app registration (required)

TenantId

string


ID of the Azure tenant. Used to form the login authority if Authority is not set.

Authority

string


Optional login authority. Default: https://login.microsoftonline.com/{TenantId}, or the endpoint common if TenantId is not set either.

RedirectUri

string

(origin of the application)

Optional redirect URI. Must be registered in Azure as a redirect URI for a single-page application (SPA). Set it only if the public origin differs from the one the application sees, e.g. behind a reverse proxy.

OneDriveBaseUrl

string


OneDrive/SharePoint host of the tenant, e.g. https://company-my.sharepoint.com (required). The OneDrive file picker is loaded from this origin.

Repositioning Modules Settings

Information

  • This parameter enables a feature that allows module windows to be positioned anywhere within a view (e.g., within the module bar or at the edge of a panel).

  • The parameter must be defined within the DockingSettings block.

Parameter

Type

Default

Description

DockPanelEnabled

bool

false

Enables docking, stacking as tabs, collapsing, and rearranging modules in the panel.

Example configuration

JSON
{
  "DockingSettings": {
   "DockPanelEnabled": true
  }
}

Status Message Settings

Information

  • This block controls how the Web Client displays the status messages sent by the server.

  • There are three display options which can be turned on and off independently of one another and filtered by status: the pop-up message at the bottom of the screen, the status chip in the module’s action bar, and the classic status bar in the lower-left corner.

  • The parameters must be defined within the StatusMessageSettings block.

  • In ascending order, the statuses are Working, Info, Success, Warning, and Error. Each display option shows the range from MinimumLevel to MaximumLevel (both limits included). If the upper limit is below the lower limit, the display option shows nothing.

Parameter

Type

Default

Description

AllowUserSettings

bool

false

Allows users to change the status display options for themselves, in the User settings dialog on the Status messages page. If this dialog is not available, for example with an older database, in the Status messages settings window (PLANTA logo → ? → Status messages). Alternatively, the gear icon in the list of recent messages opens the same settings window, provided the status chip is turned on. With “false”, there is no way of accessing the settings window. All display options then correspond to the existing settings in this block. With “false”, the Status messages entry in the ? menu behind the PLANTA logo is also omitted. A menu entry that the customizing supplies for command 602 is kept.

Toast:Enabled

bool

false

Turns on the pop-up message at the bottom of the screen

Toast:MinimumLevel

string

Success

Lowest status which is displayed as a pop-up message

Toast:MaximumLevel

string

Error

Highest status which is displayed as a pop-up message

Toast:TimeoutMs

int

2000

Display duration in milliseconds. Warnings and errors remain on screen regardless of this value until the user closes them. With “0”, the message is given a close button instead of the elapsing line

Toast:Placement

string

Center

Position at the bottom of the screen at which the messages appear, configurable with the values “Left”, “Center”, or “Right”. The messages are then displayed in a bar directly above the panel bar.

Toast:CardsBeforeStacking

int

3

Number of warnings and errors which are displayed separately one below the other before older messages are stacked above them. Values below 1 are treated as 1. Can only be set per installation. The Status messages window does not offer this value.

Pill:Enabled

bool

false

Turns on the status chip in the module’s action bar

Pill:MinimumLevel

string

Working

Lowest status which the status chip displays. A message below it leaves the current content in place

Pill:MaximumLevel

string

Error

Highest status which the status chip displays. A message above it leaves the current content in place

LegacyBar:Available

bool

true

Determines whether the classic status bar exists in the client at all. With “false”, it disappears from the user interface and from the Status messages window, and a stored user setting which refers to it is ignored.

LegacyBar:Enabled

bool

true

Turns on the classic status bar. Has no effect while Available is set to “false”

LegacyBar:MinimumLevel

string

Working

Lowest status which the classic status bar displays

LegacyBar:MaximumLevel

string

Error

Highest status which the classic status bar displays

LegacyBar:TimeoutMs

int

2000

Display duration in milliseconds, here for all statuses including warnings and errors. With “0”, the message remains until the next one replaces it.

LogCapacity

int

100

Number of status messages a session keeps for the message log and the Messages overview. When the number is exceeded, the oldest message is dropped. The log belongs to the session on the server and is kept when the page is reloaded. Values below 1 count as 1. Can only be set per installation, because every message uses server memory as long as the session exists.

Example configuration

Default setting, only the classic status bar displays messages:

JSON
{
  "StatusMessageSettings": {
    "AllowUserSettings": false,
    "Toast": { "Enabled": false, "MinimumLevel": "Success", "TimeoutMs": 2000, "Placement": "Center", "CardsBeforeStacking": 3 },
    "Pill": { "Enabled": false, "MinimumLevel": "Working" },
    "LegacyBar": { "Available": true, "Enabled": true, "MinimumLevel": "Working", "TimeoutMs": 2000 }
  }
}

Test of the new display options, counts and results in the status chip, warnings and errors as pop-up messages, user settings released:

JSON
{
  "StatusMessageSettings": {
    "AllowUserSettings": true,
    "Toast": { "Enabled": true, "MinimumLevel": "Warning" },
    "Pill": { "Enabled": true, "MinimumLevel": "Working", "MaximumLevel": "Success" },
    "LegacyBar": { "Available": true, "Enabled": false }
  }
}

User Settings Dialog Settings

Information

  • Defines which customizing module the Web Client shows as the User settings dialog. The customizing opens the module stored in its global setting user_settings_module. If this setting is changed, the same module ID must be entered here.

  • An empty module ID, or the ID of a module that the Web Client already shows as another dialog, hides the dialog and writes a warning to the log.

  • Prerequisites are a server release after S 39.2.3 and a database release after DB 27.1.0.

  • The parameter must be defined within the UserSettingsDialog block.

Parameter

Type

Default

Description

ModuleCustomizingId

string

009EAG

Module ID of the customizing module shown as the User settings dialog

Example configuration

JSON
{
  "UserSettingsDialog": {
    "ModuleCustomizingId": "009EAG"
  }
}

Keyboard Settings

Information

  • Defines how the keyboard behaves in the data areas of modules.

  • With Grid navigation (“Treegrid”), the arrow keys move the selection across all cells. Editing starts by typing, pressing Enter, or F2.

  • With Classic (“Classic”), an input field selected with the keyboard can be edited at once.

  • With AllowUserSettings, each user chooses the behavior on the Keyboard page of the User settings dialog. If this dialog is not available, for example with an older database, the user chooses via the Keyboard entry in the ? menu behind the PLANTA logo. The choice is saved per user in the browser.

  • Users with a screen reader should keep Grid navigation.

  • From Web Client 4.3.0.

  • The parameters must be defined within the KeyboardSettings block.

Parameter

Type

Default

Description

DefaultBehaviour

string

Treegrid

Behavior for all users as long as they may not choose themselves or have not chosen: “Treegrid” (Grid navigation) or “Classic” (Classic). Any other value stops the Web Client from starting with an error message.

AllowUserSettings

bool

false

Allows users to choose the behavior themselves. With “false”, the choice appears neither in the User settings dialog nor in the ? menu. A previously saved choice is then not applied, but not deleted.

Example configuration

JSON
{
  "KeyboardSettings": {
    "DefaultBehaviour": "Classic",
    "AllowUserSettings": true
  }
}

Password Policy Settings

Information

  • Defines the rules a new password must meet before the Web Client sends it to the server. The rules apply in the User settings dialog and in the dialog for changing the password, also when a new password is required at login, for example after a password reset or when the password has expired.

  • Set the rules to your company’s password policy. A password that breaks the rules cannot be set via the Web Client.

  • The parameters must be defined within the PasswordPolicy block.

Parameter

Type

Default

Description

MinimumLength

int

10

Minimum number of characters of a new password. “0” sets no minimum length

RequireUpperAndLowerCase

bool

true

A new password must contain an uppercase and a lowercase letter

RequireDigit

bool

true

A new password must contain a digit

RequireSpecialCharacter

bool

true

A new password must contain a character that is neither a letter nor a digit

Example configuration

JSON
{
  "PasswordPolicy": {
    "MinimumLength": 10,
    "RequireUpperAndLowerCase": true,
    "RequireDigit": true,
    "RequireSpecialCharacter": true
  }
}

Chart Export Settings

Information

  • Parameters to control chart export functionality.

  • The parameters must be defined within the ChartExportSettings block.

Parameter

Type

Default

Description

ExportScaleFactor

int

4

Scale factor for exported chart images. Higher values produce higher-resolution images but increase file size.

MaxUploadsPerMinute

int

60

Maximum number of chart exports allowed per minute (rate limiting).

MaxFileSizeBytes

int

15728640

Maximum file size for exported chart images, in bytes (default is 15 MB).

Example configuration

JSON
{
  "ChartExportSettings": {
    "ExportScaleFactor": 4,
    "MaxUploadsPerMinute": 60,
    "MaxFileSizeBytes": 15728640
  }
}

Page Size Settings

Information

  • Parameters for configuring custom page sizes for PDF export.

  • The parameter must be defined within the PaperFormatSettings block.

Parameter

Type

Default

Description

From/Up to Version

Formats

array


List of custom page size configurations. Each format must include a localized name and dimensions in millimeters.


Define parameters within an array

{
  "PaperFormatSettings": {
    "Formats": [
      {
        "Name": {
          "de": "A0",
          "en": "A0",
          "fr": "A0",
          "pt": "A0"
        },
        "Size": {
          "Width": 841,
          "Height": 1189
        }
      },
      {
        "Name": {
          "de": "Tabloid",
          "en": "Tabloid (11x17 in)",
          "fr": "Tabloïd",
          "pt": "Tablóide"
        },
        "Size": {
          "Width": 279,
          "Height": 432
        }
      }
    ]
  }
}

Logging Settings

Information

  • The PLANTA Web Client uses Serilog for logging.

  • Serilog uses so-called “sinks” for showing logs. The Web Client currently supports the following sinks:

    • Console

    • File

Metrics Settings

Information

  • Parameters to configure the Prometheus metrics endpoint and telemetry.

  • The parameters must be defined within the MetricsSettings block.

Parameter

Type

Default

Description

PrometheusEndpoint

string

/metrics

The Prometheus endpoint path for metrics scraping. Configure this to change the URL where metrics are exposed.

MeterName

string

planta_webclient_metrics

Name of the custom OpenTelemetry meter for application metrics. This identifies the meter in OpenTelemetry.

MetricsPrefix

string

planta_webclient_

Prefix to add to custom application metrics names. This helps identify custom metrics from this application in monitoring systems. Note: Default system metrics (ASP.NET Core, Runtime, HTTP Client) do not use this prefix.

Example configuration:

JSON
{
  "MetricsSettings": {
    "PrometheusEndpoint": "/custom-metrics",
    "MeterName": "my_application_metrics",
    "MetricsPrefix": "my_app_"
  }
}

Change Host URL

Information

  • ASP.NET Core applications use ports 5000 (http) and 5001 (https) by default.

  • With the Urls parameter it can be overwritten as follows:

JSON:

Command line:

JavaScript
"Urls": "http://localhost:9000;https://localhost:9001",
--Urls:http://localhost:9000;https://localhost:9001