feat: Retention management - bewaartermijnen and selectielijsten#957
Merged
rubenvdlinde merged 2 commits intodevelopmentfrom Mar 22, 2026
Merged
feat: Retention management - bewaartermijnen and selectielijsten#957rubenvdlinde merged 2 commits intodevelopmentfrom
rubenvdlinde merged 2 commits intodevelopmentfrom
Conversation
Enriched all active specs to 10-15+ requirements with 3-5 GIVEN/WHEN/THEN scenarios each. Research includes codebase analysis, competitor analysis, Dutch government standards, and ADR compliance. Moved 8 specs to their correct app homes (redirect stubs remain). Reframed 6 specs as extensions of existing functionality. All specs pass openspec validate --strict.
…948) Implement archival lifecycle management for register objects per Archiefwet 1995: - RetentionService: MDTO-compliant archival metadata (archiefnominatie, archiefstatus, archiefactiedatum, classificatie, bewaartermijn), selectielijst lookup, legal holds, archiefactiedatum calculation with three afleidingswijzen (afgehandeld, eigenschap, termijn) - DestructionCheckJob: TimedJob scanning for objects past archiefactiedatum, generates destruction lists, sends pre-destruction notifications via INotification - DestructionExecutionJob: QueuedJob processing approved destruction lists in batches, re-checks legal holds at execution time, generates destruction certificates - RetentionController: API endpoints for destruction list approval/rejection with multi-step workflow (dual approval for sensitive schemas), legal hold CRUD, bulk holds - SaveObject integration: archival metadata applied on creation, recalculated on update, immutability enforcement for destroyed/transferred objects (HTTP 409) - Archival settings API: configurable destruction intervals, notification lead days, selectielijst/destruction list register/schema references - Unit tests for RetentionService, DestructionCheckJob, DestructionExecutionJob - OpenSpec change archived with synced retention-management spec
Contributor
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (586 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. Generated automatically by the Quality workflow.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #948
Test plan
archive.enabled: true/api/retention/legal-holdsendpoints/api/retention/destruction-lists/{id}/approve/api/settings/archival