Skip to main content
The roles functions are currently in ALPHA. The API may change without notice. A one-time warning is emitted on first use.

List Roles

import { listRoles } from "@arizeai/ax-client";

// List all roles (predefined and custom)
const { data: roles, pagination } = await listRoles();

// List only predefined (system) roles
const { data: predefined } = await listRoles({ isPredefined: true });

// List only custom roles
const { data: custom } = await listRoles({ isPredefined: false });

Create a Role

Custom roles must have a unique name within the account and at least one permission. Predefined (system-managed) roles cannot be created through this endpoint.
import { createRole } from "@arizeai/ax-client";

const role = await createRole({
  name: "AI Engineer",
  permissions: ["PROJECT_READ", "DATASET_READ", "DATASET_CREATE"],
  description: "Can read projects and read/create datasets.",
});
console.log(role.id);

Get a Role

import { getRole } from "@arizeai/ax-client";

const role = await getRole({ roleId: "your_role_id" });
console.log(role.name, role.permissions);

Update a Role

At least one of name, description, or permissions must be provided. When permissions is provided, it fully replaces the existing permission set. Predefined roles cannot be updated.
import { updateRole } from "@arizeai/ax-client";

const updated = await updateRole({
  roleId: "your_role_id",
  permissions: ["PROJECT_READ", "DATASET_READ"],
});

Delete a Role

Predefined (system-managed) roles cannot be deleted.
import { deleteRole } from "@arizeai/ax-client";

await deleteRole({ roleId: "your_role_id" });

Role Fields

FieldTypeDescription
idstringThe role ID.
namestringThe role name.
descriptionstring | undefinedOptional description.
permissionsPermission[]List of permissions granted by this role.
isPredefinedbooleanWhether this is a system-managed predefined role.
createdAtDateWhen the role was created.
updatedAtDateWhen the role was last updated.