---
id: SCR-PFM-SEC-030
title: HQ staff detail
route: /hq/staff/{userId}
surface: console
product_area: platform
module: security
revision: 1
status: draft
design_intent: proposed
implementation_evidence: observed
inference: []
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
purpose: Inspect a staff membership and its permitted customer-entry grants.
supports:
- CAP-PFM-SEC-016
- CAP-PFM-SEC-017
permission: hq.staff.read
entry_from:
- /hq/staff
exits_to:
- /hq/staff
displays:
- field: Staff profile, built-in HQ role, membership state and last-authentication time.
  source: getHqStaffMember
  provenance: observed
- field: Workspace access grants when grant-reading authority is available.
  source: listHqStaffMemberAccessGrants (hq.tenant-access.read)
  provenance: observed
actions:
- label: Resend
  operation_id: resendHqStaffInvitation
  permission: hq.staff.invite
  confirm: false
  provenance: observed
  source: react-console:components/console/hq/staff/staff-detail.tsx
- label: Suspend
  operation_id: suspendHqStaff
  permission: hq.staff.update
  confirm: false
  api_permission: hq.staff.disable
  provenance: observed
  source: react-console:components/console/hq/staff/staff-detail.tsx
- label: Reinstate
  operation_id: reinstateHqStaff
  permission: hq.staff.update
  confirm: false
  api_permission: hq.staff.disable
  provenance: observed
  source: react-console:components/console/hq/staff/staff-detail.tsx
- label: Revoke
  operation_id: revokeHqStaff
  permission: hq.staff.disable
  confirm: true
  provenance: observed
  source: react-console:components/console/hq/staff/staff-detail.tsx
- label: End a grant
  operation_id: endHqStaffMemberAccessGrant
  permission: hq.emergency-access.use
  confirm: true
  provenance: observed
  source: react-console:components/console/hq/staff/staff-detail.tsx
states:
- loading
- error
- inactive
validation:
- BR-CAP-PFM-SEC-016-09
- BR-CAP-PFM-SEC-017-09
patterns:
- StaffOnly
- PageLayout
- PageHeader
- StaffTabs
- StaffAccessGrantsCard
- Revoke AlertDialog
component: components/console/hq/staff/staff-detail.tsx (StaffDetail)
evidence:
- 'react-console at baf6dae: components/console/hq/staff/staff-detail.tsx; the page route file; lib/security/api.ts,
  lib/hq/platform-ops.ts, lib/hq/platform.ts, lib/auth/*'
- react-console:lib/hq/permissions.ts:staffActionPermissions; services-platform:modules/security/aws/api/hq-staff.routes.ts
examined_at: '2026-10-23'
examiner: codex
controls: [TC-AVL-001, TC-AVL-005, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-AZ-005, TC-AZ-006, TC-CHG-001, TC-CHG-002, TC-CHG-003, TC-CHG-004, TC-CHG-005, TC-CHG-006, TC-CRY-001, TC-CRY-002, TC-CRY-003, TC-CRY-004, TC-DAT-001, TC-DAT-002, TC-DAT-003, TC-DAT-004, TC-IAM-001, TC-IAM-002, TC-IAM-003, TC-IAM-004, TC-IAM-005, TC-IAM-006, TC-LOG-001, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-MON-001, TC-MON-002, TC-MON-003, TC-PI-001, TC-PI-003, TC-PI-005, TC-PRV-001, TC-PRV-002, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-VEN-001, TC-VEN-002, TC-VEN-003]
---

# HQ staff detail

## What the Screen Is For

Inspect a staff membership and its permitted customer-entry grants.

## What It Shows and Lets People Do

The detail page reads staff under its view key and loads entry grants under their separate grant-reading key. Shared staff action gates use update authority for suspend/reinstate despite the APIs’ disable requirement.

## States and Errors

Suspend and reinstate do not ask for confirmation; revoke does. Ending a displayed grant is a separate permitted action and excludes standing grants on the HQ path. The permission mismatch remains open.

The state rows describe observed loading, empty, refusal or inactive handling where present. Linked validation rules belong to the planning layer; client feedback and authoritative service checks have distinct responsibilities.

## Patterns It Must Respect

The pattern list names the built shared components and interaction patterns checked for this screen. This contract describes the existing screen; it supplies no replacement visual design.
