Integrate AdminLog ingestion into RCON worker
This commit is contained in:
@@ -1,83 +0,0 @@
|
||||
---
|
||||
id: TASK-120
|
||||
title: Integrate AdminLog ingestion into RCON historical worker
|
||||
status: pending
|
||||
type: backend
|
||||
team: Backend Senior
|
||||
supporting_teams:
|
||||
- Arquitecto Python
|
||||
roadmap_item: rcon-full-data
|
||||
priority: high
|
||||
---
|
||||
|
||||
# TASK-120 - Integrate AdminLog ingestion into RCON historical worker
|
||||
|
||||
## Goal
|
||||
|
||||
Automatically ingest RCON AdminLog events during the periodic RCON historical worker capture flow.
|
||||
|
||||
## Background
|
||||
|
||||
HLL Vietnam is moving to an RCON-first historical/live data platform. Manual AdminLog ingestion already exists and has been validated with duplicate-safe canonical message storage. The periodic worker should keep collecting this data automatically after or alongside existing session/gamestate capture.
|
||||
|
||||
## Constraints
|
||||
|
||||
- Do not reactivate Elo/MMR.
|
||||
- Do not reintroduce Comunidad Hispana #03.
|
||||
- Do not store secrets, runtime DB files or `backend/runtime`.
|
||||
- Do not modify Docker behavior.
|
||||
- Do not change frontend files.
|
||||
- Preserve existing writer lock behavior.
|
||||
- If AdminLog ingestion fails for one target, normal session capture for other targets must continue.
|
||||
- Public scoreboard remains optional enrichment/fallback only.
|
||||
|
||||
## Allowed Changes
|
||||
|
||||
- `backend/app/rcon_historical_worker.py`
|
||||
- tests only if needed for worker payload behavior
|
||||
- this task file when moving it through the workflow
|
||||
|
||||
## Implementation Requirements
|
||||
|
||||
- Work from a dedicated branch for this task.
|
||||
- Read first:
|
||||
- `AGENTS.md`
|
||||
- `ai/architecture-index.md`
|
||||
- `ai/repo-context.md`
|
||||
- `ai/orchestrator/backend-senior.md`
|
||||
- `backend/app/rcon_historical_worker.py`
|
||||
- `backend/app/rcon_admin_log_ingestion.py`
|
||||
- `backend/app/rcon_admin_log_storage.py`
|
||||
- Reuse existing AdminLog ingestion and storage modules.
|
||||
- Add a configurable AdminLog lookback window, defaulting to 60 minutes.
|
||||
- Prefer project-consistent naming such as `HLL_BACKEND_RCON_ADMIN_LOG_LOOKBACK_MINUTES=60`.
|
||||
- Do not hardcode `1440` for the periodic worker.
|
||||
- Keep the manual backfill command able to support `--minutes 1440`.
|
||||
- Extend worker results with:
|
||||
- `admin_log_events_seen`
|
||||
- `admin_log_events_inserted`
|
||||
- `admin_log_duplicate_events`
|
||||
- `admin_log_failed_targets`
|
||||
- Keep changes deterministic and idempotent.
|
||||
|
||||
## Validation Commands
|
||||
|
||||
- `python -m compileall backend/app`
|
||||
- `docker compose up -d --build backend rcon-historical-worker`
|
||||
- `docker compose exec backend python -m app.rcon_historical_worker capture`
|
||||
- Run AdminLog ingestion twice and confirm dedupe still reports duplicates on the second run.
|
||||
|
||||
## Manual Verification Steps
|
||||
|
||||
- Confirm worker capture returns normal session/gamestate data plus AdminLog metrics.
|
||||
- Confirm an AdminLog failure for one target is reported without breaking all target capture.
|
||||
- Confirm `/health` still works.
|
||||
- Confirm `git diff --name-only` matches the allowed scope.
|
||||
|
||||
## Git Requirements
|
||||
|
||||
- Create a dedicated branch for this task, for example `codex/task-120-adminlog-worker-ingestion`.
|
||||
- Run relevant validation before committing.
|
||||
- Stage only intended files.
|
||||
- Commit the completed implementation.
|
||||
- Push the branch to origin.
|
||||
Reference in New Issue
Block a user