Skip to Content

Modules

A module is a product area composed from implemented capabilities. Module state answers two separate questions:

  1. Is the module ready in this application?
  2. Has the workspace enabled it?

The effective app status is:

ready + enabled → enabled ready + disabled → disabled not ready → unavailable

App readiness is a code-owned release flag in packages/domain/src/modules/catalog.ts. Workspace enablement is a persisted boolean setting. A setting cannot make an app with incomplete behavior ready.

GET /v1/modules returns the effective matrix for authenticated workspace and patient sessions. Apps use it to hide navigation, actions, data fetching, and direct routes. Module-owned API routes enforce the same workspace setting.

Scheduling

Scheduling uses modules.scheduling.enabled and defaults on when no setting has been persisted. It includes appointments, practitioners, availability, and booking.

ApplicationReady
APIYes
DawnYes
Dawn actionsYes
Patient appNo

The patient app remains unavailable because its booking flow is not yet supported by the patient access boundary. Its Scheduling UI stays hidden until that behavior is implemented and the app readiness flag is changed.

Last updated on