/rh/compliance/requirements.
Overview
The Requirements screen displays a filterable, searchable table of compliance requirement records scoped to the current organization. Staff with therh.compliance.create permission see an “Add Requirement” button that opens an inline dialog to create a new record. The list can be narrowed by category, frequency, and active status.
Who it’s for
Protected byRH_PERMISSIONS.DASHBOARD_VIEW (rh.dashboard.view) via the shared RHViewGuard on all RH routes. No additional per-route RequirePermission gate exists for /rh/compliance/requirements. The “Add Requirement” button is additionally gated by rh.compliance.create via an inline PermissionGate.
Before you start
- Your account must have the
rh.dashboard.viewpermission to access this screen. - Creating or editing requirements additionally requires
rh.compliance.create.
Steps
Navigate to Requirements
/rh/compliance/requirements.Search and filter
View a requirement
/rh/compliance/requirements/:id.Add a requirement (admin only)
rh.compliance.create, click “Add Requirement” to open the creation dialog and fill in the required fields.Key concepts
Requirement categories
Requirement categories
staffing, documentation, safety, outcomes, slh_rights, postings, or other. The compliance meaning of each category should be confirmed with your compliance SME.Requirement frequency
Requirement frequency
daily, weekly, monthly, quarterly, annual, and one_time. Frequency governs how often the requirement must be satisfied or documented.Active vs. inactive requirements
Active vs. inactive requirements
is_active flag. Inactive requirements remain in the database but are hidden from the default “Active” filter view.Viewing a requirement
The Requirement Details screen is at/rh/compliance/requirements/:id and renders the ComplianceRequirementDetailPage component. It displays a single compliance requirement record from useComplianceRequirementDetail and allows editing and checklist management.
The page resolves the requirement by :id via useComplianceRequirementDetail. The breadcrumb label is set dynamically from requirement_name.
The header shows the requirement name, category, frequency, active/inactive status badge, and an Edit button that opens ComplianceRequirementDialog.
Two detail cards are displayed:
- Requirement Details — category, frequency, regulatory source (if present), applies-to scope (if present), evidence required, and verification required flags.
- Assignment — shows the linked residence name, or a note indicating organization-wide scope when
residenceis null.
description is populated.
A Compliance Checklists card renders ComplianceChecklistsTable filtered to the current requirement. The “Add Checklist Item” button opens ComplianceChecklistDialog.
The outer RHViewGuard requires rh.dashboard.view; no additional gate exists on this route. A compliance requirement with the target ID must exist and belong to the current organization.
Navigate to Compliance Requirements
/rh/compliance/requirements. The requirements list is displayed.Open a requirement record
/rh/compliance/requirements/:id.Review requirement details
Review assignment
Review description (if present)
description is populated, a Description card shows the full text.Manage compliance checklists
ComplianceChecklistDialog and add a new item.Edit the requirement (optional)
ComplianceRequirementDialog pre-populated with the current values. Submit to save changes.Return to requirements list
/rh/compliance/requirements.Key concepts
Creating a requirement
The compliance requirement creation wizard lives at/rh/compliance/requirements/wizard (not /rh/compliance/requirements/new). It uses a three-step timeline layout (WizardShell with layout="timeline"). After clicking Activate requirement, the wizard calls createRequirement and navigates to the new requirement detail page. Exiting at any step navigates to /rh/compliance/requirements without saving.
This route requires RH_PERMISSIONS.COMPLIANCE_CREATE (rh.compliance.create) in addition to the outer rh.dashboard.view guard.
Before you start: hold both rh.dashboard.view and rh.compliance.create. The wizard cannot be bookmarked to bypass the permission gate. If the route /rh/compliance/requirements/new is used, it will render a 404 — use /rh/compliance/requirements/wizard instead.
Step 1 — Requirement Definition
Step 2 — Schedule & Scope
monthly), Lead Time Days (days before due date to send a reminder; default: 7, minimum: 0). For monthly/quarterly/annual frequencies, optionally set a Due Day of Month (1–28). Set Scope: All residences (applies organization-wide) or Specific residences (assigned post-activation from the detail page). All required fields are validated on Next.Step 3 — Review & Activate
ComplianceReviewActivateStep screen. Click Activate requirement to submit. On success a toast confirms activation and the page navigates to the new requirement’s detail page. On error a sanitized error message appears in a toast.Key concepts
Related
Recovery Housing
Governance & parity
Documentation sources
Documentation sources
- src/routes/rh.tsx
- src/cores/rh/pages/ComplianceRequirementsPage.tsx
- src/cores/rh/pages/ComplianceRequirementDetailPage.tsx
- src/cores/rh/pages/ComplianceSetupWizardPage.tsx
- src/cores/rh/hooks/useComplianceRequirements.ts
- src/cores/rh/components/ComplianceRequirementsTable.tsx
- src/cores/rh/components/wizards/compliance-setup/ComplianceSetupWizard.tsx
- src/cores/rh/components/wizards/compliance-setup/steps/RequirementDefinitionStep.tsx
- src/cores/rh/components/wizards/compliance-setup/steps/ScheduleScopeStep.tsx
- src/platform/permissions/constants.ts