atmos secret set
Set the value of a declared secret in its configured backend (create or update). The value can be supplied inline as NAME=VALUE, piped in with --stdin, or entered through an interactive masked prompt when the command runs in a terminal with no value provided. With no NAME (and no --stack/--component) in a terminal, Atmos walks you through choosing the stack, component, and secret. This command is also available under the add alias.
Usage
atmos secret set [NAME[=VALUE]] [flags]
Setting a secret is scope-aware. Atmos normally requires the component that declares the secret.
For a named secret declared with scope: global, you may omit --component; Atmos discovers a
declaration-bearing component in the selected stack because the component does not affect the global
backend coordinate. Instance- and stack-scoped secrets still require --component. See
Secret scopes.
String values are written verbatim to secret stores. This makes values written by atmos secret set
round-trip through !secret NAME | raw without JSON quote characters being added. Structured maps and
lists supplied through other store APIs remain JSON encoded. Values written by an older Atmos release
may already contain JSON quotes; set those values again with the current release to normalize them.
Examples
# Walk through stack → component → secret → value interactively (terminal only)
atmos secret set
# Set a value inline
atmos secret set SERVICE_API_KEY=abc123 --stack=prod --component=example-service
# Set a value interactively with a masked prompt (terminal only)
atmos secret set SERVICE_API_KEY --stack=prod --component=example-service
# Read a multi-line value (such as a PEM key) from standard input
cat key.pem | atmos secret set APP_PRIVATE_KEY --stdin --stack=prod --component=example-service
# A global declaration does not require a component
atmos secret set SHARED_API_KEY=abc123 --stack=prod
# Overwrite an existing value without confirmation
atmos secret set SERVICE_API_KEY=newvalue --stack=prod --component=example-service --force
# Use the `add` alias
atmos secret add SERVICE_API_KEY=abc123 --stack=prod --component=example-service
Arguments
NAME[=VALUE]The name of the declared secret to set, optionally with an inline value. When
=VALUEis omitted, the value is read from--stdinor from an interactive masked prompt.
Flags
--stack(alias-s)The Atmos stack to operate on. Required — prompted interactively on a TTY when omitted.
Environment variable:
ATMOS_STACK--component(alias-c)The Atmos component that declares the secret. Required except when a positional secret name resolves to a consistent
scope: globaldeclaration in the selected stack. Prompted interactively on a TTY when no name is supplied.Environment variable:
ATMOS_COMPONENT--typeThe component type (
terraform,helmfile,packer, oransible). Used to disambiguate when a component name exists in more than one type.--identity(alias-i)The identity to use when accessing the secret backend.
Environment variable:
ATMOS_IDENTITY--stdinRead the secret value from standard input. Useful for piping multi-line values such as certificates or private keys.
--force(alias-f)Overwrite an existing value without prompting for confirmation.
See Also
- atmos secret — Overview of the secret command group
!secretYAML function — Resolve declared secrets at runtime