Compliance Module
A set of 12 reusable classes for addressing data storage requirements from 218+ security and compliance frameworks.
Each class wraps existing ORM infrastructure (hooks, decorators, scopes) into simple one-liner APIs.
Quick reference:
// 1. Audit trail for all CRUD operations import { ComplianceAuditTrail } from './compliance/audit-trail'; ComplianceAuditTrail.enable(prorm, UserModel, { getUserId: () => user.id });
// 2. Field-level AES-256-GCM encryption import { FieldEncryption } from './compliance/field-encryption'; FieldEncryption.configure('32-byte-hex-key'); @Encrypt('ssn') class User extends Model {} applyEncryptionHooks(User); // 3. TLS enforcement at connection time import { TLSEnforcer } from './compliance/tls-enforcer'; TLSEnforcer.enforce(prorm); // 4. Data retention / TTL policies import { DataRetentionPolicy } from './compliance/data-retention'; DataRetentionPolicy.set(FinancialRecord, { maxAge: { years: 7 } }); await DataRetentionPolicy.purge(FinancialRecord); // 5. Right to erasure (DSAR response) import { RightToErasure } from './compliance/right-to-erasure'; await RightToErasure.erase(User, { where: { id: userId } }, { mode: 'anonymize' }); // 6. Consent record storage import { ConsentRecord } from './compliance/consent-record'; await ConsentRecord.initialize(prorm); await ConsentRecord.grant({ subjectId: userId, purpose: 'marketing' }); // 7. Row-level security (tenant filtering) import { RowLevelSecurity } from './compliance/row-level-security'; RowLevelSecurity.apply(Document, ctx => ({ where: { tenantId: ctx.tenantId } })); // 8. Data masking in query output import { DataMasker } from './compliance/data-masker'; DataMasker.maskField(User, 'ssn', { pattern: 'ssn' }); const masked = DataMasker.mask(user, 'admin'); // 9. Immutable records (append-only, no update/delete) import { ImmutableRecord } from './compliance/immutable-record'; ImmutableRecord.makeImmutable(AuditEntry); // 10. Pseudonymization / tokenization import { PseudonymizationService } from './compliance/pseudonymization'; await PseudonymizationService.configure({ secretKey: '...' }); const token = await PseudonymizationService.tokenize('user-123'); // 11. Data portability (DSAR export) import { DataPortabilityExporter } from './compliance/data-portability'; const export = await DataPortabilityExporter.export(User, { where: { id: userId } }); // 12. Data classification / sensitivity tagging import { DataClassifier } from './compliance/data-classifier'; @FieldClassification('email', 'PII') class User extends Model {} const piiFields = DataClassifier.getPIIFields(User); Copy
// 2. Field-level AES-256-GCM encryption import { FieldEncryption } from './compliance/field-encryption'; FieldEncryption.configure('32-byte-hex-key'); @Encrypt('ssn') class User extends Model {} applyEncryptionHooks(User); // 3. TLS enforcement at connection time import { TLSEnforcer } from './compliance/tls-enforcer'; TLSEnforcer.enforce(prorm); // 4. Data retention / TTL policies import { DataRetentionPolicy } from './compliance/data-retention'; DataRetentionPolicy.set(FinancialRecord, { maxAge: { years: 7 } }); await DataRetentionPolicy.purge(FinancialRecord); // 5. Right to erasure (DSAR response) import { RightToErasure } from './compliance/right-to-erasure'; await RightToErasure.erase(User, { where: { id: userId } }, { mode: 'anonymize' }); // 6. Consent record storage import { ConsentRecord } from './compliance/consent-record'; await ConsentRecord.initialize(prorm); await ConsentRecord.grant({ subjectId: userId, purpose: 'marketing' }); // 7. Row-level security (tenant filtering) import { RowLevelSecurity } from './compliance/row-level-security'; RowLevelSecurity.apply(Document, ctx => ({ where: { tenantId: ctx.tenantId } })); // 8. Data masking in query output import { DataMasker } from './compliance/data-masker'; DataMasker.maskField(User, 'ssn', { pattern: 'ssn' }); const masked = DataMasker.mask(user, 'admin'); // 9. Immutable records (append-only, no update/delete) import { ImmutableRecord } from './compliance/immutable-record'; ImmutableRecord.makeImmutable(AuditEntry); // 10. Pseudonymization / tokenization import { PseudonymizationService } from './compliance/pseudonymization'; await PseudonymizationService.configure({ secretKey: '...' }); const token = await PseudonymizationService.tokenize('user-123'); // 11. Data portability (DSAR export) import { DataPortabilityExporter } from './compliance/data-portability'; const export = await DataPortabilityExporter.export(User, { where: { id: userId } }); // 12. Data classification / sensitivity tagging import { DataClassifier } from './compliance/data-classifier'; @FieldClassification('email', 'PII') class User extends Model {} const piiFields = DataClassifier.getPIIFields(User);
Optional
Return the current user ID for the audit record
Return the current request IP address
Override the audit table name. Default: 'ComplianceAuditLogs'
Compliance Module
A set of 12 reusable classes for addressing data storage requirements from 218+ security and compliance frameworks.
Each class wraps existing ORM infrastructure (hooks, decorators, scopes) into simple one-liner APIs.
Quick reference:
// 1. Audit trail for all CRUD operations import { ComplianceAuditTrail } from './compliance/audit-trail'; ComplianceAuditTrail.enable(prorm, UserModel, { getUserId: () => user.id });