[DJ Semantic Fingerprint 4] Bulk endpoint for viewing fingerprints + testing fixtures - #2490
Open
philipfweiss wants to merge 14 commits into
Open
philipfweiss wants to merge 14 commits into
philipfweiss wants to merge 14 commits into
Conversation
philipfweiss
marked this pull request as ready for review
September 2, 2026 00:34
philipfweiss
force-pushed
the
semantic-fingerprints-deployment-impact-api
branch
from
September 2, 2026 01:53
1c628be to
d914195
Compare
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 2, 2026 01:53
b2407e9 to
113b682
Compare
philipfweiss
force-pushed
the
semantic-fingerprints-deployment-impact-api
branch
from
September 2, 2026 19:50
d914195 to
63bf44c
Compare
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 2, 2026 19:54
113b682 to
2fde045
Compare
philipfweiss
force-pushed
the
semantic-fingerprints-deployment-impact-api
branch
from
September 3, 2026 01:29
63bf44c to
638e8b5
Compare
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 3, 2026 01:30
2fde045 to
3f838b2
Compare
philipfweiss
force-pushed
the
semantic-fingerprints-deployment-impact-api
branch
from
September 3, 2026 19:27
638e8b5 to
84419d8
Compare
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 3, 2026 19:27
3f838b2 to
765254e
Compare
philipfweiss
force-pushed
the
semantic-fingerprints-deployment-impact-api
branch
from
September 3, 2026 21:34
84419d8 to
1d4520e
Compare
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 3, 2026 21:34
765254e to
43afda8
Compare
added 4 commits
September 4, 2026 13:17
Return server-owned fingerprints and change tiers for deployment results and downstream impacts, including client parsing and unknown-state propagation.
Impact tests now derive expected hashes from complete graph snapshots, matching production parent resolution.
Recover per node during impact analysis so invalid SQL can produce unknown fingerprints without weakening normal deployment parsing.
philipfweiss
force-pushed
the
semantic-fingerprints-deployment-impact-api
branch
from
September 4, 2026 20:21
1d4520e to
52d4f75
Compare
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 4, 2026 20:21
43afda8 to
da51e15
Compare
added 3 commits
September 4, 2026 14:19
Canonicalize required-dimension identities during change detection so equivalent metric specs remain no-ops, and align deployment assertions with the additive fingerprint response fields.
Expose committed namespace-tree hashes so metadata files can bootstrap and reconcile outside deployment previews.
The namespace endpoint now evaluates one current graph and selects its requested rows from the memoized result.
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 4, 2026 21:21
da51e15 to
72dff13
Compare
philipfweiss
force-pushed
the
semantic-fingerprints-deployment-impact-api
branch
from
September 11, 2026 16:25
e137874 to
e9cb0bf
Compare
Base automatically changed from
semantic-fingerprints-deployment-impact-api
to
main
September 11, 2026 17:20
Co-authored-by: Philip Weiss <pweiss@netflix.com>
Co-authored-by: GitHub Actions Bot <actions@github.com>
* Distinguish a re-deployed pre-existing failure from a new one A node whose spec is unchanged but whose stored status is INVALID is deliberately promoted into the update set so that the deployment gets a chance to revalidate it. That is the right thing to do -- the node may well have been broken by something outside this deployment that has since been fixed -- but it made an already-broken, untouched node indistinguishable in the response from one the author just broke. A deployment then failed on nodes its change never touched. Those nodes are now marked `revalidation_only`, so a caller can tell the failures a deployment caused from the ones it inherited, and still sees the recovery when a later deploy fixes the node's upstream. The flag is not on its own enough to excuse a failure, and a later gate must not treat it that way: it does not compare failure reasons, so a node whose own spec never moved can fail for a new reason caused by an edit upstream of it. Attribution has to be "changed, or reachable from something changed", and the inherited breakage surfaces separately as a downstream impact. Additive and observational. Exit codes, gating, and overall pass/fail are untouched, and the field is nullable so deployment rows persisted before it existed still rehydrate. * Trim the comments
Co-authored-by: GitHub Actions Bot <actions@github.com>
✅ Deploy Preview for thriving-cassata-78ae72 canceled.
|
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.
Metadata consumers currently see semantic fingerprints only during deployment previews. This adds
GET /namespaces/{namespace}/semantic-fingerprints?version=1so they can bootstrap a complete baseline and reconcile it against committed server state.The response covers the namespace and its descendants, with sorted node names, sorted owners, and current versioned fingerprints from the server's graph evaluator. Uncomputable nodes and their dependents return
unknown. Unsupported versions are rejected, and existing namespace and node read checks apply.Namespace prefixes are matched literally, so an underscore in
taco_truckcannot pull in nodes fromtacoxtruck.child. The regression checks both unrestricted reads and readers whose grants cover only the requested tree.The Git-backed lunch fixture checks eight snapshot rows, compares six changed fingerprints with deployment-impact predictions after changing a source table, and confirms that two independent nodes keep their hashes. It also covers invalid stored SQL and unsupported versions. The compatibility guide explains version pins, migrations, and rollback.
Builds on the merged deployment-impact work in #2483. The refreshed branch preserves current main's fingerprint and deployment behavior.
Validation
83bc23c92ba9edd2a7b29256768e5ae03ac12762, including all server suites and combined coverage.