Data classification

The level given to every piece of content, stored field and outgoing data, and how to handle each one.

  • Status: Binding (ADR-0005, approved 2026-11-01)
  • Last updated: 2026-10-31
  • Related ADRs: ADR-0005

Snapshot of the system as it stands today. Edit in place; never record what changed.

Every piece of content, every stored field and every piece of data that leaves the system has one level. When a level is unclear, ask — never assign one by assumption (ADR-0004).

Levels

LevelMeaningExamplesHandling
PublicSafe for anyone, anywhereDocumentation of public packages and public projects; the Algolia app ID and search-only keyMay go on every published surface
InternalNot secret, not meant for readersBuild configuration, unfixed security findingsStays in the repository or with the owner; never in content/
ConfidentialBelongs to a private projectIts documentation, architecture, internal APIs, roadmap, hostnamesNever on a public surface; served only as its ADR decides, to the readers it names
RestrictedDisclosure enables abuse or harms someone elseSecrets and API keys, client names and client data, personal dataNever in content, examples, screenshots, logs or the search index; secrets only in environment files and secret stores

Classified so far

DataLevelWhy
content/<slug>/ (package and project pages; today only this site's own, content/docs/)PublicPublished on every surface today
content/docs/maintain/ (this site's decisions, design and security documents)PublicPublished by the owner's decision (ADR-0002); holds variable names, never values
NEXT_PUBLIC_ALGOLIA_APP_ID, NEXT_PUBLIC_ALGOLIA_SEARCH_KEYPublicShipped to every browser by design
ALGOLIA_WRITE_KEYRestrictedWrite access to the live search index
GitHub usernames of deciders and approvers in ADRsPublicAlready public on GitHub; written only with the owner's yes for anyone but puncoz, who approves for the owner (ADR-0020, ADR-0039). A person's other personal data stays Restricted

Rules that follow

  • A page's level is decided before it is written. If a project's visibility is not recorded, ask.
  • Published surfaces carry Public content only, until an ADR defines how Confidential content is served.
  • Third-party crossings (content/docs/maintain/dfd/) state the level of everything sent.
  • Examples use invented values, so they stay Public whatever they document.

Open

For the owner to decide with the private-documentation ADR:

  • Where Confidential content lives: a separate repository, a separate deployment, or this site behind authentication.
  • Whether a private project's existence (its name in a list) is Public or Confidential.

On this page

3 min read