---
id: SVC-PFM-QRY-explorer
title: Explorer service module
product_area: platform
module: queries
repository: services-platform
source_module: modules/explorer
revision: 1
status: draft
design_intent: proposed
implementation_evidence: observed
inference: []
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
owns:
  - DOM-PFM-QRY-002
does_not_own:
  - >-
    Queries owns saved questions, recipes and execution; Explorer uses the shared in-process recipe
    and ordered-identity interfaces.
  - >-
    Application modules own their list screens and business records; Operations owns later bulk
    modification.
operations:
  - operation_id: startExplorerNavigation
    intent: Create a bounded owner-specific identity window around the opened record.
    method: 'POST /explorer/{tenantId}/navigation'
    access: console
    permission: platform.explorer-views.use
    realises:
      - CAP-PFM-QRY-010
    published_to_submissions: 'not published: console work management'
    provenance: observed
    source: >-
      services-platform:modules/explorer/aws/api/explorer-navigation.routes.ts:startExplorerNavigation
  - operation_id: selectExplorerRecordIds
    intent: >-
      Return matching ordered identities with the implemented selection cap and truncation
      indicator.
    method: 'POST /explorer/{tenantId}/selection'
    access: console
    permission: platform.explorer-views.use
    realises:
      - CAP-PFM-QRY-010
    published_to_submissions: 'not published: console work management'
    provenance: observed
    source: >-
      services-platform:modules/explorer/aws/api/explorer-navigation.routes.ts:selectExplorerRecordIds
  - operation_id: readExplorerNavigation
    intent: 'Read owner navigation state and, at an edge, extend or rebuild its window.'
    method: 'GET /explorer/{tenantId}/navigation/{navigationId}'
    access: console
    permission: platform.explorer-views.use
    realises:
      - CAP-PFM-QRY-010
    published_to_submissions: 'not published: information retrieval'
    provenance: observed
    source: >-
      services-platform:modules/explorer/aws/api/explorer-navigation.routes.ts:readExplorerNavigation
  - operation_id: getExplorerViewPreferences
    intent: 'Read the person’s pinned and opening views, or unsaved defaults.'
    method: 'GET /explorer/{tenantId}/preferences/{explorerId}'
    access: console
    permission: platform.explorer-views.use
    realises:
      - CAP-PFM-QRY-009
    published_to_submissions: 'not published: information retrieval'
    provenance: observed
    source: >-
      services-platform:modules/explorer/aws/api/explorer-preferences.routes.ts:getExplorerViewPreferences
  - operation_id: putExplorerViewPreferences
    intent: Replace the person’s complete view preferences using the supplied version header.
    method: 'PUT /explorer/{tenantId}/preferences/{explorerId}'
    access: console
    permission: platform.explorer-views.use
    realises:
      - CAP-PFM-QRY-009
    published_to_submissions: 'not published: console work management'
    provenance: observed
    source: >-
      services-platform:modules/explorer/aws/api/explorer-preferences.routes.ts:putExplorerViewPreferences
  - operation_id: createExplorerView
    intent: Store a recipe-based list arrangement with requested permitted sharing.
    method: 'POST /explorer/{tenantId}/views'
    access: console
    permission: platform.explorer-views.use
    realises:
      - CAP-PFM-QRY-009
    published_to_submissions: 'not published: console work management'
    provenance: observed
    source: 'services-platform:modules/explorer/aws/api/explorer-views.routes.ts:createExplorerView'
  - operation_id: listExplorerViews
    intent: Browse owner and workspace-shared views for the requested dataset or recipe.
    method: 'GET /explorer/{tenantId}/views'
    access: console
    permission: platform.explorer-views.use
    realises:
      - CAP-PFM-QRY-009
    published_to_submissions: 'not published: information retrieval'
    provenance: observed
    source: 'services-platform:modules/explorer/aws/api/explorer-views.routes.ts:listExplorerViews'
  - operation_id: getExplorerView
    intent: Read a visible list arrangement; hidden private views appear missing.
    method: 'GET /explorer/{tenantId}/views/{viewId}'
    access: console
    permission: platform.explorer-views.use
    realises:
      - CAP-PFM-QRY-009
    published_to_submissions: 'not published: information retrieval'
    provenance: observed
    source: 'services-platform:modules/explorer/aws/api/explorer-views.routes.ts:getExplorerView'
  - operation_id: updateExplorerView
    intent: Version-check a full replacement while retaining dataset and owner identity.
    method: 'PUT /explorer/{tenantId}/views/{viewId}'
    access: console
    permission: platform.explorer-views.use
    realises:
      - CAP-PFM-QRY-009
    published_to_submissions: 'not published: console work management'
    provenance: observed
    source: 'services-platform:modules/explorer/aws/api/explorer-views.routes.ts:updateExplorerView'
  - operation_id: patchExplorerView
    intent: Apply validated patch directives to an editable view at its read version.
    method: 'PATCH /explorer/{tenantId}/views/{viewId}'
    access: console
    permission: platform.explorer-views.use
    realises:
      - CAP-PFM-QRY-009
    published_to_submissions: 'not published: console work management'
    provenance: observed
    source: 'services-platform:modules/explorer/aws/api/explorer-views.routes.ts:patchExplorerView'
  - operation_id: deleteExplorerView
    intent: Remove an editable list view after the write checks.
    method: 'DELETE /explorer/{tenantId}/views/{viewId}'
    access: console
    permission: platform.explorer-views.use
    realises:
      - CAP-PFM-QRY-009
    published_to_submissions: 'not published: console work management'
    provenance: observed
    source: 'services-platform:modules/explorer/aws/api/explorer-views.routes.ts:deleteExplorerView'
  - operation_id: getExplorerHealth
    intent: Return this API’s health and deployed service identity.
    method: GET /explorer/health
    access: public
    permission: 'none: public route'
    realises: []
    published_to_submissions: 'not published: diagnostic health read'
    provenance: observed
    source: 'services-platform:modules/explorer/aws/api/explorer.routes.ts:healthRoute'
events: []
jobs: []
integrations:
  - system: Queries module (in process)
    direction: outbound
    contract: >-
      Recipe resolution and ordered record reads use the query module in process under the execution
      context.
  - system: CRM list screens in the React console
    direction: inbound
    contract: >-
      Application list screens call the shared console Explorer library for views, preferences,
      navigation and selection.
consistency:
  - rule: View writes validate the resolved definition and compare the read version before persistence.
    kind: transactional
    compensation: Refusal leaves the previous view unchanged.
  - rule: >-
      Navigation preserves stored ordering inside its current window and queries again to extend or
      rebuild it.
    kind: transactional
    compensation: >-
      There is no immutable full result; edited record contents and boundary queries can change
      independently.
  - rule: >-
      Preferences replace the complete owner arrangement under version checking, including
      references to missing views.
    kind: transactional
    compensation: The console handles missing referenced views when resolving the saved preferences.
evidence:
  - >-
    services-platform at ad3f6a6: modules/explorer/aws/api/*.routes.ts (imported route arrays),
    aws/logic/explorer-api.lambda.ts, services/**, db/*.table.ts; docs/explorer.md
  - 'react-console at baf6dae: lib/record-explorer/*.ts'
controls: [TC-AVL-004, TC-AVL-005, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-CHG-001, TC-CHG-002, TC-CHG-003, TC-CHG-004, TC-CHG-005, TC-CHG-006, TC-DAT-001, TC-DAT-002, TC-DAT-003, TC-DAT-004, TC-IAM-001, TC-IAM-002, TC-IAM-004, TC-IAM-005, TC-IAM-006, TC-LOG-004, TC-LOG-005, TC-MON-001, TC-PI-001, TC-PI-002, TC-PI-003, TC-PI-004, TC-PI-005, TC-PRV-001, TC-PRV-002, TC-PRV-004, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-TEN-004, TC-VEN-001, TC-VEN-002, TC-VEN-003]
---

# Explorer service module

## What This Service Is For

Explorer persists personal and shared list arrangements and temporary navigation state, and reads ordered identity selections for application list screens.

## Boundary

It does not own the list records or host a standalone list page in this module. Queries supplies dataset and recipe execution, while applications and Operations own subsequent actions.

## Operations in Words

View operations manage recipe-based arrangements. Preferences choose and pin views; navigation keeps a bounded person-specific window, and selection returns bounded identities for a caller.

## Events and Jobs

The module declares no event stream or background job. List operations execute synchronously through the query interface.

## Consistency Guarantees

Version-aware definition writes protect replacement. Navigation stability applies to the retained window, with fresh reads and renewed access checks when extending it.
