Skip to main content

Data Classification Policy (A.5.12)

Document ID: data-classification-policy
Version: 1.0
Effective from: 2025-01-01
Owner: Founder / CEO
Review cycle: Annual


Classification levels

LevelDescriptionExamplesHandling
PublicIntentionally publishedDocumentation, marketing, open-source rules hubNo restrictions
InternalBusiness operationsGovernance configuration, non-sensitive audit logsAccess via SSO; no external sharing without approval
ConfidentialSensitive business or customer dataAPI keys, customer governance configs, evidence blobsEncrypted at rest and in transit; access logged
RestrictedHighest-sensitivityEd25519 private signing key, GITHUB_APP_PRIVATE_KEY, STRIPE_API_KEYStored in Cloudflare Secrets Store; never logged; rotation ≤ 90 days

Data inventory

Principal data categories and their classification:

DataClassificationStorageRetention
Customer governance rule filesConfidentialR2 (encrypted)Duration of subscription
Compliance evidence blobsConfidentialR2 Object Lock (90 days immutable)90 days guaranteed; longer preserved
Signed manifests / audit packagesConfidentialR2 + AUDIT_PACKAGES3 years
SSO session tokensRestrictedKV (TTL 8h)8 hours
Signing private keysRestrictedSecrets StoreCurrent key + 1 rotation overlap
Incident recordsInternalD1Indefinite
Vendor DDQsConfidentialR27 years

Handling requirements

  • Confidential and Restricted data must not appear in commit messages, log entries, or error responses returned to clients.
  • Production data must not be used in test environments. Test fixtures use synthetic data only (enforced by prod-data-masking-audit collector).
  • Retention sweeper removes evidence older than the Object Lock window on a monthly cadence.

Labelling

Data classification is enforced through system boundaries (access controls, encryption) rather than manual labelling, consistent with a cloud-native model.

Evidence

CollectorCadenceControl
data-classification-auditWeeklyA.5.12, A.5.13, A.8.11
prod-data-masking-auditWeeklyA.8.11, A.8.12
retention-sweeperMonthlyA.5.33, A.8.10, A.8.12
r2-object-lock-verifyWeeklyA.5.33, A.8.10, A.8.13