# Scopes

A scope is a name a credential may carry. The kernel checks it, never the caller — every surface (API, CLI,
MCP, SDK) reaches the same gate, so a scope withheld is withheld everywhere at once.

Scopes are also the vocabulary an app asks for consent in, which is why this list holds names that no command
carries: an app can request a power a role can then refuse.

## The floor

These reads answer every authenticated operator, with no scope at all. No role can exclude them.

[`read.internal.whoami`](./read.internal.whoami.md)

## Decided per request

One read name can serve many shapes — an app's own table, for instance, where each app declares in its manifest what lives in it. For these, the requirement is a function of the read's own parameters rather than a fixed name, so it is not listed under any single scope above.

[`read.internal.extension_records`](./read.internal.extension_records.md)

## `admin.users.write`

**Commands** — [`admin_user.disable`](./admin_user.disable.md) · [`admin_user.enable`](./admin_user.enable.md) · [`admin_user.invite`](./admin_user.invite.md) · [`iam.api_key.create`](./iam.api_key.create.md) · [`iam.api_key.revoke`](./iam.api_key.revoke.md) · [`iam.api_key.rotate`](./iam.api_key.rotate.md) · [`operator.access_key.create`](./operator.access_key.create.md) · [`operator.access_key.revoke`](./operator.access_key.revoke.md)

**Reads** — [`read.internal.admin_users`](./read.internal.admin_users.md) · [`read.internal.api_keys`](./read.internal.api_keys.md) · [`read.internal.operator_access_keys`](./read.internal.operator_access_keys.md)

## `audit.read`

**Reads** — [`read.internal.audit`](./read.internal.audit.md) · [`read.internal.promotion_activity`](./read.internal.promotion_activity.md)

## `catalog.admin.read`

**Reads** — [`read.internal.brands_admin`](./read.internal.brands_admin.md) · [`read.internal.catalog_labels`](./read.internal.catalog_labels.md) · [`read.internal.categories_admin`](./read.internal.categories_admin.md) · [`read.internal.collection_admin`](./read.internal.collection_admin.md) · [`read.internal.collections_admin`](./read.internal.collections_admin.md) · [`read.internal.product`](./read.internal.product.md) · [`read.internal.product_media`](./read.internal.product_media.md) · [`read.internal.product_sku_dimensions`](./read.internal.product_sku_dimensions.md) · [`read.internal.product_sku_media`](./read.internal.product_sku_media.md) · [`read.internal.product_stores`](./read.internal.product_stores.md)

## `catalog.category.write`

**Commands** — [`catalog.category.create`](./catalog.category.create.md) · [`catalog.category.move`](./catalog.category.move.md) · [`catalog.category.set_custom_fields`](./catalog.category.set_custom_fields.md) · [`catalog.category.update`](./catalog.category.update.md)

## `catalog.product.publish`

**Commands** — [`catalog.product.publish`](./catalog.product.publish.md) · [`catalog.product.publish_bulk`](./catalog.product.publish_bulk.md) · [`catalog.product.unpublish`](./catalog.product.unpublish.md) · [`catalog.product.unpublish_bulk`](./catalog.product.unpublish_bulk.md)

## `catalog.product.write`

**Commands** — [`catalog.brand.archive`](./catalog.brand.archive.md) · [`catalog.brand.create`](./catalog.brand.create.md) · [`catalog.brand.update`](./catalog.brand.update.md) · [`catalog.collection.archive`](./catalog.collection.archive.md) · [`catalog.collection.create`](./catalog.collection.create.md) · [`catalog.collection.pin`](./catalog.collection.pin.md) · [`catalog.collection.reorder`](./catalog.collection.reorder.md) · [`catalog.collection.unarchive`](./catalog.collection.unarchive.md) · [`catalog.collection.unpin`](./catalog.collection.unpin.md) · [`catalog.collection.update`](./catalog.collection.update.md) · [`catalog.media.attach`](./catalog.media.attach.md) · [`catalog.media.detach`](./catalog.media.detach.md) · [`catalog.media.reorder`](./catalog.media.reorder.md) · [`catalog.media.update`](./catalog.media.update.md) · [`catalog.option.create`](./catalog.option.create.md) · [`catalog.option.delete`](./catalog.option.delete.md) · [`catalog.option.update`](./catalog.option.update.md) · [`catalog.option_value.create`](./catalog.option_value.create.md) · [`catalog.option_value.update`](./catalog.option_value.update.md) · [`catalog.product.archive`](./catalog.product.archive.md) · [`catalog.product.categorize`](./catalog.product.categorize.md) · [`catalog.product.create`](./catalog.product.create.md) · [`catalog.product.uncategorize`](./catalog.product.uncategorize.md) · [`catalog.product.update`](./catalog.product.update.md)

## `catalog.read`

_Carried by no command and gating no read — a consent symbol an app manifest may ask for._

## `catalog.sku.write`

**Commands** — [`catalog.sku.create`](./catalog.sku.create.md) · [`catalog.sku.delete`](./catalog.sku.delete.md) · [`catalog.sku.update`](./catalog.sku.update.md)

## `composition.write`

**Commands** — [`composition.move`](./composition.move.md) · [`composition.place`](./composition.place.md) · [`composition.placement.remove`](./composition.placement.remove.md) · [`composition.placement.reorder`](./composition.placement.reorder.md) · [`composition.placement.set`](./composition.placement.set.md) · [`composition.remove`](./composition.remove.md) · [`composition.reorder`](./composition.reorder.md) · [`composition.toggle`](./composition.toggle.md) · [`composition.update_config`](./composition.update_config.md)

## `content.read`

**Reads** — [`read.internal.assets`](./read.internal.assets.md) · [`read.internal.pages`](./read.internal.pages.md)

## `content.write`

**Commands** — [`content.page.archive`](./content.page.archive.md) · [`content.page.create`](./content.page.create.md) · [`content.page.update`](./content.page.update.md)

## `custom_fields.write`

**Commands** — [`custom_field.archive`](./custom_field.archive.md) · [`custom_field.define`](./custom_field.define.md) · [`custom_field.update`](./custom_field.update.md)

## `customer.admin.write`

**Commands** — [`customer.anonymize`](./customer.anonymize.md) · [`customer.set_custom_fields`](./customer.set_custom_fields.md) · [`customer_cluster.archive`](./customer_cluster.archive.md) · [`customer_cluster.create`](./customer_cluster.create.md) · [`customer_cluster.pin`](./customer_cluster.pin.md) · [`customer_cluster.unarchive`](./customer_cluster.unarchive.md) · [`customer_cluster.unpin`](./customer_cluster.unpin.md) · [`customer_cluster.update`](./customer_cluster.update.md)

**Reads** — [`read.internal.cluster_admin`](./read.internal.cluster_admin.md) · [`read.internal.clusters_admin`](./read.internal.clusters_admin.md) · [`read.internal.customer`](./read.internal.customer.md) · [`read.internal.customers`](./read.internal.customers.md)

## `customer.self.read`

_Carried by no command and gating no read — a consent symbol an app manifest may ask for._

## `customer.self.write`

**Commands** — [`customer.address.create`](./customer.address.create.md) · [`customer.address.delete`](./customer.address.delete.md) · [`customer.address.update`](./customer.address.update.md) · [`customer.link_cart`](./customer.link_cart.md) · [`order.request_cancellation`](./order.request_cancellation.md)

## `extensions.egress.consent`

**Commands** — [`extension.connection.set`](./extension.connection.set.md)

## `extensions.read`

**Reads** — [`read.internal.available_extensions`](./read.internal.available_extensions.md) · [`read.internal.extension_composition`](./read.internal.extension_composition.md) · [`read.internal.extension_config`](./read.internal.extension_config.md) · [`read.internal.extension_health`](./read.internal.extension_health.md) · [`read.internal.installed_extensions`](./read.internal.installed_extensions.md) · [`read.internal.instance_extensions`](./read.internal.instance_extensions.md) · [`read.internal.payment_methods_admin`](./read.internal.payment_methods_admin.md)

## `extensions.write`

**Commands** — [`extension.config.set`](./extension.config.set.md) · [`extension.install`](./extension.install.md) · [`extension.uninstall`](./extension.uninstall.md) · [`notification.channel.register`](./notification.channel.register.md)

## `iam.roles.write`

**Commands** — [`admin_user.set_role`](./admin_user.set_role.md) · [`role.archive`](./role.archive.md) · [`role.create`](./role.create.md) · [`role.update`](./role.update.md)

**Reads** — [`read.internal.roles`](./read.internal.roles.md)

## `inventory.adjust`

**Commands** — [`inventory.adjust`](./inventory.adjust.md) · [`inventory.set_level`](./inventory.set_level.md) · [`warehouse.create`](./warehouse.create.md) · [`warehouse.update`](./warehouse.update.md)

## `inventory.reserve`

**Commands** — [`inventory.commit`](./inventory.commit.md) · [`inventory.reclaim_expired`](./inventory.reclaim_expired.md) · [`inventory.release`](./inventory.release.md) · [`inventory.reserve`](./inventory.reserve.md)

## `logistics.read`

**Reads** — [`read.internal.carriers`](./read.internal.carriers.md) · [`read.internal.pickup_location`](./read.internal.pickup_location.md) · [`read.internal.pickup_locations`](./read.internal.pickup_locations.md) · [`read.internal.routing_suggestion`](./read.internal.routing_suggestion.md) · [`read.internal.shipping_methods_admin`](./read.internal.shipping_methods_admin.md) · [`read.internal.shipping_rates`](./read.internal.shipping_rates.md) · [`read.internal.shipping_simulation`](./read.internal.shipping_simulation.md) · [`read.internal.shipping_zones`](./read.internal.shipping_zones.md) · [`read.internal.stock_addable_skus`](./read.internal.stock_addable_skus.md) · [`read.internal.stock_levels`](./read.internal.stock_levels.md) · [`read.internal.warehouses`](./read.internal.warehouses.md)

## `media.write`

**Commands** — [`asset.archive`](./asset.archive.md) · [`asset.create`](./asset.create.md) · [`media.request_upload`](./media.request_upload.md)

## `notification.send`

**Commands** — [`notification.send`](./notification.send.md)

## `operator.otp.request`

**Commands** — [`operator.request_otp`](./operator.request_otp.md)

## `operator.self.write`

**Commands** — [`admin_user.set_locale`](./admin_user.set_locale.md)

## `operator.session.mint`

**Commands** — [`operator.mint_oidc_session`](./operator.mint_oidc_session.md) · [`operator.verify_otp`](./operator.verify_otp.md)

## `order.payment.write`

**Commands** — [`order.payment.record`](./order.payment.record.md)

## `order.read`

**Reads** — [`read.internal.notification`](./read.internal.notification.md) (any of `order.read` · `order.write`) · [`read.internal.notifications`](./read.internal.notifications.md) (any of `order.read` · `order.write`) · [`read.internal.order_admin`](./read.internal.order_admin.md) (any of `order.read` · `order.write`) · [`read.internal.orders_admin`](./read.internal.orders_admin.md) (any of `order.read` · `order.write`) · [`read.internal.sales_metrics`](./read.internal.sales_metrics.md) (any of `order.read` · `order.write`) · [`read.internal.shipment_queue`](./read.internal.shipment_queue.md) (any of `order.read` · `order.write`)

## `order.write`

**Commands** — [`notification.resend`](./notification.resend.md) · [`order.cancel`](./order.cancel.md) · [`order.cancel_request.approve`](./order.cancel_request.approve.md) · [`order.cancel_request.decline`](./order.cancel_request.decline.md) · [`order.comment.add`](./order.comment.add.md) · [`order.create`](./order.create.md) · [`order.document.attach`](./order.document.attach.md) · [`order.hold`](./order.hold.md) · [`order.mark_delivered`](./order.mark_delivered.md) · [`order.mark_paid`](./order.mark_paid.md) · [`order.mark_preparing`](./order.mark_preparing.md) · [`order.mark_shipped`](./order.mark_shipped.md) · [`order.refund`](./order.refund.md) · [`order.release_hold`](./order.release_hold.md) · [`order.shipment.create`](./order.shipment.create.md) · [`order.shipment.mark_delivered`](./order.shipment.mark_delivered.md) · [`order.shipment.mark_picked_up`](./order.shipment.mark_picked_up.md) · [`order.shipment.mark_ready_for_pickup`](./order.shipment.mark_ready_for_pickup.md) · [`order.shipment.mark_shipped`](./order.shipment.mark_shipped.md) · [`order.shipment.set_tracking`](./order.shipment.set_tracking.md) · [`order.shipment.update_tracking_status`](./order.shipment.update_tracking_status.md)

**Reads** — [`read.internal.active_carts`](./read.internal.active_carts.md) · [`read.internal.notification`](./read.internal.notification.md) (any of `order.read` · `order.write`) · [`read.internal.notifications`](./read.internal.notifications.md) (any of `order.read` · `order.write`) · [`read.internal.order`](./read.internal.order.md) · [`read.internal.order_admin`](./read.internal.order_admin.md) (any of `order.read` · `order.write`) · [`read.internal.orders_admin`](./read.internal.orders_admin.md) (any of `order.read` · `order.write`) · [`read.internal.sales_metrics`](./read.internal.sales_metrics.md) (any of `order.read` · `order.write`) · [`read.internal.shipment_queue`](./read.internal.shipment_queue.md) (any of `order.read` · `order.write`)

## `orders.read`

_Carried by no command and gating no read — a consent symbol an app manifest may ask for._

## `pii.read`

_Carried by no command and gating no read — a consent symbol an app manifest may ask for._

## `platform.admin_driver.mint`

**Commands** — [`platform.admin_driver.mint`](./platform.admin_driver.mint.md)

## `platform.extension.action`

_Carried by no command and gating no read — a consent symbol an app manifest may ask for._

## `platform.extension.write`

**Commands** — [`platform.extension.config.set`](./platform.extension.config.set.md) · [`platform.extension.connection.set`](./platform.extension.connection.set.md) · [`platform.extension.install`](./platform.extension.install.md) · [`platform.extension.uninstall`](./platform.extension.uninstall.md)

## `platform.iam.write`

**Commands** — [`platform.credential.issue`](./platform.credential.issue.md) · [`platform.credential.revoke`](./platform.credential.revoke.md)

## `platform.read`

_Carried by no command and gating no read — a consent symbol an app manifest may ask for._

## `platform.tenant.write`

**Commands** — [`platform.admin_host.remove`](./platform.admin_host.remove.md) · [`platform.admin_host.set`](./platform.admin_host.set.md) · [`platform.tenant.provision`](./platform.tenant.provision.md)

## `promotion.read`

**Reads** — [`read.internal.promotion_admin`](./read.internal.promotion_admin.md) · [`read.internal.promotion_simulate`](./read.internal.promotion_simulate.md) · [`read.internal.promotion_store`](./read.internal.promotion_store.md) · [`read.internal.promotions_admin`](./read.internal.promotions_admin.md)

## `promotion.write`

**Commands** — [`promotion.activate`](./promotion.activate.md) · [`promotion.archive`](./promotion.archive.md) · [`promotion.code.add`](./promotion.code.add.md) · [`promotion.code.remove`](./promotion.code.remove.md) · [`promotion.create`](./promotion.create.md) · [`promotion.pause`](./promotion.pause.md) · [`promotion.unarchive`](./promotion.unarchive.md) · [`promotion.update`](./promotion.update.md)

## `public`

**Commands** — [`cart.add_line`](./cart.add_line.md) · [`cart.apply_coupon`](./cart.apply_coupon.md) · [`cart.choose_gift`](./cart.choose_gift.md) · [`cart.create`](./cart.create.md) · [`cart.merge`](./cart.merge.md) · [`cart.remove_coupon`](./cart.remove_coupon.md) · [`cart.remove_line`](./cart.remove_line.md) · [`cart.set_buyer`](./cart.set_buyer.md) · [`cart.set_custom_fields`](./cart.set_custom_fields.md) · [`cart.set_delivery`](./cart.set_delivery.md) · [`cart.set_payer_tax_id`](./cart.set_payer_tax_id.md) · [`cart.set_payment_method`](./cart.set_payment_method.md) · [`cart.set_pickup_location`](./cart.set_pickup_location.md) · [`cart.set_postal_code`](./cart.set_postal_code.md) · [`cart.set_shipping_method`](./cart.set_shipping_method.md) · [`cart.update_line`](./cart.update_line.md) · [`checkout.place_order`](./checkout.place_order.md) · [`customer.mint_social_session`](./customer.mint_social_session.md) · [`customer.request_otp`](./customer.request_otp.md) · [`customer.verify_otp`](./customer.verify_otp.md) · [`operator.access_key.redeem`](./operator.access_key.redeem.md) · [`payment.attempt.fail`](./payment.attempt.fail.md) · [`payment.initiate`](./payment.initiate.md) · [`payment.intent.set_provider_ref`](./payment.intent.set_provider_ref.md) · [`payment.reconcile`](./payment.reconcile.md)

## `purchase.on_behalf`

**Commands** — [`cart.assign_customer`](./cart.assign_customer.md)

## `search.write`

**Commands** — [`search.redirect.remove`](./search.redirect.remove.md) · [`search.redirect.set`](./search.redirect.set.md) · [`search.synonym.remove`](./search.synonym.remove.md) · [`search.synonym.set`](./search.synonym.set.md)

## `shipping.write`

**Commands** — [`pickup_location.create`](./pickup_location.create.md) · [`pickup_location.update`](./pickup_location.update.md) · [`shipping.carrier.create`](./shipping.carrier.create.md) · [`shipping.carrier.update`](./shipping.carrier.update.md) · [`shipping.method.create`](./shipping.method.create.md) · [`shipping.method.update`](./shipping.method.update.md) · [`shipping.rate.delete`](./shipping.rate.delete.md) · [`shipping.rate.set`](./shipping.rate.set.md) · [`shipping.rate.set_many`](./shipping.rate.set_many.md) · [`shipping.zone.create`](./shipping.zone.create.md) · [`shipping.zone.update`](./shipping.zone.update.md)

## `tenant.settings.read`

**Reads** — [`read.internal.custom_field_definitions`](./read.internal.custom_field_definitions.md) · [`read.internal.notification_channels`](./read.internal.notification_channels.md) · [`read.internal.notification_template`](./read.internal.notification_template.md) · [`read.internal.notification_types`](./read.internal.notification_types.md) · [`read.internal.platform_info`](./read.internal.platform_info.md) · [`read.internal.stores`](./read.internal.stores.md)

## `tenant.settings.write`

**Commands** — [`notification.channel.set_enabled`](./notification.channel.set_enabled.md) · [`notification.template.reset`](./notification.template.reset.md) · [`notification.template.set`](./notification.template.set.md) · [`tenant.settings.update`](./tenant.settings.update.md)

## `tenant.store.write`

**Commands** — [`tenant.store.create`](./tenant.store.create.md) · [`tenant.store.set_custom_fields`](./tenant.store.set_custom_fields.md) · [`tenant.store.update`](./tenant.store.update.md)
