Skip to content

Define account fixture-credential semantics #673

Description

@Brad-Edwards

Gap

The top-level SDL account model exposes account posture such as password_strength, but it cannot bind a deliberate plaintext exercise fixture to the account it authenticates. Runtime values can already carry a secret_fixture value under ADR-057, yet the canonical relationship between that value and an account is undefined.

This conflates three different things:

  1. the existence and posture of an account;
  2. a deliberately disclosed scenario fixture credential; and
  3. an operator-managed secret that must not appear in the artifact.

Current ownership boundary

RAES owns the typed semantic distinction and the canonical binding between an account and a credential value or reference.

  • Packs/catalogs own concrete exercise fixture values.
  • env-packs owns pack validation and authoring workflows around those values.
  • Backends own secret injection and realization.
  • Hub may explain or edit the contract but does not define credential meaning.

Decision required

Choose and specify one canonical model:

  • a typed account credential binding that can carry an explicitly classified secret_fixture; or
  • an account-to-runtime-value reference with equivalent type safety and inspectability.

The decision must not make arbitrary runtime placement the implicit convention.

Acceptance criteria

  • Account posture, fixture credentials, and operator secrets are represented as distinct concepts.
  • A fixture value is bound unambiguously to the account and authentication purpose it serves.
  • Literal values are permitted only under the governed fixture classification and information-flow rules.
  • Operator secrets are absent or referenced, never embedded as fixture values.
  • Validation rejects ambiguous, unclassified, or cross-account credential bindings.
  • Redaction, normalization, provenance, generated contracts, and participant-visible inspection are specified.
  • Examples include a deliberate weak exercise credential and an operator-secret reference.

Non-goals

  • Building an operator secret store.
  • Defining backend-specific injection mechanisms.
  • Treating password_strength as a credential value.

Requirements

  • DSL-439

Refs: #637, #471, and ADR-057.

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions