Repository navigation
Capture privacy per project: metadata, redacted or full - #58
Merged
Merged
Conversation
… a stored-data report metadata / redacted / full per project (project_settings, migration 20261018_settings), applied in the SDK routes, the Manitos ingest and OTLP through app/capture.py. A project without a mode keeps each path's default; OBSERVATORY_CAPTURE_DEFAULT overrides them. GET /v1/privacy/projects reports what the latest spans hold (inputs, outputs, content-like attributes, sensitive patterns); enforce (explicit confirm) rewrites stored data. Privacy page. Redaction is pattern-based. Roadmap step 7 done.
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.
Step 7 of docs/roadmap.md.
metadata(no input/output; content-like attributes dropped),redacted(emails, phones, Luhn-valid cards, SSN-shaped numbers, bearer/JWT/API-key shapes and secret-looking keys masked; also span and trace metadata),full. Stored inproject_settings(migration20261018_settings, full downgrade; up→down→up on SQLite, Postgres via CI).app/capture.py: the three SDK trace routes, the Manitos ingest (apply_envelope) and OTLP. Server-side, so it does not depend on the sender.OBSERVATORY_CAPTURE_DEFAULToverrides the defaults. The OTLP-specific attribute filter moved intocapture.py(same behaviour)./v1/privacy/projects: list with a report from the latest 2000 spans per project (with input, with output, content-like attributes, sensitive patterns),PUT/DELETEthe mode, andPOST …/enforce(needsconfirm) to rewrite stored data — irreversible, so it asks.manitosproject showed 0 stored inputs/outputs; no overflow at 390 px.Limits (docs/privacy.md): redaction is pattern-based, not NER (names/addresses are not detected); the attribute filter looks at key names; SDK traces posted without a project id have no project to configure.