-
Notifications
You must be signed in to change notification settings - Fork 53
Create teams.overview #851
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
7fe76b2
a430595
113d046
c4ea94b
1718cea
5483b52
3824a39
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,129 +1,44 @@ | ||||||
| --- | ||||||
|
Check warning on line 1 in accounts-billing/manage-accounts.mdx
|
||||||
| title: "Manage accounts" | ||||||
| description: "Create accounts, manage teams, and configure user permissions in Runpod. Review account, billing, and management details for Runpod." | ||||||
| sidebarTitle: "Manage accounts" | ||||||
| description: "Learn about Runpod account types: personal accounts, teams, and organizations. Understand which account type fits your collaboration needs." | ||||||
| --- | ||||||
|
|
||||||
| To access Runpod resources, you need to either create your own account or join an existing team through an invitation. This guide explains how to set up and manage accounts, teams, and user roles. | ||||||
| Runpod supports three account types: personal accounts, teams, and organizations. Choose the type that fits how you and your collaborators work. | ||||||
|
|
||||||
| ## Create an account | ||||||
| ## Personal accounts | ||||||
|
|
||||||
| Sign up for a Runpod account at [console.runpod.io/signup](https://www.console.runpod.io/signup). | ||||||
| A personal account is the default account type. Sign up at [console.runpod.io/signup](https://console.runpod.io/signup) to get started. All resources you deploy, including Pods, Serverless endpoints, and network volumes, belong to your personal account. | ||||||
|
|
||||||
| Once created, you can use your account to deploy Pods, create Serverless endpoints, and access other Runpod services. Personal accounts can be converted to team accounts at any time to enable collaboration features. | ||||||
| ## Teams | ||||||
|
|
||||||
| ## Convert to a team account | ||||||
| Teams let multiple users collaborate under a shared account with role-based access control. | ||||||
|
|
||||||
| Team accounts enable multiple users to collaborate on projects and share resources. | ||||||
| For details on setting up and managing a team, see [Manage teams](/teams/manageteams). | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| To convert your personal account into a team account: | ||||||
| ## Organizations | ||||||
|
|
||||||
| 1. Navigate to the [Team page](https://www.console.runpod.io/team) in the Runpod console. | ||||||
| 2. Select **Convert to a Team Account**. | ||||||
| 3. Enter a team name and confirm the conversion. | ||||||
| Organizations are provisioned accounts for companies and larger teams. | ||||||
|
|
||||||
| <Note> | ||||||
|
|
||||||
| You can revert your account back to a personal account at any time. To revert, scroll to the bottom of the [Team page](https://www.console.runpod.io/team) and select **Delete Team**. | ||||||
|
|
||||||
| </Note> | ||||||
|
|
||||||
| ## Invite team members | ||||||
|
|
||||||
| Team accounts can invite new members to collaborate. Each invitation includes a specific role that determines the member's permissions. | ||||||
|
|
||||||
| <img src="https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/org_2tHD09rTU0IcE4clVjTuJCTn0an/create-team-invite-dialog-d8cb3fc6.png" alt="Create Team Invite dialog showing role selection and required email field" /> | ||||||
|
|
||||||
| To invite a new member: | ||||||
|
|
||||||
| 1. Navigate to the [Team page](https://www.console.runpod.io/team) in the Runpod console. | ||||||
| 2. In the **Members** section, select **Invite New Member**. | ||||||
| 3. Choose [the appropriate role](#roles-and-permissions) for the new member. | ||||||
| 4. Enter the email address of the person you want to invite and click **Create Invite**. | ||||||
| 5. Copy the generated invitation link from the **Pending Invites** section and share it with the person you want to invite. | ||||||
|
|
||||||
| Invitation links remain active until used or manually revoked. You can view all pending invitations in the team management interface. | ||||||
|
|
||||||
| ## Join a team | ||||||
|
|
||||||
| When invited to join a team, you'll receive an invitation link from a team member. To accept: | ||||||
|
|
||||||
| 1. Click the invitation link provided by the team member. | ||||||
| 2. Select **Join Team** to accept the invitation. | ||||||
|
|
||||||
| Your account will gain access to the team's resources based on the role assigned to you. | ||||||
|
|
||||||
| ## Roles and permissions | ||||||
|
|
||||||
| Runpod provides four distinct roles to control access within team accounts. Each role includes specific permissions designed for different responsibilities. | ||||||
|
|
||||||
| | Permission | Basic | Billing | Dev | Admin | | ||||||
| |------------|-------|---------|-----|-------| | ||||||
| | Access team account | ✅ | ✅ | ✅ | ✅ | | ||||||
| | Connect to existing Pods | ✅ | ❌ | ✅ | ✅ | | ||||||
| | Create/delete/start/stop Pods | ❌ | ❌ | ✅ | ✅ | | ||||||
| | Create/delete Serverless endpoints | ❌ | ❌ | ✅ | ✅ | | ||||||
| | Send requests to Serverless endpoints | ✅ | ❌ | ✅ | ✅ | | ||||||
| | Connect to existing Instant Clusters | ✅ | ❌ | ✅ | ✅ | | ||||||
| | Create/delete/start/stop Instant Clusters | ❌ | ❌ | ❌ | ✅ | | ||||||
| | Create/update/delete network volumes | ❌ | ❌ | ✅ | ✅ | | ||||||
| | View billing information | ❌ | ✅ | ❌ | ✅ | | ||||||
| | Manage payment methods | ❌ | ✅ | ❌ | ✅ | | ||||||
| | Invite team members | ❌ | ❌ | ❌ | ✅ | | ||||||
| | Manage team permissions | ❌ | ❌ | ❌ | ✅ | | ||||||
| | Modify team account settings | ❌ | ❌ | ❌ | ✅ | | ||||||
| | Access audit logs | ❌ | ❌ | ❌ | ✅ | | ||||||
|
|
||||||
| ### Basic role | ||||||
|
|
||||||
| The basic role provides essential access for users who need to work with existing resources without management capabilities. | ||||||
|
|
||||||
| This role allows users to access the team account and connect to already-deployed computing resources (e.g., Pods and Serverless endpoints) for development work. Users with this role cannot view billing information, start or stop Pods, or create new resources. | ||||||
|
|
||||||
| ### Billing role | ||||||
|
|
||||||
| The billing role focuses exclusively on financial management aspects of the account. | ||||||
|
|
||||||
| Users with this role can access all billing information, manage payment methods, and view invoices. They cannot access computing resources, making this role ideal for finance team members who need billing access without operational permissions. | ||||||
|
|
||||||
| ### Dev role | ||||||
|
|
||||||
| The dev role extends basic permissions with additional capabilities for active development work. | ||||||
|
|
||||||
| This role includes all basic permissions plus the ability to start, stop, and create Pods. Developers can fully manage computing resources for their work while remaining restricted from billing information and account settings. | ||||||
|
|
||||||
| ### Admin role | ||||||
|
|
||||||
| The admin role provides complete control over all account features and settings. | ||||||
|
|
||||||
| Administrators have unrestricted access to manage team members, configure account settings, handle billing, and control all team computing resources. This role should be reserved for team leaders and trusted members who need full account access. | ||||||
| For details on how organizations work, see [Organizations](/organizations/orgs-overview). | ||||||
|
|
||||||
| ## Account spend limits | ||||||
|
|
||||||
| By default, Runpod accounts have a spend limit of \$80 per hour across all resources. This limit protects your account from unexpected charges. If your workload requires higher spending capacity, you can [contact support](https://www.runpod.io/contact) to increase it. | ||||||
| By default, Runpod accounts have a spend limit of $80 per hour across all resources. This protects your account from unexpected charges. To increase the limit, [contact support](https://www.runpod.io/contact). | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The spend limit description overstates what is enforced, and the dollar-sign escape was dropped.
The 80 default itself is right ( On the escape: the repo writes an escaped dollar sign in prose in 257 places, including pages that link here and escape it on adjacent lines. A lone dollar sign renders fine in Mintlify, so this is consistency rather than breakage. Suggested rewrite: "By default, your account can run up to \$80 per hour of compute at once. Deploying or resuming a Pod or Serverless worker that would push your combined hourly rate above that limit is blocked. Storage is not counted toward the limit, and resources that are already running are unaffected. To increase the limit, contact support." |
||||||
|
|
||||||
| ## Monitor account activity | ||||||
|
|
||||||
| Runpod provides comprehensive audit logs to track all actions performed within your account. This feature helps maintain security and accountability across team operations. | ||||||
| Runpod provides comprehensive audit logs to track all actions performed within your account. This feature helps maintain security and accountability across your operations. | ||||||
|
|
||||||
| Access audit logs at [console.runpod.io/user/audit-logs](https://www.console.runpod.io/user/audit-logs). | ||||||
| Access audit logs at [console.runpod.io/user/audit-logs](https://console.runpod.io/user/audit-logs). | ||||||
|
|
||||||
| The audit system records detailed information about each action, including the user who performed it, the affected resource, and the timestamp. You can filter logs by date range, user, resource type, resource ID, and specific actions to investigate account activity or troubleshoot issues. | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The filter list does not match the API. The actor filter is also org-only: the "All users" selector renders only when scope is ORGANIZATION (
Suggested change
Optional addition: logs export as CSV, JSON, or XML ( |
||||||
|
|
||||||
| Regular review of audit logs helps identify unusual activity and ensures team members use resources appropriately. | ||||||
|
|
||||||
| ## Best practices | ||||||
|
|
||||||
| When managing team accounts, establish clear role assignments based on each member's responsibilities. Regularly review team membership and remove access for members who no longer need it. | ||||||
|
|
||||||
| For enhanced security, use the principle of least privilege by assigning the minimum role necessary for each team member's work. Consider creating separate accounts for billing management to isolate financial access from technical operations. | ||||||
|
|
||||||
| Monitor audit logs periodically to ensure compliance with your organization's policies and identify any unauthorized activities early. | ||||||
| Regular review of audit logs helps identify unusual activity and ensures resources are being used appropriately. | ||||||
|
|
||||||
| ## Next steps | ||||||
|
|
||||||
| After setting up your account and team you can: | ||||||
|
|
||||||
| * [Create API keys](/get-started/api-keys) to enable programmatic access to Runpod services. | ||||||
| * [Deploy your first Pod](/get-started) to start using GPU resources. | ||||||
| * Configure [Serverless endpoints](/serverless/overview) for scalable AI inference. | ||||||
| * Set up [billing and payment methods](https://console.runpod.io/user/billing) for your team. | ||||||
| - [Manage teams](/teams/manageteams) to invite members and assign roles. | ||||||
| - [Organizations](/organizations/orgs-overview) for enterprise billing and resource management. | ||||||
| - [Create API keys](/get-started/api-keys) for programmatic access to Runpod services. | ||||||
| - [Set up billing](/accounts-billing/billing) to manage payment methods and view usage. | ||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,63 @@ | ||||||
| --- | ||||||
|
Check warning on line 1 in teams/manageteams.mdx
|
||||||
| title: "Manage teams" | ||||||
| sidebarTitle: "Manage teams" | ||||||
| description: "Create and manage team accounts in Runpod. Invite members, assign roles, and collaborate on Pods, endpoints, and other resources." | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Filename convention: Since slugs are permanent URLs, worth renaming to I noticed commit |
||||||
| --- | ||||||
|
|
||||||
| Teams let multiple users collaborate on Runpod resources under a shared account. Any personal account can be converted to a team account to enable member management and role-based access control. | ||||||
|
|
||||||
| ## Create a team account | ||||||
|
|
||||||
| <Steps> | ||||||
| <Step title="Open the Team page"> | ||||||
| Navigate to **Create team** in the [Runpod console](https://console.runpod.io/team). | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Minor: this step is titled "Open the Team page" but the body says to navigate to Create team. The second Steps block at line 29-30 says "Go to the Team page", which reads better. Both labels are real; the sidebar entry is "Create team" for a personal account and "Team" once you are on a team ( Also verified and correct as written: the Convert to a Team Account button and modal, the team display name field, and the acknowledgment checkbox, which does gate the confirm button. Two undocumented limits you may want to mention: team names must be 3 to 50 characters, and a user can own only one team ( |
||||||
| </Step> | ||||||
| <Step title="Convert your account"> | ||||||
| Click **Convert to a Team Account**. Enter a team display name, check the acknowledgment checkbox, and click **Convert to a Team Account** to confirm. | ||||||
| </Step> | ||||||
| </Steps> | ||||||
|
|
||||||
| <Note> | ||||||
| To delete your team, scroll to the bottom of the **Team** page and click **Delete Team**. This reverts your account to a personal account. All members are removed, but your resources remain unchanged. | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Deleting a team is owner-only, not admin.
Two other omissions: clicking Delete Team opens a confirmation dialog, and pending invites are cancelled along with memberships (
Suggested change
|
||||||
| </Note> | ||||||
|
|
||||||
| ## Invite team members | ||||||
|
|
||||||
| Only admins can invite new members. Each invitation is tied to a specific email address and can only be accepted by the user with that address. | ||||||
|
Check warning on line 26 in teams/manageteams.mdx
|
||||||
|
|
||||||
| <Steps> | ||||||
| <Step title="Open the Team page"> | ||||||
| Go to the [Team page](https://console.runpod.io/team) in the Runpod console. | ||||||
| </Step> | ||||||
| <Step title="Send the invitation"> | ||||||
| In the **Members** section, click **Invite new member**. Select a role, enter the member's email address, and click **Create Invite**. | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The team-invite screenshot from the old page ( |
||||||
| </Step> | ||||||
| <Step title="Share the invitation link"> | ||||||
| The invitation link appears under **Pending Invites**. Copy it and share it with the invitee, or they will receive an email with a direct link to accept. | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Casing: the section heading on the page is Pending invites, lowercase i ( Also worth noting the section only renders once at least one invite exists, so a first-time admin will not see it before sending one. |
||||||
| </Step> | ||||||
| </Steps> | ||||||
|
|
||||||
| To invite multiple members at once, click **Bulk Invite**. Upload a CSV file or paste content directly using the format `role,email`, one member per line. A header row is detected automatically. Click **Send Invites** when done. | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Three corrections to the bulk invite flow.
Suggested change
|
||||||
|
|
||||||
| Invitation links remain active until used or manually revoked. | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Wrong: team invites expire after 3 days.
You may be thinking of org invites, which are 14 days. The constant says so explicitly:
Suggested change
|
||||||
|
|
||||||
| ## Join a team | ||||||
|
|
||||||
| When invited to a team, you'll receive an invitation link from an admin. | ||||||
|
|
||||||
| <Steps> | ||||||
| <Step title="Open the invitation link"> | ||||||
| Click the link provided by the team admin. | ||||||
| </Step> | ||||||
| <Step title="Accept the invitation"> | ||||||
| Select **Join Team** to accept. | ||||||
| </Step> | ||||||
| </Steps> | ||||||
|
|
||||||
| Your account gains access to the team's resources based on the role assigned to you. | ||||||
|
|
||||||
| ## Next steps | ||||||
|
|
||||||
| - [Create API keys](/get-started/api-keys) for programmatic access to Runpod services. | ||||||
| - [Deploy a Pod](/pods/manage-pods) to start using GPU resources. | ||||||
| - [Set up Serverless endpoints](/serverless/overview) for scalable AI inference. | ||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,40 @@ | ||||||
| --- | ||||||
|
Check warning on line 1 in teams/teamroles.mdx
|
||||||
| title: "Roles and permissions" | ||||||
| sidebarTitle: "Roles and permissions" | ||||||
| description: "Understand the four built-in team roles in Runpod: Admin, Billing, Dev, and Basic. Learn what each role can access and manage." | ||||||
| --- | ||||||
|
|
||||||
| Teams have four built-in roles. Each role is designed for a specific set of responsibilities and grants access accordingly. Assign the minimum role necessary for each member's work, and review team membership regularly to remove access for members who no longer need it. | ||||||
|
|
||||||
| | Permission | Basic | Billing | Dev | Admin | | ||||||
| |---|---|---|---|---| | ||||||
| | Access team account | ✅ | ✅ | ✅ | ✅ | | ||||||
| | Connect to existing Pods | ✅ | ❌ | ✅ | ✅ | | ||||||
| | Create, delete, start, and stop Pods | ❌ | ❌ | ✅ | ✅ | | ||||||
| | Create and delete Serverless endpoints | ❌ | ❌ | ✅ | ✅ | | ||||||
| | Send requests to Serverless endpoints | ✅ | ❌ | ✅ | ✅ | | ||||||
| | Connect to existing Instant Clusters | ✅ | ❌ | ✅ | ✅ | | ||||||
| | Create, delete, start, and stop Instant Clusters | ❌ | ❌ | ❌ | ✅ | | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Dev should be white-check, not cross. Team Dev holds |
||||||
| | Create, update, and delete network volumes | ❌ | ❌ | ✅ | ✅ | | ||||||
| | View billing information | ❌ | ✅ | ❌ | ✅ | | ||||||
| | Manage payment methods | ❌ | ✅ | ❌ | ✅ | | ||||||
| | Invite team members | ❌ | ❌ | ❌ | ✅ | | ||||||
| | Manage team permissions | ❌ | ❌ | ❌ | ✅ | | ||||||
| | Modify team account settings | ❌ | ❌ | ❌ | ✅ | | ||||||
| | Access audit logs | ❌ | ❌ | ❌ | ✅ | | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Correct as written today, but about to change. Admin-only matches the backend right now: only the team admin row holds runpod/RunPod#6176 grants it to all four roles, matching the org grid and the RBAC spec, which puts AUDIT_LOG LIST on all roles. If that lands before this page ships, every cell in this row becomes a check. Worth confirming merge order before publishing. Separately, the console has shown this nav item to team Dev the whole time ( |
||||||
|
|
||||||
| ## Basic | ||||||
|
|
||||||
| The Basic role provides access to the team account and existing compute resources. Basic members can connect to running Pods and send requests to Serverless endpoints, but cannot create resources, view billing, or change account settings. | ||||||
|
|
||||||
| ## Billing | ||||||
|
|
||||||
| The Billing role is for financial management only. Billing members can view billing information and manage payment methods but have no access to compute resources. | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "No access to compute resources" is not accurate, before or after my backend change. Today, team Billing holds runpod/RunPod#6176 removes those writes, but Billing still ends up able to read compute: pods, network volumes, templates, clusters and endpoints, mirroring org billing, whose purpose is explaining spend. So the sentence needs changing either way. Suggested wording that holds after #6176:
Suggested change
The table is also missing a container registry credentials row, which is where the Billing and Dev difference actually shows up. Worth adding once #6176 settles the values. |
||||||
|
|
||||||
| ## Dev | ||||||
|
|
||||||
| The Dev role extends Basic with full compute resource management. Dev members can create, start, stop, and delete Pods, Serverless endpoints, and network volumes, but cannot access billing or account settings. | ||||||
|
|
||||||
| ## Admin | ||||||
|
|
||||||
| The Admin role has complete control over the team. Admins can manage members, configure account settings, handle billing, and control all compute resources. | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please keep an explicit
## Create an accountheading here.24 pages link to
/accounts-billing/manage-accountsspecifically as the signup prerequisite, for example:serverless/quickstart.mdx:15- "You've created a Runpod account"tutorials/migrations/openai/overview.mdx:11- "Create a Runpod account"public-endpoints/quickstart.mdx:14- "A Runpod account with at least 1 dollar in credits"The signup URL does survive inside this paragraph, so nothing 404s, but those readers arrive at an account-types explainer rather than instructions, and the
#create-an-accountanchor is gone. Re-adding the H2 preserves the anchor and fixes all 24 in one edit.While here:
docs.json:1683redirects/docs/invitesto this page, which existed to serve the invite content this PR moved. It should now point at the teams page.release-notes.mdx:432links "Teams: ... role-based access control" here too, and wants the roles page.