046-secret-type
One secret type: redacted when shown, cleared when dropped, exposed only by name
Lifecycle approvedImplementation completeVerification unknownQualification unknown
Adds a small crate owning one secret-string type whose Debug and Display never show its value, whose bytes are zeroed when dropped, and whose value is read only through an explicit expose call. The provider token (statecraft-home) and the hosted credential (statecraft-hosted) migrate to it. Four structural rules adapted from preloop-ci are specified here and delivered in a later change that depends on spec 044's sg-scan.
Read the full pinned specification ↗Relationships
Claimed units
- establishes
{ "kind": "directory", "path": "crates/statecraft-secret/" } - extends
{ "nature": "additive", "spec": "002-environment-lifecycle", "unit": { "kind": "directory", "path": "crates/statecraft-home/" } } - extends
{ "nature": "additive", "spec": "038-hosted-client", "unit": { "kind": "directory", "path": "crates/statecraft-hosted/" } } - extends
{ "nature": "additive", "spec": "006-command-surface", "unit": { "kind": "directory", "path": "crates/statecraft-cli/" } }
Source headings
- 046: One secret type
- 1. Purpose
- 2. Territory
- 3. Behavior
- 3.1 The type
- 3.2 Zeroing
- 3.3 Migration
- 3.4 The four rules
- 3.5 Delivery order
- 4. Out of scope
- 5. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.