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: