biome-installations

Operations of the Biome Host API. Paths are relative to your deployment's API host.

GET /api/biome-host-api/projects/{projectId}/biome-installations

List biome installations for this project, optionally only those of one biomeId. Archived installations are excluded unless includeArchived=true.

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
projectIdpathstringyes
biomeIdquerystringnoReturn only installations of this biome (the manifest xema.id, lowercase kebab-case). Absent: every biome. A biome with no installation answers an empty list.
includeArchivedquerybooleannoInclude installations whose lifecycle is archived. Default false — archived is terminal: archived rows are never resolved and are ineligible for runtime contribution, so listing one advertises an install nothing will route to.
StatusDescriptionBody
200application/json BiomeInstallationResponseDtoDataArrayEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

GET /api/biome-host-api/projects/{projectId}/biome-installations/{id}

Get a single biome installation

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
projectIdpathstringyes
StatusDescriptionBody
200application/json BiomeInstallationDetailResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

DELETE /api/biome-host-api/projects/{projectId}/biome-installations/{id}

Hard-delete a biome installation. Tears down the sidecar workload, deletes the row, then starts uninstallBiomeCascadeWorkflow which fans cleanup out to every downstream service that owns biome-scoped rows (workflow-engine, deliverable-specs, mcp-gateway, org-database-pool). The org's workflow definitions and the biome's schema are retired only when no installation of the biome, of any owner, remains in the org. The response carries the workflowId — clients poll the workflow for the terminal outcome (clean | dirty). Use disable instead when you want a temporary, reversible teardown.

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
projectIdpathstringyes
StatusDescriptionBody
202application/json BiomeInstallationDeleteResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

POST /api/biome-host-api/projects/{projectId}/biome-installations/{id}/approve-in-store

Approve a submitted biome in the Xema Store. Guarded by biome:approve-in-store@1. Transitions store-submitted → store-approved.

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
projectIdpathstringyes

Request body: application/json LifecycleTransitionAckDto

StatusDescriptionBody
200application/json BiomeLifecycleTransitionResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

POST /api/biome-host-api/projects/{projectId}/biome-installations/{id}/archive

Archive a biome installation from any non-archived state. Guarded by biome:archive@1. Terminal — archived rows are never resolved.

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
projectIdpathstringyes

Request body: application/json LifecycleTransitionAckDto

StatusDescriptionBody
200application/json BiomeLifecycleTransitionResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

PATCH /api/biome-host-api/projects/{projectId}/biome-installations/{id}/disable

Disable a biome installation without deleting its configuration

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
projectIdpathstringyes
StatusDescriptionBody
200application/json BiomeInstallationResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

PATCH /api/biome-host-api/projects/{projectId}/biome-installations/{id}/enable

Enable a disabled biome installation. The only transition out of disabled: the state becomes active or pending_config per the current configuration and the workload is dispatched again.

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
projectIdpathstringyes
StatusDescriptionBody
200application/json BiomeInstallationResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

POST /api/biome-host-api/projects/{projectId}/biome-installations/{id}/promote

Promote a biome installation across the lifecycle graph (draft → sandbox-installed → review-required → org-installed, or store-approved → org-installed). Guarded by biome:promote@1 at xema-capability-router. Promote-out-of-sandbox additionally requires an acknowledged approval id.

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
projectIdpathstringyes

Request body: application/json PromoteBiomeInstallationDto

StatusDescriptionBody
200application/json BiomeLifecycleTransitionResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto
503BIOME_LIFECYCLE_APPROVALS_UNAVAILABLE: the transition requires an approval and decision-api is not available. Nothing changed and no ack was spent.application/problem+json ProblemDetailsDto

PATCH /api/biome-host-api/projects/{projectId}/biome-installations/{id}/resources

Replace the per-adapter resource selector slices on an installation

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
projectIdpathstringyes

Request body: application/json UpdateBiomeInstallationResourcesDto

StatusDescriptionBody
200application/json BiomeInstallationResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

POST /api/biome-host-api/projects/{projectId}/biome-installations/{id}/submit-to-store

Submit an org-installed biome to the Xema Store. Guarded by biome:submit-to-store@1. Transitions org-installed → store-submitted.

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
projectIdpathstringyes

Request body: application/json LifecycleTransitionAckDto

StatusDescriptionBody
200application/json BiomeLifecycleTransitionResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto