__Host-pt_pci_csrf same-origin session check for workflow saves.
Data boundary
Workflow state only; no live payment data, restricted evidence files, signed document files, export files, external queues, notifications, or partner-edge authority.
Next best action
Confirm scope
Review the business profile and SAQ path before moving questionnaire work forward.
Use a stage card to work, mark ready, or accept a section; every change goes through the same-origin workflow API.
Workflow
Run the compliance cycle
Compliance lead
Business profile & SAQ scope
SAQ_A recommended with needs review confidence.
18 inherited answers, 1 stale item, 2 evidence requirements.
This packet is the checklist behind final acceptance: each row names the reviewer, the workspace, the decision, and the criteria.
Business profile and SAQ scopeReviewer: submerchant adminDecision: Confirm payment channels and SAQ path or request follow-upCriteria: Merchant profile is complete; Payment channel scope is recorded; SAQ path recommendation is reviewable
Questionnaire and policy answersReviewer: submerchant adminDecision: Accept control answers or return them for changesCriteria: Required controls have answers; Stale inherited answers are cleared or explained; Policy exceptions have owner notes
Evidence request coverageReviewer: evidence uploaderDecision: Accept evidence records or request corrected referencesCriteria: Required evidence records are linked; Scanner status is recorded; Restricted contents are absent from the browser response
Monitoring dependency readinessReviewer: pci operatorDecision: Confirm Monitoring dependency state or request remediationCriteria: Monitoring dependency owner is visible; Evidence and assessment routes are linked; No browser scan, beacon, CSP, or status-feed mutation is available
AOC package and correction logReviewer: executive signerDecision: Accept package readiness or record correction requestCriteria: Sign-ready checklist is visible; Correction/addendum rows are reviewable; Only package status and correction rows are returned
Final operator acceptanceReviewer: pci operatorDecision: Record final product review or request follow-upCriteria: Authorized reviewers are visible; Role handoff state is reviewable; Final review action is CSRF-bound and server-derived
✓Accepted Use the route links exposed by the server-derived permission matrix for permitted assessment, evidence, AOC, Monitoring, audit, and final acceptance workspaces.
Supporting service stateDashboard support references
dashboard_bootstrap
/api/dashboard/bootstrap
workspace_status
/api/compliance/status
supporting_visibility
collapsed until requested
Application state
Dashboard service summary
read-only
Loading the current compliance workspace from /api/dashboard/bootstrap. This replaces smoke-card status with the same server-owned tenant, module, compliance, workflow, corpus, and Monitoring state used by the working routes.
No browser tenant authority, service context input, request body, endpoint value, account identifier, physical id, evidence content, document content, export body, live-data path, or fallback browser storage.
Current workspace state
Area
State
Next signal
Saved workflow tasks from the command center
Task
State
Owner
Action
Authorized hierarchy
Operator hierarchy
Server-derived operator, SaaS Partner, and submerchant relationships rendered without browser tenant authority.
✓Accepted
1
SaaS Partner account(s)
2
Submerchant account(s)
2
Operator child relationships
Authorized hierarchy from tenant registry
Entity type
Display ref
Module
Children
Refs
operator
Pay Theory PCI Operator
✓Acceptedenabled
2
Hierarchy refs
entity_ref
ent_paytheory_operator_lab
module_state
enabled
saas_partner
Innovate Platform
✓Acceptedenabled
2
Hierarchy refs
entity_ref
ent_innovate_platform_lab
module_state
enabled
submerchant
Innovate Test Merchant A
✓Acceptedenabled
0
Hierarchy refs
entity_ref
ent_innovate_test_merchant_a
module_state
enabled
submerchant
Innovate Test Merchant B
△Needs attentionpending
0
Hierarchy refs
entity_ref
ent_innovate_test_merchant_b
module_state
pending
Runtime and tenant context
PCI API auth boundary
PCI BFF session active
Server-derived context
The browser is display/navigation only for auth. Tenant, role, principal, identity subject, MFA or step-up posture, and permissions are consumed from the PCI API/BFF session and same-origin service APIs, never browser storage, query strings, forwarded headers, or raw provider tokens.
Session context
/api/session/context established this opaque PCI session.
/api/permissions/matrix provides route/action visibility and step-up metadata.
Identity provider
autheory as mapped by the PCI tenant registry.
Browser token state
none; no Autheory ID, access, or refresh token is present in app code or storage.
Local PCI logout
Sign out of PCI by using the PCI API/BFF local logout route. Because logout revokes the opaque BFF session cookie, the unsafe POST /api/session/logout action must be mediated by the same-origin API with __Host-pt_pci_csrf bound to the x-pt-pci-csrf header. This shell renders the boundary copy only and fails closed when CSRF session check is unavailable; it does not submit a plain browser POST.
Local logout API
/api/session/logout
Required CSRF cookie
__Host-pt_pci_csrf
Required CSRF header
x-pt-pci-csrf
Unavailable CSRF behavior
csrf_unavailable; local logout remains blocked closed with no browser fallback storage.
Provider session logout is separate. Need provider sign-out too? Use the PCI API-mediated provider sign-out guidance after local logout; do not paste provider URLs, tokens, subjects, roles, or tenant ids into this app.
Role-specific navigation and actions are projected from /api/permissions/matrix. The browser cannot supply tenant, entity, role, signer, or forwarded-header authority; never-allowed actions are omitted from the shell instead of rendered disabled.
Matrix source
api_server_derived_from_session_registry_context
Primary role lane
pci_operator from server matrix metadata
Visible actions
8
Suppressed actions
1 action(s) withheld without client-side disabled controls.
Viewer role accepted
false
Signer input accepted
false
Step-up reauthentication handoff
When the server-derived permission matrix marks an action as requiring step-up, this shell sends the operator to the same-origin PCI API/BFF step-up route. The browser never constructs Autheory authorize URLs and never supplies tenant, role, principal, subject, MFA, freshness, or permission authority.
Override inherited answerReauthenticate
Only sensitive_action=answer.override is sent as a non-authoritative retry hint.
Queue audit exportReauthenticate
Only sensitive_action=operator.audit_export is sent as a non-authoritative retry hint.
Step-up initiate
/api/session/step-up
Callback boundary
/api/session/callback is API/BFF-owned after provider reauthentication.
Allowed browser hint
sensitive_action / action only; the API must re-check session, CSRF policy for unsafe service retries, tenant registry, permissions, and freshness.
Visible server-allowed actions
Action
Category
Step-up
Reason
Review tenant
tenant
server authorized
role_allows_tenant_review
Review evidence package
evidence
server authorized
role_allows_evidence_review
Create evidence metadata intake
evidence
server authorized
role_allows_evidence_upload_metadata
Answer questionnaire
assessment
server authorized
role_allows_answer
Override inherited answer
assessment
server step-up required
operator_step_up_required
Invite submerchant
onboarding
server authorized
operator_scope_review_required
Save workflow state
workflow
server authorized
role_allows_workflow_metadata_save
Queue audit export
audit
server step-up required
role_allows_operator_audit_export_metadata
auth.session_refreshed
Module status
Data Collectionenabled / primary
Data Collection is enabled by trusted session context.
Monitoringenabled / integrated
Monitoring is enabled by trusted session context.
API runtime binding readiness
The dashboard exposes the same-origin API readiness route for record-only Factory smoke. The application dashboard uses its service-backed bootstrap API; this readiness probe remains declarative and does not supply tenant, namespace, SSM, account, or service authority.