tenant-binding.create, tenant-binding.edit, and role.read. In a brand-new tenant, the first GitHub org owner runs the commands below and then delegates outward from there.
1. Create the binding
A user becomes a tenant admin when they’re bound to themurmur-tenant-admin role, which grants * (every permission on every resource). You can bind a single user directly, or bind a group and manage membership separately. Groups are recommended for anything beyond one person, because you can add or remove members later without touching the binding itself.
A single user
Apply withmurmur set:
github_oauth/ prefix.
A group (recommended for teams)
Create the group first, then bind it:2. Verify the promotion took
Before you walk away, confirm it actually worked.murmur check-permissions answers yes or no for each verb you list and shows you which binding produced the result:
yes on every check with Reason: root (the murmur-tenant-admin role grants *). Spot-check a handful of sensitive verbs (tenant-binding.create, secret.create, pool-config.edit) instead of trying to enumerate every kind. If one returns no, the binding probably points at a misspelled role or a group the user isn’t actually in.
3. Audit who has admin
Anyone withtenant-binding.create can promote others, including (in theory) promoting themselves to keep access if you remove them. Audit periodically with murmur get:
murmur-tenant-admin or murmur-root. Both grant universal access. The GitHub org-owner binding is automatic and shows up under the murmur-org-admins group, which resolves dynamically against GitHub at evaluation time, so changes in GitHub propagate without needing a Murmur update.
Revoke admin
For a single-user binding, delete it withmurmur rm:
murmur-org-admins group is dynamic and stays in sync with GitHub, so the change takes effect on their next request without any Murmur action.
Related
Authorization
Full permission model, built-in roles, every kind and verb.
Service Profiles
Service Profiles for Flights and automated agents.