Update a scheduled report
Replace a schedule’s mutable fields (same validation + defaults as create). The server never touches lastSentAt (the worker owns it). 404 if absent/cross-org.
Authorizations
Flowyte secret API key (Authorization: Bearer flowyte_sk_live_…). Scope-gated; is scoped to your organization — a key can never reach another tenant. The listed scopes in each operation's apiKey requirement are the scopes that key must hold. The tokenUrl is nominal: keys are minted in the dashboard.
Path Parameters
The report-schedule id (from listReportSchedules / createReportSchedule).
Body
The create/update body for a scheduled report. dashboardId (must exist in the org) and name are required, plus at least one valid recipient email. The rest default: cadence daily, hourLocal 7, tz UTC, formats ["pdf","link"], delivery email, enabled true. formats may be any subset of link/csv/pdf (all live; pdf is a headless-chromium print of the real charts). delivery: slack is 422'd in v1 (no house Slack sender yet).
255daily, weekly, monthly 0 <= x <= 23link, csv, pdf email, slack Response
The updated schedule.
A scheduled report: "email the digest every at ". The analytics worker sweeps enabled schedules, composes each digest via the SAME metric-registry compile path the live dashboard uses (so the emailed numbers equal the on-screen numbers), and delivers a clean HTML email (link always; CSV attached when requested; PDF of the real charts attached when requested and a renderer is available) through Resend. lastSentAt is empty until the first successful send.