InfraNotes Financial Intelligence · v0
Welcome
Select a document from the sidebar to read it.
Release 4 Dev 2 Handoff: Dashboard Freshness
Routes
GET /api/v1/intelligence/dashboardGET /api/v1/intelligence/dashboard/summary- Permission:
intelligence:analytics:view - Query params on
/dashboard/summary:start_date: optionalYYYY-MM-DD; defaults to current month start.end_date: optionalYYYY-MM-DD; defaults to now.
- Response envelope: standard FI
{ "data": ..., "meta": ... }.
Contract Addition
The existing dashboard payload now includes:
freshness: ordered source freshness records foranalytics_overall,analytics_categories,budget,budget_alerts,cashflow_snapshot,cashflow_alerts, andanalytics_trends.degraded:truewhen any freshness source isstaleormissing.degraded_reasons: machine-readable strings in<source>:<state>form.
Each freshness record includes:
sourcestate:fresh,stale, ormissingobserved_countlatest_atwhen availableage_secondswhen available
Sources are considered stale after 72 hours.
Empty And Degraded States
- Empty tenants still return a successful dashboard response with zero-value summary fields.
- Missing source facts are surfaced through
freshness[].state="missing"instead of requiring the frontend to infer data quality from empty arrays or null snapshots. - Stale source facts are surfaced through
freshness[].state="stale"and included indegraded_reasons.
Frontend Notes
- Existing cards can continue reading the previous dashboard fields unchanged.
- Show data-quality warnings from
freshnessanddegraded_reasons. - Treat
degraded=trueas a partial-data state, not a failed request.