---
id: dsr-consent-and-cookie-banner
prd: docs/work/prds/dsr-consent-and-cookie-banner.prd.md
title: DSR + consent abstraction + cookie consent banner — Epic B of ADR-025
type: epic
status: in-progress
features:
  [
    core-shared,
    core-consent,
    core-dsr,
    core-ui,
    core-eslint,
    core-testing,
    core-api,
    auth,
  ]
created: 2026-05-19T12:00:00Z
updated: 2026-05-19T13:27:09.005Z
---

## Goal

Ship the user-rights surface end-to-end: DSR endpoints that walk Epic A's PII tags to export/delete/rectify/restrict any subject's data, per-use-case consent gates with audit-logged proof, and a compliant cookie consent banner with EU-prominence defaults.

## Why

Epic A delivered declarative PII inventory + retention + sub-processors. Epic B closes the remaining gaps: GDPR Arts. 15–18 + 20 DSR endpoints, Art. 7 demonstrable consent with structural lint enforcement, and a CNIL-compliant cookie consent banner that downstream consumers can drop in without forking legal-compliance logic.

## Stories

- [x] [01 — Subject-linkage types in core-shared](01-subject-linkage-types/_story.md)
- [x] [02 — Audit action enum amendment (ADR-018)](02-audit-enum-amendment/_story.md)
- [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)
- [ ] [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)
- [ ] [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)
- [ ] [10 — auth signUp anonymous consent migration](10-auth-signup-migration/_story.md)
- [ ] [11 — Documentation: DSR guide + consent guide + glossary + CLAUDE.md](11-documentation/_story.md)
