bytelyst-devops-tools/docs
Hermes VM efdf41f2bb feat(dashboard): Phase 7 — gate /hermes/ops on requireAdmin + Phase 4 brief
Two threads, one commit because they're both about closing dashboard-
side roadmap items that don't need their own slice.

Phase 7 — auth coverage on hermes routes:
  - `/api/hermes/ops` was the last unauthenticated Hermes endpoint —
    despite revealing instance / gateway / Tailscale-IP / backup-repo /
    warnings state. Now gated on `requireAdmin`, matching the new
    `/api/hermes/telemetry/:instance` from the previous slice and
    every other privileged route in this backend.
  - Privilege-surface table in `dashboard/DEPLOYMENT.md` updated to
    show `requireAdmin` for both Hermes routes; the previous
    "no auth, read-only ops snapshot" carve-out is gone.
  - Roadmap Phase 7 ticks for "require auth on hermes routes" + "keep
    hermes data private-only" with verification notes.

Phase 4 — Bheem/Uma parity (delegation brief):
  - Phase 4 is **VM ops, not codebase work** — it requires sudo on the
    Hostinger VM, Uma-owned GitHub credentials, and Telegram bot
    tokens. None of it is editable in this repo. Wrote
    `docs/prompts/phase4-bheem-uma-parity.md` as a self-contained
    delegation brief covering: Uma persistent-backup repo + timer,
    Uma health watchdog, first restore rehearsal, quarterly drill
    reminder, and the dashboard-side verification (the /hermes/ops +
    /hermes/telemetry/bheem outputs that confirm the gap is closed).
  - Phase 4 section header in the roadmap now points at the brief
    and explains why the checkboxes stay open in this repo.

Verified: backend 57/57 unit tests , web 7/7 E2E  (Playwright
mocks bypass requireAdmin since they fulfill before the request
reaches Fastify; real auth'd users get the same flow as every other
admin route). Lint 0 errors, build green.

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-30 07:59:48 +00:00
..
adr docs(docker): roadmap v8 — peakpulse Phase A done + A3 ADR-0001 accepted 2026-05-27 02:54:08 -07:00
prompts feat(dashboard): Phase 7 — gate /hermes/ops on requireAdmin + Phase 4 brief 2026-05-30 07:59:48 +00:00
docker-build-optimization-roadmap.md docs(roadmap): record post-roadmap follow-ups complete (v15) 2026-05-28 18:07:36 -07:00
getting-started.md setup: handle managed python pre-commit installs 2026-05-05 03:26:55 +00:00
hermes_dashboard_roadmap.md Add Hermes snapshot diff view 2026-05-27 21:05:57 +00:00
hermes_dashboard_v2_roadmap.md feat(dashboard): Phase 7 — gate /hermes/ops on requireAdmin + Phase 4 brief 2026-05-30 07:59:48 +00:00
hermes-disaster-recovery.md Add Google Drive emergency bundle upload 2026-05-27 12:08:41 +00:00
hermes-operations.md Add Hermes snapshot diff view 2026-05-27 21:05:57 +00:00
hermes-setup-upgrade-roadmap.md Add Hermes dashboard improvement backlog 2026-05-27 21:02:23 +00:00
hostinger-vm-maintenance.md add HostingerVM health-check and cleanup scripts 2026-05-27 18:53:20 +00:00
llm-utility-workflows.md docs: document local LLM utility workflows 2026-05-28 00:21:06 +00:00
operations.md feat: add gitea backup timer assets 2026-05-27 18:53:20 +00:00
remove_user_interactive.md docs: align repo navigation and operations notes 2026-05-05 03:11:46 +00:00
repo-map.md docs(repo-map): register agent-queue tool directory 2026-05-28 21:35:59 -07:00
tooling-status.md Add safe templates and tooling adoption docs 2026-05-05 01:16:27 +00:00
VM_OBSERVABILITY_ROADMAP.md feat(vm): fix devops-backend VM module — Phase 0.1 complete 2026-05-27 21:13:45 +00:00
vm-exposure-inventory.md fix: bind DevOps dashboard ports to loopback 2026-05-27 21:55:46 +00:00
vm-security-blind-spots-roadmap.md fix: bind DevOps dashboard ports to loopback 2026-05-27 21:55:46 +00:00