Repository navigation
feat(ui): wire the jobs and triggers pages to the live control API - #1336
Merged
Merged
Conversation
…oups
GET /api/control/locations/{location_id}/targets/{target}/jobs returns
each current job and group with its kind, description, selection,
concurrency groups and snapshot, under the same authorization as the
trigger listing. Settings stay out of person reads.
Validated: api and declarations tests on SQLite and PostgreSQL,
including the session role matrix and the denial matrix.
kvlonge
enabled auto-merge (squash)
November 7, 2026 04:15
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 jobs and triggers pages in the web UI still ran on mock data. People need to see a target's published jobs and triggers, launch a job, and pause, resume or reset triggers from the live control API.
Changes
GET /api/control/locations/{location_id}/targets/{target}/jobs(listPersonJobs). It returns each published job or group with its description, resolved selection and concurrency groups. It is authorized like the trigger listing, and job settings are not returned.ticksandsnapshottopics, so trigger toggles update live.Known follow-up: the jobs page makes one ticks request per trigger on every refresh, so its request count grows with the number of triggers.
DuckShop: not applicable. This adds a control API read and UI wiring; no project shape, data value or lifecycle sequence changes.
Verification
cargo test -p sqlbuild-orchestration --lib -- api:: declarations::on SQLite and PostgreSQL, including the per-role jobs listing and the denial matrix.sqb serversession: jobs list, pause and resume, run now, job detail, triggers list, schedule detail, reset to default and sensor cursor reset, confirmed in the security audit log.make check-ciand the public-repository scan.