Page trash: soft delete, restore, and purge job #31
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#31
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Deleting must be recoverable (ADR 0013): pages go to a pond-level trash with retention.
Scope
Backend:
DELETE /pages/:idsetsdeleted_at/by; trash endpoints (list, restore, purge single); introduce thejobstable + in-app scheduler (data-model.md) with the dailytrash-purgejob honoring retention (instance setting, default 30 days); purge deletes state, versions (placeholder — exist from M3), cache rows, and files. Frontend: trash view per pond (restore/purge buttons), delete confirmation, deleted pages excluded everywhere.Acceptance criteria
Technical notes
jobs), operations.md (job table).Dependencies
Depends on #23, #27.
Size: ~2 days
Conventions: English code/comments, clear human-readable code, no hard-coded UI strings (ADR 0012, add
deanden), permission checks only via the shared guard (docs/architecture/permissions.md). Read the referenced ADRs before starting.Implemented in
a645763and closed viaCloses #31. Pipeline verification for that commit:Acceptance criteria covered by
apps/api/src/trash/trash.e2e.db.test.ts(list/restore/purge, trash-hint 404, time-travel purge via injected clock — in CI),apps/api/src/scheduler/scheduler.service.db.test.ts(locking + restart-survival — in CI), andapps/web/e2e/trash.spec.ts(UI delete/restore/purge — run locally against the dev stack).