Skip to content

Persist pii_scrubber decisions with retention policy #274

Description

@kilodesodiq-arch

Problem Statement. anonymize() returns a result; that result is logged (potentially
exposing anonymized text) or dropped. Long-term, the audit trail of "we removed PII X
from doc Y" is important.

Technical Context. app/ai-service/services/pii_scrubber.py.

Expected Outcome. Successful anonymizations are persisted to a periodic store
(pii_decisions table or Postgres), with a pii_decisions_retention_days config.

Acceptance Criteria.

  • E2E test verifies that after a month, decisions are pruned.
  • Search API (/v1/ai/pii-decisions) returns recent decisions for auditors.

Files or modules likely to be affected.
app/ai-service/services/pii_scrubber.py,
new app/ai-service/persistence/pii_decisions.py.

Difficulty. Medium
Estimated effort. M


Test Coverage — Issues 67–74


Backlog item #66 from `docs/maintainer-issue-backlog.md.

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial Campaign | FWC26Campaign: Official Campaign | FWC26area:ai-serviceAI service (FastAPI) areakind:complianceBacklog label: kind:compliancekind:dataBacklog label: kind:data

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions