ObjectStackObjectStack

Security Context

Security Context protocol schemas

Unified Security Context Protocol

Provides a central governance layer that correlates and unifies the four independent security subsystems it was designed against. Three of the four have since been REMOVED per ADR-0056 D8 (declared-but-never-enforced; see system/index.ts notes) — only encryption survives, marked experimental:

  • Audit (audit.zod.ts — REMOVED): the live audit path is plugin-audit's always-on capture + object/field trackHistory + lifecycle audit retention
  • Encryption (encryption.zod.ts): Field-level encryption and key management
  • Compliance (compliance.zod.ts — REMOVED): GDPR/HIPAA/SOX/PCI-DSS configs
  • Masking (masking.zod.ts — REMOVED): PII data masking and tokenization

This schema enforces cross-cutting security policies, ensuring compliance frameworks drive encryption requirements, masking rules respect role-based audit visibility, and all security operations are correlated in a single governance context.

See also: https://www.iso.org/standard/27001

@category Security

Source: packages/spec/src/system/security-context.zod.ts

TypeScript Usage

import { ComplianceAuditRequirementSchema, ComplianceEncryptionRequirementSchema, ComplianceFrameworkSchema, DataClassificationSchema, DataClassificationPolicySchema, MaskingVisibilityRuleSchema, SecurityContextConfigSchema, SecurityEventCorrelationSchema } from '@objectstack/spec/system';
import type { ComplianceAuditRequirement, ComplianceEncryptionRequirement, ComplianceFramework, DataClassification, DataClassificationPolicy, MaskingVisibilityRule, SecurityContextConfig, SecurityEventCorrelation } from '@objectstack/spec/system';

// Validate data
const result = ComplianceAuditRequirementSchema.parse(data);

ComplianceAuditRequirement

Compliance framework audit event requirements

Properties

PropertyTypeRequiredDescription
frameworkEnum<'gdpr' | 'hipaa' | 'sox' | 'pci_dss' | 'ccpa' | 'iso27001'>Compliance framework identifier
requiredEventsstring[]Audit event types required by this framework (e.g., "data.delete", "auth.login")
retentionDaysnumberMinimum audit log retention period required by this framework (in days)
alertOnMissingbooleanoptional (default: true)Raise alert if a required audit event is not being captured

ComplianceEncryptionRequirement

Compliance framework encryption requirements

Properties

PropertyTypeRequiredDescription
frameworkEnum<'gdpr' | 'hipaa' | 'sox' | 'pci_dss' | 'ccpa' | 'iso27001'>Compliance framework identifier
dataClassificationsEnum<'pii' | 'phi' | 'pci' | 'financial' | 'confidential' | 'internal' | 'public'>[]Data classifications that must be encrypted under this framework
minimumAlgorithmEnum<'aes-256-gcm' | 'aes-256-cbc' | 'chacha20-poly1305'>optional (default: "aes-256-gcm")Minimum encryption algorithm strength required
keyRotationMaxDaysnumberoptional (default: 90)Maximum key rotation interval required (in days)

ComplianceFramework

Compliance framework identifier

Allowed Values

  • gdpr
  • hipaa
  • sox
  • pci_dss
  • ccpa
  • iso27001

DataClassification

Data classification level

Allowed Values

  • pii
  • phi
  • pci
  • financial
  • confidential
  • internal
  • public

DataClassificationPolicy

Security policy for a specific data classification level

Properties

PropertyTypeRequiredDescription
classificationEnum<'pii' | 'phi' | 'pci' | 'financial' | 'confidential' | 'internal' | 'public'>Data classification level
requireEncryptionbooleanoptional (default: false)Encryption required for this classification
requireMaskingbooleanoptional (default: false)Masking required for this classification
requireAuditbooleanoptional (default: false)Audit trail required for access to this classification
retentionDaysnumberoptionalData retention limit in days (for compliance)

MaskingVisibilityRule

Masking visibility and audit rule per data classification

Properties

PropertyTypeRequiredDescription
dataClassificationEnum<'pii' | 'phi' | 'pci' | 'financial' | 'confidential' | 'internal' | 'public'>Data classification this rule applies to
defaultMaskedbooleanoptional (default: true)Whether data is masked by default
unmaskRolesstring[]optionalRoles allowed to view unmasked data
auditUnmaskbooleanoptional (default: true)Log an audit event when data is unmasked
requireApprovalbooleanoptional (default: false)Require explicit approval before unmasking
approvalRolesstring[]optionalRoles that can approve unmasking requests

SecurityContextConfig

Unified security context governance configuration

Properties

PropertyTypeRequiredDescription
enabledbooleanoptional (default: true)Enable unified security context governance
complianceAuditRequirements{ framework: Enum<'gdpr' | 'hipaa' | 'sox' | 'pci_dss' | 'ccpa' | 'iso27001'>; requiredEvents: string[]; retentionDays: number; alertOnMissing: boolean }[]optionalCompliance-driven audit event requirements
complianceEncryptionRequirements{ framework: Enum<'gdpr' | 'hipaa' | 'sox' | 'pci_dss' | 'ccpa' | 'iso27001'>; dataClassifications: Enum<'pii' | 'phi' | 'pci' | 'financial' | 'confidential' | 'internal' | 'public'>[]; minimumAlgorithm: Enum<'aes-256-gcm' | 'aes-256-cbc' | 'chacha20-poly1305'>; keyRotationMaxDays: number }[]optionalCompliance-driven encryption requirements by data classification
maskingVisibility{ dataClassification: Enum<'pii' | 'phi' | 'pci' | 'financial' | 'confidential' | 'internal' | 'public'>; defaultMasked: boolean; unmaskRoles?: string[]; auditUnmask: boolean; … }[]optionalMasking visibility rules per data classification
dataClassifications{ classification: Enum<'pii' | 'phi' | 'pci' | 'financial' | 'confidential' | 'internal' | 'public'>; requireEncryption: boolean; requireMasking: boolean; requireAudit: boolean; … }[]optionalData classification policies for unified security enforcement
eventCorrelation{ enabled: boolean; correlationId: boolean; linkAuthToAudit: boolean; linkEncryptionToAudit: boolean; … }optionalCross-subsystem security event correlation settings
enforceOnWritebooleanoptional (default: true)Enforce encryption and masking requirements on data write operations
enforceOnReadbooleanoptional (default: true)Enforce masking and audit requirements on data read operations
failOpenbooleanoptional (default: false)When false (default), deny access if security context cannot be evaluated

Nested Shape: SecurityContextConfig.complianceAuditRequirements[number]

Compliance framework audit event requirements

PropertyTypeRequiredDescription
frameworkEnum<'gdpr' | 'hipaa' | 'sox' | 'pci_dss' | 'ccpa' | 'iso27001'>Compliance framework identifier
requiredEventsstring[]Audit event types required by this framework (e.g., "data.delete", "auth.login")
retentionDaysnumberMinimum audit log retention period required by this framework (in days)
alertOnMissingbooleanoptional (default: true)Raise alert if a required audit event is not being captured

Nested Shape: SecurityContextConfig.complianceEncryptionRequirements[number]

Compliance framework encryption requirements

PropertyTypeRequiredDescription
frameworkEnum<'gdpr' | 'hipaa' | 'sox' | 'pci_dss' | 'ccpa' | 'iso27001'>Compliance framework identifier
dataClassificationsEnum<'pii' | 'phi' | 'pci' | 'financial' | 'confidential' | 'internal' | 'public'>[]Data classifications that must be encrypted under this framework
minimumAlgorithmEnum<'aes-256-gcm' | 'aes-256-cbc' | 'chacha20-poly1305'>optional (default: "aes-256-gcm")Minimum encryption algorithm strength required
keyRotationMaxDaysnumberoptional (default: 90)Maximum key rotation interval required (in days)

Nested Shape: SecurityContextConfig.maskingVisibility[number]

Masking visibility and audit rule per data classification

PropertyTypeRequiredDescription
dataClassificationEnum<'pii' | 'phi' | 'pci' | 'financial' | 'confidential' | 'internal' | 'public'>Data classification this rule applies to
defaultMaskedbooleanoptional (default: true)Whether data is masked by default
unmaskRolesstring[]optionalRoles allowed to view unmasked data
auditUnmaskbooleanoptional (default: true)Log an audit event when data is unmasked
requireApprovalbooleanoptional (default: false)Require explicit approval before unmasking
approvalRolesstring[]optionalRoles that can approve unmasking requests

Nested Shape: SecurityContextConfig.dataClassifications[number]

Security policy for a specific data classification level

PropertyTypeRequiredDescription
classificationEnum<'pii' | 'phi' | 'pci' | 'financial' | 'confidential' | 'internal' | 'public'>Data classification level
requireEncryptionbooleanoptional (default: false)Encryption required for this classification
requireMaskingbooleanoptional (default: false)Masking required for this classification
requireAuditbooleanoptional (default: false)Audit trail required for access to this classification
retentionDaysnumberoptionalData retention limit in days (for compliance)

Nested Shape: SecurityContextConfig.eventCorrelation

PropertyTypeRequiredDescription
enabledbooleanoptional (default: true)Enable cross-subsystem security event correlation
correlationIdbooleanoptional (default: true)Inject a shared correlation ID into audit, encryption, and masking events
linkAuthToAuditbooleanoptional (default: true)Link authentication events to subsequent data operation audit trails
linkEncryptionToAuditbooleanoptional (default: true)Log encryption/decryption operations in the audit trail
linkMaskingToAuditbooleanoptional (default: true)Log masking/unmasking operations in the audit trail

SecurityEventCorrelation

Cross-subsystem security event correlation configuration

Properties

PropertyTypeRequiredDescription
enabledbooleanoptional (default: true)Enable cross-subsystem security event correlation
correlationIdbooleanoptional (default: true)Inject a shared correlation ID into audit, encryption, and masking events
linkAuthToAuditbooleanoptional (default: true)Link authentication events to subsequent data operation audit trails
linkEncryptionToAuditbooleanoptional (default: true)Log encryption/decryption operations in the audit trail
linkMaskingToAuditbooleanoptional (default: true)Log masking/unmasking operations in the audit trail

On this page