cfetx-microservice
Qué es
El microservicio que consulta mediciones de demanda cada 5 minutos desde un SQL Server externo, las agrupa por medidor y las publica en una cola para que sy-energy las consuma.
Es la vía por la que entra la demanda de alta tensión al ecosistema.
Tipo de sistema
| Campo | Valor |
|---|---|
| Tipo | Microservicio CLI |
| Lenguaje | PHP 8.5, sin framework de aplicación |
| Base de datos | SQL Server externo, mediante pdo_sqlsrv |
| Integraciones | AWS SQS · AWS S3 · Slack |
| Ejecución | Servidor, por comando |
| Despliegue | Deployer |
Estado documental
- Estado: Borrador
- Última actualización: 2026-08-02
- Owner: Pendiente
- SME requerido: desarrollo / integraciones
- Fuente resumida: código y documentación del repositorio.
Qué hace
SQL Server externo ──► consulta mediciones de 5 minutos
│
├─ filtra por rango de fechas
├─ filtra por medidor, si se indica
├─ agrupa por medidor
└─ publica en SQS ──► sy-energyTambién puede exportar la información a CSV o JSON, y trae un comando de diagnóstico que reporta conteos, rangos y los primeros y últimos registros que devuelve la consulta.
La restricción que define todo
Acceso autorizado por IP
La base de datos externa pertenece a un tercero y está protegida por autorización de dirección IP.
Las consultas solo funcionan desde servidores previamente autorizados. No se pueden reproducir desde un entorno local cualquiera, ni desde un servidor nuevo, hasta que el proveedor externo autorice la IP.
Implicaciones prácticas:
- No se puede depurar localmente contra datos reales.
- Migrar o reemplazar el servidor exige gestionar la autorización antes del cambio.
- Un fallo de conexión sostenido puede no ser un problema técnico propio, sino un cambio de IP o una autorización revocada.
Configuración
| Grupo | Para qué |
|---|---|
| Conexión a SQL Server | Host, puerto, base, usuario y contraseña del proveedor externo. |
| Credenciales de AWS | Publicación en SQS y almacenamiento en S3. |
| URL de cola | Destino de las mediciones. |
| Token de Slack | Notificaciones, si se requieren. |
Los valores reales no se documentan aquí.
Requisitos de ejecución
- PHP con la extensión de SQL Server (
pdo_sqlsrv) instalada. Es el requisito que más suele faltar al preparar un entorno. - Credenciales de AWS.
- IP autorizada por el proveedor externo.
Relación con otros sistemas
| Sistema | Relación |
|---|---|
| SQL Server del proveedor externo | Origen de las mediciones. |
sy-energy | Consume las mediciones con un worker dedicado por participante. |
Ver el módulo de Demanda de sy-energy.
Operación
No tiene scheduler propio: se ejecuta por comando.
Calendario sin confirmar
No está documentado con qué frecuencia se ejecuta ni quién lo hace. Dado que alimenta demanda que después se factura, es un gap con impacto directo en el cierre mensual.
Comandos disponibles:
| Comando | Para qué |
|---|---|
| Comando principal | Consulta las mediciones del rango y las publica en SQS. Acepta filtro por medidor y exportación a CSV o JSON. |
| Comando de diagnóstico | Reporta conteos, rangos y primeros/últimos registros de la consulta. No publica nada. |
El comando de diagnóstico es la forma segura de verificar que la conexión funciona y que hay datos en el periodo, antes de publicar.
Si falla
| Síntoma | Causa probable | Acción |
|---|---|---|
| Conexión rechazada | IP no autorizada, o autorización revocada. | Escalar al proveedor externo. |
| Error de controlador | Falta pdo_sqlsrv en el servidor. | Instalar la extensión. |
| La consulta no devuelve datos | El periodo no tiene mediciones, o el filtro de medidor es incorrecto. | Verificar con el comando de diagnóstico. |
Se publicó pero sy-energy no lo refleja | El worker de CFE TX está caído. | Revisar Supervisor. |
Riesgos y gaps
- Frecuencia de ejecución sin documentar. Es el gap más importante.
- Dependencia de una autorización de IP gestionada por un tercero.
- No hay alerta cuando dejan de llegar mediciones.
- No está documentado el catálogo de medidores ni su relación con centros de carga.
Próxima revisión
Al confirmar la frecuencia de ejecución con operación.