mirror of
https://github.com/tiennm99/litellm.git
synced 2026-07-21 06:19:18 +00:00
* feat: Add Canadian PII protection patterns and PIPEDA-compliant policy template Adds 6 new Canadian PII regex pattern detectors to patterns.json: - ca_sin: Social Insurance Number (PIPEDA Privacy Act, Income Tax Act) - ca_ohip: Ontario Health Insurance Plan Number (PHIPA) - ca_on_drivers_licence: Ontario driver's licence (HTA, PIPEDA) - ca_immigration_doc: IRCC immigration docs (UCI, work/study permits, IMM refs) - ca_bank_account: Canadian bank account routing (transit-institution-account) - ca_postal_code: Canadian postal code (Canada Post spec) Adds comprehensive policy template 'canadian-pii-protection' (id: canadian-pii-protection) with 5 sub-guardrails grouping patterns by data type. All patterns include contextual keyword matching (English + French keywords where applicable) to reduce false positives. Complements existing passport_canada pattern. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * feat: Add Canadian PII compliance dataset and tests (57 tests) Adds: - test_ca_patterns.py: 30 unit tests for regex pattern matching (SIN, OHIP, driver's licence, immigration docs, bank account, postal code) - test_ca_policy_e2e.py: 27 end-to-end tests running the full ContentFilterGuardrail pipeline with MASK action — validates detection of real PII and pass-through of clean prompts - canadianPiiCompliancePrompts.ts: 21-prompt compliance dataset for UI evaluation, wired into the main compliancePrompts framework Fixes keyword_pattern alternation ordering in patterns.json — longer alternatives (e.g. "social insurance number") now precede shorter ones ("social insurance") to avoid excessive gap-word count when the regex engine selects the shorter match first. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * feat: Add University of Toronto FIPPA identifier patterns and tests (36 tests) Add 3 UofT institutional identifiers (student/employee number, UTORid, TCard) covered under Ontario FIPPA. Includes pattern definitions, policy template sub-guardrail, compliance prompts, unit tests, and e2e tests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Correct test assertion bug and inaccurate docstring Fix test_utorid_masked checking `result` (dict) instead of `output` (string). Update test_ca_policy_e2e.py docstring to clarify scope vs UofT tests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Address Greptile review feedback - Tighten ca_postal_code keyword_pattern: replace broad "address" with specific compound terms (mailing/street/shipping/home address) - Add missing "PIPEDA" tag to policy_templates.json for discoverability - Add us_phone pattern to test_ca_policy_e2e.py setup to match deployed template - Add phone number e2e test for complete coverage Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Tighten patterns to reduce false positives and add missing test coverage - ca_sin: reject leading-zero SINs ([1-9]\d{2}), set allow_word_numbers to false - ca_immigration_doc: require separators in UCI pattern (prevent bare \d{10} match) - uoft_utorid: qualify generic keywords (acorn -> acorn login, quercus -> quercus login) - uoft_tcard: remove generic keywords (student card, id card, library card) that overlap with credit card contexts; keep only UofT-specific terms (tcard, campus card) - Add visa/mastercard/amex/iban patterns to test_ca_policy_e2e.py setup to match deployed template; add Visa card masking test - Add test verifying "student card" no longer triggers TCard redaction Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>