Obelica Docs
Operazioni

Cron job

Endpoint cron e schedulazione

Stato

I cron job applicativi sono attualmente in pausa.

Esistono endpoint HTTP /api/cron/... in alcune app, ma nessuno schedulatore li chiama automaticamente. Il nuovo control plane Rust centralizza pero' la lista e l'esecuzione manuale dei job:

/opt/obelica/infra/bin/obelica cron list
/opt/obelica/infra/bin/obelica cron run <job>

Il crontab attivo oggi esegue solo il backup automatico quotidiano:

0 4 * * * /opt/obelica/infra/bin/obelica backup run >> /opt/obelica/backups/backup-cron.log 2>&1

Endpoint cron presenti

Job esposti dal framework:

tulpa.contacts-cleanup
sonja.report
washdog.dispatch
washdog.birthday
washdog.followup
washdog.recurring

Wash Dog Ferrara

Route in apps/admin/app/api/cron/:

  • /api/cron/recurring/generate
  • altri endpoint di gestione appuntamenti/notifiche

Sonja Trekking

  • /api/cron/report — invio report giornaliero escursioni.

Tulpa Studio

  • /api/cron/contacts-cleanup — pulizia contatti.

Protezione

Gli endpoint sono protetti da CRON_SECRET letto dagli env:

  • wash-dog-ferrara: secret configurato da file in /opt/obelica/secrets/apps;
  • sonja-trekking: secret configurato in env app, job marcato allow-failure finche' il flusso SMTP non e' chiuso;
  • tulpa-studio: secret configurato in env app.

Problema noto

Next.js con Turbopack tende a inline-are le variabili d'ambiente a build time. Se process.env.CRON_SECRET viene sostituito con undefined nel bundle, l'endpoint ritorna errore anche se il secret e' configurato a runtime.

Possibili soluzioni future:

  • leggere il secret da un file Docker secret a runtime, evitando process.env.CRON_SECRET;
  • usare una variabile build-time per il secret;
  • cambiare approccio di autenticazione (es. firma con chiave privata).

Piani

  1. Riattivare cron app per app solo dopo test manuale del singolo job.
  2. Sostituire le righe commentate che puntano agli script shell con /opt/obelica/infra/bin/obelica cron run <job>.
  3. Decidere se mantenere il modello HTTP endpoint o spostare alcuni job in worker interni.
  4. Aggiungere notifiche email o altro canale di alert in una fase successiva.

On this page