Config Maps
1. Overview
Config Maps store non-sensitive configuration values, visible at any time — URLs, hostnames, flags, etc. — configurable per environment. It's the equivalent of a "global" environment variable for the application, like a database URL for test versus production.
Use Config Maps when the value needs to vary per environment but isn't sensitive — the value can be viewed by anyone with access to the screen. When the value is a credential or sensitive data (password, token), use a Secret instead.
2. Creating a Config Map
The creation screen follows the same structure as the Secrets screen:
Basic Information
| Field | Required | Description |
|---|---|---|
| Config Map | Yes | Name of the config map. Must follow Kubernetes conventions: lowercase letters, numbers, and hyphens only. |
| Type | Yes | Ownership scope of the config map. E.g. Squad. |
| Squad | Yes | Squad that owns the config map (shown when Type = Squad). Default: Default. |
| Description | No | Free-text description of the config map's purpose. |
Properties
A config map can have one or more properties — key/value pairs. Click + Add Property to add a new one.
| Field | Description |
|---|---|
| Property Name | Name of the property within the config map (e.g. DB_URL, API_BASE_URL). |
| Values by Environment | A different value per environment (e.g. test, production). Unlike a Secret, the value stays visible normally, with no masking. |
Example: a db-config config map with the URL property, with one value for test (e.g. the test database URL) and another for production (e.g. the production database URL).
Click Save to finish.
3. Using a Config Map in Flows, Backend, and Frontend Apps
Just like a Secret, a config map needs to be explicitly bound to the Flow, Backend App, or Frontend App that will use it, on that Flow/App's secrets/config maps access configuration tab.
Once bound, a property's value is accessed via the expression:
{$.env.configmap_name.property_name}
For example, to access the URL property of the db-config config map:
{$.env.db-config.URL}
The value returned corresponds to the environment the Flow/App is running in.
4. Difference Between Secret and Config Map
| Config Map | Secret | |
|---|---|---|
| Typical use | Non-sensitive values, configurable per environment (URLs, hostnames, flags) | Sensitive values (passwords, tokens, keys) |
| Value visibility | Normally visible | Masked, even after saved |
| Creation form | Basic Information + Properties (per environment) | Basic Information + Properties (per environment) |
| Access method in Flow/App | {$.env.name.property} | {$.env.name.property} |
| Binding to Flow/App | Explicit, in the secrets/config maps tab | Explicit, in the secrets/config maps tab |
When in doubt: if the value could be shown in plain text without risk (a URL, for example), use a Config Map. If the value grants access to something (password, token, API key), use a Secret.
5. FAQ
Can a config map be used by more than one Flow or App? TODO: confirm whether the same config map can be bound to multiple Flows/Apps at the same time.
Can a Config Map be converted into a Secret (or vice versa) after it's created? TODO: confirm whether conversion exists, or if it needs to be recreated as the other type.