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

  1. 046: One secret type
  2. 1. Purpose
  3. 2. Territory
  4. 3. Behavior
  5. 3.1 The type
  6. 3.2 Zeroing
  7. 3.3 Migration
  8. 3.4 The four rules
  9. 3.5 Delivery order
  10. 4. Out of scope
  11. 5. Resolved decisions
  12. Verification

Frozen anchors

No frozen anchors declared.