The retention purge job gated its whole body on activeRetention while every collection declares only postDeletion, and no app ever called registerRetentionPurgeJobs — retention was dead end to end (audit findings A2 + A3). The DSR soft delete now stamps a deletedAt tombstone on postDeletion collections (kept distinct from processingRestrictedAt so an Art. 18 restriction never feeds the purge), the job grace-purges tombstoned rows past postDeletion.duration with the declared action, core-cms injects the tombstone field + Payload task definitions, and bindAllProduction enqueues the first purge cycle at boot. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
37 lines
984 B
JSON
37 lines
984 B
JSON
{
|
|
"name": "@repo/core-cms",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"exports": {
|
|
".": "./src/index.ts",
|
|
"./generated-types": "./src/generated-types.ts"
|
|
},
|
|
"scripts": {
|
|
"build": "tsc --noEmit",
|
|
"lint": "eslint .",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run --passWithNoTests"
|
|
},
|
|
"dependencies": {
|
|
"@payloadcms/db-postgres": "^3.14.0",
|
|
"@payloadcms/richtext-lexical": "^3.14.0",
|
|
"@repo/auth": "workspace:*",
|
|
"@repo/blog": "workspace:*",
|
|
"@repo/core-audit": "workspace:*",
|
|
"@repo/core-shared": "workspace:*",
|
|
"@repo/marketing-pages": "workspace:*",
|
|
"@repo/media": "workspace:*",
|
|
"@repo/navigation": "workspace:*",
|
|
"payload": "^3.14.0"
|
|
},
|
|
"devDependencies": {
|
|
"@repo/core-eslint": "workspace:*",
|
|
"@repo/core-testing": "workspace:*",
|
|
"@repo/core-typescript": "workspace:*",
|
|
"@types/node": "^22.0.0",
|
|
"@vitest/coverage-v8": "^3.2.7",
|
|
"vitest": "^3.2.7"
|
|
}
|
|
}
|