Skip to main content

Compliance Model Documentation

Overview​

The Compliance model provides comprehensive regulatory compliance management for the CODITECT platform, supporting GDPR, SOC2, and other regulatory frameworks. It manages data retention policies, data subject requests, compliance reporting, and evidence collection. The model ensures the platform meets legal requirements while maintaining operational efficiency.

Model Structure​

RetentionPolicy Model​

Core Fields​

FieldTypeDescriptionConstraints
idStringUnique policy identifierPrimary key, system-defined
nameStringPolicy display nameRequired
descriptionStringPolicy purposeOptional
data_typeDataType (Enum)Type of data coveredRequired
retention_periodDurationHow long to retain dataRequired
actionRetentionAction (Enum)Action when period expiresRequired
legal_basisStringLegal justificationRequired for compliance
activeboolPolicy enforcement statusRequired
created_atDateTimePolicy creation timeAuto-set
last_executedDateTime (Optional)Last enforcement runUpdated on execution

DataType Enum​

enum DataType {
AuditLog, // Security audit records
SecurityEvent, // Security incidents
UserActivity, // User behavior data
PersonalData, // PII/Personal information
FinancialRecord, // Billing and payments
SystemLog, // Application logs
AnalyticsData, // Usage analytics
SessionData // Authentication sessions
}

RetentionAction Enum​

enum RetentionAction {
Delete, // Permanent removal (careful with audit logs!)
Anonymize, // Remove PII, keep analytics
Archive, // Move to cold storage
Review, // Flag for manual review
Export // Export before deletion
}

DataSubjectRequest Model (GDPR)​

Core Fields​

FieldTypeDescriptionConstraints
idUUIDUnique request identifierPrimary key
tenant_idUUIDAssociated tenantForeign key to Tenant
subject_idUUIDData subject (user)Foreign key to User
request_typeDsrType (Enum)GDPR request typeRequired
statusDsrStatus (Enum)Current statusRequired
requested_atDateTimeRequest timestampAuto-set
requested_byUUIDRequester identityRequired
approved_byUUID (Optional)Approver identityFor audit trail
completed_atDateTime (Optional)Completion timeSet on completion
data_categoriesVecData types requestedDefault: ["all"]
result_locationString (Optional)Export locationS3/GCS URL
error_messageString (Optional)Failure reasonFor failed requests
metadataJSONAdditional contextFlexible structure

DsrType Enum (GDPR Articles)​

enum DsrType {
Access, // Article 15 - Right of access
Portability, // Article 20 - Data portability
Erasure, // Article 17 - Right to be forgotten
Rectification, // Article 16 - Right to rectification
Restriction, // Article 18 - Right to restriction
Objection // Article 21 - Right to object
}

DsrStatus Enum​

enum DsrStatus {
Pending, // Awaiting approval
Approved, // Approved for processing
Processing, // Being executed
Completed, // Successfully completed
Failed, // Processing failed
Cancelled // Cancelled by user/admin
}

ComplianceReport Model​

Core Fields​

FieldTypeDescription
idUUIDReport identifier
report_typeReportType (Enum)Type of compliance report
period_startDateTimeReporting period start
period_endDateTimeReporting period end
generated_atDateTimeGeneration timestamp
generated_byStringGenerator identity
sectionsVecReport sections
summaryReportSummaryExecutive summary

ReportType Enum​

enum ReportType {
SOC2TypeII,
GDPRCompliance,
DataRetention,
AccessControl,
SecurityAudit,
CustomAudit(String)
}

Default Retention Policies​

Standard Policies​

Data TypeRetention PeriodActionLegal Basis
Audit Logs7 yearsArchiveRegulatory compliance
Security Events2 yearsArchiveSecurity compliance
User Activity90 daysAnonymizePrivacy protection
Session Data30 daysDeleteSecurity best practice
Financial Records7 yearsArchiveTax compliance
Personal DataActive + 30 daysAnonymizeGDPR compliance

Policy Examples​

Audit Log Retention​

{
"id": "audit-log-retention",
"name": "Audit Log Retention",
"description": "Retain audit logs for compliance and security analysis",
"data_type": "AuditLog",
"retention_period": "P2555D",
"action": "Archive",
"legal_basis": "SOC2 Type II compliance requirement",
"active": true,
"created_at": "2025-01-01T00:00:00Z",
"last_executed": "2025-08-29T00:00:00Z"
}

GDPR Personal Data​

{
"id": "gdpr-personal-data",
"name": "GDPR Personal Data Retention",
"description": "Anonymize personal data after account closure",
"data_type": "PersonalData",
"retention_period": "P30D",
"action": "Anonymize",
"legal_basis": "GDPR Article 5(1)(e) - storage limitation",
"active": true,
"created_at": "2025-01-01T00:00:00Z",
"last_executed": "2025-08-29T00:00:00Z"
}

Data Subject Request Examples​

Access Request​

{
"id": "550e8400-e29b-41d4-a716-446655440000",
"tenant_id": "123e4567-e89b-12d3-a456-426614174000",
"subject_id": "456e7890-e89b-12d3-a456-426614174000",
"request_type": "Access",
"status": "Completed",
"requested_at": "2025-08-15T10:00:00Z",
"requested_by": "456e7890-e89b-12d3-a456-426614174000",
"approved_by": "789e0123-e89b-12d3-a456-426614174000",
"completed_at": "2025-08-15T11:30:00Z",
"data_categories": ["Profile", "Activity", "Preferences"],
"result_location": "s3://gdpr-exports/550e8400-export.zip",
"metadata": {
"export_format": "json",
"file_size_mb": 25.3,
"record_count": 15420
}
}

Erasure Request​

{
"id": "660e8400-e29b-41d4-a716-446655440000",
"tenant_id": "123e4567-e89b-12d3-a456-426614174000",
"subject_id": "567e8901-e89b-12d3-a456-426614174000",
"request_type": "Erasure",
"status": "Processing",
"requested_at": "2025-08-29T09:00:00Z",
"requested_by": "567e8901-e89b-12d3-a456-426614174000",
"approved_by": "890e1234-e89b-12d3-a456-426614174000",
"data_categories": ["all"],
"metadata": {
"reason": "Account closure",
"verification_method": "email",
"retention_exceptions": ["financial_records", "legal_holds"]
}
}

Compliance Report Structure​

SOC2 Type II Report Example​

{
"id": "770e8400-e29b-41d4-a716-446655440000",
"report_type": "SOC2TypeII",
"period_start": "2025-01-01T00:00:00Z",
"period_end": "2025-06-30T23:59:59Z",
"generated_at": "2025-07-15T10:00:00Z",
"generated_by": "compliance-service",
"sections": [
{
"title": "Security",
"status": "Compliant",
"findings": [],
"metrics": {
"security_incidents": 0,
"patch_compliance": 99.8,
"vulnerability_scan_frequency": "weekly"
},
"evidence": [
{
"id": "sec-001",
"evidence_type": "TestResult",
"description": "Penetration test results",
"collected_at": "2025-06-15T00:00:00Z",
"source": "third-party-auditor"
}
]
}
],
"summary": {
"total_controls": 150,
"compliant_controls": 147,
"non_compliant_controls": 3,
"critical_findings": 0,
"overall_score": 98.0,
"risk_level": "Low"
}
}

Database Schema​

Primary Storage Patterns​

# Retention policies
/compliance/retention_policies/{policy_id}
Value: JSON serialized RetentionPolicy

# Data subject requests
/{tenant_id}/data_subject_requests/{request_id}
Value: JSON serialized DataSubjectRequest

# Compliance reports
/{tenant_id}/compliance_reports/{report_type}/{period}/{report_id}
Value: JSON serialized ComplianceReport

# Evidence storage
/compliance/evidence/{evidence_id}
Value: JSON serialized Evidence

Secondary Indexes​

# DSR by subject
/{tenant_id}/dsr_by_subject/{subject_id} -> [request_ids]

# DSR by status
/{tenant_id}/dsr_by_status/{status} -> [request_ids]

# Active retention policies
/compliance/active_retention_policies -> [policy_ids]

# Reports by type
/{tenant_id}/reports_by_type/{report_type} -> [report_ids]

Compliance Workflows​

Data Subject Request Processing​

1. Request Submission
- User submits request
- Initial validation
- Create DSR record

2. Approval
- Admin review
- Legal verification
- Approve/Reject decision

3. Processing
- Identify data sources
- Collect relevant data
- Apply filters/exclusions

4. Export/Action
- Generate export file
- Perform requested action
- Store in secure location

5. Notification
- Notify requester
- Provide download link
- Log completion

Retention Policy Execution​

1. Schedule Check
- Run daily/hourly
- Check active policies

2. Data Identification
- Query data by type
- Calculate age
- Identify expired records

3. Action Execution
- Delete: Permanent removal
- Anonymize: Remove PII
- Archive: Move to cold storage
- Export: Create backup

4. Audit Logging
- Log all actions
- Update policy execution time
- Generate compliance report

API Endpoints​

Data Subject Requests​

  • POST /api/compliance/dsr - Submit new request
  • GET /api/compliance/dsr/{request_id} - Get request status
  • PUT /api/compliance/dsr/{request_id}/approve - Approve request
  • GET /api/compliance/dsr/my-requests - User's requests

Retention Policies​

  • GET /api/compliance/retention-policies - List policies
  • POST /api/compliance/retention-policies - Create policy
  • PUT /api/compliance/retention-policies/{id} - Update policy
  • POST /api/compliance/retention-policies/{id}/execute - Manual execution

Compliance Reports​

  • GET /api/compliance/reports - List reports
  • POST /api/compliance/reports/generate - Generate report
  • GET /api/compliance/reports/{report_id} - Get report details
  • GET /api/compliance/reports/{report_id}/export - Export report

Security Considerations​

Access Control​

  • DSR submission: Authenticated users
  • DSR approval: Compliance officers only
  • Policy management: Admin only
  • Report generation: Compliance team
  • Evidence access: Auditors

Data Protection​

  • Encrypted storage for exports
  • Secure deletion verification
  • Audit trail for all actions
  • PII masking in logs
  • Access logging
  • Legal hold preservation
  • Deletion verification
  • Anonymization validation
  • Export integrity checks
  • Chain of custody

Compliance Frameworks​

GDPR Compliance​

struct GDPRCompliance {
lawful_basis: LawfulBasis,
data_minimization: bool,
purpose_limitation: bool,
storage_limitation: bool,
integrity_confidentiality: bool,
accountability: bool
}

enum LawfulBasis {
Consent,
Contract,
LegalObligation,
VitalInterests,
PublicTask,
LegitimateInterests
}

SOC2 Trust Principles​

  1. Security: Protect against unauthorized access
  2. Availability: System operational and usable
  3. Processing Integrity: Complete, valid, accurate
  4. Confidentiality: Information designated confidential
  5. Privacy: Personal information lifecycle

Monitoring & Alerts​

Compliance Metrics​

  • DSR response time (target: <30 days)
  • Policy execution success rate
  • Data retention compliance %
  • Report generation frequency
  • Finding resolution time

Alerts​

  • DSR approaching deadline
  • Policy execution failure
  • High-risk findings
  • Compliance score drop
  • Regulatory changes

Future Enhancements​

Advanced Features​

  1. AI-Powered Compliance: Automated policy recommendations
  2. Cross-Border Transfer: Schrems II compliance
  3. Privacy by Design: Built-in privacy controls
  4. Consent Management: Granular consent tracking

Framework Extensions​

  1. CCPA Support: California privacy rights
  2. HIPAA Compliance: Healthcare data protection
  3. PCI-DSS: Payment card security
  4. ISO 27001: Information security

Automation​

  1. Auto-Classification: Identify data types
  2. Smart Anonymization: Context-aware PII removal
  3. Compliance Scoring: Real-time compliance health
  4. Regulatory Updates: Auto-update policies

Last Updated: 2025-08-29 Version: 1.0