dashboards

Ensure Portfolio Dashboard

Idempotent: return the Commercial tab's canonical booking dashboard (the ex-Portfolio), creating + seeding it if none exists — or null when the tenant removed the tab or its built-in (PLAN-deletable-system-tabs D8; the provision ledger says it was provisioned before, so it is never recreated, and a 404 would toast on every reporting mount).

Post-kind cutover (PR5): the dashboard is identified by (category = Commercial, is_category_system_dashboard) — the partial unique index uq_one_system_dashboard_per_category makes the create race-safe (the loser retries the lookup). kind is neither read nor written here; provision_reporting_categories first migrates any legacy kind='portfolio' dashboard into Commercial.

post/api/v1/dashboards/ensure-portfolio

Response

Successful Response

idstring uuid required
namestring required
is_defaultboolean required
kindstring nullable
category_idstring uuid nullable
sort_orderinteger
is_category_system_dashboardboolean
is_category_defaultboolean
default_date_rangestring nullable required
created_by_user_idstring uuid nullable required
created_atstring date-time required
updated_atstring date-time required

Changes

No recorded changes to this endpoint across all 5 revisions of this API.