Skip to content
Docs BETA

Settings reference

For platform teams. This page lists the settings that you set to run the control plane. Each table is for one prefix. A setting that you do not set keeps its default.

How to set a setting

You can set a setting as an environment variable, as a Java property (-Djoomiz.audit.retention=400d), or in a Spring configuration file. This page gives the name in the file form and the name of the environment variable.

To make the name of an environment variable, write the name in capital letters, replace each dot with an underscore, and remove each hyphen. For example, joomiz.audit.purge-batch-size is JOOMIZ_AUDIT_PURGEBATCHSIZE.

A duration is written with a unit, for example 500ms, 30s, 15m, 1h or 400d. The ISO 8601 form, for example PT15M, also works.

The control plane checks every setting when it starts. A value outside its range stops the start, and the error names the setting and the rule. This is an error for a retention of 30 days:

joomiz.audit.retention must be between PT2160H and PT87600H, but was PT720H

The error shows the range as ISO 8601 durations, and it names the value that you gave. PT2160H is 90 days, and PT87600H is 3650 days.

Database

Setting Environment variable Default What it does
spring.datasource.url SPRING_DATASOURCE_URL None. Required. The JDBC address of the PostgreSQL database. It starts with jdbc: and names the host, the port and the database.
spring.datasource.username SPRING_DATASOURCE_USERNAME None The user name for the database.
spring.datasource.password SPRING_DATASOURCE_PASSWORD None The password for the database. Read it from your secret store.

Without spring.datasource.url, the control plane does not start. The control plane creates and updates its tables when it starts.

Ports

Setting Environment variable Default What it does
server.port SERVER_PORT 8080 The port of the API.
management.server.port MANAGEMENT_SERVER_PORT 8081 The port of the health paths. Check health and follow a run shows them.

Identity provider: joomiz.auth

Setting Environment variable Default Allowed values What it does
joomiz.auth.provider JOOMIZ_AUTH_PROVIDER azure_ad azure_ad, generic_oidc Where the control plane reads the roles in a token. azure_ad reads the claim roles. generic_oidc reads the claim realm_access.roles.
joomiz.auth.issuer-uri JOOMIZ_AUTH_ISSUERURI None. Required. An address The issuer of the identity provider that your control plane accepts tokens from. Use its https address.
joomiz.auth.audience JOOMIZ_AUTH_AUDIENCE None. Required. Text The audience that a token must carry.

Without issuer-uri or audience, the control plane does not start, and the error names the setting.

Provisioner addresses: joomiz.provisioners

Setting Environment variable Default What it does
joomiz.provisioners.allowed-networks JOOMIZ_PROVISIONERS_ALLOWEDNETWORKS Empty A comma-separated list of network ranges, in CIDR notation, where the control plane may call a provisioner. Allow the address of your provisioner explains it.

Audit trail: joomiz.audit

Setting Environment variable Default Allowed values What it does
joomiz.audit.retention JOOMIZ_AUDIT_RETENTION 400d 90 days to 3650 days How long the control plane keeps an audit event.
joomiz.audit.purge-interval JOOMIZ_AUDIT_PURGEINTERVAL 1h More than zero How long the deletion job waits between two runs.
joomiz.audit.purge-batch-size JOOMIZ_AUDIT_PURGEBATCHSIZE 500 1 to 5000 How many events one step of the job deletes.
joomiz.audit.purge-max-batches JOOMIZ_AUDIT_PURGEMAXBATCHES 20 1 to 1000 The most steps that one run of the job makes.

Read and manage the audit trail uses these settings.

Run history: joomiz.runs

Setting Environment variable Default Allowed values What it does
joomiz.runs.stale-after JOOMIZ_RUNS_STALEAFTER 15m More than 6 minutes How long a run with the status running may write no event before the control plane marks it abandoned.
joomiz.runs.sweep-interval JOOMIZ_RUNS_SWEEPINTERVAL 1m More than zero How long the control plane waits between two checks for such runs.
joomiz.runs.sweep-batch-size JOOMIZ_RUNS_SWEEPBATCHSIZE 100 1 to 1000 How many runs one check may mark.

Release a stuck apply lock uses these settings.

Background jobs: joomiz.jobs

Setting Environment variable Default Allowed values What it does
joomiz.jobs.enabled JOOMIZ_JOBS_ENABLED true true, false Whether this process runs the background work: the questions to provisioners about slow operations, the check for stuck runs, and the deletion of old audit events.
joomiz.jobs.tick-interval JOOMIZ_JOBS_TICKINTERVAL 5s More than zero How often this process looks for work that is due.
joomiz.jobs.poll-interval JOOMIZ_JOBS_POLLINTERVAL 10s More than zero How long the control plane waits before it asks a provisioner again about a slow operation.
joomiz.jobs.batch-size JOOMIZ_JOBS_BATCHSIZE 20 1 to 100 How many due jobs one look takes.

With joomiz.jobs.enabled set to false, slow operations of provisioners never end before their longest wait. Run at least one process with the default.

Drift detection: joomiz.drift-detection

Setting Environment variable Default Allowed values What it does
joomiz.drift-detection.timeout JOOMIZ_DRIFTDETECTION_TIMEOUT 10s 100 ms to 60 s How long a plan waits for all provisioners to report the real state. A provisioner that is slower is reported as a timeout, and the plan goes on.
joomiz.drift-detection.concurrency JOOMIZ_DRIFTDETECTION_CONCURRENCY 8 1 to 8 How many provisioners a plan asks at the same time.

Telemetry: joomiz.telemetry

Setting Environment variable Default Allowed values What it does
joomiz.telemetry.otlp.endpoint JOOMIZ_TELEMETRY_OTLP_ENDPOINT None. Telemetry is off. An absolute http or https address with a host, and no user name, query or fragment The base address of an OTLP collector. The control plane adds /v1/traces, /v1/logs and /v1/metrics.
joomiz.telemetry.sampling.probability JOOMIZ_TELEMETRY_SAMPLING_PROBABILITY 1 0 to 1 The share of traces that the control plane keeps.

Check health and follow a run shows what is sent.

See also