Role lanes
Technical details
brand_pointerpartner://innovate/brand/lab/v2026-05-01asset_pointerhttps://assets.innovate.test/pci/brand_reasonsnone
Partner brand service
Loading partner-owned brand manifest from /api/session/brand.
- Brand API
/api/session/brand- Boundary
- No browser tenant authority, brand override authority, theme mutation, asset upload, endpoint value, account identifier, physical id, secret, live-data path, or fallback browser storage.
Trusted tenant context
Tenant authority: trusted API session
Tenant: pci_tnt_innovate_lab; partner: innovate; stage: lab; registry version: 3.
No viewer authority inputs were used.
auth.session_refreshed
Module status
- Data Collection enabled / primary Data Collection is enabled by trusted session context.
- Monitoring enabled / integrated Monitoring is enabled by trusted session context.
Acceptance flow needs review
scanner_verdict_pendingsigner_authority_review_pendingreport_stale_until_rebase_reviewedacceptance_lane_degradedscanner_verdict_requiredbrowser_upload_not_allowedrestricted_cardholder_data_refusedserver_authorized_signing_onlybrowser_signing_not_allowedsigned_document_body_not_renderedacceptance_scenario_degradedacceptance_scenario_closedmissing_sessionunauthorized_session_closedregistry_partner_stage_mismatchforbidden_session_closed
Acceptance service details
Acceptance services
Live acceptance flow workspace
Loading final-review, role-lane, authorized reviewer, handoff, checklist, workflow, and audit state from /api/acceptance/flow-state into the working acceptance workspace.
- Acceptance API
/api/acceptance/flow-state- Action APIs
/api/acceptance/role-handoffsand/api/acceptance/final-revieware mounted below as CSRF-bound review actions.- Request policy
- trusted-session-no-query-no-body-no-viewer-authority-acceptance-workflow
- Boundary
- No browser tenant, entity, acceptance, role, handoff, final-review, queue, notification, evidence, document, endpoint, or live-data authority; no request body on the read path and no browser storage fallback.
| Step | Route | Expected state | Safe message |
|---|
| Lane | Role | State | Browser action | Authority | Source |
|---|
| Reviewer | Role | Lane state | Review route | Allowed metadata actions | Browser/queue |
|---|
| Item | Reviewer | State | Workspace | Decision | Criteria |
|---|
| Check | State | Safe message |
|---|
| Action | Path | Method | CSRF | Body policy |
|---|
| Area | State | Count/status | Browser mutation |
|---|
Record handoff review and final operator acceptance
Operators can record the current role-handoff review and final acceptance decision through the same-origin API. The server derives tenant, acceptance flow, role lanes, handoff, final review, actor, audit, and workflow refs; the client supplies only action intent and reason code.
- Role handoff API
/api/acceptance/role-handoffs- Final review API
/api/acceptance/final-review- CSRF cookie
__Host-pt_pci_csrfdouble-submit session check for unsafe methods.- Boundary
- No client role authority, evidence payload, document payload, signed artifact, queue, notification, live data, endpoint value, or fallback persistence.
Work final acceptance
Review each role lane and cross-role handoff, then record handoff or final review intent from the row. The server still derives tenant, role, handoff, acceptance, audit, workflow, and actor authority.
| Acceptance item | State | Server authority | Actions |
|---|---|---|---|
| Operator acceptance Pci Operator |
ready_for_review Operator sees hierarchy, provisional assignment, and report refs for review; approval remains server-owned. |
server-authority://operator-review/acceptanceprincipal-ref://pci_prn_innovate_operator_001 |
|
| SaaS Partner acceptance Saas Partner Admin |
accepted SaaS Partner lane renders parent TPSP and Monitoring metadata refs without copying partner-owned assets. |
server-authority://partner-parent-attestationprincipal-ref://innovate_partner_admin_metadata |
|
| Submerchant acceptance Submerchant Admin |
ready_for_review Submerchant lane shows assessment completion and readiness refs only; viewer-supplied entity IDs are ignored. |
server-authority://submerchant-assessmentprincipal-ref://submerchant-admin-metadata |
|
| Evidence Uploader acceptance Evidence Uploader |
awaiting_evidence Evidence Uploader lane displays scanner states, refusal copy, and metadata hashes; the browser never uploads evidence. |
server-authority://evidence-scanner-gateprincipal-ref://evidence-uploader-metadata |
|
| Executive Signer acceptance Executive Signer |
sign_ready Executive Signer lane renders signer review and signature confirmation record only; no signing control is mounted. |
server-authority://document-signature-confirmationprincipal-ref://signer-record-only |
|
Saas Partner Admin to Submerchant Adminacceptance-handoff://partner-to-submerchant/invite |
complete Invitation handoff is complete from server invitation state; no invite mutation is exposed. |
server-gate://invitation-approved |
|
Submerchant Admin to Evidence Uploaderacceptance-handoff://submerchant-to-evidence-uploader |
waiting_on_metadata Evidence handoff waits on scanner metadata; no evidence payload or upload form is rendered. |
server-gate://evidence-scanner-verdict |
|
Pci Operator to Executive Signeracceptance-handoff://operator-to-executive-signer |
pending_server_review Signer handoff is pending server review; the browser cannot authorize or sign. |
server-gate://signer-authority-review |
|
Pci Operator to Saas Partner Adminacceptance-handoff://unauthorized-viewer/closed |
blocked_closed Unauthorized viewers see closed state with no tenant or entity detail. |
server-gate://trusted-session-required |
Role handoffs
Entity records
Last acceptance API result
Waiting for operator action.
Final review packet
The packet shows exactly what each reviewer is deciding and where to work it before final acceptance. What reviewers need to decide: each row names what is being reviewed, who owns the decision, where to open the work, and the acceptance criteria.
Review items
Ready
Still needs work
| Review item | Reviewer | State/workspace | Decision | Criteria | Supporting records |
|---|---|---|---|---|---|
Business profile and SAQ scopereview-item-scope |
Needs attentionSubmerchant AdminScope confirmation |
Ready for reviewReady For Review |
Confirm payment channels and SAQ path or request follow-up Review the scope workspace |
|
None AcceptedNot Present |
Questionnaire and policy answersreview-item-questionnaire |
Needs attentionSubmerchant AdminAssessment workspace |
Not startedNot Started |
Accept control answers or return them for changes Open control answer workbench |
|
None AcceptedNot Present |
Evidence request coveragereview-item-evidence |
Needs attentionEvidence UploaderEvidence library |
Not startedNot Started |
Accept evidence records or request corrected references Open evidence request workbench |
|
None AcceptedNot Present |
Monitoring dependency readinessreview-item-monitoring |
Needs attentionPci OperatorMonitoring readiness |
Not startedNot Started |
Confirm Monitoring dependency state or request remediation Open monitoring readiness workbench |
|
None AcceptedNot Present |
AOC package and correction logreview-item-aoc |
Needs attentionExecutive SignerAOC review |
Not startedNot Started |
Accept package readiness or record correction request Open AOC package workbench |
|
None AcceptedNot Present |
Final operator acceptancereview-item-final-acceptance |
Needs attentionPci OperatorAcceptance flow |
Not startedNot Started |
Record final product review or request follow-up Open acceptance flow |
|
None AcceptedNot Present |
End-to-end acceptance flow
Acceptance ref: acceptance-flow://cycle_lab_2026_readiness/e2e-v1; API shape: service-ref://api/acceptance-orchestrator/m10.9/e2e-v1.
- Authority
- acceptance-orchestrator
- Display policy
record-only-no-browser-authority- Client authority
- Accepted
Not Allowed - Tenant/stage
pci_tnt_innovate_lab/lab
Role acceptance lanes
Available lanes
Lanes needing review
Guarded scenarios
Authorized reviewers
Entity acceptance records
Complete handoffs
Operator and entity acceptance lanes
Role lanes are resolved by the service. Operator, partner, submerchant, uploader, signer, compliance, scan, export, and signing authority stay server-side.
| Lane | Entity | State | Server authority | Source refs | Routes | Guardrails |
|---|---|---|---|---|---|---|
acceptance-lane://operator/readiness-reviewNeeds attention Pci Operator |
Operator acceptanceent_paytheory_operator_lab |
Ready for reviewReady For ReviewAccepted Available |
server-authority://operator-review/acceptanceprincipal-ref://pci_prn_innovate_operator_001 |
|
|
|
acceptance-lane://saas-partner/parent-attestationNeeds attention Saas Partner Admin |
SaaS Partner acceptanceent_innovate_platform_lab |
AcceptedAcceptedAccepted Available |
server-authority://partner-parent-attestationprincipal-ref://innovate_partner_admin_metadata |
|
|
|
acceptance-lane://submerchant/assessment-readinessNeeds attention Submerchant Admin |
Submerchant acceptanceent_innovate_test_merchant_a |
Ready for reviewReady For ReviewAccepted Available |
server-authority://submerchant-assessmentprincipal-ref://submerchant-admin-metadata |
|
|
|
acceptance-lane://evidence-uploader/scanner-gateNeeds attention Evidence Uploader |
Evidence Uploader acceptanceent_innovate_test_merchant_a |
Ready for reviewAwaiting EvidenceNeeds attention Degraded |
server-authority://evidence-scanner-gateprincipal-ref://evidence-uploader-metadata |
|
|
|
acceptance-lane://executive-signer/aoc-confirmationNeeds attention Executive Signer |
Executive Signer acceptanceent_innovate_platform_lab |
Ready for reviewSign ReadyNeeds attention Degraded |
server-authority://document-signature-confirmationprincipal-ref://signer-record-only |
|
|
Entity acceptance chain
Operator, SaaS Partner, and Submerchant records show the accepted hierarchy for this cycle; tenant authority comes from trusted API/session context.
| Entity | Type | Parent | Acceptance | Owner role | Source refs |
|---|---|---|---|---|---|
ent_paytheory_operator_labPay Theory PCI Operator |
Needs attentionOperator |
root_operator |
Ready for reviewOperator Review |
Needs attentionPci Operator |
|
ent_innovate_platform_labInnovate Platform |
Needs attentionSaas Partner |
ent_paytheory_operator_lab |
AcceptedAccepted |
Needs attentionSaas Partner Admin |
|
ent_innovate_test_merchant_aInnovate Test Merchant A |
Needs attentionSubmerchant |
ent_innovate_platform_lab |
Ready for reviewEvidence Pending |
Needs attentionSubmerchant Admin |
|
ent_innovate_test_merchant_bInnovate Test Merchant B |
Needs attentionSubmerchant |
ent_innovate_platform_lab |
Ready for reviewOperator Review |
Needs attentionPci Operator |
|
Cross-role handoffs
Handoffs show the gates between roles. Queues, notifications, client-side mutations, and document bodies are not mounted here.
| Handoff | Roles | State | Server gate | Source refs | Safe summary |
|---|---|---|---|---|---|
acceptance-handoff://partner-to-submerchant/invite |
Needs attentionSaas Partner Admin → Needs attentionSubmerchant Admin |
AcceptedComplete |
server-gate://invitation-approved |
|
Invitation handoff is complete from server invitation state; no invite mutation is exposed. |
acceptance-handoff://submerchant-to-evidence-uploader |
Needs attentionSubmerchant Admin → Needs attentionEvidence Uploader |
Ready for reviewWaiting On Metadata |
server-gate://evidence-scanner-verdict |
|
Evidence handoff waits on scanner metadata; no evidence payload or upload form is rendered. |
acceptance-handoff://operator-to-executive-signer |
Needs attentionPci Operator → Needs attentionExecutive Signer |
Ready for reviewPending Server Review |
server-gate://signer-authority-review |
|
Signer handoff is pending server review; the browser cannot authorize or sign. |
acceptance-handoff://unauthorized-viewer/closed |
Needs attentionPci Operator → Needs attentionSaas Partner Admin |
Fail-closed — lockedBlocked Closed |
server-gate://trusted-session-required |
|
Unauthorized viewers see closed state with no tenant or entity detail. |
Guarded acceptance states
Scenario rows document authorized, review-needed, unauthorized, and forbidden render behavior using API/session guardrails. Closed scenarios disclose no tenant-scoped detail.
| Scenario | Session | Render | Reasons | Safe summary |
|---|---|---|---|---|
acceptance-scenario://authorized/record-onlyAuthorized record-only acceptance |
app-api-session.authenticated200 |
AcceptedAvailableNeeds attention Metadata Only |
|
Trusted API/session state permits route metadata while all mutations remain server-owned. |
acceptance-scenario://degraded/evidence-scanner-pendingDegraded evidence scanner acceptance |
app-api-session.authenticated200 |
Needs attentionDegradedNeeds attention Metadata Only |
|
Evidence and signer lanes degrade until trusted service scanner and review metadata are accepted. |
acceptance-scenario://unauthorized/missing-sessionUnauthorized missing session closed |
app-api-session.missing-session401 |
Fail-closed — lockedClosedNeeds attention Closed No Tenant Detail |
|
Missing session renders closed and withholds role, tenant, entity, evidence, document, and export detail. |
acceptance-scenario://forbidden/registry-mismatchForbidden registry mismatch closed |
app-api-session.registry-mismatch403 |
Fail-closed — lockedClosedNeeds attention Closed No Tenant Detail |
|
Registry mismatch renders closed without disclosing tenant-scoped acceptance state. |
Lab pilot hardening degraded
Operator completion is guided by server-owned refs, accessibility checkpoints, and review-needed state drills.
evidence_uploader_scanner_drill_pendingexecutive_signer_authority_drill_pendinglab_pilot_flow_needs_review
Lab pilot usability and operator script alignment
Pilot ref: lab-pilot://cycle_lab_2026_readiness/m12.10-usability-hardening; API shape: service-ref://api/lab-pilot-acceptance/m12.10/v1.
- Authority
- lab-pilot-acceptance-orchestrator
- Display policy
role-script-record-only-no-browser-authority- Completion policy
server-gated-completion-refs-only- Client authority
- not_allowed
- Operator script
operator-acceptance-script://pci-platform-app/m12.10/lab-pilot-readiness
Role-specific non-engineer completion flows
| Flow | Route | Completion gate | Script steps | Accessibility refs | Review drills and summary |
|---|---|---|---|---|---|
lab-pilot-flow://operator/non-engineer-reviewpci_operator |
Operator pilot completionacceptanceFlow |
readyserver-gate://operator-lab-pilot-signoff |
|
|
|
lab-pilot-flow://saas-partner-parent-scopesaas_partner_admin |
SaaS Partner pilot completiontenantModules |
readyserver-gate://partner-parent-scope-review |
|
|
|
lab-pilot-flow://submerchant-assessment-readinesssubmerchant_admin |
Submerchant pilot completionassessmentWorkspace |
readyserver-gate://submerchant-readiness-review |
|
|
|
lab-pilot-flow://evidence-uploader-scanner-copyevidence_uploader |
Evidence Uploader pilot completionevidenceLibrary |
needs_reviewserver-gate://evidence-scanner-pilot-review |
|
|
|
lab-pilot-flow://executive-signer-display-onlyexecutive_signer |
Executive Signer pilot completionaocReview |
needs_reviewserver-gate://executive-signer-pilot-review |
|
|
|
Accessibility acceptance checkpoints
| Checkpoint | State | Evidence ref | Safe summary |
|---|---|---|---|
a11y-check://skip-link-main-landmarkSkip link reaches main content |
passwcag-2.2-aa-metadata |
a11y-evidence://render-shell/skip-link-main |
Shell renders a skip link and labelled main landmark for keyboard users. |
a11y-check://landmarks-and-headingsLandmarks and headings are labelled |
passwcag-2.2-aa-metadata |
a11y-evidence://render-shell/landmark-heading-order |
Navigation, brand, trust, module, and route sections expose text headings and labels. |
a11y-check://table-captions-for-pilot-gridsPilot grids include captions |
passwcag-2.2-aa-metadata |
a11y-evidence://lab-pilot/tables-captioned |
Role-flow, accessibility, degraded-state, unsafe-closure, and coverage grids include captions. |
a11y-check://status-text-not-color-onlyStatuses render as text, not color alone |
passwcag-2.2-aa-metadata |
a11y-evidence://lab-pilot/status-badges-text |
Every pilot status appears as visible text plus data attributes for automated checks. |
a11y-check://focus-visible-stylesKeyboard focus remains visible |
passwcag-2.2-aa-metadata |
a11y-evidence://shell-css/focus-visible |
Shell CSS includes visible focus treatment for links and focusable landmarks. |
a11y-check://keyboard-safe-no-mutation-controlsKeyboard path does not expose mutation controls |
passwcag-2.2-aa-metadata |
a11y-evidence://lab-pilot/no-controls-mounted |
Pilot flow remains display-only and does not mount forms, uploads, signing, queues, or notifications. |
Review-needed and closed-state drills
| Drill | Route and session | Expected state | Reason codes | Operator instruction |
|---|---|---|---|---|
degraded-drill://missing-session-closedMissing session closes route |
acceptanceFlowapp-api-session.missing-session |
closed401 |
|
Confirm closed copy appears without tenant, entity, role, evidence, document, or export detail. |
degraded-drill://suspended-data-collection-closedSuspended Data Collection closes dependent flows |
assessmentWorkspaceapp-api-session.data-collection-suspended |
closed200 |
|
Confirm assessment, evidence, document, compliance, and pilot details render closed when Data Collection is unavailable. |
degraded-drill://brand-pointer-neutral-shellDegraded brand pointer falls back neutrally |
dashboardapp-api-session.degraded-brand |
degraded200 |
|
Confirm neutral PCI shell copy renders without central partner asset duplication. |
degraded-drill://monitoring-revoked-closedRevoked Monitoring readiness closes Monitoring view |
monitoringsession://monitoring.readiness-revoked |
closed200 |
|
Confirm Monitoring remains a shell review item and does not assume production Monitoring behavior. |
degraded-drill://evidence-scanner-pendingPending scanner keeps evidence flow degraded |
evidenceLibrarysession://evidence.scanner-pending |
degraded200 |
|
Confirm evidence metadata and refusal copy render while upload and payload controls remain absent. |
degraded-drill://signer-authority-reviewSigner authority review keeps signing display-only |
aocReviewsession://aoc.signer-review-pending |
degraded200 |
|
Confirm signer review and export status metadata render without browser signing authority. |
Unsafe-state closure checks
| Check | Viewer input or session | Gate | Reason codes | Safe summary |
|---|---|---|---|---|
unsafe-check://viewer-tenant-role-ignoredViewer tenant and role inputs are ignored |
query://tenant_id-role_ref-acceptance_ref |
ignored available |
|
Viewer-supplied tenant, role, and acceptance refs are counted for audit and never become authority. |
unsafe-check://missing-session-closedMissing session closes pilot |
app-api-session.missing-session |
closed closed |
|
Pilot completion details remain withheld without trusted API/session context. |
unsafe-check://unsafe-browser-authority-closedUnsafe browser authority closes pilot service sample |
session://lab-pilot.browser-authority-allowed |
closed closed |
|
Pilot service sample closes if any browser-owned completion, signing, upload, queue, or notification authority is advertised. |
Coverage threshold alignment
| Command | Lines | Functions | Branches | Enforcement |
|---|---|---|---|---|
npm run coverage | 90% | 90% | 90% | local-and-gov-rubric |