ObjectStackObjectStack

Provisioning

Provisioning protocol schemas

Tenant Provisioning Protocol

Defines the schemas for the "Register → Instant ObjectOS" provisioning pipeline:

  1. User registers → ProvisioningRequest created

  2. Turso database created → Schema synced → Seed data applied

  3. Tenant status transitions: provisioning → active

Provisioning is designed to be:

  • Idempotent: Re-running the same request produces the same result

  • Observable: Each step has explicit status tracking

  • Fast: Target 2-5 seconds for complete provisioning

Source: packages/spec/src/system/provisioning.zod.ts

TypeScript Usage

import { ProvisioningStep, TenantPlan, TenantProvisioningRequest, TenantProvisioningResult, TenantProvisioningStatusEnum, TenantRegion } from '@objectstack/spec/system';
import type { ProvisioningStep, TenantPlan, TenantProvisioningRequest, TenantProvisioningResult, TenantProvisioningStatusEnum, TenantRegion } from '@objectstack/spec/system';

// Validate data
const result = ProvisioningStep.parse(data);

ProvisioningStep

Individual provisioning step status

Properties

PropertyTypeRequiredDescription
namestringStep name (e.g., create_database, sync_schema)
statusEnum<'pending' | 'running' | 'completed' | 'failed' | 'skipped'>Step status
startedAtstringoptionalStep start time
completedAtstringoptionalStep completion time
durationMsintegeroptionalStep duration in ms
errorstringoptionalError message on failure

TenantPlan

Tenant subscription plan

Allowed Values

  • free
  • pro
  • enterprise

TenantProvisioningRequest

Tenant provisioning request

Properties

PropertyTypeRequiredDescription
orgIdstringOrganization ID
planEnum<'free' | 'pro' | 'enterprise'>Tenant subscription plan
regionEnum<'us-east' | 'us-west' | 'eu-west' | 'eu-central' | 'ap-southeast' | 'ap-northeast'>Available deployment region
displayNamestringoptionalTenant display name
adminEmailstringoptionalInitial admin user email
metadataRecord<string, any>optionalAdditional metadata

TenantProvisioningResult

Tenant provisioning result

Properties

PropertyTypeRequiredDescription
tenantIdstringProvisioned tenant ID
connectionUrlstringDatabase connection URL
statusEnum<'provisioning' | 'active' | 'suspended' | 'failed' | 'destroying'>Tenant provisioning lifecycle status
regionEnum<'us-east' | 'us-west' | 'eu-west' | 'eu-central' | 'ap-southeast' | 'ap-northeast'>Available deployment region
planEnum<'free' | 'pro' | 'enterprise'>Tenant subscription plan
stepsObject[]Pipeline step statuses
totalDurationMsintegeroptionalTotal provisioning duration
provisionedAtstringoptionalProvisioning completion time
errorstringoptionalError message on failure

TenantProvisioningStatusEnum

Tenant provisioning lifecycle status

Allowed Values

  • provisioning
  • active
  • suspended
  • failed
  • destroying

TenantRegion

Available deployment region

Allowed Values

  • us-east
  • us-west
  • eu-west
  • eu-central
  • ap-southeast
  • ap-northeast

On this page