Skip to content

feat: sensitive data northbound redaction#452

Open
steiler wants to merge 4 commits into
mainfrom
feat/sensitive-data-northbound
Open

feat: sensitive data northbound redaction#452
steiler wants to merge 4 commits into
mainfrom
feat/sensitive-data-northbound

Conversation

@steiler

@steiler steiler commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

Implements sensitive-data northbound redaction: operators can mark key-pruned schema paths as sensitive on intent write; northbound responses redact matching leaves to *** while southbound apply stays unchanged. Merged views (GetIntent(running), BlameConfig, deviation streaming) use the union of all non-running intents’ markers so priority changes cannot expose secrets; single-intent GetIntent uses only that intent’s markers. include_sensitive on GetIntentRequest / BlameConfigRequest is threaded through as the admin bypass hook in the render pipeline.

Datastore maintains a reverse index for sensitive-path unions; TransactionSet persists sensitive_paths atomically with the intent blob. Tree render ops use RenderOpts / XMLRenderOpts / XPathRenderOpts; blame and deviation paths mask values consistently with render.

Dependencies

go.mod pins pre-merge commits so CI can build without local checkouts (replace with tagged releases after merge):

Module Pseudo-version PR
github.com/sdcio/goyang v1.6.2-2.0.20260608121857-4668a077cf72 goyang#4
github.com/sdcio/sdc-protos v0.0.55-0.20260610090020-aeb8edf494c4 sdc-protos#123

Related: schema-server#244 (schema Sensitive flag from YANG).

Test plan

  • go test ./...
  • Manual: GetIntent / BlameConfig with and without include_sensitive
  • Confirm deviation / watch paths do not leak sensitive values when marked

Implement the sensitive-data PRD: key-pruned path markers unioned across
intents for merged views, RenderOpts-driven `***` redaction in JSON/XML/proto/
XPath output, BlameConfig and deviation masking, admin bypass via
include_sensitive, and atomic TransactionSet persistence of sensitive_paths
with a datastore reverse index for O(1) lookup.

Co-authored-by: Cursor <cursoragent@cursor.com>
@steiler steiler requested a review from a team as a code owner June 10, 2026 08:35
…sions

Replaces the local-path replace directives with remote pseudo-version
references so CI and collaborators can build without local checkouts.

Pinned commits:
  - sdcio/goyang       v1.6.2-2.0.20260608121857-4668a077cf72 (PR#4)
  - sdcio/sdc-protos   v0.0.55-0.20260610090020-aeb8edf494c4  (PR#123)

Replace with tagged releases once PRs are merged.

Co-authored-by: Cursor <cursoragent@cursor.com>
steiler and others added 2 commits June 10, 2026 11:14
Makes the PR description link to docs/prd/sensitive-data/PRD.md valid on
the branch; tracks implementation issues 01–05 for reviewers.

Co-authored-by: Cursor <cursoragent@cursor.com>
@codecov

codecov Bot commented Jun 10, 2026

Copy link
Copy Markdown

@steiler steiler linked an issue Jun 10, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Sensitive Data

1 participant