list
List releases for an app.Flags
| Flag | Description |
|---|---|
--app APP | App name or UUID |
JSON output
show
Show details for a specific release (tag, commit, promoted by, deploy ID, image digest).Flags
| Flag | Description |
|---|---|
--app APP | App name or UUID |
JSON output
promote
Promote the latest live dev deploy to production. Creates a GitHub release if GitHub is connected.What happens during promote
Promote copies dev images to prod Cloud Run without rebuilding (fast path), or rebuilds with prod build-time env vars if anyVITE_* / NEXT_PUBLIC_* vars differ. In addition to deploying the images, promote also:
- Runs database migrations — for each service with a
migrate_commandset infloo.app.toml, runs the command as a Cloud Run Job against the prod schema. Migration failures are logged but do not block the promote from going live. - Creates gateway routes for all environments — both the shared app host (
{app}.on.getfloo.com) and per-service hosts ({app}-{svc}.on.getfloo.com) are upserted on every promote, so stale routes from before service renaming are corrected automatically. - Grants IAM — gateway SA run.invoker is granted on all public services; the app SA is granted on internal services.
- Auto-registers
/auth/callback— for apps usingaccess_mode = "accounts",{prod_url}/auth/callbackis automatically added toapp.auth_redirect_urisif not already present. You never need to manually add callback URLs tofloo.app.tomlfor new environments.
Flags
| Flag | Description |
|---|---|
--app APP | App name or UUID |
--tag TAG | Release tag (auto-generated if omitted, e.g., v1.2.1) |
Examples
JSON output
Errors
| Code | Meaning |
|---|---|
NOT_AUTHENTICATED | Run floo auth login first |
APP_NOT_FOUND | No app with that name or ID |
NO_DEV_DEPLOY | Deploy to dev first before promoting |
RELEASE_TAG_EXISTS | A release with that tag already exists. Use a different --tag |
RELEASE_NOT_FOUND | No release with that ID |