Canary Service: report

What this is

Generates and serves merchant-facing reports — sales summaries, shrink reports, employee scorecards, vendor reconciliation, compliance attestations. Pre-defined templates (not ad-hoc query — that's canary-owl). Schedule management for recurring runs; each run produces a PDF/CSV/JSON/XLSX artifact in tenant-isolated object storage.

Tier mix and axis

Property Value
Port :8098
Axis B — Resource APIs
Tier mix Reference (catalog, run lookups, schedule detail) · Change-feed (cross-template run tail) · Stream (immediate runs) · Daily batch (cron-driven schedule evaluator) · Bulk window (/exports/{kind} for transactions, items, customers, alerts, cases)
Owned tables app.report_templates, app.report_runs, app.report_schedules, app.export_jobs
Run lifecycle QUEUED → RUNNING → COMPLETED → DELIVERED (with FAILED → NOTIFIED)
Storage s3://canary-reports-prod/<merchant_id>/... with 24h presigned URLs

Purpose

Templated reports + scheduled subscriptions + generic data exports. Daily-batch tier covers schedule cron evaluation; bulk-window tier covers async export jobs with presigned URL delivery.

Dependencies

Consumers

See also