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
- Deploy the control plane shows the settings that you must give.
- Connect an identity provider explains the values for
joomiz.auth.