Changelog
2026-10-26: dashboard SSO#
- Feature gate.
platforms.dashboard_sso(off by default). Create and exchange refuse withPLATFORM_DASHBOARD_SSO_DISABLEDwhile it is off. - New scopes.
platform_dashboard:readandplatform_dashboard:write(portal area keys, same as embed). - Mint.
createDashboardSession(input)(server token,platform_dashboard:write) binds a platform user and company, an optionalreturnUrlon an allowed web origin, and returns ahandoffUrlwith a single-use code (ds_…). Wrong origin →DASHBOARD_RETURN_URL_NOT_ALLOWED. - Exchange.
exchangeDashboardSession(input: { code })is anonymous: FinBaze exchanges the code once for a short-lived JWT withtyp: dashboard,aud: finbaze-web, and the company'sprofile_ids. Reuse →DASHBOARD_CODE_USED; unknown / expired / revoked →DASHBOARD_CODE_INVALID,DASHBOARD_CODE_EXPIRED, orDASHBOARD_SESSION_REVOKED. A refresh chain past its lifetime →DASHBOARD_CHAIN_EXPIRED. - Session reads.
dashboardContext(dashboard token),dashboardSession(id)anddashboardSessions(filter)(server token,platform_dashboard:read). - Revoke.
revokeDashboardSession(id)andrevokeDashboardSessionsForUser(platformUserId, companyId)(server token,platform_dashboard:write). Revocation is checked on every dashboard-token request. - Events.
dashboard_session.exchangedanddashboard_session.used(webhook topic Companies, users and sessions). - Not available to assistants and agents without confirmation: the create / exchange / revoke mutations.