// Central runtime config. Kept as a static file so ops can change it without a build. const params = new URLSearchParams(window.location.search); export const CONFIG = Object.freeze({ apiBaseUrl: '/api/v1', refreshIntervalMs: 60_000, requestTimeoutMs: 15_000, // A job whose next scheduled run is this far in the past is flagged "Overdue". // Catches the silent failure mode: a job stops reporting and stays green forever. overdueGraceMinutes: 30, // Run history shown in the job modal (the API caps this at 30) historyDays: 30, // ?mock=1 → use in-browser sample data, no backend needed useMock: params.has('mock'), });