Control Mechanisms / Members

Roles that gate real writes.

Access is not a single flat list of teammates. There are two levels of role — across the organisation and inside each workspace — and both are enforced on the write path, not just reflected in the UI. A member who cannot touch a key gets a real rejection, and a viewer never receives a secret in the first place.
org: owner · admin · member · viewer workspace: admin · member · viewer

Swarm phase Coordination, not flow: a workspace is a channel with an aperture — who may enter, and what they may do inside.

The model

Org role, workspace role, effective role.

Every teammate has a role across the organisation and, optionally, a distinct role inside a given workspace. What they can actually do is the stronger of the two — an org admin keeps their reach everywhere, while a workspace can grant someone elevated rights in one place without widening them anywhere else. The serving path resolves that effective role on every mutating call.

Org roles & invites enforced

Owner, admin, member, viewer. Admins cannot escalate — only an owner grants admin, and the last owner cannot be removed. Everyone joins by magic-link invite against a seat count, not a shared password.

Workspace roles gate writes enforced

A workspace has its own admin / member / viewer, and the write path checks it: creating, editing, rotating or deleting a key, and running a batch, all require the right effective role. This is a real gate, not a greyed-out button.

View-access is explicit enforced

A workspace is private by default. An org member with no role in it sees nothing — the connectors are cloaked, not just hidden. Access is granted per member, never inferred from a toggle.

Viewers never see secrets enforced

A viewer can read usage and activity but the key values themselves are withheld at the API, not masked in the browser. The response says so — you can audit that the secret never left the server.

Stated precisely: a workspace is private by default and access is explicit — a teammate sees a workspace's data only when they have been given a role in it, never because of an org-wide switch. Every control on this page is enforced in the code that serves the request, not a preference the UI merely displays.

Point one agent at it.

Connect over MCP or REST. If your agents read more than one source, the context bill is the first thing you will see move.