Skip to content

Role Matrix ​

This page consolidates the role vocabulary used across services and how roles map between services.

Status: INTERIM (AS-BUILT roles enforced today; target expansions noted below).

Where roles come from ​

  • Human sessions: roles are resolved via OFM member/resolve for the caller's org.
  • Service-account API keys: roles are attached to the service account in USM and are validated via POST /usm/api_key/validate by downstream services.
  • Owners: an owner is a privileged flag in OFM (owners are also members). Owner access is implicit across org-scoped services.

Canonical role catalog (AS-BUILT enforcement) ​

These are the role names enforced in code today.

ServiceCanonical roles (non-exhaustive)
UASuas_operator (internal only)
USMusm_operator (internal only), service_account_admin
OFMofm_owner, ofm_member_admin, ofm_team_admin, ofm_channel_admin
MRSmrs_reader, mrs_writer, mrs_operator (internal only)
PVMpvm_view, pvm_edit, pvm_supplier_admin, pvm_approve
PMCpmc_view, pmc_publish
ICSics_view, ics_operator, ics_planner, ics_transfer_approve, ics_adjust, ics_count, ics_cost_admin
SCMscm_view, scm_order, scm_fulfillment, scm_returns, scm_credit, scm_discount_approve, scm_special_order_approve, scm_backorder_approve
PCMpcm_view, pcm_buyer, pcm_po_approve, pcm_consignment
PPMppm_view, ppm_price_admin, ppm_promo_admin, ppm_approver, ppm_admin, ppm_approve, ppm_analyst
CRM/Loyaltycrm_view, crm_manage, crm_privacy_admin, crm_edit, loyalty_admin, giftcard_admin
Influencerinf_view, inf_manage, inf_campaign_admin, inf_finance
Accountingacct_view, acct_export_admin, ar_admin, commission_admin
IPMintegration_view, integration_admin
RBSrbs_view, rbs_admin
UTLutl_offboarding_admin, utl_export_admin
OPS(no roles — secret-code and session auth)
UCPucp_admin
SLCslc_view, slc_manage

Cross-service roles:

  • cost_view (facility-scoped cost visibility in ICS)
  • finance_audit (org-wide audit and cost visibility) — grants read access across ICS, SCM, PCM, PPM, CRM, Influencer, and Accounting

Legacy role aliases (implemented services) ​

Legacy roles remain valid where noted, but SDKs and docs should use canonical names.

Legacy roleCanonical roleNotes
pvvpvm_viewRead + comment-only in PVM; accepted by PMC as pmc_view.
pmapvm_editAccepted by PMC as pmc_publish and pmc_view.
vcapvm_supplier_adminSupplier/vendor mutations in PVM.

Cross-service role mapping (high-level) ​

RolePVM (Product & Vendor)PMC (Publish Control)OFM (Org & Facility)
ownerFull access (all reads/writes)Full access (pmc_view + pmc_publish)Org governance + full access
pma (Product Model Admin)Product model + taxonomy + brand + style + variant mutationsPublish rights (pmc_publish) + readMember (non-owner) unless elevated
vca (Vendor Contract Admin)Vendor/manufacturer mutationsRead-only (pmc_view via member role if granted)Member (non-owner) unless elevated
pvv (Product & Vendor Viewer)Read + comment-onlyRead-only (pmc_view)Member (non-owner) unless elevated
pmc_viewN/APMC reads (get/list/search/revision)N/A
pmc_publishN/APMC writes (publish runs, pointer/online control)N/A

Notes:

  • PMC accepts pvv and pma as synonyms for pmc_view, and pma as a synonym for pmc_publish (owner implied).
  • PVM write gating is split: VCA handles supplier ops; PMA handles non-supplier mutations; PVV is read/comment-only.

Scope and gating quick reference ​

Business-level view of where org, facility, and channel context is required.

Service / DomainPrimary scopeFacility scoped?Channel context?Notes
UASGlobal identityNoNoOperator-only actions; public stat uses credential check.
USMGlobal sessions + org-bound API keysNoNoAPI keys are org-scoped; downstream services enforce org status.
OFMOrg + facilityYesYes (sales channels)Defines org status, membership, and facility spine.
MRSOrgOptionalOptionalPayload storage; org membership gating applies.
PVMOrgNoOptionalMaster product model; no facility writes.
PMCOrgYes (logical identity)YesPublished sellability per channel + logical facility.
ICSFacility + org policyYesYesReal-time stock and warehouse operations.
SCMFacilityYesYes (sales channel)Orders reference sales-channel carts.
PCMFacilityYesYes (procurement channel)Procurement worksheets drive POs.
PPMOrg with facility/channel overridesYes (overrides)YesTemporal pricing and promotions.
CRM/LoyaltyOrgOptionalOptionalCustomer and loyalty ledgers with context capture.
Influencer/AffiliateOrgNoYesAttribution and earnings by channel.
Accounting/ERPOrgUses facility/channel dimensionsYesExportable financial event views.
RBSOrgNoOptionalOwner-only event subscriptions delivered to customer SQS queues.
External Master DataGlobal reference planeNoNoOperator-only direct Lambda + CLI access.

See /common/request-context.html for the cross-service request context.

Planned roles (target expansions) ​

Status: TARGET (not enforced in code today; business-only).

  • SCM: scm_tender_admin, scm_price_override (granular roles; current enforcement uses scm_order/scm_discount_approve/etc).
  • PCM: pcm_receiver, pcm_match, pcm_vendor_admin, pcm_rtv (granular roles; current enforcement uses pcm_buyer/pcm_po_approve/pcm_consignment).
  • Accounting: acct_reconcile (target for reconcile-only access; current enforcement uses acct_export_admin/finance_audit).

Owner-only mutations (examples) ​

These are representative categories; see each service surface for exact endpoints:

  • OFM governance: org status changes, owner primary/secondary changes, member invitations/revokes, and service-account logical assignments.
  • Facility lifecycle: dooming org-scoped records and facility-scoped resources (zones/facilities) is owner-only.
  • Sales channel activation/dooming: publishing a draft channel or dooming an active channel is owner-only.

Facility-scoped delegation (OFM) ​

Some operations are facility-scoped and require an explicit logical assignment + facility grant for non-owners.

  • Owners: implicit access across all logical facilities.
  • Members: require a member <-> logical assignment for facility-scoped writes.
  • Service-account API keys: require a service_account <-> logical assignment for facility-scoped writes unless the API key has the owner role.
  • Delegable surfaces (examples): zones, logical-scoped teams, sales-channel drafts/config updates. Activation/dooming remains owner-only.

API key role usage (service accounts) ​

  • API keys are org-bound. Downstream services verify the orgcode on each request.
  • Role strings are canonicalized to pvv | pma | vca | owner for service accounts.
  • Unknown roles are rejected at create time in USM.

See also: