telemetría anónima: POST /telemetry (contadores agregados) + GET /telemetry/summary

Tabla telemetry_daily (day, module, active, opens) sin identificador de usuario
ni contenido: solo cuenta cuántas instalaciones tienen cada módulo activo y
cuántas veces lo abren (fila __submissions__ = envíos del día). El POST agrega
por módulo antes de tocar la BD (evita PK duplicada intra-request). create_all
crea la tabla nueva; no necesita migración ALTER. Tests en SQLite en memoria.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Carlos Narro
2026-07-03 21:27:39 +02:00
parent 9157d12f67
commit 3092e19b73
3 changed files with 154 additions and 1 deletions

View File

@@ -70,3 +70,17 @@ class Recipe(Base):
"rootAuthorName": self.root_author_name,
"visibility": self.visibility or "public",
}
class TelemetryDaily(Base):
"""Contadores de uso ANÓNIMOS y agregados, por día y módulo. NO hay
identificador de usuario ni contenido de salud: solo cuántas instalaciones
tienen cada módulo activo (`active`) y cuántas veces lo abren (`opens`). La
fila especial module='__submissions__' cuenta los envíos del día (≈ nº de
instalaciones activas que ceden estadística)."""
__tablename__ = "telemetry_daily"
day = Column(String, primary_key=True) # 'YYYY-MM-DD'
module = Column(String, primary_key=True) # nombre del módulo o '__submissions__'
active = Column(Integer, default=0)
opens = Column(Integer, default=0)