Groundfloor Docs

Apps API

Register Shell and standalone apps, publish releases, and promote across environments.

Base path: /v1/workspaces/{workspace_id}/apps

Apps are optional product packaging. Do not create an app solely to deploy a workload — use the Coderunners API (D-061). app_kind=coderunner is rejected on create.

See also: Customer Portal — Apps

List apps

GET /v1/workspaces/{workspace_id}/apps?kind=product
QueryValues
kindproduct (default filter in portal), shell_federated, standalone, all

Permission: read

Create app

POST /v1/workspaces/{workspace_id}/apps

Permission: write

Body fieldRequiredNotes
nameYesDisplay name
slugYesUnique in workspace
app_kindYesshell_federated or standalone
environment_idNoTarget environment
primary_coderunner_idStandalonePrimary service coderunner
manifestNoJSON manifest
git_repo_urlNoSource repo metadata

Get / update / delete

MethodPathPermission
GET/v1/workspaces/{workspace_id}/apps/{app_id}read
PATCHsame — name, manifest, git_repo_url, primary_coderunner_idwrite
DELETEsame — archives the appdelete

Releases (Shell federated)

MethodPathPurposePermission
POST…/apps/{app_id}/releases/upload-urlInit upload (bundle: remote_entry | zip)write
PUT…/releases/{release_id}/contentUpload bytes (≤32MB)write
POST…/releases/{release_id}/finalizePublishwrite
GET…/releasesListread
GET…/releases/currentCurrent publishedread

Compare and promote

GET /v1/workspaces/{workspace_id}/apps/compare?source_environment_id=&target_environment_id=
POST /v1/workspaces/{workspace_id}/apps/promote

Promote body: source_environment_id, target_environment_id, pairs[] (source_app_id, optional target_app_id / source_release_id), optional dry_run.

Permission: compare read, promote write

Shell config

GET /v1/workspaces/{workspace_id}/apps/{app_id}/shell-config

Authenticated bootstrap metadata for Shell hosts. Permission: read

Public by-slug bootstrap lives under /v1/public/… — see API authentication and Shell API reference.