Skip to content

Configuration

Environment

VariableRequiredNotes
ARTEMIS_STUDIO_DB_URLyesjdbc:postgresql://host:5432/artemis_studio
ARTEMIS_STUDIO_DB_USER / _DB_PASSWORDyes
ARTEMIS_STUDIO_SECRET_KEYyesEncrypts stored broker credentials. Base64 of exactly 32 bytes, or the application will not start: openssl rand -base64 32
ARTEMIS_STUDIO_CONFIG_ENCRYPT_KEYnoDecrypts {cipher} values stored in studio_config_property. A different key from ARTEMIS_STUDIO_SECRET_KEY — do not reuse it
JAVA_OPTSnoDefaults to -XX:MaxRAMPercentage=75

ARTEMIS_STUDIO_SECRET_KEY is not rotatable in place: it is the key every stored broker credential was encrypted with. Losing it means re-entering every connection's credentials.

The two planes

Configuration is deliberately split in two, and the split is about who changes a value and when.

The operator planestudio_setting — holds what an operator tunes while Studio is running: poll cadences, retention windows, the bulk-operation cap, the SQL Console's cost ceiling. Changes take effect live, are audited, and need no restart. Every settings-tunable schedule is a re-reading trigger, not a fixed annotation, which is why a cadence change is immediate.

The deploy plane — Spring Cloud bootstrap properties — holds what belongs to the deployment: the datasource, the keys, the OIDC issuer. Values here can be stored as {cipher} and decrypted with ARTEMIS_STUDIO_CONFIG_ENCRYPT_KEY. There is no configuration server.

See ADR-0047 for why, and ADR-0048 for how a schedule picks up a changed setting.

Database

PostgreSQL, with the schema owned by Liquibase and migrated on startup. Studio validates the mapping against the migrated schema at boot rather than generating DDL, so a schema that has drifted fails loudly instead of quietly.

Postgres owns configuration, users and the audit trail. The broker-derived tables — queue_snapshot, metric_sample — are a disposable cache: losing them costs you history, never truth.

Broker connections

Registered through the UI, not the environment. A connection stores a seed management endpoint and credentials, encrypted at rest. Jolokia HTTP is the primary transport; the Artemis Core client is a second channel used for notifications and faithful message I/O, and features that need it are gated on it being reachable — visibly, with the broker.xml that would enable it.

See ADR-0002.

Apache-2.0. Apache ActiveMQ and Apache ActiveMQ Artemis are trademarks of the Apache Software Foundation. Artemis Studio is an independent project, not produced by, endorsed by, or affiliated with the ASF.