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:
-
appsettings.json: Main (default) configuration, changes are not recommended -
appsettings.[Environment].json: environmental specific (e.g. production) configuration -
Environment Variables
-
Command line parameter
-
Define parameters outside the JSON format
Information
-
You have to use a particular format for conversion variables and command line parameters:
Define parameters within a block
|
JSON: |
Command line: |
|
JavaScript
|
|
Define parameters within an array
|
JSON: |
Overwrite ServerB port in the command line: |
|
JavaScript
|
|
Parameter
Information
-
The following parameters can be used to configure the Web Client.
Dotnet Settings
Information
-
The
ASPNETCORE_ENVIRONMENTcan be set toDevelopmentthis will enable a button on the error screen which allows the copying of the stacktrace.
Connection Settings
Information
-
Parameters which define the server start and the communication with the PLANTA Server.
-
They must be defined within the
ConnectionSettingsblock.
|
Parameter |
Type |
Default |
Description |
From/Up to Version |
|---|---|---|---|---|
|
|
int |
6 |
Zlib compression level, number between 0 and 9. Will be ignored if |
|
|
|
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. |
|
|
|
string |
null |
|
|
|
|
int |
60 |
Time interval between keepalive signals sent to the PLANTA Server in seconds |
|
|
|
int |
5 |
Request timeout for routing requests to PLANTA link |
|
|
|
string |
null |
The PLANTA link webhook which is required for routing |
|
|
|
int |
1440 |
Time in minutes for which the web server saves panel information when the user has interrupted the connection or left the page |
|
|
|
string |
null |
|
|
|
|
int |
7200 |
Time in minutes for which the web server saves session information when the user has interrupted the connection or left the page |
|
|
|
array |
null |
List of the PLANTA Server must at least contain one entry. Further information |
|
|
|
bool |
true |
Defines whether communication with the PLANTA Server is to be compressed |
|
|
|
string |
null |
|
|
|
|
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 |
|---|---|---|---|
|
|
string |
server host name |
|
|
|
int |
server port |
|
AI Settings
|
Parameter |
Type |
Description |
From/Up to Version |
|---|---|---|---|
|
|
string |
URL of the AI assistant chat. |
|
The PLANTA-KI 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
DataProtectionSettingsblock.
|
Parameter |
Type |
Default |
Description |
From/Up to Version |
|---|---|---|---|---|
|
|
string |
PLANTA Webclient |
The name of the application for data protection purposes. |
|
|
|
string |
%ApplicationFilesPath%/DataProtectionKeys |
Directory path where data protection keys are stored. |
|
|
|
string |
AES_256_CBC |
The encryption algorithm used for data protection, for possible values see here. |
|
|
|
string |
HMACSHA256 |
The validation algorithm used for data protection, for possible values see here. |
|
|
|
string |
|
The thumbprint of the encryption certificate used for data protection, if empty the keys file will not be 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
AuthenticationSettingsblock.
|
Parameter |
Type |
Default |
Description |
From/Up to Version |
|---|---|---|---|---|
|
|
bool |
false |
If this option is activated, the Web Client sends a message to the server during session initialization which informs him/her about the pre-authentication and the corresponding user code. |
|
|
|
bool |
false |
When enabled, the Webclient will use JWT/OIDC for authentication (enables OIDC flows). Deprecated from 3.7.2 Use |
Up to 3.7.1 |
|
|
bool |
false |
When true the client initiates the OIDC login flow by itself; otherwise the OIDC login flow will be initiated by reverse proxy. Deprecated from 3.7.2 Use |
Up to 3.7.1 |
|
|
bool |
false |
Enables OIDC authentication. Replaces the previous parameters |
From 3.7.2 |
|
|
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. |
|
|
|
string |
x-forwarded-user |
Name of the HTTP header field that contains the user ID authenticated by the reverse proxy. |
|
|
|
string |
x-forwarded-access-token |
Name of the HTTP cookie that contains the JWT access token |
|
|
|
string |
x-forwarded-id-token |
Name of the HTTP cookie that contains the JWT access token |
|
|
|
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. |
|
|
|
string |
|
Logout route which is opened when the user wants to terminate his/her session on the reverse proxy. |
|
|
|
OIDC Settings |
|
Configuration for the OpenID connect authentication |
|
|
|
ReverseProxyJwtSettings |
|
Configuration for the JWT authentication via reverse proxy (Cloudflare by default). |
|
ReverseProxyJWT Settings
|
Parameter |
Type |
Defaut |
Description |
From/Up to Version |
|---|---|---|---|---|
|
|
string |
|
HTTP header key that contains the application JWT from the reverse proxy (default: The HTTP header key that contains the application JWT from the reverse proxy. The authentication service also checks whether the header name contains |
|
|
|
string |
|
Expected |
|
|
|
string |
|
JWKS end point URL used for validating the token signature. |
|
|
|
string |
|
Expected |
|
Notes
-
When
JwtAuthistrueandJwtAuthOnClientisfalse, the client tries to find the tokens made available by the reverse proxy either in cookies (standard OIDC cookies) or in the configuredHeaderKey. IfHeaderKeycontains aCfprefix 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 inaccess_tokento the backend. The backend must supporttype="1"andaccess_tokenas validated reverse proxy JWT.
OIDC Settings
Information
-
Parameter for configuring the OpenID connect authentication.
-
They must be defined within the
AuthenticationSettings.OidcSettingsblock.
|
Parameter |
Type |
Default |
Description |
From/Up to Version |
|---|---|---|---|---|
|
|
string |
|
Oauth client ID that is used for token validation. |
|
|
|
string |
|
Client secret that is used for authentication to the OIDC provider. |
|
|
|
string |
|
URL for the OIDC discovery document. Deprecated from 3.7.2 Use |
Up to 3.7.1 |
|
|
string |
|
The base issuer URL of the OIDC provider (e.g. |
From 3.7.2 |
|
|
string |
|
Access area requested by 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:
{
"AuthenticationSettings": {
"ProxyAuth": true,
"ProxyUserHeader": "x-forwarded-user"
}
}
-
Environment variable (Windows 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:
{
"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
HeaderKeycontainsCf-and a matching header exists on the request. -
Ensure
JwksUrl,IssuerUrlandAudienceexactly match the token claims issued by Cloudflare Access. If they do not match validation will fail.
Example C — OIDC client-initiated login with PKCE (browser performs OIDC flow)
-
appsettings.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_tokenin the browser. -
Tokens are validated and then forwarded to the backend with
ProxyTokentype="0".
WebAPI Authentication Settings
|
Parameter |
Type |
Default |
Description |
From/Up to Version |
|---|---|---|---|---|
|
|
string |
APIKEY |
API key which is used to access the web API end points |
|
Adaptive Card Settings
Signature Settings
|
Parameter |
Type |
Default |
Description |
From/Up to Version |
|---|---|---|---|---|
|
|
string |
|
XML formatted private RSA key for signing Adaptive Cards |
|
Upload Settings
Information
-
Parameters that define the behavior in file uiploads.
-
They must be defined within the
FileUploadSettingsblock.
|
Parameter |
Type |
Default |
Description |
From/Up to Version |
|---|---|---|---|---|
|
|
int |
6 |
Zlib compression level, number between 0 and 9. Will be ignored if |
|
|
|
string |
.doc, .docx, .xls, .txt |
File endings which can be uploaded |
|
|
|
int |
2000000 |
Maximum size of files in kB |
|
|
|
int |
100000 |
If a number > 0 is defined, the file will be uploaded in chunks according to the specified size. If 0 is defined, the file will be iploaded in a request. |
|
|
|
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
HelpCenterSettingsblock.
|
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
|
string |
URL for the main help center page. |
|
|
|
string |
URL for video tutorials. |
|
|
|
string |
URL for text-based tutorials/documentation. |
|
|
|
string |
URL for the privacy policy page. When set, a privacy policy link will be displayed in the feedback component. |
|
|
|
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. |
|
|
int? |
null |
Optional command ID to execute for module-specific help. |
|
|
int? |
null |
Optional command ID to execute for field-specific help. |
|
|
int |
1000 |
Maximum character length allowed for feedback comment text. This limits how much text users can enter in the feedback form. |
|
|
array |
null |
List of feedback destinations. Each destination has a |
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. RequiresArgs.filepath(path to the file) andArgs.encoding(file encoding, e.g.,utf-8). -
Service:Sends feedback to a service. RequiresArgs.url(URL of the feedback service).
Example configuration for FeedbackTo:
"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.
-
The parameters must be defined within the
MessageDumperSettingblock.
|
Parameter |
Type |
Default |
Description |
From/Up to Version |
|---|---|---|---|---|
|
|
bool |
true |
Activate Message Dump feature |
|
|
|
string |
.\Logs\Dump |
Path under which message dump files are saved |
|
Virtualization Settings
Information
-
Virtualization is used to only render what is visible on screen to improve performance.
-
Within
VirtualizationSettingsblock.
|
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
|
bool |
true |
Whether to enable virtualization feature |
Chart Export Settings
Information
-
Parameters to control chart export functionality.
-
Must be defined within the
ChartExportSettingsblock.
|
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
|
int |
4 |
Scale factor for exported chart images. Higher values produce higher resolution images but increase file size. |
|
|
int |
60 |
Maximum number of chart exports allowed per minute (rate limiting). |
|
|
int |
15728640 |
Maximum file size for exported chart images, in bytes (default is 15 MB). |
Example configuration
{
"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
PaperFormatSettingsblock.
|
Parameter |
Type |
Default |
Description |
From/Up to Version |
|---|---|---|---|---|
|
|
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 Setting
Information
-
Parameters to configure Prometheus metrics endpoint and telemetry.
-
Must be defined within the
MetricsSettingsblock.
|
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
|
string |
/metrics |
The Prometheus endpoint path for metrics scraping. Configure this to change the URL where metrics are exposed. |
|
|
string |
planta_webclient_metrics |
Name of the custom OpenTelemetry meter for application metrics. This identifies the meter in OpenTelemetry. |
|
|
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:
{
"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
Urlsparameter it can be overwritten as follows:
|
JSON: |
Commanfd line: |
|
JavaScript
|
|