6.4 KiB
RCON Data Capability Audit
Validation Date
- 2026-03-24
Scope
Auditoria tecnica del alcance real de RCON en esta repo, separando con claridad:
- RCON directo implementado hoy en el backend
- historico CRCON / scoreboard publico
- metricas que solo serian posibles con captura propia de eventos o logs
No se implementa ninguna tabla, ruta, scoring ni captura adicional.
Evidence Reviewed
backend/app/rcon_client.pybackend/app/providers/rcon_provider.pybackend/app/data_sources.pybackend/app/payloads.pybackend/README.mddocs/historical-crcon-source-discovery.mddocs/monthly-player-ranking-data-audit.mddocs/monthly-mvp-ranking-scoring-design.md
Current RCON Surface In This Repository
La implementacion RCON actual es minima y solo cubre estado live.
Capacidades confirmadas en codigo hoy:
- handshake
ServerConnect - autenticacion
Login - consulta
GetServerInformation
No hay evidencia en la repo de otros comandos RCON ya integrados para:
- eventos de kill
- detalle por arma
- relaciones killer -> victim
- teamkills por evento
- destruccion de garrisons u OPs
- historico de partidas cerradas
What The Current Live Provider Exposes Today
El proveedor RconLiveDataSource solo normaliza estos campos para /api/servers:
external_server_idserver_namestatusplayersmax_playerscurrent_mapregionsource_namesnapshot_originsource_ref
Esto significa que RCON directo hoy ya alimenta de forma confirmada:
- disponibilidad online del servidor
- nombre del servidor
- numero de jugadores actual
- capacidad maxima
- mapa actual
- metadata de procedencia del snapshot
Data That Is Not Exposed By Direct RCON Today
Aunque la task pide revisar equipos, scoreboard actual y otros campos live, la repo no confirma que el proveedor actual los este devolviendo hoy.
No quedan expuestos en el snapshot live actual:
- composicion por equipos
- scoreboard de jugadores en tiempo real
- kills por jugador en la partida en curso
- deaths por jugador en la partida en curso
- support/combat/offense/defense live
- teamkills live
Importante:
- esto no prueba que el protocolo HLL RCON no pueda ofrecer mas cosas
- solo prueba que la implementacion actual de esta repo no las consulta ni las serializa
Historical Boundary
La separacion entre live e historico queda clara en la repo:
get_live_data_source()puede resolverrconget_historical_data_source()devuelve un placeholderRconHistoricalDataSource- ese proveedor historico lanza
RuntimeError("Historical RCON provider is not implemented yet.")
Conclusion operativa:
- RCON esta operativo hoy para estado live de
/api/servers - RCON no esta operativo hoy para ingesta historica
- el historico reutilizable del proyecto sigue viniendo de CRCON / scoreboard publico
Capability Matrix For Future MVP V2 Metrics
| Metrica / senal | RCON directo hoy en esta repo | Requeriria eventos/logs + persistencia | Estado actual |
|---|---|---|---|
| Estado del servidor | Si | No | Disponible |
| Jugadores actuales totales | Si | No | Disponible |
| Capacidad maxima | Si | No | Disponible |
| Mapa actual | Si | No | Disponible |
| Equipos live | No confirmado | Posiblemente no, depende de ampliar cliente | No expuesto hoy |
| Scoreboard live por jugador | No confirmado | Posiblemente no, depende de ampliar cliente | No expuesto hoy |
| Kills por arma | No | Si | Requiere pipeline nuevo |
| Distincion artillery / tank / infantry | No | Si | Requiere pipeline nuevo |
| Killer -> victim | No | Si | Requiere pipeline nuevo |
most_killed |
No | Si | Requiere pipeline nuevo |
death_by |
No | Si | Requiere pipeline nuevo |
| Teamkills por evento | No | Si | Requiere pipeline nuevo |
| Teamkills agregados por partida/mes | No desde RCON actual | Si | Requiere pipeline nuevo |
| Garrisons destruidos | No confirmado | Si como minimo | No confirmado |
| OPs destruidos | No confirmado | Si como minimo | No confirmado |
| Otras metricas tacticas finas | No | Si | Requiere pipeline nuevo |
| Partidas cerradas historicas | No | Si | No disponible hoy via RCON |
What Can Feed An MVP V2 From RCON
Subset viable usando solo RCON directo ya implementado:
- ninguno de los componentes avanzados de scoring MVP
- solo datos de presencia live del servidor, utiles para panel operativo pero no para ranking mensual
Subset viable si se amplia solo el cliente RCON pero sin pipeline historico:
- quiza mas detalle live si el protocolo ofrece comandos adicionales
- aun asi no bastaria para un ranking mensual auditable, porque faltaria persistencia por evento o por partida cerrada
Subset viable si se construye una linea nueva de eventos/logs RCON:
- kills por arma
- killer/victim
- teamkills por evento
- clasificacion artillery/tank/infantry
- senales tacticas si el origen real las emite
Condiciones minimas para que eso sirva a un MVP V2:
- ampliar el cliente RCON con comandos o feeds adicionales reales
- capturar eventos de forma continua fuera del request path HTTP
- persistir historico propio por partida, jugador y evento
- definir agregados reproducibles para mes y servidor
Separation From CRCON / Public Scoreboard
La repo ya confirma que ciertas metricas avanzadas existen en CRCON publico, pero eso no debe confundirse con RCON directo.
La evidencia actual de CRCON/scoreboard publico incluye campos como:
kills_by_typemost_killeddeath_byweaponsdeath_by_weapons
Eso pertenece al historico JSON publico ya documentado y no a la superficie
RCON hoy implementada en rcon_client.py.
Practical Conclusion
Para esta repo, la respuesta precisa hoy es:
- RCON directo sirve para estado live de servidores
- RCON directo no sirve todavia para alimentar un MVP mensual V2
- cualquier MVP V2 con armas, duelos, teamkills por evento o tacticas requiere una canalizacion nueva de eventos/logs y persistencia historica propia
- garrisons y OPs siguen sin evidencia confirmada en la repo como metrica disponible por RCON
Recommended Next Step
Antes de disenar scoring V2 sobre RCON, la siguiente decision tecnica correcta seria una task separada de discovery para definir:
- si el origen RCON real del servidor expone mas comandos aparte de
GetServerInformation - si existe flujo de eventos reutilizable
- que granularidad y frecuencia tendria la persistencia de esos eventos
- que subset minimo merece convertirse en modelo historico propio