validation: surface write-schema redact annotations on projections of split-schema collections#3147
Open
GregorShear wants to merge 2 commits into
Open
validation: surface write-schema redact annotations on projections of split-schema collections#3147GregorShear wants to merge 2 commits into
GregorShear wants to merge 2 commits into
Conversation
… split-schema collections Redaction runs at write time against the write schema, so a redact annotation reachable only through the write schema is in force even when a standalone readSchema does not carry it. Both skim_projections (the dashboard path, via flow-web skim_collection_projections) and full build validation reported redact: UNSET for these locations. walk_collection_projections now fills in inference.redact from the write schema for any projection whose read-schema inference has no strategy of its own; the read schema wins when both are annotated. Extracts assemble::inference_redact for reuse. A redact strategy on a key location remains checked against the read schema only: connector-managed write schemas may annotate a key which flow://relaxed-write-schema then strips from the read path (6e58bdd). Adds snapshot tests over skim_projections covering single-schema, ref-style, and standalone read-schema collections plus error cases, and a WASM acceptance test of the flow-web entry point.
The GitHub NPM registry doesn't allow republishing an existing version, so the bump is required for the redact-inference fix to reach the dashboard.
jgraettinger
approved these changes
Jul 10, 2026
jgraettinger
left a comment
Member
There was a problem hiding this comment.
LGTM
A bit more new test SLOC than the change warrants IMO 🤷. As a general tip try asking for table driven cases.
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.
Fixes redaction bug reported in slack.
A
redactannotation reachable only through the write schema is in force — redaction runs at write time — but projections of collections with a standalonereadSchemareportedredact: UNSETfor it, both from full build validation and fromskim_projections(the dashboard path via flow-web'sskim_collection_projections).walk_collection_projectionsnow fills ininference.redactfrom the write schema for any projection whose read-schema inference has no strategy of its own; the read schema wins when both are annotated. Extractsassemble::inference_redactfor reuse.A redact strategy on a key location is still checked against the read schema only: connector-managed write schemas may annotate a key which
flow://relaxed-write-schemathen strips from the read path (6e58bdd).Tests: snapshot tests over
skim_projections(single schema, ref-style read schema, standalone read schema, error cases) and a WASM acceptance test of the flow-web entry point.