Organization Page-by-Page Guide
This inventory is aligned to the current organization console route tree and the latest agent, float, and transaction-contract implementation. Live browser smoke was refreshed on 2026-04-08 and is now part of the repo via pnpm -C emali2-frontend smoke:org.
Evidence and Current Limitation
- Portal:
https://org.test.emali2.damplabs.com - Route tree source:
emali2-frontend/apps/org-console/src/App.tsx - Behavior sources:
emali2-frontend/apps/org-console/src/pages/FloatManagementPage.tsxemali2-frontend/apps/org-console/src/pages/AgentDetailsPage.tsxemali2-frontend/apps/org-console/src/pages/AgentChildrenPage.tsxemali2-frontend/apps/org-console/src/pages/TransactionsPage.tsxemali2-frontend/apps/org-console/src/services/orgApi.ts- Live note: on 2026-04-08
orgadmin1,org1, andpnpadminall authenticated successfully, but they currently resolve to the same organization-admin context in test. Treat that as active RBAC/environment drift until corrected.
Public Entry Routes
| Route | Access | Current Behavior |
|---|---|---|
/ |
Public or session-aware | Sends an authenticated organization-linked user into /app; otherwise shows the landing state. |
/login |
Public | Organization sign-in entry. |
/register |
Public | Organization onboarding/registration request route. |
/forbidden |
Public | Used for access denial and missing-context outcomes. |
Core Operational Routes
| Route | Access | Current Behavior |
|---|---|---|
/app |
Org-linked user | Dashboard for the resolved organization context. |
/app/transactions |
Org-linked user | Uses the backend org-perspective v2 transaction contract by default for unit-scoped transaction search and monitoring, with compatibility fallback only if the v2 endpoint is unavailable. |
/app/transactions/:txnId |
Org-linked user | Transaction detail for a record already visible in scope. |
/app/tills/:tillId/ledger |
Org-linked user | Ledger view for a specific till reached from a valid detail page. |
/app/float |
Org-linked user with relevant unit context | Float workspace that resolves the selected assigned unit, current balance snapshot, journal report, and unit transactions together. |
/app/wallet |
Org-linked user | Organization wallet route. |
/app/settlements |
Org-linked user | Settlement list. In the current test environment the page loads but shows a restricted-state banner for the tested org roles. |
/app/settlements/:batchId |
Org-linked user | Settlement-batch detail. Also restricted when the current org role lacks settlement capability. |
/app/reports |
Org-linked user | Reporting workspace for the resolved organization context. |
/app/performance |
Org-linked user | Performance metrics and comparisons. Settlement-specific KPIs degrade into a restricted-state warning when settlement capability is unavailable. |
/app/approvals |
Org-linked user with approval roles | Approval queue. |
/app/team |
Org admin, system admin, or service provider | Team-management route. |
/app/profile |
Org-linked user | Settings/profile surface for the signed-in org-linked account. |
/app/settings |
Org admin, system admin, or service provider | Administrative settings entry. |
/app/security/2fa |
Org-linked user | Identity-backed two-factor entry point. |
Organization-Only Management Routes
These routes are only mounted when the resolved organization type is organization.
| Route | Access | Current Behavior |
|---|---|---|
/app/agents |
Organization workspace | Agent directory with filters and direct visibility of till and shortcode identifiers. |
/app/agents/:agentId |
Organization workspace | Agent detail, including tills, shortcodes, float, and hierarchy actions for eligible tiers. |
/app/agents/:agentId/children |
Organization workspace | Child-agent hierarchy summary for SUPER and MASTER agents. |
/app/merchants |
Organization workspace | Merchant directory. |
/app/merchants/:merchantId |
Organization workspace | Merchant detail and mapped till/shortcode behavior. |
/app/bills |
Organization workspace | Bills-management route. |
/app/bank-simulator |
Organization workspace | Non-production banking simulation route. |
/app/organizations |
Organization workspace | Organization-unit directory. |
/app/organizations/:unitId |
Organization workspace | Specific organization-unit detail. |
/app/branches |
Organization workspace | Branch directory. |
/app/branches/:branchId |
Organization workspace | Branch detail. |
/app/branch-comparison |
Organization workspace | Branch-comparison analytics. |
/app/policies |
Organization workspace | Policies and limits. |
/app/audit-trail |
Organization workspace | Audit log and governance review. |
/app/roles |
Organization workspace | Role and permission visibility for organization operations. |
/app/pos-backoffice |
Organization workspace | External handoff into the merchant POS backoffice. This is a launcher, not a native org-console implementation of POS operations. |
Shared Business Routes
These routes are shared between merchant and organization contexts when enabled by the resolved org type.
| Route | Access | Current Behavior |
|---|---|---|
/app/payouts |
Merchant or organization context | Payout initiation and batch handling. |
/app/invoices |
Merchant or organization context | Invoice review and processing. |
Deep Dive: /app/float
What changed
- The page no longer behaves like a generic float dashboard detached from unit context.
- It resolves the selected assigned organization unit, then loads:
- the agent profile tied to that unit,
- the current float balance,
- the journal snapshot for the same
unitId, - the organization-unit transaction history for the same
unitId.
What operators should expect
- Changing the selected unit changes the balance and transaction evidence shown on the page.
- Top-up and customer-deposit actions must be interpreted as unit-scoped operations.
- Empty float pages should be troubleshot as missing unit context or missing agent-backed units, not as generic UI failure.
Deep Dive: /app/agents and /app/agents/:agentId
Current behavior
- The agent directory exposes tills and shortcodes directly instead of hiding them behind a separate detail lookup.
- Agent detail pages surface tills and shortcodes and provide ledger drill-down for mapped tills.
- For
SUPERandMASTERagents, the detail flow can expose a child-agent navigation path into the dedicated hierarchy page.
Deep Dive: /app/agents/:agentId/children
Current behavior
- This route is the dedicated hierarchy summary for a selected super agent.
- It aggregates child count, total child float, till coverage, and the child agent rows themselves.
- The child table is designed to show till numbers directly and surface shortcode chips without requiring separate navigation for every child row.
Operational note
If the route returns no data for a supposedly super agent, verify the agent tier first. The hierarchy endpoint intentionally rejects agents that are not SUPER or MASTER.