Skip to main content

Roles and Permissions

Tenant Role Permissions

When you create a tenant, PaletteAI automatically creates a role named project-{project-name}-tnt-adm with the following permissions:

ResourcesPermissionsAPI
Settings*mural.sh/v1alpha1
Project*mural.sh/v1alpha1
Compute*palette.ai/v1alpha1
ComputeProfile*palette.ai/v1alpha1
MLPlatform*palette.ai/v1alpha1

All OIDC groups in the tenant tenantRoleMapping are bound to this single role through one RoleBinding.

Project Role Permissions

Projects automatically create three distinct roles with escalating permissions.

Viewer Role

Can view all resources but cannot make any modifications.

ResourcesPermissionsAPI
MLPlatformget, list, watchpalette.ai/v1alpha1
ComputeProfileget, list, watchpalette.ai/v1alpha1
Computeget, list, watchpalette.ai/v1alpha1
Projectget, list, watchmural.sh/v1alpha1
Settingsget, list, watchmural.sh/v1alpha1

Editor Role

Can deploy and manage MLPlatforms within their assigned project.

ResourcesPermissionsAPI
MLPlatformget, list, watch, create, update, patch, deletepalette.ai/v1alpha1
ComputeProfileget, list, watch, create, update, patch, deletepalette.ai/v1alpha1
Computeget, list, watch, create, update, patch, deletepalette.ai/v1alpha1
Projectget, list, watchmural.sh/v1alpha1
Settingsget, list, watchmural.sh/v1alpha1

Admin Role

Full control over all resources and configurations in the project scope. * means full access to the resource.

ResourcesPermissionsAPI
MLPlatform*palette.ai/v1alpha1
ComputeProfile*palette.ai/v1alpha1
Compute*palette.ai/v1alpha1
Projectget, patch, watch, updatemural.sh/v1alpha1
Settings*mural.sh/v1alpha1

System Roles

In the system namespace, default to mural-system, there are three roles created by default:

RolePurpose
ViewerRead-only access to system definitions
EditorUpdate access to system definitions
AdminFull access to system definitions

For each project created, role bindings are created in the mural-system namespace to grant project users access to system-level definitions, ComponentDefinitions, TraitDefinitions, and PolicyDefinitions. These role bindings map project roles to pre-existing system roles. This is what allows users to access system-level definitions in addition to project-level definitions.

Each role binding is named {project-name}-mural-project-{viewer|editor|admin} and binds the project's OIDC groups to the corresponding system role in the mural-system namespace.

Below are the permissions for each system role. As a reminder, these permissions are only applied to the mural-system namespace.

Viewer

ResourcesPermissionsAPI
ComponentDefinitionget, list, watchmural.sh/v1beta1
TraitDefinitionget, list, watchmural.sh/v1beta1
PolicyDefinitionget, list, watchmural.sh/v1beta1
DefinitionRevisionget, list, watchmural.sh/v1beta1

Editor Role

ResourcesPermissionsAPI
ComponentDefinitionget, list, watchmural.sh/v1beta1
TraitDefinitionget, list, watchmural.sh/v1beta1
PolicyDefinitionget, list, watchmural.sh/v1beta1
DefinitionRevisionget, list, watchmural.sh/v1beta1

Admin Role

ResourcesPermissionsAPI
ComponentDefinitionget, list, watchmural.sh/v1beta1
TraitDefinitionget, list, watchmural.sh/v1beta1
PolicyDefinitionget, list, watchmural.sh/v1beta1
DefinitionRevisionget, list, watchmural.sh/v1beta1