Configuration

Configuration #

The Universal ID Server configuration is written in YAML and saved in a file named application.yaml which is then mounted under the /deployments/config dir of the container.

Creating a new profile is pretty straightforward, there are a few required components which must be configured along with some optional components.

Template #

Below is a template of the structure of an application.yaml file showing the different components that can be configured:

# Profile
"%profile-name":
  universalid:

    # License
    license-key:

    # Logger
    log:

    # Datasource
    datasource:

    # HTTP
    http:

    # Initialize database tables for configured schemas
    initialize-database:

    # Add SCIM core User resource
    add-default-resources:

    # Configure Swagger UI
    swagger-ui:

    # Define the User resources
    resources: [
      {
        ...
      }
    ]

    # Define the schemas for each resource and extension
    schemas: [
      {
        ...
      }
    ]

Profile (required) #

At the root level of the configuration is the profile name. The name needs to be quoted and prefixed with % e.g. "%my-profile. It acts as a namespace, allowing you to define multiple profiles in one file.

After the name, the universalid namespace contains the application’s configurable components.

Licence Key (optional) #

The application’s license key. Without a license, filter requests with more than one filter and editing resources functionality is disabled.

Logging (optional) #

If logging is not configured it will default to INFO level.

Datasource (required) #

The connection details to the PostgreSQL database.

HTTP (required) #

Configure HTTPS, mTLS and other authentication options.

Database initialization (optional) #

Initialize the database and create the tables based in the configured resources and schemas.

Warning
This setting should only be used in non-production environments.

Default resources (optional) #

Adds the SCIM core User resource schema as defined in the SCIM 2.0 specification.

Swagger UI (optional) #

Enable/disable Swagger UI. By default it is disabled.

Resources (required) #

The User resources and their extensions.

Not required if:

add-default-resources: true

Schemas #

The schema definitions with the attributes of the resources and their extensions.