RBAC APIs are only available when RBAC is enabled for your workspace. If RBAC is disabled, these helpers raise
FeatureNotEnabledError and SDK objects are not scoped by group or project.Initialize with a group and project
The easiest way to work in an RBAC-enabled workspace is to passgroup and project to kumo.init().
group and project may be either names or IDs. If your user belongs to exactly one group, the SDK auto-selects that group when RBAC is enabled. If multiple groups are available, pass group= during initialization or call set_group() before selecting a project.
Discover groups and projects
Uselist_groups() to see groups available to the authenticated user. After selecting a group, use list_projects() to see projects in that group.
Create a project
Create a project inside the current group withcreate_project().
is_private=False makes the project visible to members of the group. Set is_private=True for a project visible only to its creator, subject to workspace policy.
Use administrator-managed group connectors
In RBAC-enabled SDK workspaces, group connectors are the only supported connector type. Administrators publish these shared connectors so SDK workflows can read source tables without exposing connection details or credentials to users.GroupConnector behaves like other SDK connectors: use table() or indexing to obtain a SourceTable, then build Kumo Table objects from it.
Error handling
The SDK exposes RBAC-specific exceptions so automation can fail clearly.FeatureNotEnabledError: RBAC is not enabled for this workspace, orRBAC_ENABLED=falsewas set to opt out.GroupNotSetError: The SDK needs a group context. Passgroup=tokumo.init()or callkumo.set_group().ProjectNotSetError: The SDK needs a project context. Passproject=tokumo.init()or callkumo.set_project()after selecting a group.
Environment override
By default, the SDK detects RBAC support from the Kumo service. For migration scripts,RBAC_ENABLED can override that detection:
Recommended workflow
- Initialize with
group=andproject=whenever possible. - Use
list_group_connectors()instead of embedding warehouse credentials in notebooks. - Create separate projects for separate modeling efforts, experiments, or production assets.
- Avoid switching groups halfway through a notebook unless you also intentionally select a new project.