Skip to content
Spinbox is experimental: APIs change and data may be lost. Status lists what is built and what proves it.

TeamService

View Markdown

POST /spin.v1.TeamService/AddMember

Request

FieldTypeWhat it is
teamIdstring
emailstring
roleTeamRole

Response

FieldTypeWhat it is
memberTeamMember

POST /spin.v1.TeamService/CreateIdentityProvider

Request

FieldTypeWhat it is
teamIdstringOptional: team-specific IdP (empty = system-wide)
namestring
providerTypestringoidc, github, google, azure-ad
issuerUrlstringFor OIDC discovery
clientIdstring
clientSecretstring
scopeslist of string
autoJoinCelExpressionstringOptional: auto-add users matching this
roleCelExpressionstringOptional: determine role from claims

Response

FieldTypeWhat it is
providerTeamIdentityProvider

POST /spin.v1.TeamService/CreateProject

A team’s projects: a repository and the shape of the workspace that opens it (CreateWorkspaceRequest.project_id). Made, changed and deleted by the team’s admins, listed and opened by its members. A project with a workspace open on it is not deleted.

Request

FieldTypeWhat it is
teamIdstring
namestring
slugstringMade from the name when empty
descriptionstring
repositorystring
refstring
imagestring
presetstring
networkTagslist of string
prebuildRefslist of string
prebuildRebaseEveryinteger (int32)Zero is the installation’s default

Response

FieldTypeWhat it is
projectProject

POST /spin.v1.TeamService/CreateTeam

Create a new team (can be nested under parent_id)

Request

FieldTypeWhat it is
parentIdstringOptional: parent team ID (empty = root team)
namestring
slugstringOptional, generated from name if empty
descriptionstring
displayNamestringOptional: human-friendly name

Response

FieldTypeWhat it is
teamTeam

POST /spin.v1.TeamService/DeleteForge

Request

FieldTypeWhat it is
teamIdstring
forgestring

Response

No fields: {}.

POST /spin.v1.TeamService/DeleteIdentityProvider

Request

FieldTypeWhat it is
idstring

Response

No fields: {}.

POST /spin.v1.TeamService/DeleteNetworkPolicy

Request

FieldTypeWhat it is
teamIdstring
namestring

Response

No fields: {}.

POST /spin.v1.TeamService/DeleteProject

Request

FieldTypeWhat it is
idstring

Response

No fields: {}.

POST /spin.v1.TeamService/DeleteSecret

Request

FieldTypeWhat it is
teamIdstring
namestring

Response

No fields: {}.

POST /spin.v1.TeamService/DeleteTeam

Delete team (owner only, must have no children)

Request

FieldTypeWhat it is
idstring
recursivebooleanIf true, delete children too (dangerous!)

Response

No fields: {}.

POST /spin.v1.TeamService/GetTeam

Get team by ID or path

Request

FieldTypeWhat it is
idstringID, path (e.g., “/engineering/backend”) or “me”: the caller’s personal team

Response

FieldTypeWhat it is
teamTeam
currentUserRoleTeamRoleRole of the requesting user in this team

POST /spin.v1.TeamService/ListForges

Request

FieldTypeWhat it is
teamIdstring

Response

FieldTypeWhat it is
forgeslist of TeamForge

POST /spin.v1.TeamService/ListIdentityProviders

Identity provider management (admin only)

Request

FieldTypeWhat it is
teamIdstringEmpty = system-wide providers
pagePageRequest

Response

FieldTypeWhat it is
providerslist of TeamIdentityProvider
pagePageResponse

POST /spin.v1.TeamService/ListMembers

Member management

Request

FieldTypeWhat it is
teamIdstring
pagePageRequest

Response

FieldTypeWhat it is
memberslist of TeamMember
pagePageResponse

POST /spin.v1.TeamService/ListPrebuilds

A project’s prebuilds, to its team’s members; and a build of one of its refs now, by its admins, rather than at the next look.

Request

FieldTypeWhat it is
projectIdstring

Response

FieldTypeWhat it is
prebuildslist of PrebuildNewest first.

POST /spin.v1.TeamService/ListProjects

Request

FieldTypeWhat it is
teamIdstring

Response

FieldTypeWhat it is
projectslist of Project

POST /spin.v1.TeamService/ListSecrets

Request

FieldTypeWhat it is
teamIdstring

Response

FieldTypeWhat it is
secretslist of TeamSecret

POST /spin.v1.TeamService/ListTeams

List teams (optionally filtered by parent)

Request

FieldTypeWhat it is
parentIdstringOptional: filter by parent (empty = root teams only)
includeAllDescendantsbooleanIf true, include all nested teams
pagePageRequest
everyTeambooleanevery_team lists the whole installation rather than the caller’s own teams - the administration view, and only an instance admin may ask for it. It is asked for rather than inferred from who is calling: an admin’s own Teams page should be their teams, not a list of everybody’s personal team that they cannot get out of.

Response

FieldTypeWhat it is
teamslist of Team
pagePageResponse

POST /spin.v1.TeamService/RemoveMember

Request

FieldTypeWhat it is
teamIdstring
userIdstring

Response

No fields: {}.

POST /spin.v1.TeamService/RunPrebuild

Request

FieldTypeWhat it is
projectIdstring
refstringOne of the project’s prebuild refs.

Response

FieldTypeWhat it is
prebuildPrebuildThe build, or the one already running at that commit.

POST /spin.v1.TeamService/SetForge

A team’s forges: the app it installed on its organization, from which the control plane mints the credential a brokered rule injecting that forge has the egress proxy set - an hour’s, so a workspace of the team clones and pushes its private repositories with nothing of it on the disk. Set and deleted by the team’s admins, after the forge has minted one with what was given; listed to its members. The app’s key is never answered with again.

Request

FieldTypeWhat it is
teamIdstring
forgestringnetpolicy.Forges: “github”.
appIdstring (int64)The GitHub App’s id, and its installation on the organization the team’s repositories are in.
installationIdstring (int64)
privateKeystringThe app’s private key, PEM: what signs the request for an installation token. Replaces what the team held.
apiUrlstringWhere the forge’s API is, https; empty is github.com’s. A GitHub Enterprise Server’s is https://<host>/api/v3.
hostslist of stringThe exact names the credential may be sent to, 1 to 16; empty is github.com and api.github.com. A brokered rule that injects the forge and names any other host is refused it.

Response

No fields: {}.

POST /spin.v1.TeamService/SetNetworkPolicy

A team’s egress policies: named, and only allowing - no rule brokers - for the workspaces of the team and the teams below it. Set and deleted by its admins where the installation lets teams declare them (team_network_policies); listed by WorkspaceService.ListNetworkPolicies.

Request

FieldTypeWhat it is
teamIdstring
namestring
ruleslist of NetworkRule

Response

No fields: {}.

POST /spin.v1.TeamService/SetSecret

A team’s secrets: what a brokered network rule has the host’s egress proxy add to a request, so a workspace of the team uses a key it never holds. Set and deleted by the team’s admins, listed by name to its members; a value is never answered with again.

Request

FieldTypeWhat it is
teamIdstring
namestringLower-case letters, digits and dashes, starting with a letter; what a rule names it by.
valuestringAt most 8 KiB of visible ASCII. Replaces what the name held.
hostslist of stringThe exact names the secret may be sent to, 1 to 16: a brokered rule that injects it and names any other host is refused it.
refstringIn place of value: the ARN of a Secrets Manager secret or a Parameter Store parameter the team keeps it in, read as the team (InstallationSettings.team_secrets_role) now and whenever a host asks for it.

Response

No fields: {}.

POST /spin.v1.TeamService/UpdateIdentityProvider

Request

FieldTypeWhat it is
idstring
namestring
autoJoinCelExpressionstring
roleCelExpressionstring
enabledboolean

Response

FieldTypeWhat it is
providerTeamIdentityProvider

POST /spin.v1.TeamService/UpdateMemberRole

Request

FieldTypeWhat it is
teamIdstring
userIdstring
roleTeamRole

Response

FieldTypeWhat it is
memberTeamMember

POST /spin.v1.TeamService/UpdateProject

Request

FieldTypeWhat it is
idstring
namestring
slugstring
descriptionstring
repositorystring
refstring
imagestring
presetstring
networkTagslist of string
prebuildRefslist of string
prebuildRebaseEveryinteger (int32)

Response

FieldTypeWhat it is
projectProject

POST /spin.v1.TeamService/UpdateTeam

Update team settings

Request

FieldTypeWhat it is
idstring
namestring
descriptionstring
displayNamestringHuman-friendly name

Response

FieldTypeWhat it is
teamTeam

Generated by task reference from spin/internal/controlplane/apidocs/spin.v1.openapi.json at 8eee32b9d.

Documents Spinbox v20261019.02. This page as Markdown, for a model or a terminal.