Repository navigation
feat(ui): wire the lineage and changes pages to the live control API - #1373
Merged
Merged
Conversation
Add a person read of a target's published snapshots with the subjects each one changed, behind the same listing authorisation as jobs. The Changes page reads it, and the Lineage page builds its graph and inspector from the catalog listing, so neither page needs mock data.
The publication history shows a changed role as a bare `role:` to people without the role.assign action server-wide, and the Changes page lists it as "a role".
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.
Why
The Lineage and Changes pages still needed reads that the control API didn't have, so the served build hid them.
Changes
GET /api/control/locations/{location_id}/targets/{target}/snapshots(listPersonSnapshots). It returns a target's publications newest first (limit 20 by default, capped at 100). Each one carries its git revision, dirty flag, author, environment hash, sqb version, and the subjects it changed, with no content hashes. It uses the same listing gate as jobs and triggers.role:, which the page shows as "a role".Verification
test_reads.rschecks newest-first order, changed subjects only, the limit, the dirty flag, and role names for an administrator and a viewer. The snapshots path is added to the role matrix intest_person_sessions.rs. Both pass on SQLite and PostgreSQL.make check-cipasses.sqb serverwith a synthetic DuckDB project: the lineage graph shows edges, and Changes shows a role's name to an administrator and "a role" to a viewer.