Secret Management
Storing, distributing, and rotating credentials without embedding them in code or history.
Secret management is the handling of credentials — API keys, database passwords, signing keys — so that they are available where needed and nowhere else. The baseline rule is that a secret must never enter version control, because history is permanent and a committed secret is compromised even after it is removed.
The usual mechanisms are environment variables injected at run time, a password manager or vault for human access, and a platform's secret store for automation. Each has a distribution problem: getting the secret to every place that needs it, including the ones nobody remembers — a test configuration, a container image, a code-generation step, a newly provisioned working copy.
Three practical notes.
A missing secret should fail loudly. An empty credential defaulted to an empty string produces an authentication error far from the cause. See Fail Fast.
Automation environments scope secrets differently. A workflow triggered by an automated actor may receive a restricted set, so a secret that is present in one trigger context reads as empty in another — with no error anywhere.
Rotation must be possible. A secret nobody can rotate without downtime will not be rotated, which turns a routine hygiene task into an incident.
See also7
Hand-picked in the note itself — the neighbours worth reading next.
Least Privilege
Granting only the permissions actually required, so a compromise has a small ceiling.
Systems & Tooling9 connections
Environment Variable
A named value in a process's environment, inherited by its children — the standard configuration channel.
Systems & Tooling14 connections
Supply Chain Security
Protecting against compromise arriving through the code and tooling a project depends on.
Version Control & Delivery9 connections
Silent Failure
A failure that produces no signal, so the absence of an error reads as success.
Method44 connections
Defensive Default
A substituted value that papers over a missing input and hides the misconfiguration that produced it.
Method9 connections
Prompt Injection
Untrusted content that reaches a model's context and is treated as instruction.
Agents & Language Models12 connections
Continuous Deployment
Automatically releasing every change that passes validation.
Version Control & Delivery9 connections
Related2
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from12
Notes elsewhere in the wiki that reach for this one.
- Code SigningSystems & Tooling
Cryptographically attesting who produced a binary, and the operating-system checks built on it.
- ContainerizationSystems & Tooling
Packaging an application with its dependencies into an isolated, reproducible runtime unit.
- Continuous DeploymentVersion Control & Delivery
Automatically releasing every change that passes validation.
- CronSystems & Tooling
Time-based scheduling of recurring jobs, and the reasons scheduled jobs quietly stop working.
- Defensive DefaultMethod
A substituted value that papers over a missing input and hides the misconfiguration that produced it.
- Environment VariableSystems & Tooling
A named value in a process's environment, inherited by its children — the standard configuration channel.
- Fail FastMethod
Crash at the point of misconfiguration rather than degrading quietly into a wrong state.
- Least PrivilegeSystems & Tooling
Granting only the permissions actually required, so a compromise has a small ceiling.
- Package ManagerSystems & Tooling
The tool that resolves, fetches, and installs dependencies, and pins them for reproducibility.
- Prompt InjectionAgents & Language Models
Untrusted content that reaches a model's context and is treated as instruction.
- Semantic VersioningVersion Control & Delivery
A version-numbering convention where the number communicates the kind of change.
- Supply Chain SecurityVersion Control & Delivery
Protecting against compromise arriving through the code and tooling a project depends on.