Skip to content

governance module route (requires governance:rbac:admin)

PUT
/v1/m/governance/rbac/roles/{name}
curl --request PUT \
--url https://example.com/v1/m/governance/rbac/roles/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "base_role": "", "created_by": "example", "description": "example", "display_name": "example", "excludes": [ "example" ], "groups": [ "example" ], "name": "example", "permissions": [ "example" ] }'

Replaces one custom role; the caller must be a tenant admin, and the base role and its exclusions are validated together.

name
required
string

Path parameter name.

X-Olivares-Tenant
string format: uuid

Target tenant id; required when the principal can act in more than one tenant.

Media type application/json
Any of:
object
base_role
Any of:
string
Allowed values: "" viewer editor admin owner
created_by
Any of:

Output field accepted by the DTO but ignored on input.

string
description
Any of:

Capped at 4096 bytes.

string
display_name
Any of:

Capped at 4096 bytes.

string
excludes
Any of:

Catalog permissions subtracted after base, direct permissions, and groups.

Array
groups
Any of:

Every name must identify an existing permission-group.

Array<string>
name
Any of:

On update this DTO field is accepted but ignored; the path names the role.

string
permissions
Any of:

Catalog permissions are trimmed, empty entries skipped, deduplicated, and sorted.

Array

OK

Media type application/json
object
Example generated
{}

Bad request

Media type application/json
object
Example generated
{}

Unauthenticated

Media type application/json
object
Example generated
{}

Forbidden

Media type application/json
object
Example generated
{}

Not found

Media type application/json
object
Example generated
{}

Conflict / setup required

Media type application/json
object
Example generated
{}

Rate limited

Media type application/json
object
Example generated
{}