Enter the admin passphrase to access maintenance tools.
Passphrase is stored in GCP Secret Manager (ADMIN_PASSPHRASE). See docs/ops/admin-console.md to rotate.
When to use — Functions
Off-season (Jun–Jul): click Apply off-season mode — disables live scrapers and raw bootstrap archives.
Pre-season: re-enable scrapers individually (or turn off off-season mode), then use Run now on scrapeBootstrapStatic and scrapeFixtures once new-season data is live.
In-season: leave bootstrap (5am/5pm), fixtures (6am/6pm), and active-window (30 min) on. Use ingestion runs table to spot failures.
Run now — manual scrape; ignores the disable toggle but respects ingestion options (e.g. raw archives off).
Ingestion options
Apply when bootstrap scrapers run (scheduled or manual). SQL player/team upserts still run; only raw Storage archives and snapshot metadata are skipped when disabled. Social drafts run after each baseline bootstrap scrape when enabled.
Debug raw bootstrap JSON under fpl-api-raw/bootstrap-static/ (when archives enabled).
Off-season: archives are usually off — expect few or no new files.
Danger zone can delete mirror archives before a new season.
When to use — Social drafts
After scrapeBootstrapStatic (5am/5pm UTC), auto-generated PNGs appear here when Generate social drafts is enabled on the Functions tab.
Use Generate from data to run the same pipeline on demand (price + player updates since the last watermark). Safe to use after missed scrapes — advances the watermark so scheduled runs won’t duplicate.
Use Create custom post for one-off announcements (deadline reminders, app updates, etc.).
Download PNGs and copy captions for manual Instagram upload.
Toggle generation under Functions → Ingestion options (same as Firestore system_config/social_drafts.enabled).
New season checklist (manual)
Danger zone: SQL truncate → clear mirrors/Storage → reset user season data (watchlist, assistant, stock exchange).
Functions: Run bootstrap + fixtures manually; re-enable scrapers.
Step 1 — Historic data (below): Probe API → Run ingest (after new-season bootstrap if you need the just-finished season in history_past).