# WP-42 — Privacy & security showcase page Status: partial — mask/parse showcase done; audit half pending WP-41 Phase: 8 — platform/DX/showcase Priority: P2 Depends on: WP-40, WP-41 ## Outcome (mask/parse half — done, on user request ahead of WP-41) Added a "6 · PII — maskeren & parsen" section to `/concepts` demonstrating the WP-40 pieces with FP + atomic design, framed for AVG art. 9 / data-minimisation: a live `` atom (masked-by-default BSN that reveals on click; note points to the real step-up + audited reveal in behandel-scherm) and a live `parseBsn` elfproef parse mirroring the postcode demo. Both show the real linked source via the WP-39 snippet mechanism (`// #region showcase:parseBsn` in bsn.ts, `showcase:mask` in pii.ts, registered in `gen-snippets.mjs` → `snippets.generated.ts`, drift-gated). No i18n (showcase is Dutch-only teaching text). No behaviour change outside the showcase. **Still pending (needs WP-41):** the "log PII / no-PII audit trail" half — visualizing the persisted authz/reveal audit — plus an optional Foundations MDX writeup. ## Why Once the reusable privacy pieces exist (WP-40 masked-value atom + pure maskers, WP-41 persisted no-PII audit), showcase them as a teaching artifact: how to **mask** and **log** PII safely with FP (pure functional core) + atomic design (the masked-value atom), tied to the existing reveal + step-up + capability slice. ## Decisions - A Foundations MDX + a small `showcase` demo (showcase context may read every context). - Teach the principles explicitly: data-minimisation, PII out of logs, masked-by-default + audited reveal, server as authority — framed for a Dutch register (AVG art. 9, BIO). - Reuse WP-39's linked-snippet mechanism so the shown code can't drift. ## Files - New `src/docs/privacy-security.mdx` (Foundations). - New/extended `showcase` demo wiring ``, the pure maskers, and the reveal flow. ## Acceptance criteria - [ ] Page demonstrates mask + no-PII logging with live components and linked (non-drifting) code. - [ ] Explains the register rationale (AVG/BIO/data-minimisation) concisely. - [ ] Storybook a11y green; `npm run ci` green.