tawa deploy is the only supported way to deploy services on the Tawa platform. Never use kubectl, helm, or docker commands directly for deployments — the builder handles the complete pipeline automatically.
When you run tawa deploy, the builder executes the following steps in order:
nextjs, express, hono, fastify, static, worker).spec.databases is declared, the builder generates connection strings and creates the necessary secrets. These are injected as MONGODB_URI, REDIS_URL, or NEO4J_URI.spec.auth.mode: sso is declared, the builder creates or updates a Bio-ID OAuth client and injects BIO_CLIENT_ID and BIO_CLIENT_SECRET.spec.internalDependencies or spec.dependencies are resolved to reachable service URLs and injected as env vars./health for most frameworks, /api/health for Next.js).spec.tests is declared (requires insureco.io/catalog-version: "0.5.0"), smoke tests run against the deployed service. Failures mark the build as failed but do not roll back the pod.spec.routes become accessible through Janus.queued → cloning → building → pushing → deploying → testing → completed
↘ failed
If any step fails, the build status moves to failed. The pod from the previous successful deploy continues running. Check build logs with tawa logs --build <id> to diagnose failures.
| Command | Description |
|---|---|
tawa deploy | Deploy to sandbox (default environment) |
tawa deploy --prod | Deploy to production |
tawa deploy --uat | Deploy to UAT |
tawa deploy --watch | Deploy and stream build logs in real time |
| Command | Description |
|---|---|
tawa status | Show current build status and pod health |
tawa builds | List recent builds with their status and commit |
tawa logs | Stream live logs from the running pod |
tawa logs --build <id> | View build logs for a specific build |
tawa pods | Show pod status, restarts, and uptime |
| Command | Description |
|---|---|
tawa restart | Restart pods without triggering a new build |
tawa rollback | Roll back to the previous successful deployment |
tawa destroy --namespace <ns> --force | Permanently remove a deployment and its namespace |
| Command | Description |
|---|---|
tawa validate | Run preflight checks before deploying |
tawa preflight | Alias for tawa validate |
tawa events | View the full audit log of deploys, config changes, and rotations |
tawa troubleshoot | AI-powered diagnostics for common issues |
| Flag | Environment | URL Pattern |
|---|---|---|
| (default) | sandbox | {service}.sandbox.tawa.insureco.io |
--prod | production | {service}.tawa.insureco.io |
--uat | UAT | {service}.uat.tawa.insureco.io |
You do not need to write or manage any of the following — the builder handles them on every deploy:
insureco.io/framework annotation. You rarely need to write your own.auth: mode: sso is set.NOTE: Always commit and push your changes before running
tawa deploy. The builder clones your repo at the latest pushed commit — local uncommitted changes are not included.
NOTE: Deploys are idempotent. Running
tawa deployagain updates the existing deployment rather than creating a duplicate. Databases, DNS records, and OAuth clients are updated in place.
NOTE: Redeploying never modifies your database data. Only the application code and configuration are updated.
IMPORTANT: Never use
kubectl apply,helm upgrade, ordocker pushfor deployments. These bypass the builder pipeline and will cause your service to fall out of sync with the platform registry, secrets management, and DNS.
Last updated: March 1, 2026