feat: log bundle export with PII sanitization option #51
Labels
No labels
compliance
demo
deployment
docs
enhancement
parser
patterns
performance
security
ux
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/turnstone#51
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The Bundles view currently exports raw log entries. For enterprise or support contexts, operators need to share bundles with third parties (vendors, support teams) with sensitive fields redacted.
Features:
REDACT_FIELDSconfig: list of regex patterns to scrub fromMESSAGEfield before export (e.g. IP addresses, hostnames, usernames)Default redaction patterns (opt-in):
Acceptance criteria:
Implemented:
_redact_text()inincidents.pywith 5 compiled regex patterns (IPv4, email, user=, host=, password=)build_bundle(sanitize=False)— opt-in redaction applied per log entry textsent_bundlesSQLite table (schema inpipeline.py, auto-created on startup)record_sent_bundle()called on every bundle GET and every bundle sendlist_sent_bundles()exposed atGET /api/sent-bundlesPOST /api/incidents/{id}/send?sanitize=truepasses flag throughGET /api/incidents/{id}/bundle?sanitize=truerecords export + applies redactionCompliance note: GDPR anonymization disclaimer is in
docs/compliance/checklist.md— anonymized bundles cannot be selectively deleted post-export.