Webclient Core Configuration

The core webclient configuration is stored in YAML format. For CIB seven Tomcat or WildFly distributions, the configuration is typically located in the application.yaml file. For CIB seven Run distribution, the webclient configuration can be combined with the distribution configuration files.

Authentication

Authentication means verifying a user’s identity against the CIB seven webclient.

A user authenticates on the login page by providing a username and password. If the authentication is successful, the user gets access to the webclient and can work on tasks in Tasklist or perform operations in Cockpit, for example.

The authentication information consists of the following:

  • Process engine name
  • Username
  • Group memberships
  • Tenant memberships

The CIB seven webclient correlate the authentication information against authorizations to determine what data the user can query for and which operations the user can perform. There are several options to configure authentication in CIB seven, see cibseven.webclient.authentication.

Username/Password Login Alternative

Instead of the username and password login, the webclient can also delegate the login to an external identity provider such as Microsoft Entra ID or Keycloak, see Single Sign-On (OAuth2/OIDC).

LDAP

If you connect CIB seven with the LDAP identity service, you have read-only access to the users and groups. Create new users and groups via the LDAP system, but not in the admin application. Find more information about how to configure the process engine in order to use the LDAP identity service here. Options to configure CIB seven webclient with LDAP support: cibseven.webclient.ldap.

Multi-engine support

CIB seven webclient supports connections to multiple engine REST. The multi-engine feature allows using a single webclient instance to view and manage multiple CIB seven engines. This is particularly useful for developers or administrators who need to switch quickly between environments such as testing, development or production. Additional engines can be optionally specified via the additionalEngineRest sub-property:

cibseven:
  webclient:
    engineRest:
      url: http://localhost:8080
      path: /engine-rest
      displayName: Local Server
      tooltip: Local environment
      additionalEngineRest:
        - url: https://dev.cibseven.de/
          path: /engine-rest
          displayName: Dev Server
          tooltip: Development environment
          jwtSecret: <SECRET_OF_THE_ADDITINAL_ENGINE>
        - url: https://qa.cibseven.de/
          path: /engine-rest
          displayName: QA Server
          tooltip: QA environment
          jwtSecret: <SECRET_OF_THE_ADDITINAL_ENGINE>

After configuring, an icon with additional engines should appear at the top menu of the CIB seven webclient.

All Core Configuration Options

The table below lists the core webclient options with short descriptions. The properties that set the paths under which the webclient is deployed in CIB seven Run or a Spring Boot application are described in CIB seven webclient properties.

Prefix Property name Description
cibseven.webclient .enabled Specifies whether CIB seven web application (CIB seven webclient) REST API is enabled.
Default value: true
cibseven.webclient.api .common.title API title for Swagger.
Example: CIB seven webclient API
.common.description API description for Swagger
.common.license License name
.common.contact Contains a few sub-properties with the contact name, url and email
cibseven.webclient.authentication .jwtSecret Secret used to sign JWT tokens
.tokenValidMinutes Authentication token expiration in minutes
.tokenProlongMinutes Authentication token extension time in minutes
cibseven.webclient.license.chunk .trustServerAuthentication Lets the browser request licensed EE frontend chunks even when the webclient holds no auth token to attach to them, leaving authentication of those requests to the server. Set this to true only if your deployment authenticates requests itself — a custom IUserProvider backed by a SAML session, a reverse proxy, or a gateway — so that a chunk request without an Authorization header can still be authenticated. The server-side license check is unaffected: a request the user provider cannot authenticate is still rejected. See Authenticating Licensed Frontend Chunks.
Default value: false
cibseven.webclient.engineRest .url CIB seven engine REST API URL.
Example: http://localhost:8080
.path CIB seven engine REST path allows to customize the engine REST API path to support different Jersey application configurations.
Default value: /engine-rest
.displayName CIB seven engine REST name, displayed in CIB seven webclient
.additionalEngineRest Specifies optional CIB seven engines that can be accessible from the CIB seven webclient.
cibseven.webclient.plugins .enabled Load frontend plugins from the classpath. See Plugins.
Possible values: true/false
Default value: false
.disabled Ids of plugins to skip, for instance one that breaks the page; the other plugins still load. Takes a restart. See Switching off one plugin.
Default value: empty
cibseven.webclient .bpm.provider BPM provider implementation class.
Example: org.cibseven.webapp.providers.SevenProvider
.historyLevel CIB seven history tracking level.
Possible values: audit/full/activity/none
.cockpit.url Old cockpit access path.
Example: /camunda/app/cockpit/default
.datasource.fileValue.enabled Enable/disable file value handling.
Possible values: true/false
.fetchInstances Whether to fetch process instances.
Possible values: true/false
.fetchIncidents Whether to fetch incidents.
Possible values: true/false
.services.basePath Relative path, location of the backend services starting from applicationPath.
Default value: services/v1
.theme UI theme based on Bootstrap, currently only cib theme is supported.
Example: cib
.token.secret Secret for external token validation
.token.deny.external.ip Deny external IP token user creation.
Possible values: true/false
.user.provider User provider implementation class.
Example: org.cibseven.webapp.auth.SevenUserProvider
.users.search.wildcard Wildcard for user search (default "*")
cibseven.webclient.ldap .url LDAP server URL.
Example: ldap://ldap.cibseven.org
.folder Base DN for LDAP searches.
Example: DC=cibseven,DC=org
.userClass LDAP attribute when searching for users.
Example: person
.userNameAttribute LDAP attribute for username.
Example: samAccountName
.userDisplayNameAttribute LDAP attribute for display name.
Example: name
.modifiedDateFormat Date format for modified timestamp.
Example: yyyyMMddHHmmss
.followReferrals Whether to follow LDAP referrals.
Example: follow
cibseven.webclient.sso .endpoints.token OAuth2 token endpoint
.endpoints.jwks OAuth2 jwks endpoint
.endpoints.authorization authorization token endpoint
.endpoints.user OAuth2 user endpoint
.endpoints.introspection OAuth2 introspection endpoint
.clientId OAuth2 Client id of the application
.clientSecret OAuth2 Client secret of the application
.userIdProperty Property in the Id-Token where the userid is taken from
.userNameProperty Property in the Id-Token where the username is taken from
.active Activates the redirect in the frontend to login with the sso provider
Default value: false
.accessTokenToEngineRest Activates the forwarding of the access token to the engine REST. Required when Spring Security is used to secure engine REST with Spring Security
Default value: false
.scopes OAuth2 scopes to include in the authorization request
.assertion.type The type of assertion provider to use.
Possible values:
  • JJWT: Requires key-location to point to a PEM-encoded private key.
  • AZURE_WORKLOAD_IDENTITY: Uses the Azure Workload Identity federated token (reads the file referenced by the AZURE_FEDERATED_TOKEN_FILE environment variable)
  • .assertion.keyLocation Location of the PEM-encoded PKCS#8 private key file. Supports Spring resource prefixes: classpath:, file:.
  • Required for assertion.type=JJWT.
  • Not used for assertion.type=AZURE_WORKLOAD_IDENTITY.
  • cibseven.webclient.rest .enabled Whether the custom RestTemplate is enabled. If false, a default RestTemplate will be used.
    Default value: true
    .keepAlive Whether the socket connection should be kept alive between requests.
    Default value: true
    .socketTimeout Socket read timeout in seconds (0 = infinite). Maximum time to wait for data from an established connection.
    Default value: 3600
    .connectTimeout Time in seconds to establish connection (0 = infinite). Maximum time to wait while establishing a connection.
    Default value: 30
    .connectionRequestTimeout Time to wait in seconds for a connection from the connection pool.
    Default value: 180
    .connectionResponseTimeout Max response wait time in seconds (0 = infinite). If not set, the socketTimeout value will be used.
    .maxConnPerRoute Max HTTP connections per route. Limits the number of connections to a specific host.
    Default value: 20
    .maxConnTotal Total max HTTP connections across all routes. Defaults to 2 * maxConnPerRoute if not specified.
    .connectionTimeToLive Connection time to live in milliseconds. Maximum time a connection can be reused.
    Default value: 50000
    .connectionPoolingEnabled Whether to enable connection pooling. Improves performance by reusing connections.
    Default value: true
    .connectionReuseEnabled Whether to enable connection reuse. Allows reusing connections for multiple requests.
    Default value: true
    .metricsEnabled Whether to enable Micrometer metrics for monitoring connection pool usage.
    Default value: false
    .requestLoggingEnabled Whether to enable request/response logging for debugging purposes.
    Default value: false
    .followRedirects Whether to automatically follow HTTP redirects (status codes 3xx).
    Default value: true
    cibseven.webclient.custom.spring.jackson .parser.max-size Maximum length in characters of a single JSON string the webclient will parse.
    Default value: 20000000
    .serialization.write-dates-as-timestamps Switches webclient REST responses to the Unix epoch date format. Provided as a temporary migration aid starting from 2.2.2 for consumers that relied on the format used in 2.2.1.
    Default value: false
    spring .config.import List of optional config files to import if available.
    Example:
    - optional:classpath:cibseven-webclient.properties
    - optional:classpath:cibseven-webclient.yaml
    springdoc .swagger-ui.path Swagger UI path.
    Example: /webapp/swagger-ui
    .swagger-ui.operationsSorter Sort operations alphabetically.
    Possible values: alpha/none
    Example: alpha
    .swagger-ui.tagsSorter Sort tags alphabetically.
    Possible values: alpha/none
    Example: alpha
    .swagger-ui.doc-expansion Swagger doc expansion setting.
    Possible values: full/list/none
    Example: full
    .cibsevenWebclient.serverUrl Server URL override for Swagger UI

    On this Page: