Skip to content
Proud to collaborate with Microsoft for Startups

apphost.site.claim ​

Claim <slug>.app.orkestia.dev for a provisioned, live-mode identity app: enforce subscription + identity-app preconditions, validate slug uniqueness and the per-org site quota, then create the hosted_site row (mode=active, no release yet). Idempotent per identity app; slug is immutable after claim.

Claim a hosted-site slug (creates the hosted_site row; DB-only).

Overview ​

PropertyValue
Workflow typeAtomic
LibraryApp-apphost
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
identity_app_uuiduuidYes—UUID of the IdentityApp this site authenticates against. Must be provisioned (client exists) and NOT in dev mode.
slugstringNo—Requested subdomain label (^[a-z][a-z0-9-]{2,39}$). Omitted: derived from the identity app name. Immutable after claim.

Output Schema ​

FieldTypeRequiredDefaultDescription
site_uuiduuidYes—UUID of the created (or existing) hosted_site row.
slugstringYes—Claimed subdomain label.
urlstringYes—Public serving URL: https://<slug>.app.orkestia.dev.
organization_uuiduuidNo—Owning organization (derived from the identity app).
identity_app_uuiduuidNo——
modestringNo—Serving mode: active
createdbooleanYes—True when this run inserted a new hosted_site row.
already_existsbooleanYes—True when the identity app already had a hosted_site (idempotent return).
failure_reasonstringNo——
failure_typestringNo——
failed_actionstringNo——
failed_at_statestringNo——
failed_stepstringNo——
failed_layerstringNo——
errorstringNo——
error_typestringNo——

States ​

StateInitialTerminalSuccessAuto-advanceDescription
pendingYesNo—executeClaim accepted; will validate preconditions and create the site
completedNoYesYes—Site claimed (or already existed)
failedNoYesNo—Claim rejected; failure_reason carries the precondition that failed

State Diagram ​

Transitions ​

FromActionToDescription
pendingexecutecompleted—
* (any state)failfailed—

Outcomes ​

OutcomeTypeDescriptionState Data Keys
claimedSUCCESSHosted site slug claimed (or existing claim returned)site_uuid, slug, url
failedFAILUREApphost workflow failedfailure_reason

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "apphost.site.claim",
  "initial_data": {
    "identity_app_uuid": "value"
  }
}