Commit Graph

  • a28bda2031 smoke env: systemd --user unit + Make targets so the dev server outlives shell tool boundaries steve 2026-05-07 22:55:36 +01:00
  • 51192c3603 ui+store: dashboard polish — repo size projection + header alignment steve 2026-05-07 22:55:21 +01:00
  • 06fd440dd4 ui: chart polish — rotated y-axis labels, wider viewBox, single-day fallback steve 2026-05-07 22:55:12 +01:00
  • 28c8b58f93 ui: per-host Jobs sub-tab; drop unused Settings stub steve 2026-05-07 22:49:10 +01:00
  • 6ef58a707e ws: synthesize job.finished from update watcher so browser stream wakes up steve 2026-05-07 20:32:48 +01:00
  • 001575ae9c tasks: P6-03 done, repo size trend graphs steve 2026-05-07 19:20:05 +01:00
  • 28cc55711d test: assert Trend panel renders on full repo page steve 2026-05-07 19:14:34 +01:00
  • 98cc490ea8 ui: trend panel + range selector on host repo page steve 2026-05-07 19:10:59 +01:00
  • be4ac02ddd ui: 30d repo-size sparkline on every dashboard host row steve 2026-05-07 19:02:35 +01:00
  • 6e8a1c5b45 web/sparkline: guard days[i] against shorter days slice in RenderChart steve 2026-05-07 18:58:33 +01:00
  • e7d25cd704 web/sparkline: two-axis trend chart with hover dots steve 2026-05-07 18:55:31 +01:00
  • db88c5a7d1 web/sparkline: inline-SVG sparkline renderer (empty / single / multi) steve 2026-05-07 18:50:23 +01:00
  • bb2a88be24 ws: record daily repo stats history alongside current upsert steve 2026-05-07 18:46:26 +01:00
  • b9c7ec6ebf store: history table helpers (upsert/list, COALESCE preserves prior values) steve 2026-05-07 18:43:20 +01:00
  • da518de3e6 store: migration 0023 host_repo_stats_history steve 2026-05-07 18:39:44 +01:00
  • 55453300b0 Merge pull request 'tidy: project finished backup jobs onto host row + smoke doc tweaks' (#20) from tidy-up-last-backup-projection into main steve 2026-05-07 16:58:16 +00:00
  • 0a75b82c17 fix: project finished backup jobs onto host row + smoke path tweaks steve 2026-05-07 17:54:53 +01:00
  • b60c2c6f6b Merge pull request 'P6-01 + P6-02: agent self-update + fleet update' (#19) from p6-agent-self-update into main steve 2026-05-07 16:49:25 +00:00
  • 1909f71f90 tasks: mark P6-01 + P6-02 done with as-shipped block steve 2026-05-06 22:33:33 +01:00
  • dddff10b99 agent unit: allow writes to /usr/local/bin for self-update steve 2026-05-06 22:32:50 +01:00
  • 39304b08d0 ui: dashboard hosts-behind tile + filter steve 2026-05-06 22:20:54 +01:00
  • 9bcd8bc5fe ui: update chip + per-host button steve 2026-05-06 22:20:40 +01:00
  • e6cfb1cd9f ui: fleet update page + endpoints steve 2026-05-06 22:20:03 +01:00
  • 9d5775fb47 p6-01/02: agent self-update + fleet update server cluster steve 2026-05-06 22:03:50 +01:00
  • c37954aa3f store: migrations 0021+0022 + fleet_updates CRUD steve 2026-05-06 21:47:54 +01:00
  • efed96f67a agent: command.update handler + updater package (Linux + Windows) steve 2026-05-06 21:42:50 +01:00
  • f31f6edde7 http: expose GET /api/version steve 2026-05-06 21:39:13 +01:00
  • 516c50fa16 version: build-time version package + Makefile ldflags wiring steve 2026-05-06 21:38:35 +01:00
  • a8256f5aff tasks: rewrite P6-01/02 around server-bundled agent self-update steve 2026-05-06 21:08:22 +01:00
  • ab7fee0ae7 ci(release): use DEV_TOKEN for registry login v0.9.0 steve 2026-05-06 19:05:54 +01:00
  • ed276813f0 Merge pull request 'testing: bootstrap UI, agent reliability, NS-01..04 + alert username' (#18) from ns-batch-host-ops into main steve 2026-05-05 21:09:17 +00:00
  • 02e4ef7544 testing: bootstrap UI, agent reliability, NS-01..04 + alert username steve 2026-05-05 22:03:15 +01:00
  • ddb46e16b6 Merge pull request 'P5-03 + P5-07: docker-only release path & reference deployment' (#17) from p5-03-docker-release into main steve 2026-05-05 16:36:08 +00:00
  • e8913943f9 p5-07: reference deployment (server-only compose + reverse-proxy docs) steve 2026-05-05 17:15:00 +01:00
  • fb978ad10c p5-03: docker-only release path (drop goreleaser) steve 2026-05-05 15:18:48 +01:00
  • 9abdedf40a Merge pull request 'P4-05: OIDC login (generic, JIT-provisioned)' (#16) from p4-05-oidc into main steve 2026-05-05 13:46:23 +00:00
  • 2e1961beee oidc: merge userinfo claims; tick P4-05 in tasks.md steve 2026-05-05 14:06:28 +01:00
  • e0989e1cef server: build OIDC client at startup; sweep oidc_state on alert tick steve 2026-05-05 13:45:52 +01:00
  • fce7245a51 ui(users): oidc chip on list + readonly fields on edit for OIDC users steve 2026-05-05 13:42:57 +01:00
  • 5154b24fab ui: login page — SSO button + oidc_error banner steve 2026-05-05 13:40:13 +01:00
  • 1cf9cb752f http: local-login rejects auth_source='oidc' users steve 2026-05-05 13:37:07 +01:00
  • d2ffc98f3c http: logout — 303 to end_session_endpoint with id_token_hint for OIDC sessions steve 2026-05-05 13:34:47 +01:00
  • 1fd9dce8a2 http: GET /auth/oidc/callback — JIT-provision, refresh, deny paths steve 2026-05-05 13:30:00 +01:00
  • 746324e65a http: GET /auth/oidc/login — generate state/PKCE, redirect to IdP steve 2026-05-05 13:26:06 +01:00
  • ede014e85b oidc: test stub IdP + happy-path exchange test steve 2026-05-05 13:23:16 +01:00
  • 4594e563ef oidc: client wrapper around go-oidc — discovery, exchange, claim parse steve 2026-05-05 13:20:08 +01:00
  • db2fcdd52e config: OIDCConfig — YAML + env overlay with defaults steve 2026-05-05 13:18:01 +01:00
  • e2976a42e6 store: oidc_state CRUD + 5-minute cleanup steve 2026-05-05 13:15:45 +01:00
  • 14be63510c store: round-trip IDToken on sessions for RP-initiated logout steve 2026-05-05 13:14:27 +01:00
  • 70aa22e87e store: GetUserByOIDCSubject + scanUser auth_source/oidc_subject steve 2026-05-05 13:12:11 +01:00
  • 154b57a4cd store: extend User with AuthSource/OIDCSubject; Session with IDToken steve 2026-05-05 13:09:49 +01:00
  • c5b29b88b9 store: migration 0019 — users.auth_source/oidc_subject + sessions.id_token + oidc_state steve 2026-05-05 13:08:15 +01:00
  • 1df072a211 Merge pull request 'Phase 4 — P4-07: per-host tags + dashboard chip-row filter' (#15) from p4-07-host-tags into main steve 2026-05-05 10:55:11 +00:00
  • 2421d5d389 ui(tags): edit-button label, Save-tags width, persistent help text steve 2026-05-05 11:23:36 +01:00
  • 168059ae45 feat(hosts): per-host tags edit + dashboard chip-row filter (P4-07) steve 2026-05-05 11:16:09 +01:00
  • c1426110e5 tasks: defer update delivery + observability to Phase 6 steve 2026-05-05 11:05:11 +01:00
  • 3922cbece2 Merge pull request 'Phase 4 — P4-03/04: RBAC + user management' (#14) from p4-03-04-rbac-user-mgmt into main steve 2026-05-05 10:01:43 +00:00
  • 6295faad64 ui(users): banner explaining the disabled-username re-enable flow steve 2026-05-05 10:43:11 +01:00
  • 2d9e53b025 ui(users): record last_login on /setup + sortable headers steve 2026-05-05 10:31:28 +01:00
  • 0521a2169f tasks: tick P4-03/04 + sweep notes steve 2026-05-05 10:08:05 +01:00
  • c98eb19adb alert: piggy-back expired-setup-token cleanup on the engine tick steve 2026-05-05 10:04:31 +01:00
  • 2dd8f3c3be ui: /settings/account self-service password change steve 2026-05-05 10:03:41 +01:00
  • 2f3292aebf ui: /settings/users edit form + disable/enable/regenerate/force-logout steve 2026-05-05 10:01:33 +01:00
  • 04a413eb55 ui: /settings/users/new + /setup-link page steve 2026-05-05 09:59:20 +01:00
  • 211f11e460 ui: /settings/users list page steve 2026-05-05 09:55:31 +01:00
  • 426b06d43d http: POST /api/account/password — self-service password change steve 2026-05-05 09:52:10 +01:00
  • 18affc1f16 http: regenerate setup link + force-logout steve 2026-05-05 09:48:13 +01:00
  • 53016aee93 http: disable/enable user with last-admin guard + session kick steve 2026-05-05 09:44:15 +01:00
  • 9e044fd7b0 http: GET/PATCH /api/users/{id} with last-admin guard steve 2026-05-05 09:41:32 +01:00
  • 7c241c55d1 http: POST /api/users — create + setup-token + audit steve 2026-05-05 09:38:59 +01:00
  • e5f79902fd http: GET /api/users (list) steve 2026-05-05 09:34:11 +01:00
  • 81f2852eb1 http: POST /setup — set password, drop session, audit setup_completed steve 2026-05-05 09:31:02 +01:00
  • 0407aa420b http: GET /setup landing page with expiry handling steve 2026-05-05 09:27:53 +01:00
  • 56108ffc33 http: session/login reject disabled users; mid-session disable kicks immediately steve 2026-05-05 09:22:07 +01:00
  • c75777b60f http: re-group routes by role band, fail-closed admin default steve 2026-05-05 09:19:15 +01:00
  • 085fa9684b http: gated test for admin-band reject of operator (lands fully in B4+E1) steve 2026-05-05 09:14:55 +01:00
  • 529104b8e4 http: requireRole middleware + 403 forbidden page steve 2026-05-05 09:13:51 +01:00
  • 2ba561410f http: test helpers — makeUser, loginAs steve 2026-05-05 09:10:26 +01:00
  • 8727d6bacc http: roleAtLeast helper for the role hierarchy steve 2026-05-05 09:09:01 +01:00
  • e76a383813 store: DeleteSessionsByUserID for force-logout steve 2026-05-05 09:08:04 +01:00
  • 93d857d995 store: user_setup_tokens CRUD + cleanup-expired steve 2026-05-05 09:06:54 +01:00
  • dafdfcda3f store: lowercase username, email/disable helpers, last-admin count steve 2026-05-05 09:04:51 +01:00
  • c6fbe7c0e0 store: extend User struct with Email, DisabledAt, MustChangePassword steve 2026-05-05 09:02:03 +01:00
  • a1d307fafa store: migration 0018 — user_setup_tokens steve 2026-05-05 09:00:35 +01:00
  • 9712c65b04 store: migration 0017 — users.email, disabled_at, must_change_password steve 2026-05-05 08:59:01 +01:00
  • 45d4844937 Merge pull request 'ci: shard test job + cheap argon2 in test mode' (#13) from ci-faster-tests into main steve 2026-05-05 07:44:30 +00:00
  • b2983aed52 ci: shard test job + cheap argon2 in test mode steve 2026-05-05 08:40:50 +01:00
  • c1fd5a3526 Merge pull request 'feat(audit): P3-08 — audit log UI with filters, sort, CSV export, payload modal' (#12) from p3-08-audit-ui into main steve 2026-05-05 07:17:25 +00:00
  • 4f66cc2b34 feat(audit): clickable column headers with asc/desc sort steve 2026-05-05 08:15:22 +01:00
  • deb8b874ca audit(csv): drop user_id and target_id columns steve 2026-05-05 08:05:41 +01:00
  • 86fe569ea0 feat(audit): CSV export, absolute timestamps, payload modal steve 2026-05-05 08:00:53 +01:00
  • 16c77a8cc5 feat(audit): P3-08 — audit log UI with filters steve 2026-05-05 07:49:25 +01:00
  • 4f94ddbbcb Merge pull request 'feat(alerts): live refresh table with toggle + severity colour cues' (#11) from alerts-live-refresh into main steve 2026-05-05 06:42:21 +00:00
  • d46adabeec alerts: 5s polling cadence + live toggle + severity colour cues steve 2026-05-04 23:35:03 +01:00
  • 595656ed59 feat(alerts): live-refresh the table every 15s while the tab is visible steve 2026-05-04 23:30:19 +01:00
  • 85c62741b5 feat(channels): include event verb in ntfy title + smtp subject (#10) steve 2026-05-04 22:25:38 +00:00
  • bc5ce12957 ui(alerts): clarify Acknowledge vs Resolve (#9) steve 2026-05-04 22:25:35 +00:00
  • 38090dd457 Merge pull request 'Phase 3 — Alerts: per-source-group dedup' (#8) from p3-alerts-dedup into main steve 2026-05-04 22:11:08 +00:00
  • 350be3f19d feat(alerts): per-source-group dedup so two failing backups produce two alerts steve 2026-05-04 22:58:29 +01:00
  • 9d7a714102 Merge pull request 'Phase 3 — Alerts (P3-05/06/07)' (#7) from p3-alerts into main steve 2026-05-04 21:51:16 +00:00