Managing organization members
A GraphOS organization can have any number of members, and each member can be assigned a role that defines their capabilities within the organization.
Each organization member has one of the following roles:
|Name||Description||Supported plan types|
|Org Admin||Has management access to the entire organization, including its members, graphs, and configuration.||All|
|Graph Admin||Has management access to the organization's graphs, but not to members or organization-level configuration. Intended for developers who are considered admins to the graph.||Enterprise only|
|Contributor||Can push new schemas to graphs, but cannot configure graph settings or integrations. Intended for back-end developers who are authorized to make changes to graphs. Cannot push schema changes to protected variants.||Enterprise only|
|Documenter||Has all permissions of the Observer role, plus the ability to edit graph READMEs, descriptions, and similar non-operational metadata.||Enterprise only|
|Observer||Has view-only access to the organization's graph data, such as schemas and metrics. Can also execute queries in the Explorer. Intended for back-end developers who are not authorized to make changes to graphs.||Enterprise only|
Has view-only access to the organization's graph schemas, but not metrics. Can also execute queries in the Explorer. Intended for application developers building clients against a graph.
This role is available to all plan types. For legacy Team plans, Consumer members do not count as billed users.
Has management access to organization-level configuration and billing. Can also remove members (but not invite them). No access to graphs. Learn more
This role is available to all paid plan types. For legacy Team plans, Billing Manager members do not count as billed users.
|All paid plan types|
Only members with the Org Admin role can assign roles to other members. You can see which role you have in a particular organization from your user settings page, or from the organization's Members tab.
You can override a member's organization-wide role for individual graphs. For example, if a member has the Observer role in your organization, you can assign them the Contributor role for a graph that they need extra access to.
A member's graph-specific role must have more permissions than their organization-wide role.
Members with the Graph Admin or Org Admin role can assign graph-specific roles from the Permissions tab of the graph's Settings page.
If a graph is made hidden, then only users with explicit overrides (as well as Org Admins) can see the graph.
The Graph Admin and Org Admin roles have exactly the same permissions for a particular graph, so you can only grant a Graph Admin override, not an (equivalent) Org Admin override.
When Contributors in an organization create a new graph, they are automatically granted the Graph Admin role for that graph.
|Action||Org Admin||Graph Admin||Contributor||Observer / Documenter||Consumer|
|View and edit billing information||✓|
|Manage organization configuration (name, avatar, etc.)||✓|
|Export audit logs (enterprise only)||✓|
|Delete the organization||✓|
|Manage which users have access to graphs||✓||✓|
|Manage graph integrations (Slack, Datadog, etc.)||✓||✓|
|View and manage graph API keys||✓||✓|
|Modify schema checks configuration||✓||✓|
|Delete and rename graphs||✓||✓|
|Create and modify contracts and contract variants||✓||✓|
|View existing contracts||✓||✓||✓|
|Create new variants||✓||✓||Non-protected variants only|
|Push schemas to a graph||✓||✓||Non-protected variants only|
|Manage Explorer settings (URL, etc)||✓||✓||Non-protected variants only|
|Edit variant READMEs||✓||✓||✓||Documenter only|
|Run schema checks||✓||✓||✓||✓|
|See the schemas of subgraphs in federated graphs||✓||✓||✓||✓|
|View graph usage metrics and traces||✓||✓||✓||✓|
|View graph schemas and changelogs||✓||✓||✓||✓||✓|
|Query graphs with the Explorer||✓||✓||✓||✓||✓|
Currently, graph usage metrics and traces are not displayed to Consumers via the Studio web app, but they are not blocked at the API layer. We intend to remove this capability from Consumers, but for the time being you should understand that Consumers are not fully prevented from accessing these metrics and traces.
Members with the Billing Manager role can't see or manage graphs in their organizations, but they can:
- Remove members from the organization
- View and edit billing information (including changing the billing plan)
- Manage organization configuration (name, avatar, etc.)
Notably, Billing Managers can't invite new members to the organization or update roles.
Each graph API key also has a corresponding member role. This role can be any of Graph Admin (the default), Contributor, Documenter, Observer, or Consumer. A graph API key provides access only to its associated graph. It does not provide access to actions associated with organizations or users.
An additional role called Persisted Query Publisher is only available for graph API keys, not for organization members. The role is only available for API keys for graphs in Enterprise organizations. API keys with this role can run the
rover persisted-queries publish command to publish operations to persisted query lists. The role provides no other read or write access to the graph.
This role is appropriate for use in client development teams' deployment processes. If your graph uses persisted queries, some client teams may need to publish their operations to your graph's persisted query lists but should not be able to view your graph's schema, changelogs, or use other Consumer-level features.
Otherwise, a graph API key is equivalent in privileges to a user with the same role for the graph. For example, you can use a Consumer key to fetch a graph's schema, and you can use a Graph Admin key to manage integrations.
A few operations aren't listed in the table above because they are only supported by graph API keys, not personal API keys for users in the graph's organization. These are primarily operations that are performed by your GraphQL server, such as usage reporting (traces and performance metrics).
Before January 2021, graph keys did not have roles. Keys created before that date (shown as Legacy Admin keys) can perform the following operations:
- Create new variants
- Run schema checks
- View and manage graph API keys
- Push schemas to a graph
- See the schemas of subgraphs in federated graphs
- View graph schemas and changelogs
- Modify schema checks configuration
Org Admins can invite individual members by email address from your organization's Members tab in Apollo Studio. Organization admins can also create a persistent invite link from the organization's Settings tab, which can be used to invite any number of members. Using either method, an org admin can specify which role a new member receives.
- If your organization uses an identity provider (IdP) for single sign-on (SSO), you should configure access in your IdP rather than via invitations. For example, with Okta, you need to assign members to your GraphOS Studio integration to give them access. If you've configured a member to have access in your IdP, they can access GraphOS Studio without an invitation link.
- Do not share invite links publicly. Anyone with the link can join your organization. If an invite link becomes compromised, an admin can replace or disable it from the Settings tab.
Both Org Admins and Billing Managers can remove members from your organization's Members tab in Apollo Studio.