---
id: MOD-PFM-CSH
title: Console Shell and Navigation
product_area: platform
module: console-shell
revision: 2
status: draft
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repositories:
  - name: react-console
    paths:
      - app/(console)/layout.tsx
      - app/(console)/page.tsx
      - 'app/(console)/[...legacy]/page.tsx'
      - 'app/(console)/console/[tenantId]/layout.tsx'
      - 'app/(console)/console/[tenantId]/page.tsx'
      - 'app/(console)/console/[tenantId]/[...slug]/page.tsx'
      - 'app/(console)/console/[tenantId]/configuration/page.tsx'
      - components/console (shell files)
      - components/configuration/applications
      - components/configuration/resources/custom-apps.tsx
      - lib/routes
      - lib/console
      - lib/authz/guard.tsx
      - lib/authz/evaluate.ts
      - lib/security-context/entitlements.ts
      - lib/security-context/application-refusal.ts
      - lib/security-context/provider.tsx
      - lib/applications
      - lib/custom-objects/navigation.ts
      - lib/custom-objects/use-custom-navigation.ts
      - docs/url-architecture.md
      - docs/page-layouts.md
      - docs/migration/02-information-architecture.md
      - e2e (the specifications named in the coverage table)
      - components/console/home
      - lib/api/dashboard.ts
      - lib/security-context/boot.ts
      - lib/security-context/tenant-id.ts
      - lib/security-context/context.ts
      - 'lib/security-context/{boot,tenant-id,context}.test.ts'
  - name: services-platform
    paths:
      - modules/security/aws/api/access.routes.ts
      - modules/security/services/access/security-context.ts
      - modules/tenants/aws/api/tenant-applications.routes.ts
      - modules/licensing (read only)
      - docs/proposals/application-access-and-entitlements.md
      - docs/security/application-access.md
      - docs/licensing.md
owns:
  - 'The common frame, readiness presentation, working page space and shared command entry points'
  - >-
    The visible map of application work, shared tools, administrative areas and customer record
    placements
  - >-
    Console destinations, workspace-address entry and switching, compatibility entry and
    record-reference routing
  - >-
    Application presentation, unavailable-page explanation, refresh integration and the
    administrative availability overview
does_not_own:
  - record: 'Identity, authentication, sessions, reachable workspaces and staff workspace clearance'
    owner: MOD-PFM-SEC
  - record: >-
      Commercial and operational application decisions, licensing records and the staff licensing
      interface
    owner: MOD-PFM-OPS
  - record: Record-view history presented through Recent Items
    owner: MOD-PFM-OPS
  - record: 'Customer-defined record types, applications and navigation placement records'
    owner: MOD-PFM-MTD
  - record: Search queries and results reached through the common search entry point
    owner: MOD-PFM-QRY
  - record: 'Attention work, covering information and the personal responsibilities destination'
    owner: MOD-PFM-ELG
  - record: Notifications displayed through shared frame controls
    owner: MOD-PFM-NOT
  - record: The assistant experience hosted by the console
    owner: MOD-PFM-LLM
  - record: Financial working context displayed in the header
    owner: MOD-ACC-BKS
  - record: Business and administrative page tasks hosted within the frame
    owner: The module that owns the records it administers (for example MOD-CRM-ENT)
  - record: Individual staff tasks carried out within Rhythm HQ
    owner: 'MOD-PFM-SEC, MOD-PFM-OPS, MOD-PFM-LLM, MOD-PFM-QRY'
hosted_screens:
  - route: /
    purpose: Starting destination selected for the session
  - route: '/{oldPath}'
    purpose: Compatibility entry for earlier console destinations
  - route: '/console/{tenantId}'
    purpose: The workspace starting page
  - route: '/console/{tenantId}/{plannedPath}'
    purpose: A recognized destination whose working screen is planned
  - route: '/console/{tenantId}/configuration'
    purpose: The administrative application availability overview
  - route: (every console page)
    purpose: Shared orientation and access presentation surrounding console pages
supersedes: []
evidence:
  - >-
    react-console: app/(console) shell entry points;
    components/console/{app-sidebar,nav-config,collapse-sidebar,application-unavailable,application-route-gate,console-shell,console-provider,site-header,tenant-id-gate,tenant-switcher,use-shell-mode,legacy-redirect,page-layout,page-header,feedback-dialog}.*;
    components/console/home; components/configuration/applications; lib/routes; lib/console;
    lib/authz; lib/security-context; lib/applications; lib/custom-objects/navigation.ts and
    use-custom-navigation.ts; lib/api/dashboard.ts; docs/url-architecture.md, docs/page-layouts.md
    and docs/migration/02-information-architecture.md; the browser and unit files enumerated in the
    examination report.
  - >-
    services-platform: modules/security/aws/api/access.routes.ts;
    modules/security/services/access/security-context.ts;
    modules/tenants/aws/api/tenant-applications.routes.ts; modules/licensing, inspected as the
    Operations-owned availability dependency; docs/proposals/application-access-and-entitlements.md,
    docs/security/application-access.md and docs/licensing.md.
  - >-
    Examined coverage: 7 shell entry points, 7 called operations, 145 named permission references,
    13 browser files, 20 direct unit files and 3 Security unit dependencies; 155 rules, 109
    must-prove, 98 with scenarios and 49 with static bindings. The examination report identifies the
    source surfaces and unresolved proof.
  - >-
    Product decision sources: react-console:docs/url-architecture.md and docs/page-layouts.md;
    services-platform:docs/proposals/application-access-and-entitlements.md and docs/licensing.md.
    Observations without a confirming origin remain proposed.
coverage_catalog: >-
  | Surface | Examined / total | Coverage and limitations |

  |---|---|---|

  | Shell page and layout entry points | 7/7 | CAP-PFM-CSH-001, 004, 009, 010, 012, 017 |

  | Called Platform operations | 7/7 | CAP-PFM-CSH-001, 008, 010, 011, 016, 017; Security, Metadata
  and Operations own the services |

  | Named shell permission references | 145/145 | Static constant extraction across header,
  provider, sidebar, application overview, navigation, domain and record catalogues; generic checks
  in CAP-PFM-CSH-003, 005, 006, 007, 008, 014, 017, 018 |

  | Console permission registry | 1026/1026 subject to shared evaluation | CAP-PFM-CSH-014; registry
  size is not a count of shell-specific task rules |

  | Browser specification files referenced by this layer | 13/13 | Static examination; unsupported
  scenario bindings remain proposed under FND-PFM-CSH-025 |

  | Direct shell and integration unit files | 20/20 | Includes the omitted Orders navigation and
  record-destination tests, and home dashboard-state tests |

  | Security boot, context and workspace-id unit dependencies | 3/3 assigned | Security owns them;
  entry integration is represented in CAP-PFM-CSH-010, 012, 013 |

  | Licensing API operations | 10/10 assigned | Operations owns all ten; FND-PFM-CSH-001 and 031 |

  | Licensing tables | 9/9 assigned | Operations owns all nine; the shell owns none |

  | Shell state machines, queues and schedules | 0/0 | No owned asynchronous resources |

  | Licensing queue, dead-letter queue and nightly schedule | 3/3 assigned | Operations owns
  synchronization and reconciliation; FND-PFM-CSH-031 |

  | Must-prove rules | 98/109 have scenarios; 49/109 have bindings | Remaining rules are named in
  FND-PFM-CSH-021; a static binding is not a recorded product test pass |

  | Earlier shell acceptance inventory seeds | 0/0 | FND-PFM-CSH-004 |
---

# Console shell and navigation

## Purpose

This module brings console work into a recognizable frame and an understandable map of destinations. Its capabilities cover orientation, page space, common actions, navigation, working addresses and the presentation of application access. Together they let staff request work in an explicit context and understand why a destination cannot open.

## Boundary

The shell owns presentation and navigation integration. Security supplies identity and authority, Operations supplies application availability, and Metadata supplies customer-defined record placements. The shell maintains no business tables and does not become a second authority for these answers. Hosted tools and individual business pages remain with their owning modules.

The planning layer separates observed implementation from product decisions and automated proof. Findings retain unresolved behavior and missing evidence for Andrew’s review. Source coverage establishes which surfaces were examined; it does not certify that every journey passes in a running product.

## Features

| Feature | Group | Capabilities | Journeys |
|---|---|---|---|
| `FEAT-PFM-CSH-01` | The shared console frame | 5 | 1 |
| `FEAT-PFM-CSH-02` | Finding work through navigation | 3 | 1 |
| `FEAT-PFM-CSH-03` | Addresses and working context | 6 | 2 |
| `FEAT-PFM-CSH-04` | Application access in the console | 4 | 1 |

## Capabilities

| Id | Feature | Outcome | Product intent | Implementation evidence |
|---|---|---|---|---|
| `CAP-PFM-CSH-001` | `FEAT-PFM-CSH-01` | Use a consistent console frame | proposed | observed |
| `CAP-PFM-CSH-002` | `FEAT-PFM-CSH-01` | Fit the page to the available workspace | proposed | observed |
| `CAP-PFM-CSH-003` | `FEAT-PFM-CSH-01` | Reach common actions with keyboard shortcuts | proposed | observed |
| `CAP-PFM-CSH-004` | `FEAT-PFM-CSH-01` | Begin work from the workspace home | proposed | partially-observed |
| `CAP-PFM-CSH-005` | `FEAT-PFM-CSH-01` | Find personal actions and support in the user menu | proposed | partially-observed |
| `CAP-PFM-CSH-006` | `FEAT-PFM-CSH-02` | Find a destination in the application menu | proposed | observed |
| `CAP-PFM-CSH-007` | `FEAT-PFM-CSH-02` | Visit settings and return to the preceding work | proposed | observed |
| `CAP-PFM-CSH-008` | `FEAT-PFM-CSH-02` | Locate custom record types in familiar navigation | proposed | observed |
| `CAP-PFM-CSH-009` | `FEAT-PFM-CSH-03` | Open console work through a durable address | proposed | observed |
| `CAP-PFM-CSH-010` | `FEAT-PFM-CSH-03` | Enter the workspace named by a link | proposed | observed |
| `CAP-PFM-CSH-011` | `FEAT-PFM-CSH-03` | Continue in another workspace without reusing a record | proposed | observed |
| `CAP-PFM-CSH-012` | `FEAT-PFM-CSH-03` | Resolve older console links during the address transition | proposed | observed |
| `CAP-PFM-CSH-013` | `FEAT-PFM-CSH-03` | Keep staff work and workspace work in distinct contexts | proposed | observed |
| `CAP-PFM-CSH-014` | `FEAT-PFM-CSH-04` | Apply the workspace and person’s application access | proposed | observed |
| `CAP-PFM-CSH-015` | `FEAT-PFM-CSH-04` | Explain why an application page cannot open | proposed | observed |
| `CAP-PFM-CSH-016` | `FEAT-PFM-CSH-04` | Refresh application choices when access changes | proposed | observed |
| `CAP-PFM-CSH-017` | `FEAT-PFM-CSH-04` | Understand the workspace’s application availability | proposed | observed |
| `CAP-PFM-CSH-018` | `FEAT-PFM-CSH-03` | Follow a record reference to the right page | proposed | observed |

## Journeys

| Id | Journey | Product intent | Browser policy |
|---|---|---|---|
| `JNY-PFM-CSH-001` | Start a session in the workspace home | proposed | required |
| `JNY-PFM-CSH-002` | Visit Configuration and resume record work | proposed | required |
| `JNY-PFM-CSH-003` | Open a shared record link and retain its context | proposed | required |
| `JNY-PFM-CSH-004` | Move record work into another workspace | proposed | required |
| `JNY-PFM-CSH-005` | Understand an unavailable application | proposed | required |
