---
id: CON-PFM-CSH-003
name: Console Address
feature: FEAT-PFM-CSH-03
product_area: platform
module: console-shell
revision: 2
status: draft
product_intent: proposed
implementation_evidence: observed
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
definition: >-
  A console address identifies a page and its working context. It lets a person return to a
  workspace destination through a bookmark, a shared link or browser history.
owned_by: MOD-PFM-CSH
synonyms:
  - console URL
  - direct console link
not_to_be_confused_with:
  - Addresses used by Platform services
  - Member-facing portal destinations
  - The workspace identity record maintained by Security
facets:
  - name: Two roots
    meaning: >-
      Workspace console work and Rhythm HQ work have distinct address roots; other runtimes have
      their own surfaces.
    used_for: Distinguishing customer work from Rhythm staff work.
  - name: Workspace in the address
    meaning: A workspace address carries the identity of the workspace it requests.
    used_for: Sharing a destination together with its context.
  - name: 'Area, resource and record'
    meaning: >-
      Address structure describes a product area, a collection and, when relevant, a record and its
      parent.
    used_for: Giving destinations a recognizable hierarchy.
  - name: Configuration by module
    meaning: 'Configuration has an address organization of its own, grouped around modules.'
    used_for: Keeping administrative destinations discoverable.
  - name: Path words
    meaning: Defined address words follow a common naming convention; identifiers remain data values.
    used_for: Maintaining consistency across destinations.
  - name: Route table
    meaning: >-
      A shared catalogue supplies destination building and address matching, with explicit test
      boundaries.
    used_for: Keeping links and recognized pages aligned.
  - name: Old addresses
    meaning: Compatibility mappings connect earlier addresses with current destinations.
    used_for: Supporting previously saved links during transition.
  - name: Planned addresses
    meaning: Known destinations can represent work that has not yet been implemented.
    used_for: Making the planned product structure visible.
relationships:
  - to: CON-PFM-CSH-001
    statement: The address supplies the working context used by the frame.
    provenance: observed
    source: 'react-console:components/console/use-shell-mode.ts:useShellMode'
  - to: CON-PFM-CSH-002
    statement: Navigation links to destinations and recognizes the current position from its address.
    provenance: observed
    source: 'react-console:lib/routes/match.ts:matchConsolePath'
  - to: CON-PFM-CSH-004
    statement: Application checks associate an address with its product area.
    provenance: observed
    source: 'react-console:components/console/application-route-gate.tsx:ApplicationRouteGate'
acted_on_by:
  - CAP-PFM-CSH-009
  - CAP-PFM-CSH-010
  - CAP-PFM-CSH-011
  - CAP-PFM-CSH-012
  - CAP-PFM-CSH-013
  - CAP-PFM-CSH-018
visible_to:
  - ACT-PFM-001
  - ACT-PFM-002
  - ACT-PFM-004
  - ACT-PFM-005
evidence:
  - >-
    react-console at baf6dae: docs/url-architecture.md (plan decided 2026-10-14, final acceptance by
    Andrew 2026-10-15), lib/routes/{definitions,build,match,legacy,keys,routes,active}.ts,
    lib/routes/__tests__/{routes,guards,legacy}.test.ts,
    components/console/{tenant-id-gate,tenant-switcher,legacy-redirect,use-shell-mode}.tsx,
    app/(console)/[...legacy]/page.tsx, app/(console)/console/[tenantId]/[...slug]/page.tsx,
    next.config.mjs, e2e/mock/url-architecture.mock.spec.ts, e2e/dev/url-architecture.dev.spec.ts.
  - >-
    services-platform at ad3f6a6: modules/security/aws/api/access.routes.ts (the strict workspace
    context the address asks for; owned by MOD-PFM-SEC).
supersedes: []
---

# Console Address

## What It Is

A console address identifies both a destination and the context in which that destination is opened. It allows a person to save a page, send a link to a colleague or return through browser history with the workspace still expressed in the link. This makes an address part of the product's working model rather than merely a technical location.

The accepted address architecture distinguishes customer workspace work from Rhythm HQ work. Within a workspace, the destination describes an area of the product and the resource being viewed. A record address adds the record's identity and, where required, the parent that gives it meaning. Configuration has its own organization within this architecture.

## What It Is Not

An address is a request to enter a context, not permission to enter it. Platform still determines whether the signed-in person can reach the named workspace. Pages and services also enforce the authority required for their work. A valid-looking bookmark may therefore lead to an explanation rather than the requested record.

Console addresses do not define Platform service addresses or the member-facing portal. Payment and report-print surfaces also have their own roles outside the shared console frame. Security owns the identity of a workspace; the console carries that identity in its addresses without defining how the identity is assigned.

## How It Is Used

A person encounters addresses while following a colleague's link, reopening a bookmark, reloading work or moving backward and forward in the browser. These actions should preserve the intended context whenever it can be established. A direct record link is especially valuable because it carries more meaning than a link to the console's starting page.

Workspace switching introduces a different concern: a record in one workspace cannot simply be assumed to exist in another. The switch destination therefore needs a product policy that distinguishes a reusable type of page from a particular record. Older links introduce another concern because they may lack the explicit workspace context now expected by the console.

## Its Facets

**Context roots and workspace identity.** The address distinguishes workspace work from staff work and names the workspace requested by a direct link. Other runtimes remain outside these console roots.

**Destination hierarchy.** Product area, resource and record give an address its working meaning. A parent can be necessary to interpret a child record. Configuration uses its own grouping to keep settings recognizable.

**Naming and catalogue.** Shared address words and a destination catalogue keep the product's links consistent. Address builders and matching serve complementary purposes: expressing a destination and recognizing one that has been requested.

**Transition and planned work.** Compatibility mappings support earlier addresses. Planned destinations can still have a recognized position before their working page exists. Both need clear limits so a person understands what has opened.

## How It Relates

The shell reads the address to establish context and operating mode. Navigation uses destinations to move between pages and identify the current position. Application checks associate destinations with product availability. Record-reference links combine a record's identity with the destination policy appropriate to that type of record.

Security supplies the workspace-access answer. The module owning a record remains responsible for the record's existence and the person's authority to use it; address recognition alone establishes neither.

## What It Could Become

The product should set a recorded end condition for compatibility redirects. The product should decide whether selected filters can safely survive a workspace switch, based on whether their meaning depends on the original workspace. Extending address naming conventions to service contracts requires its own decision and should not follow merely from the console convention.
