Stage 10: admin console & dictionary ops (complaint review, hot-reload, broadcasts) #11

Merged
developer merged 1 commits from feature/stage-10-admin-dictionary into master 2026-06-04 07:27:49 +00:00
Owner

Implements Stage 10 (Admin & dictionary ops).

Console: server-rendered Go templates in the backend at /_gm (galaxy-game style), fronted on the gateway public listener by Basic-Auth + a verbatim reverse proxy (mounted on the edge mux below the h2c wrap). Same-origin CSRF guard on POSTs; no operator identity. Supersedes the Stage 6 gateway-fronts-/api/v1/admin model (drops GATEWAY_ADMIN_ADDR + the backend /api/v1/admin ping; repurposes gateway/internal/admin).

Complaints: migration 00008 (+jetgen) adds disposition/resolution_note/resolved_at/applied_in_version + the deferred status CHECK; resolve → query-derived pending dictionary-change pipeline → mark applied.

Dictionary: hot-reload from BACKEND_DICT_DIR/<version>/ (Registry.LoadAvailable); engine.OpenWithVersions restores resident versions on restart (partially addresses TODO-2).

Broadcasts: backend Telegram-connector client (BACKEND_CONNECTOR_ADDR) for SendToUser / SendToGameChannel (discharges the Stage 9 forward-note).

Unit + full integration suite green locally; gofmt/vet clean. Docs updated (PLAN, ARCHITECTURE, FUNCTIONAL +_ru, TESTING, backend/gateway READMEs).

Implements Stage 10 (Admin & dictionary ops). **Console**: server-rendered Go templates in the backend at `/_gm` (galaxy-game style), fronted on the gateway public listener by Basic-Auth + a *verbatim* reverse proxy (mounted on the edge mux below the h2c wrap). Same-origin CSRF guard on POSTs; no operator identity. Supersedes the Stage 6 gateway-fronts-`/api/v1/admin` model (drops `GATEWAY_ADMIN_ADDR` + the backend `/api/v1/admin` ping; repurposes `gateway/internal/admin`). **Complaints**: migration `00008` (+jetgen) adds disposition/resolution_note/resolved_at/applied_in_version + the deferred status CHECK; resolve → query-derived pending dictionary-change pipeline → mark applied. **Dictionary**: hot-reload from `BACKEND_DICT_DIR/<version>/` (`Registry.LoadAvailable`); `engine.OpenWithVersions` restores resident versions on restart (partially addresses TODO-2). **Broadcasts**: backend Telegram-connector client (`BACKEND_CONNECTOR_ADDR`) for SendToUser / SendToGameChannel (discharges the Stage 9 forward-note). Unit + full integration suite green locally; gofmt/vet clean. Docs updated (PLAN, ARCHITECTURE, FUNCTIONAL +_ru, TESTING, backend/gateway READMEs).
developer added 1 commit 2026-06-04 07:25:31 +00:00
Stage 10: admin console & dictionary ops (complaint review, hot-reload, broadcasts)
Tests · Go / test (push) Successful in 7s
Tests · Integration / integration (push) Successful in 11s
Tests · Go / test (pull_request) Successful in 6s
Tests · Integration / integration (pull_request) Successful in 13s
aafdd46a4b
Server-rendered admin console in the backend at /_gm (internal/adminconsole),
fronted on the gateway's public listener by Basic-Auth + a verbatim reverse proxy
(mounted on the edge mux below the h2c wrap). A same-origin check guards its POSTs;
no operator identity is tracked. This supersedes the Stage 6 gateway-fronts-
/api/v1/admin model: GATEWAY_ADMIN_ADDR and the backend /api/v1/admin ping are
dropped and gateway/internal/admin is repurposed to the verbatim proxy.

- Complaints: migration 00008 (+ jetgen) adds disposition/resolution_note/
  resolved_at/applied_in_version + the deferred status CHECK; resolution feeds a
  query-derived pending dictionary-change pipeline (marked applied after a reload).
- Dictionary hot-reload: per-version subdir BACKEND_DICT_DIR/<version>/ via the new
  Registry.LoadAvailable; engine.OpenWithVersions restores resident versions on
  restart. Partially addresses TODO-2.
- Broadcasts: a backend Telegram-connector client (internal/connector,
  BACKEND_CONNECTOR_ADDR) for SendToUser / SendToGameChannel (discharges the Stage 9
  forward-note).
- Admin reads: account.ListAccounts/CountAccounts/Identities and
  game.ListGames/CountGames/GameByID/ListComplaints/GetComplaint/CountComplaints/
  ResolveComplaint/DictionaryChanges/MarkChangesApplied.
- Tests: adminconsole render, engine reload, same-origin guard, gateway verbatim
  proxy + h2c console mount, inttest complaint pipeline + list/count + /_gm console.
- Docs: PLAN (Stage 10 done + refinements + TODO-2), ARCHITECTURE §1/§5/§6/§12/§13,
  FUNCTIONAL (+_ru), TESTING, backend/gateway READMEs.
developer merged commit 3a640a17a4 into master 2026-06-04 07:27:49 +00:00
developer deleted branch feature/stage-10-admin-dictionary 2026-06-04 07:27:49 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: developer/scrabble-game#11