Skip to main content

Org Page (/org/[orgId])

Purpose: per-organisation routing + participant scoping. Source: app/src/app/org/[orgId]/ (routes defined in app/src/shared/constants/routes.ts).

Org page

In network topology each org has its own participant URL. The frontend resolves the active org from the URL segment (/org/goldman, /org/jpmorgan, …), sends X-Irsforge-Org: <orgId> on ledger requests, and the /api/ledger proxy forwards to that org's ledgerUrl.

/org/[orgId] itself has no landing UI. It redirects through defaultLandingRoute (app/src/shared/constants/routes.ts) using orgs[].role:

  • trader/org/<id>/blotter
  • operator/org/<id>/operator
  • regulator/org/<id>/oversight
Sub-routePage
/org/<id>Redirect to the role-specific landing page
/org/<id>/blotterTrader/operator org-scoped blotter
/org/<id>/workspaceTrader/operator workspace
/org/<id>/csaTrader/operator CSA page
/org/<id>/operatorOperator inbox (operator role only)
/org/<id>/oversightRegulator cross-org oversight blotter
/org/<id>/timelineRegulator business-event timeline
/org/<id>/csa-boardRegulator CSA oversight board
/org/<id>/loginLogin (demo party selector / OIDC entry)
/org/<id>/callbackOIDC callback

(auth) in the source tree is a Next.js route group — it does not appear in the URL. The public paths are /org/<id>/login and /org/<id>/callback.

The shell also blocks wrong-role pages. A regulator who navigates to /blotter, /workspace, /csa, or /operator is redirected back to /oversight; traders cannot open /operator or regulator pages.

In sandbox topology every entry routes to the same single sandbox.

Configurable via yaml

yaml keyEffect
orgs[]Each entry creates an /org/<id> route
orgs[].displayNameTitle rendered on the page
orgs[].roleDrives the default landing route and visible navigation (trader, operator, regulator)
orgs[].ledgerUrlWhere this org's API calls are proxied (network only)
orgs[].streamUrlOptional WebSocket URL for Canton JSON API streams; derived from ledgerUrl when omitted
orgs[].subdomainUsed when routing: subdomain
routing: pathURLs use /org/<id>
routing: subdomainURLs use <subdomain>.<host>