diff --git a/.changeset/sweet-comics-sing.md b/.changeset/sweet-comics-sing.md new file mode 100644 index 00000000..1ba92df3 --- /dev/null +++ b/.changeset/sweet-comics-sing.md @@ -0,0 +1,11 @@ +--- +"kiji-privacy-proxy": minor +--- + +Configurable PII entity types and custom regex patterns + +- Chrome extension options page: enable/disable PII entity types per-request +- Custom regex patterns: add/edit/remove user-defined regex rules with replacement text +- New API endpoints: `GET /api/pii/labels`, `GET/POST /api/pii/patterns`, `PUT/DELETE /api/pii/patterns/{id}` +- Backend `MaskText` accepts `enabled_labels` to filter which PII types are masked +- Entity deduplication: overlapping spans resolved by length, custom regex wins ties diff --git a/docs/06-chrome-extension.md b/docs/06-chrome-extension.md index ae0eeb19..e4d53355 100644 --- a/docs/06-chrome-extension.md +++ b/docs/06-chrome-extension.md @@ -73,6 +73,8 @@ All settings are accessible via the extension's options page (right-click extens - **Backend URL** — The Kiji Privacy Proxy server address (default: `http://localhost:8081`) - **Intercept domains** — URL match patterns where the extension is active (one per line) +- **PII entity types** — Check or uncheck PII labels from the model to control which entity types get masked per-request. A "Disable all / Enable all" toggle is provided. Changes are persisted to `chrome.storage.sync` and sent as `enabled_labels` with each PII check. +- **Custom patterns** — Add user-defined regex rules on top of the ML model. Each pattern has a label, regex, and optional replacement string. Patterns are persisted server-side in SQLite. A live preview field lets you test a regex against sample text before saving. Patterns can be edited or removed inline. Default domains: ```