Compliance - v1.0.0
Compliance Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[1.0.0] - 2026-05-18
Added
- Initial release of the standalone Compliance package, extracted from
artisanpack-ui/security1.x as part of the Security 2.0 package split. - Consent management — versioned
ConsentPolicyper purpose, per-userConsentRecordwith status lifecycle, immutableConsentAuditLog,ConsentManagerservice,ConsentPolicyServicefor version transitions,CookieConsentHandler,check.consentroute middleware. - Data subject rights —
ErasureServiceorchestrating pluggableErasureHandlerInterfaceimplementations with logged outcomes per handler and exemption tracking;PortabilityServicewith pluggableDataExporterInterfaceproviders and downloadable JSON / XML / CSV exports. - DPIA + processing activities — Article 30
ProcessingActivityrecords, Article 35DataProtectionAssessmentwith risk + mitigation tracking,RiskCalculatorfor inherent + residual scoring,DpiaServicefor full assessment lifecycle. - Data minimization —
AnonymizationEngine,PseudonymizationEngine,DataMinimizerService,data.minimizationroute middleware. - Retention policies —
RetentionPolicy+CollectionPolicymodels,PurgeExpiredDataconsole command, configurable deletion strategy (delete / anonymize / archive). - Compliance monitoring —
ComplianceMonitorruns pluggableComplianceCheckInterfaceimplementations, persistsComplianceCheckResultrows, raisesComplianceViolationrecords, computesComplianceScoresnapshots with letter-grade output. - Reporting —
ReportGeneratorwith pluggableReportTypeInterfaceproviders,ScheduledComplianceReportmodel for cron-driven delivery, multi-format output (PDF / HTML / CSV / JSON). - 17 Eloquent models —
ConsentPolicy,ConsentRecord,ConsentAuditLog,ProcessingActivity,DataProtectionAssessment,AssessmentRisk,RiskMitigation,ErasureRequest,ErasureLog,PortabilityRequest,ExportSchema,RetentionPolicy,CollectionPolicy,ComplianceViolation,ComplianceCheckResult,ComplianceScore,ScheduledComplianceReport, plus thePrivacyAwareModelbase class. - 18 migrations creating every backing table with foreign keys, indices, and a guarded unique-granted-consent constraint.
- 5 console commands —
RunComplianceChecks,ProcessErasureRequests,ProcessPortabilityRequests,PurgeExpiredData,GenerateComplianceReport. - 4 HTTP controllers —
ConsentController,ErasureController,PortabilityController,ComplianceDashboardController(gated behind a default-denyviewComplianceDashboardGate). - 8 events —
ConsentGranted,ConsentWithdrawn,ErasureRequested,ErasureCompleted,DataExportRequested,DataExportCompleted,ComplianceCheckCompleted,ComplianceViolationDetected— auto-listened by the service provider so apps get an audit trail in the log without wiring anything up. - 5 contract interfaces —
ComplianceCheckInterface,ConsentStorageInterface,DataExporterInterface,ErasureHandlerInterface,ReportTypeInterface— for extending the toolkit with organization-specific behaviour. - Helper function
compliance()plusComplianceFacade entry points. - PHP-CS-Fixer + PHPCS code style enforcement matching the ArtisanPack UI ecosystem conventions (WordPress-style spacing, Yoda conditions, aligned operators).
Notes
The pre-1.0 0.1.0 scaffold release shipped with import references to model classes that did not yet exist as PHP files (the migrations created the tables, but the Eloquent classes were missing). 1.0.0 ships the full set of 17 model classes and brings the package to a runnable state.