From b2bfb5bfce41d5d469decd378433c941c5354663 Mon Sep 17 00:00:00 2001 From: Danijel Martinek Date: Tue, 19 May 2026 22:39:13 +0200 Subject: [PATCH] chore(work): finish 06-core-dsr --- docs/work/_system/_state.json | 18 +++++------------- .../06-core-dsr/_story.md | 6 +++--- .../dsr-consent-and-cookie-banner/_epic.md | 4 ++-- 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/docs/work/_system/_state.json b/docs/work/_system/_state.json index 260d63a..608a17f 100644 --- a/docs/work/_system/_state.json +++ b/docs/work/_system/_state.json @@ -1,5 +1,5 @@ { - "updated_at": "2026-05-19T20:14:17.542Z", + "updated_at": "2026-05-19T20:39:15.146Z", "epics": { "binder-wrap-helper": { "status": "done", @@ -296,10 +296,10 @@ ] }, "06-core-dsr": { - "status": "in-progress", + "status": "done", "title": "core-dsr — scaffold, interfaces, Payload impls, recording doubles, handlers, dsrRouter", "ac_total": 3, - "ac_completed": 2, + "ac_completed": 3, "depends_on": [ "02-audit-enum-amendment" ], @@ -571,8 +571,8 @@ "ready": [ { "epic": "dsr-consent-and-cookie-banner", - "story": "06-core-dsr", - "title": "core-dsr — scaffold, interfaces, Payload impls, recording doubles, handlers, dsrRouter" + "story": "07-core-api-router-composition", + "title": "core-api router composition — dsrRouter + consentRouter into appRouter" }, { "epic": "dsr-consent-and-cookie-banner", @@ -591,14 +591,6 @@ } ], "blocked": [ - { - "epic": "dsr-consent-and-cookie-banner", - "story": "07-core-api-router-composition", - "title": "core-api router composition — dsrRouter + consentRouter into appRouter", - "waiting_on": [ - "dsr-consent-and-cookie-banner/06-core-dsr" - ] - }, { "epic": "dsr-consent-and-cookie-banner", "story": "09-cookie-consent-banner", diff --git a/docs/work/epics/dsr-consent-and-cookie-banner/06-core-dsr/_story.md b/docs/work/epics/dsr-consent-and-cookie-banner/06-core-dsr/_story.md index 2ee526d..e8a40ba 100644 --- a/docs/work/epics/dsr-consent-and-cookie-banner/06-core-dsr/_story.md +++ b/docs/work/epics/dsr-consent-and-cookie-banner/06-core-dsr/_story.md @@ -3,12 +3,12 @@ id: 06-core-dsr epic: dsr-consent-and-cookie-banner title: core-dsr — scaffold, interfaces, Payload impls, recording doubles, handlers, dsrRouter type: technical-story -status: in-progress +status: done feature: core-dsr depends-on: [02-audit-enum-amendment] blocks: [07-core-api-router-composition] created: 2026-05-19T12:00:00Z -updated: 2026-05-19T20:14:17.374Z +updated: 2026-05-19T20:39:14.972Z --- ## Goal @@ -60,4 +60,4 @@ Every EU-bound consumer needs endpoints to satisfy GDPR Arts. 15–18 + 20. The - [x] Run `pnpm turbo gen core-package dsr` + define `IDataExport`, `IDataDelete`, `IDataRectify`, `IProcessingRestriction` interfaces in `core-dsr/.interface.ts` + add `UserDataBundle` + `DeletionCertificate` types + ship `core-dsr/contexts/user-data.jsonld`; all gates pass. - [x] Add `PayloadDataExport`, `PayloadDataDelete`, `PayloadDataRectify`, `PayloadProcessingRestriction` Payload-backed implementations walking `custom.pii` tags and `custom.subject` linkage (cascade semantics per role: self/owner/reference) + `RecordingDataExport`, `RecordingDataDelete`, `RecordingDataRectify`, `RecordingProcessingRestriction` test doubles in `packages/core-testing/` + DI binders `core-dsr/di/bind-production.ts` and `core-dsr/di/bind-dev-seed.ts`; contract tests covering happy path per role/mode, multi-subject row redaction, JSON-LD `@context` correctness, audit emission shape, restriction flag; all gates pass. -- [ ] Add protocol-agnostic handlers in `core-dsr/handlers/{export,delete,rectify,restrict}-handler.ts` + `dsrRouter` tRPC router in `core-dsr/dsr.router.ts` with auth checks; integration tests asserting procedure response shapes and error passthrough; all gates pass. +- [x] Add protocol-agnostic handlers in `core-dsr/handlers/{export,delete,rectify,restrict}-handler.ts` + `dsrRouter` tRPC router in `core-dsr/dsr.router.ts` with auth checks; integration tests asserting procedure response shapes and error passthrough; all gates pass. diff --git a/docs/work/epics/dsr-consent-and-cookie-banner/_epic.md b/docs/work/epics/dsr-consent-and-cookie-banner/_epic.md index f0a00cd..ac397c5 100644 --- a/docs/work/epics/dsr-consent-and-cookie-banner/_epic.md +++ b/docs/work/epics/dsr-consent-and-cookie-banner/_epic.md @@ -16,7 +16,7 @@ features: auth, ] created: 2026-05-19T12:00:00Z -updated: 2026-05-19T19:21:30.198Z +updated: 2026-05-19T20:39:14.972Z --- ## Goal @@ -34,7 +34,7 @@ Epic A delivered declarative PII inventory + retention + sub-processors. Epic B - [x] [03 — core-consent foundation: types + brand + withConsent + conformance + ESLint rule](03-core-consent-foundation/_story.md) - [x] [04 — core-consent implementation: Payload impl + DI + migration helpers + tRPC router](04-core-consent-implementation/_story.md) - [x] [05 — core-consent React subpath: ConsentProvider + useConsent()](05-core-consent-react/_story.md) -- [ ] [06 — core-dsr: scaffold + interfaces + Payload impls + handlers + dsrRouter](06-core-dsr/_story.md) +- [x] [06 — core-dsr: scaffold + interfaces + Payload impls + handlers + dsrRouter](06-core-dsr/_story.md) - [ ] [07 — core-api router composition: dsrRouter + consentRouter into appRouter](07-core-api-router-composition/_story.md) - [ ] [08 — core-ui scaffold](08-core-ui-scaffold/_story.md) - [ ] [09 — CookieConsentBanner component in core-ui](09-cookie-consent-banner/_story.md)