v0.2.19
A preview environment for every pull request
- Added Preview environments. Turn them on for a project and every pull request against it gets a copy of that project, with its apps, managed services, secrets, routes and tasks, on its own URL. Kaja posts the URL to the pull request, keeps that comment current as commits land, and deletes the environment when the pull request closes.
- Added A preview gets its own database by default, with its own credentials. Per service you can instead restore the base project's most recent backup into it, share the base project's instance, or leave the service out, and whichever you picked is named in the pull request comment.
- Added Previews expire after a week with no pushes and are capped per project, so pull requests nobody is reading stop costing anything. Fork pull requests are refused unless you allow them, and the console states what one preview will reserve on the cluster before you switch them on.
- Added Tasks. Run a container on a cron schedule or on demand, inheriting an app's image, variables and secrets, with a timeout, a retry count and an overlap policy. Each task keeps a history of its recent runs, with the outcome, the trigger and the reason a failed run gave.
- Added A pre-deploy command on an app runs with the incoming image before that version serves anything. A migration that exits non-zero stops the rollout and leaves the previous version running.
- Added kaja port-forward points psql, DBeaver or any other local tool at an app or database inside a cluster with no public address. It listens on loopback only, and is audited and limited exactly like a shell.
- Improved kaja mcp gains opt-in write tiers, one for creating things and one for operating running ones. It is still read-only by default, no tier deletes anything, and no tool returns a secret's value.