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

SetupService

View Markdown

SetupService handles initial platform setup and admin bootstrap. Most endpoints require admin authentication, except GetSetupStatus and PasswordLogin.

POST /spin.v1.SetupService/ChangePassword

Change admin password (requires auth) Called after initial login when force_password_change is true

Request

FieldTypeWhat it is
currentPasswordstring
newPasswordstring

Response

No fields: {}.

POST /spin.v1.SetupService/CompleteSetup

Mark setup wizard as complete (requires admin)

Request

No fields: {}.

Response

No fields: {}.

POST /spin.v1.SetupService/ConfigureGitHubOAuth

Configure GitHub OAuth credentials (requires admin) Encrypts and stores client_secret in the database

Request

FieldTypeWhat it is
clientIdstring
clientSecretstring

Response

FieldTypeWhat it is
callbackUrlstringThe callback URL to configure in GitHub OAuth app settings

POST /spin.v1.SetupService/DisableBootstrapAdmin

Disable the bootstrap admin account (requires admin + OAuth must be configured) This removes password login capability for the bootstrap user

Request

No fields: {}.

Response

No fields: {}.

POST /spin.v1.SetupService/EnableDevMode

Enable dev mode (requires admin) Creates a “dev” identity provider that allows login without real OAuth Only use for local development - not for production

Request

No fields: {}.

Response

No fields: {}.

POST /spin.v1.SetupService/GetSetupStatus

Get current setup status (public - no auth required) Returns whether setup wizard needs to be completed

Request

No fields: {}.

Response

FieldTypeWhat it is
needsSetupbooleanTrue until the setup wizard has been completed: where the dashboard sends everybody.
hasOauthbooleanTrue if any OAuth/OIDC provider is configured
setupCompletedbooleanTrue if setup wizard has been completed
forcePasswordChangebooleanTrue if current admin must change their password
baseDomainstringThe configured base domain (if any)
hasBootstrapAdminbooleanTrue if bootstrap admin is still active (should be disabled after OAuth setup)
registrationModeRegistrationModeCurrent registration mode (open, whitelist, closed)
hasStoragebooleanTrue if the object store is configured; until it is, no workspace can be created
signedInbooleanTrue if whoever asked is signed in: the wizard starts at the sign-in until they are, whatever the installation already has.
developmentbooleanTrue for a development installation, where the mock identity provider may be enabled.

POST /spin.v1.SetupService/PasswordLogin

Login with email/password (public - for admin bootstrap) Only works for users with admin_credentials

Request

FieldTypeWhat it is
emailstring
passwordstring

Response

FieldTypeWhat it is
userUser
sessionTokenstring
expiresAtTimestamp
forcePasswordChangebooleanTrue if user must change password before proceeding

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.