Teams
Every project in SDCStudio has one team, created with the project and carrying its name. The team is the project's collaborator list: the people who can build in that project, and in what role. There is no separate "create a team" step and no seat count. Each person pays for their own actions from their own wallet (see Wallet and Billing), unless the project belongs to an organization, which then pays (see Organizations). An organization project's team holds only the organization's members.
Roles
| Role | Who | What they can do |
|---|---|---|
| Owner | the project's owner, always | everything an admin can, plus delete components and the project |
| Admin | invited by the owner or another admin | edit any component in the project, publish, retire, invite and remove members, change roles |
| Member | invited by the owner or an admin | create components, clusters and models in the project, and edit components that are not yet published |
The owner's row cannot be changed or removed: ownership follows the project. A role is held per project; being an admin on one project says nothing about another.
What a team grants
An accepted team member, in any role:
- sees the project in Projects, and sees everything in it, published or not: components, clusters, models and the data sources uploaded into it. Visitors to a public project see only its published components; a team member sees the drafts too.
- creates components, clusters and models in the project, and copies a published component into it. Minting a new component costs the member's own wallet, as it does the owner; in an organization project, the organization pays.
- edits components that are not yet published.
An owner or admin, in addition:
- edits any component in the project, published or not.
- publishes, which is the permanent act. A member who built a component asks an owner or admin to publish it; the API refuses a member's publish with a message naming "owner and admins".
- retires a published component, with a reason. A retired component stays valid and resolvable; it drops out of lists, search and new assemblies.
- manages the members, including inviting other admins.
What a team does not grant
- A member cannot publish or retire.
- Nobody but the owner deletes a component or the project.
- Nobody but staff reverses a retirement.
- A pending invitation grants nothing. Access begins when the invitation is accepted.
- Team membership also decides which ontologies you see: the Ontologies page lists your own uploads, the public ontologies, and the ones a teammate uploaded with access level Team or Corporate.
- No wallet is shared. Every charge lands on the wallet of the person who clicked.
Where: the Members section of a project
Open the project. Below its details is the Members section, headed Members with the count, and the sentence "Who builds in this project. Owners and admins publish and manage members; members create and edit unpublished components." followed by your own role. The list is sorted owner first, then admins, then members. A person who has not yet accepted carries an Invited badge; your own row says (you).
A visitor who can open a public project but is not on its team does not see the section.
Inviting someone
Owners and admins see the invitation form under the list.
- Type the address in Invite by email.
- Choose the Role: Member or Admin.
- Click Invite.
SDCStudio sends an email to that address with a link to accept. The link is valid for seven days. The message under the form says Invitation sent to existing SDCStudio user when the address belongs to an account with a verified email, or Invitation sent successfully otherwise; the new row appears in the list with the Invited badge. Inviting an address that is already on the team returns User is already a member of this team. Inviting again an address whose invitation is still pending resends the email.
The invited person signs in to SDCStudio with the address the invitation was sent to (creating an account first if they have none, and confirming the address) and opens the link. They land on the dashboard, which says they have joined, and the project is now in their Projects list. Only that address can accept. Anyone else who opens the link, signed in under another address, is told the invitation was sent to a different address and joins nothing; the address is not shown. An expired link says "This invitation has expired. Ask the team for a new one."; invite the address again.
Changing a role
Next to every admin and member, an owner or admin sees a drop-down with Member and Admin. Choosing the other value changes the role at once. The owner's row shows a badge instead of a drop-down.
Removing someone
Remove next to a member or admin asks "Remove name from the project?" and, on confirmation, takes them off the team. Their account and wallet are untouched; the components they built stay in the project. The owner cannot be removed.
The Teams Management tab in Settings
Settings, then the Teams Management tab, is the view across your projects: Your Teams lists every team you are on, each card with its name, your role and the member count; select one to see its members. As an owner or admin you can also Invite by email, Remove a member and rename the team here; the project page's Members section does the same and also changes roles.
From a script
The same operations are on the API under /api/v1/auth/teams/ and /api/v1/auth/team-members/, authenticated with an API key (see API Keys). A project's response carries team (the team's id), my_role and can_manage_members; POST /api/v1/auth/teams/<team>/invite_member/ takes email and role, POST .../remove_member/ takes member_id, and PATCH /api/v1/auth/team-members/<member>/ with role changes a role. Teams cannot be created through the API; creating a project creates its team.