Admin frontend: images, networks, storage, audit, plans, and honest notices for the rest #3

Merged
Luxxy merged 1 commit from phase-2-3-inventory-operations into main 2026-08-02 21:36:16 +00:00
Owner

Every item in the operator sidebar pointed somewhere; four of them pointed at
nothing. Images, networks, storage and audit have had working, mounted
backends since Phase 2 and 3 — I simply never built their frontend pages, so
clicking them hit the router's catch-all 404. Plans had a read-only customer
catalogue but no way for an operator to create one, which meant the
create-instance wizard had no way to ever have real data outside of a manual
SQL insert.

  • api/admin/plans, repositories/plans::insert: plan creation, validated before
    it reaches the schema's own CHECK constraints so an operator sees "snapshot
    limit must be at least 1" instead of a database error. No edit route for an
    existing plan's sizes — changing what VPS-4 includes after customers are on
    it changes a deal they already agreed to; retiring and replacing is the only
    path
  • pages/admin/{images,networks,storage}: read the same node inventory the
    customer catalogue draws from, with the visibility toggles that opt an
    image or network into that catalogue. Storage has no toggle at all, matching
    the backend's own design: a customer never picks a pool
  • pages/admin/audit: filterable by action and by failures-only, since a
    refused attempt is exactly what an investigation looks for
  • pages/admin/{users,projects,settings}: honest PhaseNotice pages rather than
    a 404. These three were never in the documented six-phase plan this panel
    follows — full account and project administration is out of scope, and the
    notice says so rather than implying it is coming next

941 tests passing, clippy clean. Verified live: all eight sidebar links now
render; created a plan through the new dialog and watched it appear
immediately in the customer wizard.

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

Every item in the operator sidebar pointed somewhere; four of them pointed at nothing. Images, networks, storage and audit have had working, mounted backends since Phase 2 and 3 — I simply never built their frontend pages, so clicking them hit the router's catch-all 404. Plans had a read-only customer catalogue but no way for an operator to create one, which meant the create-instance wizard had no way to ever have real data outside of a manual SQL insert. - api/admin/plans, repositories/plans::insert: plan creation, validated before it reaches the schema's own CHECK constraints so an operator sees "snapshot limit must be at least 1" instead of a database error. No edit route for an existing plan's sizes — changing what VPS-4 includes after customers are on it changes a deal they already agreed to; retiring and replacing is the only path - pages/admin/{images,networks,storage}: read the same node inventory the customer catalogue draws from, with the visibility toggles that opt an image or network into that catalogue. Storage has no toggle at all, matching the backend's own design: a customer never picks a pool - pages/admin/audit: filterable by action and by failures-only, since a refused attempt is exactly what an investigation looks for - pages/admin/{users,projects,settings}: honest PhaseNotice pages rather than a 404. These three were never in the documented six-phase plan this panel follows — full account and project administration is out of scope, and the notice says so rather than implying it is coming next 941 tests passing, clippy clean. Verified live: all eight sidebar links now render; created a plan through the new dialog and watched it appear immediately in the customer wizard. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Admin frontend: images, networks, storage, audit, plans, and honest notices for the rest
Some checks failed
Backend CI / Format, lint and test (pull_request) Failing after 2s
Security / Advisories, licences and sources (pull_request) Failing after 3s
Security / Frontend dependency audit (pull_request) Failing after 33s
Security / No secrets or placeholder credentials committed (pull_request) Failing after 3s
Backend CI / Migrations apply to an empty database (pull_request) Failing after 1s
Frontend CI / Typecheck, lint, test and build (pull_request) Failing after 1m35s
aa0510f412
Every item in the operator sidebar pointed somewhere; four of them pointed at
nothing. Images, networks, storage and audit have had working, mounted
backends since Phase 2 and 3 — I simply never built their frontend pages, so
clicking them hit the router's catch-all 404. Plans had a read-only customer
catalogue but no way for an operator to create one, which meant the
create-instance wizard had no way to ever have real data outside of a manual
SQL insert.

- api/admin/plans, repositories/plans::insert: plan creation, validated before
  it reaches the schema's own CHECK constraints so an operator sees "snapshot
  limit must be at least 1" instead of a database error. No edit route for an
  existing plan's sizes — changing what VPS-4 includes after customers are on
  it changes a deal they already agreed to; retiring and replacing is the only
  path
- pages/admin/{images,networks,storage}: read the same node inventory the
  customer catalogue draws from, with the visibility toggles that opt an
  image or network into that catalogue. Storage has no toggle at all, matching
  the backend's own design: a customer never picks a pool
- pages/admin/audit: filterable by action and by failures-only, since a
  refused attempt is exactly what an investigation looks for
- pages/admin/{users,projects,settings}: honest PhaseNotice pages rather than
  a 404. These three were never in the documented six-phase plan this panel
  follows — full account and project administration is out of scope, and the
  notice says so rather than implying it is coming next

941 tests passing, clippy clean. Verified live: all eight sidebar links now
render; created a plan through the new dialog and watched it appear
immediately in the customer wizard.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Luxxy merged commit 78ab304e9b into main 2026-08-02 21:36:16 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Luxxy/beegoon!3
No description provided.