fix: restore historical rcon-first fallback policy
Restore historical RCON-first policy with public scoreboard as fallback only. Keep Elo/MMR paused and server 3 out of default targets.
This commit is contained in:
23
README.md
23
README.md
@@ -77,19 +77,18 @@ El repositorio ya incluye:
|
||||
- `docker-compose.yml`
|
||||
- `backend/.env.example`
|
||||
|
||||
Selección de proveedor por entorno hoy:
|
||||
Seleccion de proveedor por entorno hoy:
|
||||
|
||||
- desarrollo:
|
||||
- `HLL_BACKEND_LIVE_DATA_SOURCE=a2s`
|
||||
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard`
|
||||
- producción realista en esta fase:
|
||||
- `HLL_BACKEND_LIVE_DATA_SOURCE=rcon`
|
||||
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard`
|
||||
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon`
|
||||
- produccion realista en esta fase:
|
||||
- `HLL_BACKEND_LIVE_DATA_SOURCE=rcon`
|
||||
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon`
|
||||
|
||||
Esto refleja el estado real de la repo: el proveedor RCON ya existe para el
|
||||
estado live de `/api/servers`, pero el histórico sigue dependiendo del
|
||||
scoreboard público porque no hay todavÃa una canalización persistente basada
|
||||
en eventos/logs RCON.
|
||||
Esto refleja la politica operativa actual: RCON es la fuente primaria para
|
||||
live e historico. El scoreboard publico queda como fallback historico cuando
|
||||
RCON falla, no cubre una operacion concreta o aun no tiene cobertura suficiente.
|
||||
|
||||
Modo normal recomendado:
|
||||
|
||||
@@ -160,7 +159,7 @@ Modo live con RCON en Docker Compose:
|
||||
|
||||
```powershell
|
||||
$env:HLL_BACKEND_LIVE_DATA_SOURCE='rcon'
|
||||
$env:HLL_BACKEND_HISTORICAL_DATA_SOURCE='public-scoreboard'
|
||||
$env:HLL_BACKEND_HISTORICAL_DATA_SOURCE='rcon'
|
||||
$env:HLL_BACKEND_RCON_TARGETS='[
|
||||
{
|
||||
"name": "Comunidad Hispana #01",
|
||||
@@ -181,8 +180,8 @@ Buenas practicas:
|
||||
- no versionar credenciales reales en `backend/.env.example`
|
||||
- preferir exportarlas como variables de entorno del host o del secreto del
|
||||
despliegue
|
||||
- mantener `HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard` hasta tener
|
||||
una ingesta historica RCON realmente persistida
|
||||
- mantener `HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon` como valor normal y usar
|
||||
`public-scoreboard` solo como fallback historico controlado
|
||||
- no reintroducir Comunidad Hispana #03 en `HLL_BACKEND_RCON_TARGETS` salvo que
|
||||
una task nueva valide su disponibilidad
|
||||
|
||||
|
||||
@@ -70,13 +70,13 @@ Community website repository with a static landing in the current phase and a pl
|
||||
- The phased source strategy for that provisional block is documented in `docs/current-hll-servers-source-plan.md`.
|
||||
- The ingestion strategy for converting that provisional block into normalized server snapshots is documented in `docs/current-hll-data-ingestion-plan.md`.
|
||||
- The logical storage foundation for persisting server snapshots is documented in `docs/stats-database-schema-foundation.md`.
|
||||
- Historical match and player statistics must come from the public CRCON scoreboard JSON layer, not from A2S or the `/games` HTML shell.
|
||||
- Historical ingestion defaults to RCON-first; the public CRCON scoreboard JSON layer is a fallback for operations where RCON fails or lacks coverage, not the normal primary historical source.
|
||||
- The validated discovery for those historical sources is documented in `docs/historical-crcon-source-discovery.md`.
|
||||
- The persisted historical domain model for CRCON matches, players and ingestion runs is documented in `docs/historical-domain-model.md`.
|
||||
- The V1 monthly MVP scoring proposal for persisted historical player metrics is documented in `docs/monthly-mvp-ranking-scoring-design.md`.
|
||||
- The audited boundary between direct live RCON and future event-driven RCON metrics is documented in `docs/rcon-data-capability-audit.md`.
|
||||
- The first V2 player-event foundation now lives in dedicated `player_event_*` backend modules and starts from CRCON match-detail summaries, not from live RCON.
|
||||
- The default operational deployment is simplified to `backend` + `frontend`; historical workers and RCON historical capture are advanced/manual services.
|
||||
- Comunidad Hispana #03 is disabled from default RCON targets, while existing historical/Elo code and persisted data remain available for explicit future reintroduction.
|
||||
- Comunidad Hispana #03 is disabled from default RCON targets, while existing historical/Elo code and persisted data remain available for explicit future reintroduction. Elo/MMR remains paused and decoupled from backend startup.
|
||||
- Frontend data consumption should remain progressive, endpoint by endpoint, with static fallbacks preserved during migration.
|
||||
- The frontend integration strategy is documented in `docs/frontend-data-consumption-plan.md`.
|
||||
|
||||
@@ -20,7 +20,8 @@ This repository is in foundation stage. The objective is to grow in a controlled
|
||||
- AI Platform: integrated to coordinate planning and task execution
|
||||
- Product goal in current phase: maintain a clean landing and repository structure
|
||||
- Default deployment: `backend` + `frontend`; historical workers are advanced/manual only.
|
||||
- Comunidad Hispana #03 is not part of default RCON targets. Historical/Elo code and persisted data are preserved but paused operationally.
|
||||
- Live and historical defaults are RCON-first, with public-scoreboard kept only as historical fallback.
|
||||
- Comunidad Hispana #03 is not part of default RCON targets. Historical/Elo code and persisted data are preserved, while Elo/MMR remains paused and decoupled from backend startup.
|
||||
|
||||
## Repository Areas
|
||||
|
||||
|
||||
@@ -0,0 +1,206 @@
|
||||
---
|
||||
id: TASK-110
|
||||
title: Restore historical RCON-first fallback policy
|
||||
status: pending
|
||||
type: backend
|
||||
team: Backend Senior
|
||||
supporting_teams: ["Arquitecto Python", "PM"]
|
||||
roadmap_item: foundation
|
||||
priority: high
|
||||
---
|
||||
|
||||
# TASK-110 - Restore historical RCON-first fallback policy
|
||||
|
||||
## Goal
|
||||
|
||||
Correct repository defaults and documentation so historical ingestion is RCON-first, with public-scoreboard used only as a fallback when RCON fails.
|
||||
|
||||
Keep the simplified deployment posture intact:
|
||||
|
||||
- Live data source: `rcon`
|
||||
- Historical data source: `rcon`
|
||||
- Historical fallback: `public-scoreboard` when RCON fails
|
||||
- Elo/MMR: paused and decoupled from backend startup
|
||||
- Comunidad Hispana #03: removed from default targets
|
||||
- Comunidad Hispana #01 and #02: active in default RCON targets
|
||||
|
||||
## Context
|
||||
|
||||
HLL Vietnam recently simplified deployment and removed Comunidad Hispana #03 from default operational targets. The intended historical data policy has now been clarified: historical ingestion must not be disabled, and public-scoreboard must not be the normal primary historical source.
|
||||
|
||||
The desired policy is RCON-first historical ingestion with public-scoreboard fallback when RCON fails. Documentation and defaults that currently imply "historical source is public-scoreboard" need to be corrected to "historical source is RCON-first with public-scoreboard fallback."
|
||||
|
||||
This task is implementation-ready for branch:
|
||||
|
||||
- `fix/historical-rcon-first-fallback-policy`
|
||||
|
||||
## Steps
|
||||
|
||||
1. Work on branch `fix/historical-rcon-first-fallback-policy`.
|
||||
2. Inspect the listed files before changing anything.
|
||||
3. Restore the historical default policy to RCON-first where appropriate:
|
||||
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon`
|
||||
4. Keep public-scoreboard documented and configured only as fallback, not as the normal primary historical source.
|
||||
5. Ensure `docker-compose.yml` defaults and backend example env files do not include Comunidad Hispana #03.
|
||||
6. Ensure Comunidad Hispana #01 and #02 remain in default RCON targets.
|
||||
7. Keep advanced historical workers under the advanced profile if they are already configured that way.
|
||||
8. Keep Elo/MMR paused and decoupled from backend startup.
|
||||
9. Do not delete code, migrations, persisted data, or historical ingestion modules.
|
||||
10. Update documentation and decisions to correct the historical source wording.
|
||||
11. Do not add real credentials, secrets, passwords, or local `.env` values.
|
||||
12. Run the required validation before committing.
|
||||
13. Move this task file to `ai/tasks/done/` only after validation is complete and the outcome is documented.
|
||||
14. Stage only intended files, commit, and push the branch to origin.
|
||||
|
||||
## Files to Read First
|
||||
|
||||
- `docker-compose.yml`
|
||||
- `backend/.env.example`
|
||||
- `backend/app/config.py`
|
||||
- `backend/app/data_sources.py`
|
||||
- `backend/app/historical_runner.py`
|
||||
- `backend/app/rcon_historical_worker.py`, if present
|
||||
- `README.md`
|
||||
- `backend/README.md`
|
||||
- `docs/decisions.md`
|
||||
- `ai/repo-context.md`
|
||||
- `ai/architecture-index.md`
|
||||
|
||||
## Expected Files to Modify
|
||||
|
||||
- `docker-compose.yml`
|
||||
- `backend/.env.example`
|
||||
- `backend/app/config.py`
|
||||
- `README.md`
|
||||
- `backend/README.md`
|
||||
- `docs/decisions.md`
|
||||
- possibly `ai/repo-context.md`
|
||||
- possibly `ai/architecture-index.md`
|
||||
- this task file moved from `ai/tasks/pending/` to `ai/tasks/done/`
|
||||
|
||||
If additional files become necessary, explain why in the task outcome and commit message.
|
||||
|
||||
## Expected Files Not to Modify
|
||||
|
||||
- `frontend/**`
|
||||
- database migrations
|
||||
- persisted data
|
||||
- Elo/MMR algorithm implementation files
|
||||
- unrelated backend modules
|
||||
- local `.env`
|
||||
|
||||
## Constraints
|
||||
|
||||
- Do not reintroduce Comunidad Hispana #03.
|
||||
- Do not reactivate Elo/MMR.
|
||||
- Do not delete historical ingestion code.
|
||||
- Do not delete database migrations or persisted data.
|
||||
- Do not modify frontend behavior.
|
||||
- Do not add real secrets, passwords, tokens, or credentials.
|
||||
- Keep advanced historical workers under the advanced profile if already configured.
|
||||
- Keep the default Compose services limited to `backend` and `frontend`.
|
||||
- Keep the change focused on defaults, source policy, and documentation wording.
|
||||
- Do not modify unrelated files.
|
||||
- Do not leave completed work only in local; commit and push after validation.
|
||||
|
||||
## Validation
|
||||
|
||||
Before completing the task, run and document:
|
||||
|
||||
- `git status`
|
||||
- `powershell -ExecutionPolicy Bypass -File scripts/run-integration-tests.ps1`
|
||||
- `docker compose config --services`
|
||||
- `docker compose config`
|
||||
|
||||
Also confirm and document:
|
||||
|
||||
- default services are still only `backend` and `frontend`
|
||||
- default historical source resolves to `rcon`
|
||||
- `HLL_BACKEND_RCON_TARGETS` default includes only `comunidad-hispana-01` and `comunidad-hispana-02`
|
||||
- `comunidad-hispana-03` is not present in default RCON targets
|
||||
- documentation says public-scoreboard is fallback, not primary, for historical mode
|
||||
- no frontend files changed
|
||||
- no database migrations or persisted data changed
|
||||
- `backend/runtime/` is not created or committed
|
||||
- `git diff --name-only` matches the expected scope
|
||||
|
||||
If integration tests are relevant and `scripts/run-integration-tests.ps1` exists, use it. If a configured test cannot be run, document the exact reason in the outcome.
|
||||
|
||||
## Commit And Push Requirements
|
||||
|
||||
- Run all validation before committing.
|
||||
- Run `git status`.
|
||||
- Stage only intended files.
|
||||
- Commit with a clear message, for example: `fix: restore historical rcon-first fallback policy`.
|
||||
- Push the branch to origin.
|
||||
- Do not leave completed work only in local.
|
||||
|
||||
## Outcome
|
||||
|
||||
Completed for branch `fix/historical-rcon-first-fallback-policy`.
|
||||
|
||||
Validation performed:
|
||||
|
||||
- `git status --short --branch`
|
||||
- `powershell -ExecutionPolicy Bypass -File scripts/run-integration-tests.ps1`
|
||||
- Passed.
|
||||
- The script reported no product integration tests are configured for this platform-only scope.
|
||||
- Backend startup import check passed.
|
||||
- `docker compose config --services`
|
||||
- Passed and returned only `backend` and `frontend` for the default profile.
|
||||
- `docker compose config`
|
||||
- Passed.
|
||||
- The local machine had Compose environment overrides, so default policy was confirmed again with an empty env file to avoid local values.
|
||||
- `docker compose --env-file <empty-temp-file> config --services`
|
||||
- Returned only `backend` and `frontend`.
|
||||
- `docker compose --env-file <empty-temp-file> config --format json`
|
||||
- Confirmed `HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon`.
|
||||
- Confirmed default `HLL_BACKEND_RCON_TARGETS` includes only `comunidad-hispana-01` and `comunidad-hispana-02`.
|
||||
- Confirmed `comunidad-hispana-03` is not present in default RCON targets.
|
||||
- `python -c "from backend.app.config import DEFAULT_HISTORICAL_DATA_SOURCE; print(DEFAULT_HISTORICAL_DATA_SOURCE)"`
|
||||
- Returned `rcon`.
|
||||
- `git diff --name-only`
|
||||
- Matched the expected backend/defaults/docs scope plus `backend/app/historical_runner.py`.
|
||||
- `Test-Path backend/runtime`
|
||||
- Returned `False`.
|
||||
|
||||
Final source policy:
|
||||
|
||||
- Historical ingestion defaults to RCON-first.
|
||||
- `public-scoreboard` is fallback only for historical operations where RCON fails, lacks coverage or lacks parity for the requested competitive operation.
|
||||
- Live data remains `rcon`.
|
||||
- Elo/MMR remains paused and decoupled from backend startup.
|
||||
- Comunidad Hispana #03 remains absent from default targets.
|
||||
- Comunidad Hispana #01 and #02 remain active in default RCON targets.
|
||||
|
||||
Changed files:
|
||||
|
||||
- `docker-compose.yml`
|
||||
- `backend/.env.example`
|
||||
- `backend/app/config.py`
|
||||
- `backend/app/historical_runner.py`
|
||||
- `README.md`
|
||||
- `backend/README.md`
|
||||
- `docs/decisions.md`
|
||||
- `ai/repo-context.md`
|
||||
- `ai/architecture-index.md`
|
||||
- this task file moved from `ai/tasks/pending/` to `ai/tasks/done/`
|
||||
|
||||
Notable decision:
|
||||
|
||||
- `backend/app/historical_runner.py` was updated because its default advanced historical scope still included `comunidad-hispana-03`. Leaving that default in code would contradict the task's default-target policy and the updated documentation, even though the worker remains under the advanced Compose profile.
|
||||
|
||||
Scope confirmations:
|
||||
|
||||
- No frontend files changed.
|
||||
- No database migrations or persisted data changed.
|
||||
- No real credentials were added; repository defaults continue to use placeholder RCON passwords.
|
||||
- `backend/runtime/` was not created or committed.
|
||||
- No follow-up task is needed for this scope.
|
||||
- The branch was pushed to origin after validation and commit.
|
||||
|
||||
## Change Budget
|
||||
|
||||
- Prefer fewer than 5 modified files when feasible.
|
||||
- Prefer changes under 200 lines when feasible.
|
||||
- Split follow-up work into a new task if the scope grows beyond defaults, documentation, and source-policy correction.
|
||||
@@ -4,7 +4,7 @@ HLL_BACKEND_STORAGE_PATH=/app/data/hll_vietnam_dev.sqlite3
|
||||
HLL_BACKEND_ALLOWED_ORIGINS=http://127.0.0.1:8080,http://localhost:8080
|
||||
HLL_BACKEND_REFRESH_INTERVAL_SECONDS=120
|
||||
HLL_BACKEND_LIVE_DATA_SOURCE=rcon
|
||||
HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard
|
||||
HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon
|
||||
HLL_BACKEND_RCON_TIMEOUT_SECONDS=20
|
||||
HLL_BACKEND_RCON_TARGETS=[{"name":"Comunidad Hispana #01","slug":"comunidad-hispana-01","external_server_id":"comunidad-hispana-01","host":"152.114.195.174","port":7779,"password":"replace-me-01","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #02","slug":"comunidad-hispana-02","external_server_id":"comunidad-hispana-02","host":"152.114.195.150","port":7879,"password":"replace-me-02","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null}]
|
||||
HLL_HISTORICAL_CRCON_PAGE_SIZE=50
|
||||
|
||||
@@ -273,12 +273,12 @@ Valores soportados en esta fase:
|
||||
- `a2s` como fallback legacy o override explicito
|
||||
- historico:
|
||||
- `rcon` como camino primario recomendado para captura y writer path primario
|
||||
- `public-scoreboard` como fallback legacy o override explicito
|
||||
- `public-scoreboard` como fallback legacy controlado
|
||||
|
||||
Defaults actuales:
|
||||
|
||||
- `HLL_BACKEND_LIVE_DATA_SOURCE=rcon`
|
||||
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard`
|
||||
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon`
|
||||
|
||||
La seleccion efectiva se resuelve en `app/data_sources.py` y en adapters
|
||||
dedicados dentro de `app/providers/`:
|
||||
@@ -297,7 +297,7 @@ Proveedores operativos en esta fase:
|
||||
- live `rcon`
|
||||
- live `a2s`
|
||||
- historico `rcon` solo para read model minimo y captura prospectiva
|
||||
- historico `public-scoreboard`
|
||||
- historico `public-scoreboard` como fallback para cobertura competitiva sin paridad RCON
|
||||
|
||||
Politica funcional actual:
|
||||
|
||||
@@ -399,15 +399,15 @@ Runbook operativo minimo:
|
||||
|
||||
- modo recomendado por defecto:
|
||||
- `HLL_BACKEND_LIVE_DATA_SOURCE=rcon`
|
||||
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard`
|
||||
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon`
|
||||
- usar solo `comunidad-hispana-01` y `comunidad-hispana-02` en los targets
|
||||
RCON por defecto
|
||||
- modo historico/RCON avanzado:
|
||||
- iniciar workers solo de forma explicita
|
||||
- no reintroducir `comunidad-hispana-03` salvo validacion nueva
|
||||
- override legacy completo:
|
||||
- override legacy live/A2S:
|
||||
- `HLL_BACKEND_LIVE_DATA_SOURCE=a2s`
|
||||
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard`
|
||||
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon`
|
||||
|
||||
Verificacion minima del proveedor activo:
|
||||
|
||||
@@ -422,7 +422,8 @@ Captura historica prospectiva por RCON:
|
||||
|
||||
- se ejecuta fuera del request path HTTP
|
||||
- persiste muestras live hacia delante en tablas `rcon_historical_*`
|
||||
- no sustituye todavia el historico competitivo basado en `public-scoreboard`
|
||||
- usa RCON como camino historico primario y mantiene `public-scoreboard` solo
|
||||
como fallback para operaciones competitivas que aun no tienen paridad RCON
|
||||
- no promete backfill retroactivo de matches ya perdidos
|
||||
|
||||
Comandos manuales desde `backend/`:
|
||||
@@ -638,7 +639,7 @@ Ejemplos:
|
||||
|
||||
- `backend/data/snapshots/comunidad-hispana-01/server-summary.json`
|
||||
- `backend/data/snapshots/comunidad-hispana-01/weekly-kills.json`
|
||||
- `backend/data/snapshots/comunidad-hispana-03/recent-matches.json`
|
||||
- `backend/data/snapshots/comunidad-hispana-02/recent-matches.json`
|
||||
- `backend/data/snapshots/all-servers/weekly-support.json`
|
||||
- `backend/data/snapshots/all-servers/monthly-mvp.json`
|
||||
|
||||
@@ -1088,7 +1089,7 @@ docker compose exec backend python -m app.historical_runner --interval 1800
|
||||
Flags utiles:
|
||||
|
||||
- `--server comunidad-hispana-01` para limitar a un servidor
|
||||
- `--server comunidad-hispana-03` para validar solo el tercer scoreboard historico
|
||||
- `--server comunidad-hispana-02` para validar solo el segundo servidor activo
|
||||
- `--overlap-hours 48` para releer una ventana reciente mayor sin relanzar bootstrap
|
||||
- `--max-pages 2` para validacion local acotada
|
||||
- `--page-size 25` para ajustar paginacion
|
||||
@@ -1191,7 +1192,7 @@ fallback clasico entra de forma controlada. Por defecto:
|
||||
periodica de fallback para mantener rankings y snapshots clasicos
|
||||
- refresca cada `900` segundos
|
||||
- prewarmea en cada ciclo:
|
||||
- `server-summary` para `comunidad-hispana-01`, `comunidad-hispana-02`, `comunidad-hispana-03` y `all-servers`
|
||||
- `server-summary` para `comunidad-hispana-01`, `comunidad-hispana-02` y `all-servers`
|
||||
- `weekly-leaderboard` de la metrica por defecto `kills` para esos mismos alcances
|
||||
- `monthly-leaderboard` de la metrica por defecto `kills` para esos mismos alcances
|
||||
- `recent-matches` para esos mismos alcances
|
||||
@@ -1226,7 +1227,6 @@ Sin `--server`, ese runner refresca:
|
||||
|
||||
- `comunidad-hispana-01`
|
||||
- `comunidad-hispana-02`
|
||||
- `comunidad-hispana-03`
|
||||
|
||||
Despues de cada fallback clasico correcto, recompone snapshots para los
|
||||
servidores afectados y vuelve a alinear el agregado `all-servers`. Si el ciclo
|
||||
@@ -1251,7 +1251,7 @@ Operativa local minima:
|
||||
en archivos bajo `backend/data/snapshots/`, por ejemplo:
|
||||
- `backend/data/snapshots/comunidad-hispana-01/server-summary.json`
|
||||
- `backend/data/snapshots/comunidad-hispana-02/recent-matches.json`
|
||||
- `backend/data/snapshots/comunidad-hispana-03/weekly-kills.json`
|
||||
- `backend/data/snapshots/comunidad-hispana-02/weekly-kills.json`
|
||||
- `backend/data/snapshots/all-servers/monthly-kills.json`
|
||||
|
||||
Operativa avanzada con Docker Compose:
|
||||
@@ -1536,9 +1536,10 @@ Estado real a fecha de esta fase:
|
||||
- leaderboards semanales/mensuales, MVP V1/V2 y player-events siguen teniendo
|
||||
fallback a `public-scoreboard` mientras RCON no disponga de señal competitiva
|
||||
por jugador con paridad suficiente
|
||||
- Elo/MMR pasa a consumir primero contexto competitivo RCON-backed para
|
||||
cobertura y calidad de match cuando existe, pero sigue necesitando
|
||||
`public-scoreboard` como suplemento para estadisticas por jugador
|
||||
- Elo/MMR permanece pausado y desacoplado del arranque del backend; cuando se
|
||||
reactive mediante una task explicita, debera respetar el contexto
|
||||
RCON-backed primario y usar `public-scoreboard` solo como suplemento/fallback
|
||||
para estadisticas por jugador sin paridad RCON
|
||||
|
||||
## Elo/MMR Monthly Ranking
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ DEFAULT_PORT = 8000
|
||||
DEFAULT_STORAGE_FILENAME = "hll_vietnam_dev.sqlite3"
|
||||
DEFAULT_REFRESH_INTERVAL_SECONDS = 300
|
||||
DEFAULT_LIVE_DATA_SOURCE = "rcon"
|
||||
DEFAULT_HISTORICAL_DATA_SOURCE = "public-scoreboard"
|
||||
DEFAULT_HISTORICAL_DATA_SOURCE = "rcon"
|
||||
DEFAULT_RCON_TIMEOUT_SECONDS = 20.0
|
||||
DEFAULT_HISTORICAL_CRCON_PAGE_SIZE = 50
|
||||
DEFAULT_HISTORICAL_CRCON_TIMEOUT_SECONDS = 15.0
|
||||
|
||||
@@ -32,7 +32,6 @@ HOURLY_INTERVAL_SECONDS = 3600
|
||||
DEFAULT_HISTORICAL_SERVER_SCOPE = (
|
||||
"comunidad-hispana-01",
|
||||
"comunidad-hispana-02",
|
||||
"comunidad-hispana-03",
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ services:
|
||||
- ./backend/.env.example
|
||||
environment:
|
||||
HLL_BACKEND_LIVE_DATA_SOURCE: ${HLL_BACKEND_LIVE_DATA_SOURCE:-rcon}
|
||||
HLL_BACKEND_HISTORICAL_DATA_SOURCE: ${HLL_BACKEND_HISTORICAL_DATA_SOURCE:-public-scoreboard}
|
||||
HLL_BACKEND_HISTORICAL_DATA_SOURCE: ${HLL_BACKEND_HISTORICAL_DATA_SOURCE:-rcon}
|
||||
HLL_BACKEND_RCON_TIMEOUT_SECONDS: ${HLL_BACKEND_RCON_TIMEOUT_SECONDS:-20}
|
||||
HLL_BACKEND_RCON_TARGETS: >-
|
||||
${HLL_BACKEND_RCON_TARGETS:-[{"name":"Comunidad Hispana #01","slug":"comunidad-hispana-01","external_server_id":"comunidad-hispana-01","host":"152.114.195.174","port":7779,"password":"replace-me-01","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #02","slug":"comunidad-hispana-02","external_server_id":"comunidad-hispana-02","host":"152.114.195.150","port":7879,"password":"replace-me-02","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null}]}
|
||||
|
||||
@@ -139,3 +139,15 @@ porque ya no es una fuente operativa vigente. El codigo historico, los datos
|
||||
persistidos, las migraciones y las piezas Elo/MMR no se eliminan; quedan
|
||||
pausadas operativamente para esta fase y pueden reintroducirse mediante una
|
||||
task futura si se valida de nuevo la fuente y el coste de mantenimiento.
|
||||
|
||||
## Decision 015: historico RCON-first con fallback publico
|
||||
|
||||
La politica por defecto para historico vuelve a ser RCON-first:
|
||||
`HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon`. El scoreboard publico de CRCON se
|
||||
mantiene como fallback controlado cuando RCON falla, no tiene cobertura util o
|
||||
no soporta todavia una operacion competitiva concreta.
|
||||
|
||||
Esta decision no reactiva Elo/MMR dentro del arranque normal del backend. Las
|
||||
piezas Elo/MMR, migraciones, datos persistidos y modulos historicos se
|
||||
conservan, pero su operativa compleja sigue pausada y desacoplada salvo task
|
||||
explicita.
|
||||
|
||||
Reference in New Issue
Block a user