From 8c316ecf894bc56364df9484455925eb579e7c5f Mon Sep 17 00:00:00 2001 From: yjouini Date: Wed, 27 May 2026 11:31:37 +0200 Subject: [PATCH 1/3] chore: add changeset for configurable PII entity types --- .changeset/sweet-comics-sing.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .changeset/sweet-comics-sing.md 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 From dd8307986b1e31469c92cd4764ad06fb4e411ec0 Mon Sep 17 00:00:00 2001 From: yjouini Date: Wed, 27 May 2026 11:31:41 +0200 Subject: [PATCH 2/3] docs: add PII types and custom patterns to extension config --- docs/06-chrome-extension.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/06-chrome-extension.md b/docs/06-chrome-extension.md index ae0eeb19..8d7716d0 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, description, 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: ``` From 7b8c5a32d34f303f41ed4d87d4cc92bff950e07e Mon Sep 17 00:00:00 2001 From: yjouini Date: Wed, 27 May 2026 11:16:41 +0200 Subject: [PATCH 3/3] docs: remove description mention from custom patterns --- docs/06-chrome-extension.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/06-chrome-extension.md b/docs/06-chrome-extension.md index 8d7716d0..e4d53355 100644 --- a/docs/06-chrome-extension.md +++ b/docs/06-chrome-extension.md @@ -74,7 +74,7 @@ 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, description, 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. +- **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: ```