Skip to content

Implement Slice Nine structured PERSON discovery and protection - #12

Merged
sidmohan0 merged 1 commit into
mainfrom
slice-nine
Sep 4, 2026
Merged

sidmohan0 merged 1 commit into
mainfrom
slice-nine

Conversation

@sidmohan0

Copy link
Copy Markdown
Contributor

Objective

Add model-free PERSON discovery and protection for parsed JSON records. A record such as { "first_name": "May", "last_name": "Nguyễn" } now produces path-qualified PERSON findings and can be redacted through the existing transformation policy, without requiring caller mappings for supported field names.

Changes

  • Implement deterministic traversal, conservative field aliases, explicit JSON Pointer mappings, and exclusions in Rust Core. Scan every string leaf with the existing text detectors; generic name fields require an explicit PERSON mapping.
  • Add structured discovery, scanning, and transformation APIs across Rust, Python, Node, and browser WASM. Preserve decoded-field byte/code-point/UTF-16 ranges and unrelated JSON values.
  • Extend Rust, Python, and Node managers with structured pseudonymization, tokenization, and restoration. Validate requests before provider work, resolve distinct keys once, and batch token operations across the document. Browser WASM retains its provider restrictions.
  • Add shared positive/negative and transformation fixtures, installed-package coverage, ADR 002, a usage guide, SDK references, and reproducible performance notes in docs/structured-performance.md.

Existing text APIs retain their seven-detector coverage. No new third-party dependencies, models, or dictionaries are introduced. Local artifact measurements show approximately 16.5% growth for the Python extension and 8.9% for the Node native module; the measurement notes explain workload and cold-start limitations. This implements schema-guided name protection; it does not claim arbitrary name recognition in prose. Package publication and migration of the current MCP consumer remain pending.

Verification

  • cargo fmt --all --check
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo test --workspace --all-features — 76 tests passed
  • New or changed detection behavior includes positive and negative tests
  • I reviewed the diff for unrelated refactoring or duplicated binding logic
  • Installed Python wheel, packed Node package, and packed WASM package passed text and structured conformance tests
  • Node/WASM consumer TypeScript checks and Chromium runtime tests passed
  • Provider tests cover validation before calls, deduplication/batching, scoped restoration, and Node input snapshots
  • Mintlify build validation, public-document link checks, and engineering-document links passed

Local binding verification used macOS ARM64, Python 3.14.6, Node 24.19.0, and Chromium. Rust used toolchain 1.88.0. Cross-platform CI results should be evaluated separately from these local checks.

@mintlify

mintlify Bot commented Sep 4, 2026 •

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
data-fog 🟢 Ready View Preview Sep 4, 2026, 10:55 PM

💡 Tip: Enable Automations to automatically generate PRs for you.

@sidmohan0
sidmohan0 merged commit 4275002 into main Sep 4, 2026
31 checks passed

This branch was successfully deployed

1 active deployment
staging - docs — 8b2a8cad Deployed Sep 4, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant