Expand description
Per-project secret manifest per ADR-020 §4.
A project that uses devboy-tools declares its dependency on
secrets in .devboy/secrets.toml checked into the repository.
Three categories of declarations are recognised:
requiredandoptional— references into the secret namespace.doctorfails the exit code on a missing required path; missing optional paths surface as informational.[overrides."<path>"]— behavioural overrides applied on top of the global-index entry for that path. Only three fields may be overridden (gate,rotate_every_days,description); attempts to override anything else are rejected at parse time withdeny_unknown_fieldsso drift between project and global cannot grow silently.[secret."<path>"]— project-local metadata for a path that does not exist in the global index. The loader treats such a path as if its global entry were absent (the merge logic in P1.4 reads from the manifest exclusively for these paths).
§File layout
# .devboy/secrets.toml
required = [
"team/gitlab/token-deploy",
"personal/github/pat",
]
optional = ["personal/slack/notify-token"]
[overrides."team/gitlab/token-deploy"]
gate = "touchid"
rotate_every_days = 30
description = "Used by the staging deploy pipeline"
[secret."sandbox/example-provider/token"]
description = "Sandbox-only; recreated per-developer"
retrieval_url = "https://example-provider.dev/account/api-tokens"
pattern_id = "generic-bearer"§Path validation
Every path that appears in any of the four positions is parsed
through SecretPath::parse at load time. Invalid paths produce
ManifestError::Path with a PathRole tag identifying which
position the bad path appeared in, so error messages can point at
the right TOML location.
Structs§
- Override
Entry - Behavioural override applied to a path whose canonical metadata lives in the global index.
- Project
Manifest - In-memory representation of
.devboy/secrets.toml.
Enums§
- Manifest
Error - Failure modes when loading or parsing a
ProjectManifest. - Path
Role - Position in the manifest where a bad path was encountered.
Constants§
- MANIFEST_
RELATIVE_ PATH - Conventional path of the per-project manifest, relative to the project root.