Este val existe solo por un tope de la plataforma. Toda la lógica vive en
elgmg/marcador_ECP; aquí solo hay
cuatro crons que lo despiertan.
El plan gratuito permite 10 crons por val, y marcador_ECP ya tiene 20
(creados antes de que se aplicara el tope: siguen corriendo, pero el val no
admite ni uno más). Los supervisores necesitaban cupo, y un val nuevo estrena el
suyo.
este val marcador_ECP
4 crons ──── HTTP + token ────► Supervisor/endpoint.ts
└─► lib/supervisor.ts ← la lógica
Este val no sabe nada del marcador: ni credenciales, ni descriptor facial,
ni horarios, ni cómo se marca. Solo hace fetch. Todo lo demás se ejecuta del
otro lado, donde ya están las env vars y la tabla ausencias (que es privada de
cada val y por eso no se puede consultar desde aquí).
Si cambia el backend del marcador, este val no se toca.
| Archivo | Cron (UTC) | Local | Verifica que exista |
|---|---|---|---|
start_shift.ts | 0 14 * * 1-5 | 8:00 am | Inicio de jornada |
start_lunch.ts | 5 19 * * 1-5 | 1:05 pm | Inicio de almuerzo |
end_lunch.ts | 0 20 * * 1-5 | 2:00 pm | Fin de almuerzo |
end_shift.ts | 10 23 * * 1-5 | 5:10 pm | Fin de jornada |
Cada uno corre unos minutos después del último horario posible de esa marca en la semana: el momento en que ya se puede afirmar que debería estar hecha.
| Variable | Descripción |
|---|---|
SUPERVISOR_URL | Endpoint Supervisor/endpoint.ts del val marcador_ECP |
SUPERVISOR_TOKEN | Debe ser idéntico al del val marcador_ECP |
Si el token deja de coincidir, el endpoint responde 401 y estos crons fallan:
lo verás como corridas en rojo y te llegará el correo de fallo.
| Verás… | Significa |
|---|---|
🔎 … supervisada | El otro val respondió; ahí está el detalle |
❌ Supervisor … inalcanzable | marcador_ECP no respondió — este es el único aviso posible, porque si allá no se ejecuta nada, allá tampoco sale ningún correo |
El resto de mensajes (marca verificada, recuperada, fuera de ventana) queda en
los logs del val marcador_ECP, no aquí.