Skip to main content
MeshAgent IAM controls access to project resources. It answers four questions:
  • Who is requesting access: a user, group, agent, service account, or userset.
  • What they are accessing: a project, room, repository, feed, secret, service account, or other project resource.
  • Which role they have on that resource.
  • Which room API scope a participant token carries after access is granted.
Use the smallest role or scope that lets the subject do its job.

Principals

Resources

Project Roles

Project roles apply at the project level. owner is assigned to the project owner. admin inherits owner-level administrative capabilities. developer inherits a focused operational subset. Direct, narrower roles can also be granted independently.

Room, Agent, and Repository Roles

These roles apply to resource policies for rooms and repositories. They also describe the effective role set used for room and agent access decisions. For rooms, viewer, operator, developer, and admin map to room API scopes:

Group Roles

Feed Roles

Secret Roles

Service Account Roles

Effective Permissions

Effective permissions are the checks MeshAgent evaluates after combining direct resource roles with inherited project roles. You do not assign these directly; you grant the roles that satisfy them.

Room API Scope Permissions

Room API scopes are embedded in participant tokens. They are not project roles. They control what a connected participant can call inside a room. If a grant object is absent, that API surface is denied. When a grant object exists, None in an allowlist generally means unrestricted access within that grant, and a boolean set to false disables that operation.

livekit

queues

messaging

dataset

If dataset.tables is None, the participant may read, write, and alter every dataset table allowed by the grant.

sqlite

If sqlite.databases is None, the participant may use all SQLite databases allowed by the grant. If a matching database grant has tables: None, table read, write, and alter access applies to all tables in that database.

memory

If memory.memories is None, the participant may use all memories allowed by the grant.

sync

If sync.paths is None, the participant may read and write all sync paths allowed by the grant.

storage

If storage.paths is None, the participant may read and write all storage paths allowed by the grant.

containers

If containers.registry is absent, registry list, pull, run, and write checks allow any repository covered by the container grant.

developer

agents

llm

admin

secrets

tunnels

services

Built-in Room API Scope Presets

Managing IAM

Use MeshAgent Studio for day-to-day member management. Use the CLI or SDKs when provisioning access from automation.