1
0

scheduler.crontab 895 B

1234567891011121314151617
  1. # IRDB scheduler — busybox crond schedule.
  2. #
  3. # Drives /internal/jobs/tick once a minute. The api dispatches whichever
  4. # periodic jobs are due (recompute-scores, cleanup-audit, enrich-pending,
  5. # refresh-geoip). job_locks mediates between replicas so duplicate ticks
  6. # are correct but wasteful.
  7. #
  8. # -m 280 caps the request below the 1-minute cadence so we never queue
  9. # overlapping ticks.
  10. #
  11. # SEC_REVIEW F25: target localhost — the scheduler service uses
  12. # `network_mode: "service:api"` so it shares the api container's network
  13. # namespace and reaches FrankenPHP via loopback. The api's /internal/*
  14. # gate is now loopback-only on both Caddy and PHP layers; reaching it
  15. # from a sibling docker-bridge peer (the previous `http://api:8081`
  16. # routing) would 404.
  17. * * * * * curl -sf -m 280 -X POST -H "Authorization: Bearer $INTERNAL_JOB_TOKEN" http://localhost:8081/internal/jobs/tick > /dev/null