{
  "uid": "cogitave.learn.configuration-management",
  "kind": "module",
  "href": "/modules/configuration-management/",
  "title": "Manage configuration and secrets",
  "summary": "Classify every value as a constant, a deployment parameter, or a secret; load configuration through the standard precedence chain, parsed once and fail-closed; and keep secrets out of git by referencing them at runtime and committing only encrypted-at-rest .env files.",
  "type": null,
  "products": [
    "cogitave-core"
  ],
  "roles": [
    "developer"
  ],
  "levels": [
    "intermediate"
  ],
  "subjects": [
    "software-engineering"
  ],
  "headings": [],
  "source": "By the end of this module, you'll be able to:\n- Classify any value as a domain invariant (a code constant), a deployment parameter (typed config), or a secret (a runtime reference), using the 12-Factor litmus test.\n- Load configuration through the Cogitave precedence chain, parsed once at the boundary into one typed, immutable value that fails closed on invalid or missing input.\n- Select an environment by which overlay file loads, not by branching on `dev`/`prod` in code.\n- Keep secrets out of git: hold a `SecretRef` in config, resolve it at runtime, and commit only encrypted-at-rest `.env` files with the private key held in the secret store.\n",
  "units": [
    "cogitave.learn.configuration-management.introduction",
    "cogitave.learn.configuration-management.the-configuration-model",
    "cogitave.learn.configuration-management.secrets-and-environments",
    "cogitave.learn.configuration-management.knowledge-check",
    "cogitave.learn.configuration-management.summary"
  ],
  "durationInMinutes": 26,
  "badge": "cogitave.learn.configuration-management.badge",
  "partOf": "cogitave.learn.paths.engineering-standards"
}