Saltar a contenido

5. Contratos de Datos para la Despensa

SmallCountry consume datos de más de 80 fuentes externas: APIs meteorológicas, biodiversidad, precios de electricidad, literatura científica. Los Contratos de Datos garantizan que cada fuente tiene una definición formal y que el sistema detecta cuando una fuente incumple su contrato antes de que el dato caducado cause problemas.


Cómo funciona

Cada fuente externa tiene una ficha técnica versionada en Forgejo:

fuente: Open-Meteo
proposito: Previsión meteorológica para la finca
url: https://api.open-meteo.com/v1/forecast
frecuencia: cada 6 horas
sla_frescura: 12h
campos_obligatorios: [temperature_2m_max, precipitation_sum]
validaciones:
  temperature_2m_max: {rango: [-20, 50]}
  precipitation_sum: {minimo: 0}
fallback: ultimo_valor_valido

Verificación automática (n8n semanal)

flowchart TD
    A([Inicio: verificación semanal]) --> B[1. Frescura]
    B --> B1{¿Última actualización\ndentro del SLA?}
    B1 -->|Sí| C[2. Formato]
    B1 -->|No| F[Alerta + descartar dato]
    C --> C1{¿Estructura esperada?\n¿Campos obligatorios?}
    C1 -->|Sí| D[3. Valores]
    C1 -->|No| F
    D --> D1{¿Valores dentro\nde rangos?}
    D1 -->|Sí| E[4. Consistencia]
    D1 -->|No| F
    E --> E1{¿Coherente con\nserie histórica?}
    E1 -->|Sí| G([Dato aceptado])
    E1 -->|No| F
    F --> F1[Usar fallback]
    F1 --> F2[Notificar]
    F2 --> F3[Registrar en\nVictoria Metrics]
    F3 --> H([Dato descartado])
  1. Frescura: ¿última actualización dentro del SLA? Si no → alerta
  2. Formato: ¿estructura esperada? ¿campos obligatorios presentes?
  3. Valores: ¿dentro de rangos? ¿nulos donde no debería?
  4. Consistencia: ¿el dato de hoy es coherente con la serie histórica?

Si falla: descarta el dato, usa fallback, notifica, registra en Victoria Metrics.


Dashboard de salud de la despensa

Grafana muestra: última actualización de cada fuente, tiempo hasta expirar SLA, errores 7d, espacio ocupado. Si una fuente supera su SLA → rojo → alerta.


Relaciones con otros mecanismos


Los datos externos son como invitados: pueden entrar, pero con condiciones claras. Si no las cumplen, se les cierra la puerta. Y la casa sigue funcionando.


Secciones relacionadas