Skip to content

Profiles

The Profiles page manages runtime profiles: named sets of variables and secrets that can be selected when starting or enqueueing a DAG run.

Use profiles when the same DAG should run against different environments without changing the DAG YAML. For example, a single workflow can run with the dev, staging, or prod profile.

Profiles page showing runtime profiles and their variable and secret entries

What A Profile Contains

Each profile has:

FieldMeaning
NameThe runtime profile name selected at run start
Statusactive profiles can be used; disabled profiles cannot start new runs
ProtectedAdmin-only profile for higher-risk credentials or production environments
EntriesVariables and secrets injected into runs that select the profile

Variables store plain values. Secrets store write-only Dagu-managed secret values. Secret values are not shown again after saving.

Default Profile Layers

Profiles can also define default entries that apply before a run-specific profile is selected:

LayerApplies toManaged from
Global defaultsEvery DAG runProfiles page, Global defaults row
Workspace defaultsDAGs with labels: [workspace=<name>]Profiles page while that workspace is selected
Selected profileRuns that choose a named profileThe named profile row

Defaults are not selectable profiles. They are fallback entries that Dagu resolves automatically when a run starts. A DAG in workspace=ops receives Global defaults, then ops workspace defaults, then the selected profile if one was chosen. A DAG without a workspace label receives only Global defaults before the selected profile.

When multiple layers define the same key, the later layer wins:

text
Global defaults < Workspace defaults < Selected profile

Use default layers for values that should be present across many runs without requiring operators to pick a profile every time. Use a selected profile when the operator should choose the runtime environment for a specific run.

Admins manage Global defaults. Workspace defaults require permission to write configuration for that workspace.

Create A Profile

  1. Open Profiles.
  2. Click Add Profile.
  3. Enter a lowercase profile name such as prod.
  4. Add an optional description.
  5. Enable Protected only when the profile should be admin-only.
  6. Save the profile.

Managers can manage non-protected profiles. Admins are required to create, view, update, delete, or use protected profiles.

Add Entries

Use the entries table on a profile row to add or update values:

  • Choose Variable for non-sensitive values such as LOG_LEVEL or REGION.
  • Choose Secret for credentials such as API_TOKEN, DATABASE_URL, or cloud keys.

Entry keys must be valid environment variable names and cannot start with DAGU_.

Rotating a secret entry writes a new secret value. New runs and new retry attempts use the latest value resolved at attempt start. Already-running steps keep the environment they received when they started.

Use A Profile

When starting or enqueueing a DAG from the Web UI, select a profile from the Profile field in the start dialog. If no profile is selected, the run still receives any matching Global or workspace default entries, plus the environment, parameters, and secrets defined by the DAG and server configuration.

Start DAG dialog showing the runtime profile selector

Run history and run details show the selected profile name when a profile was used.

DAG run details showing the selected runtime profile

Retries

Retries always inherit the original run's profile. The retry dialog does not allow switching profiles. This keeps a failed run's retry tied to the same runtime environment identity while still resolving the latest profile values when the retry attempt starts.

Relationship To Secrets

The standalone Secrets feature manages registry secrets referenced directly from DAG YAML with secrets[].ref.

Runtime profile secrets are different: they belong to a runtime profile and should be created or rotated from the Profiles page. Dagu stores their values in the managed secret store internally, but the profile remains the user-facing owner of those values.

This also applies to profile default layers. Default-layer secret entries should be created, rotated, and deleted from Profiles, not from the standalone Secrets page.

Released under the MIT License.