Skip to main content

Data Classification Policy

Effective Date: January 14, 2026 Last Updated: January 14, 2026 Version: 1.0.0 Owner: Security Team


Purpose

This document defines data classification levels, handling requirements, and access controls for all data processed by Aragora. Proper data classification ensures appropriate protection based on sensitivity and regulatory requirements.

SOC 2 Control: CC6-01 - Data classification and handling


Classification Levels

Level 1: Public

AttributeDescription
DefinitionInformation intended for public disclosure
Impact if ExposedNone - already public
ExamplesMarketing materials, public documentation, blog posts, API docs
AccessAnyone
StorageStandard
TransmissionStandard
DisposalNo special requirements

Level 2: Internal

AttributeDescription
DefinitionBusiness information for internal use
Impact if ExposedMinor business impact, competitive disadvantage
ExamplesInternal procedures, meeting notes, non-sensitive metrics, feature roadmaps
AccessAuthenticated employees
StorageStandard with access controls
TransmissionStandard encryption (TLS)
DisposalDelete from storage when no longer needed

Level 3: Confidential

AttributeDescription
DefinitionSensitive business or customer data
Impact if ExposedSignificant business/legal impact, customer trust damage
ExamplesCustomer data, API keys, usage analytics, debate content, financial data
AccessNeed-to-know basis, role-based access
StorageEncrypted at rest (AES-256)
TransmissionEncrypted (TLS 1.3)
DisposalSecure deletion, audit trail

Level 4: Restricted

AttributeDescription
DefinitionHighly sensitive data requiring maximum protection
Impact if ExposedSevere legal, financial, or reputational damage
ExamplesPII (email, name), authentication secrets, encryption keys, credentials, payment data
AccessStrictly limited, MFA required, audited
StorageEncrypted, access-logged, isolated
TransmissionEncrypted, authenticated endpoints only
DisposalCryptographic erasure, certificate of destruction

Data Inventory

Customer Data (Confidential/Restricted)

Data ElementClassificationStorage LocationRetention
User emailRestricted (PII)users tableAccount lifetime + 30 days
User nameRestricted (PII)users tableAccount lifetime + 30 days
Password hashRestrictedusers tableAccount lifetime
API keysRestrictedusers table (hashed)Until revoked
MFA secretsRestrictedusers table (encrypted)Until disabled
Organization nameConfidentialorganizations tableAccount lifetime + 30 days
Debate contentConfidentialdebates tableConfigurable (default 90 days)
Usage recordsConfidentialusage_events table2 years
Audit logsConfidentialaudit_events table7 years

Operational Data (Internal/Confidential)

Data ElementClassificationStorage LocationRetention
Application logsInternalLog files/Elasticsearch30 days
Error logsInternalLog files/Sentry30 days
Performance metricsInternalPrometheus/Grafana90 days
Session tokensConfidentialRedis/memorySession duration
Request tracesInternalJaeger/traces7 days

Infrastructure Data (Restricted)

Data ElementClassificationStorage LocationRetention
Database credentialsRestrictedSecrets managerUntil rotated
API provider keysRestrictedSecrets managerUntil rotated
TLS certificatesRestrictedCertificate storeUntil expired
SSH keysRestrictedSecrets managerUntil rotated
JWT signing keysRestrictedSecrets managerUntil rotated

Handling Requirements

Level 1: Public

  • No special handling required
  • May be shared externally without approval
  • No encryption requirements

Level 2: Internal

  • Share only with authenticated employees
  • May be stored in standard systems
  • Basic access logging recommended
  • No approval required for internal sharing

Level 3: Confidential

Required Controls:
[ ] Encryption at rest
[ ] TLS for transmission
[ ] Access logging
[ ] Need-to-know access
[ ] Manager approval for external sharing
[ ] Secure deletion when no longer needed

Level 4: Restricted

Required Controls:
[ ] AES-256 encryption at rest
[ ] TLS 1.3 for transmission
[ ] MFA for access
[ ] Complete audit trail
[ ] Quarterly access review
[ ] VP approval for any external sharing
[ ] Cryptographic erasure on disposal
[ ] No local copies
[ ] No email transmission (use secure portal)

Access Control Matrix

By Role

RolePublicInternalConfidentialRestricted
AnonymousReadNoNoNo
UserReadNoOwn data onlyOwn data only
SupportReadReadCustomer data (cases)Limited (with audit)
DeveloperReadRead/WriteRead (non-PII)No (without approval)
AdminReadRead/WriteRead/WriteRead/Write (audited)
SecurityReadRead/WriteRead/WriteFull access (audited)

By System

SystemConfidentialRestrictedControls
Production DatabaseYesYesVPC, encryption, IAM
Staging DatabaseYes (masked)NoVPC, separate credentials
DevelopmentNoNoSynthetic data only
CI/CDNoSecrets onlySecret injection, no logs
LoggingRedacted PIINoAutomatic redaction
BackupsYesYesEncrypted, access-logged

Labeling and Marking

Document Labeling

Documents containing Confidential or Restricted data should include:

Classification: [CONFIDENTIAL/RESTRICTED]
Owner: [Team/Individual]
Handling: See DATA_CLASSIFICATION.md

Database Field Marking

Sensitive fields are documented in schema:

-- Classification: Restricted (PII)
email VARCHAR(255) NOT NULL,

-- Classification: Restricted
password_hash VARCHAR(255) NOT NULL,

-- Classification: Confidential
debate_content TEXT,

API Response Handling

Sensitive fields are redacted in logs:

# Automatically redacted in SecurityBarrier
REDACTED_FIELDS = [
"password", "api_key", "token", "secret",
"email", "credit_card", "ssn"
]

Logging Redaction

Structured logging redacts values by field name and secret patterns, covering auth tokens, payment data, PII, session identifiers, and key material. See aragora/server/middleware/structured_logging.py for the canonical list.


Data Lifecycle

Creation

  1. Classify data before storage
  2. Apply appropriate encryption
  3. Set retention policy
  4. Document in data inventory

Processing

  1. Minimize data collection
  2. Use least privilege access
  3. Log access to Confidential/Restricted
  4. Apply redaction in logs

Storage

  1. Encrypt based on classification
  2. Apply access controls
  3. Regular access audits
  4. Backup according to classification

Transmission

  1. Use TLS for all transmission
  2. Additional encryption for Restricted
  3. Authenticated endpoints only
  4. Log transmission events

Disposal

ClassificationDisposal Method
PublicStandard deletion
InternalStandard deletion
ConfidentialSecure deletion with audit
RestrictedCryptographic erasure, certificate

Incident Response

Data Exposure Levels

LevelImpactResponse
PublicNoneNo action required
InternalLowSecurity team notification
ConfidentialMediumSecurity team + legal review
RestrictedHighFull incident response + breach assessment

Breach Notification

For Confidential/Restricted data exposure:

  1. Containment (immediate)
  2. Assessment (within 24 hours)
  3. Internal notification (within 24 hours)
  4. Legal review (within 48 hours)
  5. Customer notification (within 72 hours if required)
  6. Regulatory notification (as required by law)

Training and Awareness

Required Training

RoleTrainingFrequency
All EmployeesData handling basicsAnnual
DevelopersSecure coding, data handlingAnnual + onboarding
SupportCustomer data handlingAnnual + onboarding
AdminsFull classification trainingAnnual + on change
SecurityAdvanced data protectionQuarterly

Acknowledgment

All employees must acknowledge:

  • Understanding of classification levels
  • Handling requirements for each level
  • Incident reporting procedures
  • Consequences of mishandling

Compliance Mapping

SOC 2 Trust Service Criteria

CriteriaHow This Policy Addresses
CC6.1Defines classification levels
CC6.2Access control matrix
CC6.3Handling requirements
CC6.4Transmission controls
CC6.5Disposal procedures

GDPR

ArticleHow This Policy Addresses
Art. 5Data minimization, storage limitation
Art. 25Privacy by design (classification)
Art. 32Technical measures (encryption)
Art. 33Breach notification procedures

Exceptions

Exception Process

  1. Submit request to security@aragora.ai
  2. Include business justification
  3. Document compensating controls
  4. VP approval required
  5. Time-limited (max 90 days)
  6. Quarterly review

Approved Exceptions

Document all approved exceptions here:

DateDataExceptionCompensating ControlExpiry
-----

Review and Updates

  • Quarterly: Review access patterns and exceptions
  • Annually: Full policy review and update
  • On Change: Update for new data types or systems

Document History

VersionDateChanges
1.0.02026-01-14Initial release