chore(security): PII fixture audit — all PII_ARRAY_FIELDS clean across tier-coverage#138
Open
petterlindstrom79 wants to merge 1 commit into
Open
chore(security): PII fixture audit — all PII_ARRAY_FIELDS clean across tier-coverage#138petterlindstrom79 wants to merge 1 commit into
petterlindstrom79 wants to merge 1 commit into
Conversation
Sweeps apps/api/tests/fixtures/tier-coverage/ for legal_representatives arrays carrying unredacted PII from pre-PR-136/137 captures. Handlers audited: brazilian, cz, french, greek, italian, japanese, norwegian, slovak (8 with PII_ARRAY_FIELDS keys); plus 25 others with no PII keys present. Handlers re-captured: none — all clean (every PII array field present across all fixtures is "[REDACTED]", null, or empty). Git history check: zero commits ever pushed unredacted PII through apps/api/tests/fixtures/tier-coverage/. The PR #125 / #136 / #137 inline pattern (add field to PII_ARRAY_FIELDS during the capture run that surfaced it) caught the GDPR exposure before any commit. Verifies post-PR-136/137 capture-tier-fixtures.ts PII_ARRAY_FIELDS scrubber catches legal_representatives going forward. Refs Notion to-do 36467c87082c81178053cb47e30a2c9f Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
legal_representativestoPII_ARRAY_FIELDSinline).apps/api/tests/fixtures/tier-coverage/*.jsonfor the fullPII_ARRAY_FIELDSset (not justlegal_representatives). All clean. Every present PII-array field is"[REDACTED]",null, or[].git log -p --all -- apps/api/tests/fixtures/tier-coverage/. Zero commits ever pushed unredacted PII through that directory.Verification
apps/api/scripts/capture-tier-fixtures.ts:91includeslegal_representatives; scrubber at line 109 redacts populated arrays.PII_ARRAY_FIELDSkeys (br, cz, fr, gr, it, jp, no, sk); all show"[REDACTED]"/null/[]. Other 25 carry no PII-array keys.tsc --noEmit/ tests not re-run (docs-only diff).Reviewer findings
Six-lens review (Pass A technical + Pass B product) returned zero HIGH. MEDIUM findings broken into two categories:
Inline-applied to the audit doc:
legal_representatives.T[]→ string), so any future fixture-typed consumer must skip or castPII_ARRAY_FIELDSkeys.^\+filter only catches additions; an added-then-reverted commit would be invisible. Conclusion still defensible for the CZ incident because the pre-commit catch meant the unredacted fixture never reachedgit commit.Flagged as out-of-scope follow-up (A1) — surfaced by review, not in audit scope:
Two manifest
output_schema.exampleblocks committed tomaincontain real natural-person names (same class of PII the CZ near-miss surfaced):`PII_ARRAY_FIELDS` does not touch `manifests/` (the scrubber only runs at capture time on executor output). Recommend chat-side opens a new to-do to either redact these names or replace with synthetic example data in the manifests. Not in scope for this PR.
Cross-repo
None — backend-only audit.
Test plan
Refs Notion to-do `36467c87-082c-8117-8053-cb47e30a2c9f`.
🤖 Generated with Claude Code