Spaces:
Sleeping
Sleeping
solidprivacy-nl commited on
Commit ·
d653643
1
Parent(s): 4d721e3
Record v13.0 Scrub Key model in changelog
Browse files- CHANGELOG.md +64 -0
CHANGELOG.md
CHANGED
|
@@ -26,6 +26,70 @@ For UI/UX-only work, prefer pure helper modules and tests before touching Stream
|
|
| 26 |
|
| 27 |
---
|
| 28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
## v12.5 — Final review summary
|
| 30 |
|
| 31 |
Status: completed and app verified.
|
|
|
|
| 26 |
|
| 27 |
---
|
| 28 |
|
| 29 |
+
## v13.0 — Scrub Key specification and pure model
|
| 30 |
+
|
| 31 |
+
Status: implemented; pending GitHub Actions and Hugging Face sync confirmation.
|
| 32 |
+
|
| 33 |
+
Purpose:
|
| 34 |
+
|
| 35 |
+
- Prepare the v13 Scrub Key / Reinsert phase without touching the active review UI.
|
| 36 |
+
- Define the local mapping file concept for future reversible workflows.
|
| 37 |
+
- Add a pure Python model with validation and JSON roundtrip support.
|
| 38 |
+
- Make pseudonymization safety boundaries explicit before UI/export work starts.
|
| 39 |
+
|
| 40 |
+
Files added or changed:
|
| 41 |
+
|
| 42 |
+
- `SCRUB_KEY_SPEC.md`
|
| 43 |
+
- `scrub_key.py`
|
| 44 |
+
- `tests/test_scrub_key.py`
|
| 45 |
+
- `WORKPACKAGES.md`
|
| 46 |
+
- `CHANGELOG.md`
|
| 47 |
+
- `handover/workpackages/20260607_1342_v13_0_scrub_key_spec_model.md`
|
| 48 |
+
|
| 49 |
+
Main changes:
|
| 50 |
+
|
| 51 |
+
- Added a Scrub Key specification for the future workflow:
|
| 52 |
+
- `Scrub → Review → Scrub Key → AI → Reinsert → Export → Audit`.
|
| 53 |
+
- Defined required mapping fields:
|
| 54 |
+
- original value;
|
| 55 |
+
- placeholder;
|
| 56 |
+
- entity type;
|
| 57 |
+
- user-facing type label;
|
| 58 |
+
- source;
|
| 59 |
+
- review status;
|
| 60 |
+
- include state;
|
| 61 |
+
- timestamp;
|
| 62 |
+
- optional document/project/dossier label.
|
| 63 |
+
- Added required safety language explaining that a Scrub Key makes scrubbed text reversible.
|
| 64 |
+
- Explicitly classified the Scrub Key model as pseudonymization, not full anonymization.
|
| 65 |
+
- Added local/protected key handling guidance and external-AI sharing warning.
|
| 66 |
+
- Added a deterministic pure helper model:
|
| 67 |
+
- `build_scrub_key(rows, document_label=None)`;
|
| 68 |
+
- `scrub_key_to_json(scrub_key)`;
|
| 69 |
+
- `scrub_key_from_json(text)`;
|
| 70 |
+
- `validate_scrub_key(scrub_key)`.
|
| 71 |
+
- Set the v13.0 excluded-row policy to `omitted`, so unchecked rows are not written into the key.
|
| 72 |
+
- Kept timestamp handling deterministic: the model does not create timestamps itself; validation catches missing timestamps.
|
| 73 |
+
|
| 74 |
+
Testing:
|
| 75 |
+
|
| 76 |
+
- Added `tests/test_scrub_key.py`.
|
| 77 |
+
- Local targeted validation passed: `PYTHONPATH=. pytest -q tests/test_scrub_key.py` → 6 passed.
|
| 78 |
+
- Tests cover valid key creation, excluded-row omission, required fields, JSON roundtrip, validation errors, and synthetic Dutch legal examples only.
|
| 79 |
+
|
| 80 |
+
Intentionally not changed:
|
| 81 |
+
|
| 82 |
+
- No direct edit to `presidio_streamlit.py`.
|
| 83 |
+
- No direct edit to `fix_streamlit_nested_expanders.py`.
|
| 84 |
+
- No export/download buttons.
|
| 85 |
+
- No reinsert UI.
|
| 86 |
+
- No cloud processing.
|
| 87 |
+
- No secret storage.
|
| 88 |
+
- No real personal data in tests or examples.
|
| 89 |
+
- No change to active review UI or export semantics.
|
| 90 |
+
|
| 91 |
+
---
|
| 92 |
+
|
| 93 |
## v12.5 — Final review summary
|
| 94 |
|
| 95 |
Status: completed and app verified.
|