Manage frontend deployments, environment variables, and custom domains for a Butterbase app.
Actions:
- "start_deployment": Start a frontend deployment after uploading your zip file. Call after uploading zip to the URL returned by create_frontend_deployment. Polls until complete (up to 5 minutes).
- "list_deployments": List frontend deployment history for an app (read-only).
- "create_from_source": Create a source-based deployment and get a presigned upload URL (Mode 1). Upload your source zip to the URL via HTTP PUT with Content-Type: application/zip (max 50 MB).
- "start_from_source": Start the build for a source-based deployment (Mode 2). Requires deployment_id from create_from_source and a lockfile_hash.
- "set_env": Set environment variables for frontend builds (upserts).
- "configure_custom_domain": Manage custom domains. Requires domain_action sub-option.
Parameters by action:
start_deployment: { app_id, action: "start_deployment", deployment_id }
list_deployments: { app_id, action: "list_deployments" }
create_from_source: { app_id, action: "create_from_source" }
start_from_source: { app_id, action: "start_from_source", deployment_id, lockfile_hash, build_command?, output_dir?, package_manager?, user_env? }
set_env: { app_id, action: "set_env", vars }
configure_custom_domain: { app_id, action: "configure_custom_domain", domain_action, hostname?, domain_id? }
domain_action sub-options:
"add": { hostname } — Register a new custom domain
"list": {} — List all custom domains for an app
"status": { domain_id } — Check verification/SSL status of a domain
"remove": { domain_id } — Remove a custom domain
"verify": { domain_id } — Trigger re-verification of a pending domain
Common errors:
- RESOURCE_NOT_FOUND: App or deployment doesn't exist
- INVALID_STATUS: Deployment is not in WAITING status (zip may not have been uploaded yet)
- UPLOAD_EXPIRED: The upload URL expired before the zip was uploaded
- STATE_PREREQUISITE_MISSING: Source zip not yet uploaded (PUT to upload_url first)
- QUOTA_FILE_SIZE_EXCEEDED: Source zip exceeds 50 MB
- BUILD_FAILED: Build command exited with non-zero status (check logs_url for details)
- VALIDATION_INVALID_SCHEMA: vars must be a non-empty object
- feature_not_available: Free plan — upgrade to Pro (custom domains)
- RESOURCE_ALREADY_EXISTS: Hostname already registered