Nodes: Update All Nodes button (fleet-wide update request) #226

Merged
logan merged 1 commits from feat/update-all-nodes into main 2026-10-05 00:29:58 -04:00
Owner
  • Endpoint: new admin-only POST /nodes/request-update-all. For every approved node it does what Update Node does: sets update_requested_at for the HTTPS updater and sends the MQTT node_update nudge. Pending and rejected nodes are skipped (#195).
  • Button: admin-only "Update All Nodes" on the Nodes page, with a confirm step. The result lists which nodes couldn't be reached over MQTT; those pick the update up on their next check-in.

Tests: c2-core 665 passed, including 2 new tests. Frontend tsc --noEmit exit 0.

🤖 Generated with Claude Code

- **Endpoint:** new admin-only `POST /nodes/request-update-all`. For every approved node it does what Update Node does: sets `update_requested_at` for the HTTPS updater and sends the MQTT `node_update` nudge. Pending and rejected nodes are skipped (#195). - **Button:** admin-only "Update All Nodes" on the Nodes page, with a confirm step. The result lists which nodes couldn't be reached over MQTT; those pick the update up on their next check-in. Tests: c2-core `665 passed`, including 2 new tests. Frontend `tsc --noEmit` exit 0. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
logan added 1 commit 2026-10-05 00:29:48 -04:00
POST /nodes/request-update-all (admin) does what Update Node does for each
approved node: flags update_requested_at for the HTTPS updater and nudges it
over MQTT. Pending and rejected nodes are skipped. Admin-only button on the
Nodes page reports which nodes weren't reachable over MQTT.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
logan merged commit 2d8525678e into main 2026-10-05 00:29:58 -04:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: logan/server-26#226