Skip to main content

Permissions reference

View Markdown

Temporal Cloud access controls are organized across three scopes:

  • Account-level role permissions
  • Project-level permissions
  • Namespace-level permissions

Within each scope, permissions apply to publicly documented Temporal Cloud Ops API endpoints and to additional non-Cloud Ops capabilities, such as Temporal Cloud UI and internal automation behaviors.

Account-level access​

Account-level access is granted to users and service accounts by assigning them an account-level role. Temporal Cloud supports the following account-level roles:

  • Account Owner
  • Global Admin
  • Developer
  • Finance Admin
  • Read-Only
  • Metrics Read-Only

Cloud Ops API permissions​

The Metrics Read-Only role grants no Cloud Ops API permissions, so it is not included in the following table. For its permissions and API key requirements, see Metrics Read-Only role.

This table provides API-level details for permissions granted through account-level roles. These permissions are configured per user.

PermissionRead-onlyDeveloperFinance AdminGlobal AdminAccount Owner
AddUserGroupMember✅✅
CreateAccountAuditLogSink✅✅
CreateApiKey✅*✅*✅*✅*✅*
CreateBillingReport✅✅
CreateConnectivityRule✅✅
CreateNamespace✅✅✅
CreateNexusEndpoint✅✅✅
CreateProject✅✅✅
CreateServiceAccount✅†✅†✅†✅†✅†
CreateUser✅✅
CreateUserGroup✅✅
DeleteAccountAuditLogSink✅✅
DeleteApiKey✅*✅*✅*✅*✅*
DeleteConnectivityRule✅✅
DeleteNexusEndpoint✅✅✅
DeleteServiceAccount✅†✅†✅†✅†✅†
DeleteUser✅✅
DeleteUserGroup✅✅
GetAccount✅✅✅✅✅
GetAccountAuditLogSink✅✅
GetAccountAuditLogSinks✅✅
GetApiKey✅*✅*✅*✅*✅*
GetApiKeys✅*✅*✅*✅*✅*
GetAsyncOperation✅✅✅✅✅
GetAuditLogs✅✅
GetBillingReport✅✅
GetConnectivityRule✅✅✅
GetConnectivityRules✅✅✅
GetCurrentIdentity✅✅✅✅✅
GetNamespaces✅✅✅✅✅
GetNexusEndpoint✅✅✅✅✅
GetNexusEndpoints✅✅✅✅✅
GetProjects✅✅✅✅✅
GetRegion✅✅✅✅✅
GetRegions✅✅✅✅✅
GetServiceAccount✅†✅†✅†✅†✅†
GetServiceAccounts✅†✅†✅†✅†✅†
GetUsage✅✅✅
GetUser✅‡✅‡✅‡✅‡✅‡
GetUserGroup✅✅✅✅✅
GetUserGroupMembers✅✅✅✅✅
GetUserGroups✅✅✅✅✅
GetUsers✅‡✅‡✅‡✅‡✅‡
RemoveUserGroupMember✅✅
UpdateAccount✅✅
UpdateAccountAuditLogSink✅✅
UpdateApiKey✅*✅*✅*✅*✅*
UpdateNamespaceTags✅✅
UpdateNexusEndpoint✅✅✅
UpdateServiceAccount✅†✅†✅†✅†✅†
UpdateUser✅✅
UpdateUserGroup✅✅
ValidateAccountAuditLogSink✅✅

Namespace-level permissions​

Namespace-level permissions are granted to users and service accounts by assigning them a Namespace-level permission. Temporal Cloud supports the following Namespace-level permissions:

  • Namespace Admin
  • Write
  • Read

Users with the Global Admin and Account Owner roles automatically have Namespace Admin permissions on all Namespaces in the account.

Cloud Ops API permissions​

This table provides API-level details for permissions granted through Namespace-level permissions. These permissions are configured per Namespace per user.

PermissionReadWriteNamespace Admin
AddNamespaceRegion✅
CreateNamespaceExportSink✅
DeleteNamespace✅
DeleteNamespaceExportSink✅
DeleteNamespaceRegion✅
FailoverNamespaceRegion✅
GetNamespace✅✅✅
GetNamespaceCapacityInfo✅✅✅
GetNamespaceExportSink✅✅✅
GetNamespaceExportSinks✅✅✅
GetUserNamespaceAssignments✅
RenameCustomSearchAttribute✅
SetServiceAccountNamespaceAccess✅
SetUserGroupNamespaceAccess✅
SetUserNamespaceAccess✅
UpdateNamespace✅
UpdateNamespaceExportSink✅
ValidateNamespaceExportSink✅

Workflow-level permissions​

This table provides API-level details for Workflow-level Data Plane permissions granted through Namespace-level permissions. These permissions are configured per Namespace per user.

PermissionReadWriteNamespace Admin
CountActivityExecutions✅✅✅
CountSchedules✅✅✅
CountWorkflowExecutions✅✅✅
CreateSchedule✅✅
CreateWorkflowRule✅✅
DeleteActivityExecution✅✅
DeleteSchedule✅✅
DeleteWorkerDeployment✅✅
DeleteWorkerDeploymentVersion✅✅
DeleteWorkflowExecution✅✅
DeleteWorkflowRule✅✅
DescribeActivityExecution✅✅✅
DescribeBatchOperation✅✅✅
DescribeNamespace✅✅✅
DescribeSchedule✅✅✅
DescribeTaskQueue✅✅✅
DescribeWorker✅✅✅
DescribeWorkerDeployment✅✅✅
DescribeWorkerDeploymentVersion✅✅✅
DescribeWorkflowExecution✅✅✅
DescribeWorkflowRule✅✅✅
ExecuteMultiOperation✅✅
FetchWorkerConfig✅✅✅
GetSearchAttributes✅✅✅
GetWorkerBuildIdCompatibility✅✅✅
GetWorkerTaskReachability✅✅✅
GetWorkerVersioningRules✅✅✅
GetWorkflowExecutionHistory✅✅✅
GetWorkflowExecutionHistoryReverse✅✅✅
ListActivityExecutions✅✅✅
ListBatchOperations✅✅✅
ListClosedWorkflowExecutions✅✅✅
ListOpenWorkflowExecutions✅✅✅
ListScheduleMatchingTimes✅✅✅
ListSchedules✅✅✅
ListTaskQueuePartitions✅✅✅
ListWorkerDeployments✅✅✅
ListWorkers✅✅✅
ListWorkflowExecutions✅✅✅
ListWorkflowRules✅✅✅
PatchSchedule✅✅
PauseActivity✅✅
PauseWorkflowExecution✅✅
PollActivityExecution✅✅
PollActivityTaskQueue✅✅
PollNexusTaskQueue✅✅
PollWorkflowExecutionUpdate✅✅
PollWorkflowTaskQueue✅✅
QueryWorkflow✅✅✅
RecordActivityTaskHeartbeat✅✅
RecordActivityTaskHeartbeatById✅✅
RecordWorkerHeartbeat✅✅
RequestCancelActivityExecution✅✅
RequestCancelWorkflowExecution✅✅
ResetActivity✅✅
ResetStickyTaskQueue✅✅
ResetWorkflowExecution✅✅
RespondActivityTaskCanceled✅✅
RespondActivityTaskCanceledById✅✅
RespondActivityTaskCompleted✅✅
RespondActivityTaskCompletedById✅✅
RespondActivityTaskFailed✅✅
RespondActivityTaskFailedById✅✅
RespondNexusTaskCompleted✅✅
RespondNexusTaskFailed✅✅
RespondQueryTaskCompleted✅✅
RespondWorkflowTaskCompleted✅✅
RespondWorkflowTaskFailed✅✅
SetWorkerDeploymentCurrentVersion✅✅
SetWorkerDeploymentManager✅✅
SetWorkerDeploymentRampingVersion✅✅
ShutdownWorker✅✅
SignalWithStartWorkflowExecution✅✅
SignalWorkflowExecution✅✅
StartActivityExecution✅✅
StartBatchOperation✅✅
StartWorkflowExecution✅✅
StopBatchOperation✅✅
TerminateActivityExecution✅✅
TerminateWorkflowExecution✅✅
TriggerWorkflowRule✅✅
UnpauseActivity✅✅
UnpauseWorkflowExecution✅✅
UpdateActivityOptions✅✅
UpdateSchedule✅✅
UpdateTaskQueueConfig✅✅
UpdateWorkerBuildIdCompatibility✅✅
UpdateWorkerConfig✅✅
UpdateWorkerDeploymentVersionMetadata✅✅
UpdateWorkerVersioningRules✅✅
UpdateWorkflowExecution✅✅
UpdateWorkflowExecutionOptions✅✅

Project-level permissions​

Project-level permissions are granted to users, groups, and service accounts by assigning them a Project-level role. Temporal Cloud supports the following Project-level roles:

  • Project Admin
  • Project Write
  • Project Read
  • Project Contribute
  • Project List
  • Project Member

Users with the Global Admin and Account Owner roles automatically have Project Admin on all Projects in the account.

Project Admin, Project Write, and Project Read also grant Namespace Admin, Write, and Read respectively on every Namespace in the Project. Project Contribute, Project List, and Project Member grant no Namespace-level access. This is why Project Read and Project List grant the same Cloud Ops API permissions, as do Project Write and Project Contribute: they differ in the Namespace-level and Workflow-level permissions they carry, not in the Cloud Ops API endpoints they can call.

Cloud Ops API permissions​

This table provides API-level details for permissions granted through Project-level roles. These permissions are configured per Project per user.

These permissions control who can manage Nexus Endpoints in the Project. They do not restrict which Namespaces can call an Endpoint at runtime, which continues to be controlled by the Endpoint allowlist. See Use Nexus across Projects.

PermissionMemberListReadContributeWriteProject Admin
CreateConnectivityRule✅✅✅
CreateNamespace✅✅✅
CreateNexusEndpoint✅✅✅
CreateServiceAccount✅†
DeleteConnectivityRule✅✅✅
DeleteNexusEndpoint✅✅✅
DeleteProject✅
GetConnectivityRule✅✅✅✅✅
GetConnectivityRules✅✅✅✅✅
GetNamespaces✅✅✅✅✅✅
GetNexusEndpoint✅✅✅✅✅
GetNexusEndpoints✅✅✅✅✅
GetProject✅✅✅✅✅✅
GetProjectScopedServiceAccounts✅
GetServiceAccount✅†✅†✅†✅†✅†
GetServiceAccountProjectAssignments✅
GetServiceAccounts✅†✅†✅†✅†✅†
GetUserGroupProjectAssignments✅
GetUserProjectAssignments✅
SetServiceAccountProjectAccess✅
SetUserGroupProjectAccess✅
SetUserProjectAccess✅
UpdateNexusEndpoint✅✅✅
UpdateProject✅

Project Developer is a compatibility role that users with the Account Developer role inherit automatically. It cannot be assigned directly. It grants everything Project Contribute grants except CreateConnectivityRule and DeleteConnectivityRule, and carries no Namespace-level access. For details, see Project roles.

Custom Role permissions reference​

The following tables list the permission action strings available when defining Custom Roles. Use these strings in the actions field of a Custom Role permission grant.

Not all Cloud Ops API operations can be assigned to a Custom Role. For details on which operations are excluded and why, see Available permissions.

Account permissions​

PermissionCloud Ops APIResource type
cloud.account.getGetAccountAccount
cloud.account.updateUpdateAccountAccount
cloud.asyncoperation.getGetAsyncOperationAccount
cloud.auditlog.createSinkCreateAccountAuditLogSinkAccount
cloud.auditlog.deleteSinkDeleteAccountAuditLogSinkAccount
cloud.auditlog.getSinkGetAccountAuditLogSinkAccount
cloud.auditlog.listGetAuditLogsAccount
cloud.auditlog.listSinksGetAccountAuditLogSinksAccount
cloud.auditlog.updateSinkUpdateAccountAuditLogSinkAccount
cloud.auditlog.validateSinkValidateAccountAuditLogSinkAccount
cloud.billingreport.createCreateBillingReportAccount
cloud.billingreport.getGetBillingReportAccount
cloud.connectivityrule.listGetConnectivityRulesAccount, Project
cloud.customrole.createCreateCustomRoleAccount, Project
cloud.customrole.listGetCustomRolesAccount, Project
cloud.migration.abortAbortMigrationAccount
cloud.migration.confirmConfirmMigrationAccount
cloud.migration.getGetMigrationAccount
cloud.migration.handoverHandoverNamespaceAccount
cloud.migration.listGetMigrationsAccount
cloud.migration.startStartMigrationAccount
cloud.namespace.listGetNamespacesAccount, Project
cloud.nexusendpoint.listGetNexusEndpointsAccount, Project
cloud.region.getGetRegionAccount
cloud.region.listGetRegionsAccount
cloud.usage.getGetUsageAccount
cloud.user.createCreateUserAccount
cloud.user.deleteDeleteUserAccount
cloud.user.getGetUserAccount
cloud.user.listGetUsersAccount
cloud.usergroup.addMemberAddUserGroupMemberAccount
cloud.usergroup.createCreateUserGroupAccount
cloud.usergroup.deleteDeleteUserGroupAccount
cloud.usergroup.getGetUserGroupAccount
cloud.usergroup.getMembersGetUserGroupMembersAccount
cloud.usergroup.listGetUserGroupsAccount
cloud.usergroup.removeMemberRemoveUserGroupMemberAccount

Namespace permissions​

PermissionCloud Ops APIResource type
cloud.namespace.addRegionAddNamespaceRegionNamespace
cloud.namespace.capacityinfo.getGetNamespaceCapacityInfoNamespace
cloud.namespace.deleteDeleteNamespaceNamespace
cloud.namespace.deleteRegionDeleteNamespaceRegionNamespace
cloud.namespace.exportsink.createCreateNamespaceExportSinkNamespace
cloud.namespace.exportsink.deleteDeleteNamespaceExportSinkNamespace
cloud.namespace.exportsink.getGetNamespaceExportSinkNamespace
cloud.namespace.exportsink.listGetNamespaceExportSinksNamespace
cloud.namespace.exportsink.updateUpdateNamespaceExportSinkNamespace
cloud.namespace.exportsink.validateValidateNamespaceExportSinkNamespace
cloud.namespace.failoverRegionFailoverNamespaceRegionNamespace
cloud.namespace.getGetNamespaceNamespace
cloud.namespace.getServiceAccountNamespaceAssignmentsGetServiceAccountNamespaceAssignmentsNamespace
cloud.namespace.getUserGroupNamespaceAssignmentsGetUserGroupNamespaceAssignmentsNamespace
cloud.namespace.getUserNamespaceAssignmentsGetUserNamespaceAssignmentsNamespace
cloud.namespace.renameCustomSearchAttributeRenameCustomSearchAttributeNamespace
cloud.namespace.setUserAccessSetUserNamespaceAccessNamespace
cloud.namespace.setUserGroupAccessSetUserGroupNamespaceAccessNamespace
cloud.namespace.updateUpdateNamespaceNamespace
cloud.namespace.updateTagsUpdateNamespaceTagsNamespace

Project permissions​

PermissionCloud Ops APIResource type
cloud.connectivityrule.createCreateConnectivityRuleProject
cloud.connectivityrule.listGetConnectivityRulesAccount, Project
cloud.customrole.createCreateCustomRoleAccount, Project
cloud.customrole.listGetCustomRolesAccount, Project
cloud.namespace.createCreateNamespaceProject
cloud.namespace.listGetNamespacesAccount, Project
cloud.nexusendpoint.createCreateNexusEndpointProject
cloud.nexusendpoint.listGetNexusEndpointsAccount, Project

Nexus Endpoint permissions​

PermissionCloud Ops APIResource type
cloud.nexusendpoint.deleteDeleteNexusEndpointNexus Endpoint
cloud.nexusendpoint.getGetNexusEndpointNexus Endpoint
cloud.nexusendpoint.updateUpdateNexusEndpointNexus Endpoint

Connectivity Rule permissions​

PermissionCloud Ops APIResource type
cloud.connectivityrule.deleteDeleteConnectivityRuleConnectivity Rule
cloud.connectivityrule.getGetConnectivityRuleConnectivity Rule

Custom Role permissions​

PermissionCloud Ops APIResource type
cloud.customrole.deleteDeleteCustomRoleCustom Role
cloud.customrole.getGetCustomRoleCustom Role
cloud.customrole.updateUpdateCustomRoleCustom Role

Additional authorization behaviors​

Some APIs are granted to all account-level roles but enforce additional authorization rules at runtime. The action group grants access to call the API, but the scope of what the caller can interact with depends on their role.

API key authorization behavior​

All roles can create and manage their own API keys. An API key inherits the permissions of its owner — it cannot grant access beyond what the owning user or service account already has.

BehaviorRead-onlyDeveloperFinance AdminGlobal AdminAccount Owner
Create, view, update, and delete own API keys✅✅✅✅✅
View, update, and delete any API key in the account✅✅

Affected APIs: CreateApiKey, GetApiKey, GetApiKeys, UpdateApiKey, DeleteApiKey

Service account authorization behavior​

All roles can list service accounts within their account. However, the ability to create, update, and delete service accounts depends on the scope of the service account and the caller's role.

BehaviorRead-onlyDeveloperFinance AdminGlobal AdminAccount Owner
List all service accounts in the account✅✅✅✅✅
Manage unscoped (account-level) service accounts✅✅
Manage Namespace-scoped service accounts§§§✅✅
Manage Project-scoped service accounts†††✅✅

§ Requires Namespace Admin permission on the target Namespace. Any role can manage Namespace-scoped service accounts if they hold Namespace Admin on that Namespace.

† Requires Project Admin permission on the target Project. Any role can manage Project-scoped service accounts if they hold Project Admin on that Project.

Affected APIs: CreateServiceAccount, GetServiceAccount, GetServiceAccounts, UpdateServiceAccount, DeleteServiceAccount

User authorization behavior​

Every account-level role can call GetUser and GetUsers. The response includes the user's ID, email, and state.

Another user's access (account role, Namespace permissions, Project access, and Custom Roles) and invitation are returned only to Account Owner and Global Admin. Namespace Admin does not change this.

GetUser of the caller always includes that caller's own access.

To list who has access to a Namespace, use GetUserNamespaceAssignments.

Affected APIs: GetUser, GetUsers