Staged changes

Collect settings changes in an environment and deploy them together, so related edits land at the same time.

Dekka collects your settings changes in a draft for each environment and applies them only when you deploy them. This lets you change a start command, a memory limit and a database's size, review them as one set, and redeploy each affected service once.

Stage a change

Select a service on the canvas, open Settings, change what you need and choose Stage changes. Nothing is applied yet. A bar at the bottom of the canvas shows how many changes are waiting, such as "3 staged changes in production", and anyone in your organisation who opens the environment sees the same draft.

Dekka checks each change as you stage it, against plan limits and variable references, so a mistake shows up straight away rather than at deploy time.

Review and deploy

Choose Review to see every change as a sentence. Remove one with its close button, or choose Discard all to throw the draft away without deploying anything. When it looks right, choose Deploy changes, or Deploy 3 changes in the review.

Deploying applies every change in one go. If any change fails, none of them is applied and the error names the change that caused it. Each existing service whose settings or variables changed then gets one new deployment, shown as Settings changed in Deployments.

What is applied straight away?

Some actions take effect as soon as you make them and never go through the draft. Creating a service from the Add menu deploys it immediately. Connecting or disconnecting services, adding or growing a volume, deleting a service from its menu, and saving variables on the Environment page also apply at once.

Stage changes with the API

Stage a change with POST /v1/environments/{id}/changeset/changes, read the draft with GET /v1/environments/{id}/changeset, and deploy it with its id.

curl https://api.dekka.cloud/v1/environments/$ENV_ID/changeset/changes \
  -H "Authorization: Bearer $DEKKA_API_KEY" \
  --json '{ "target": "variable", "action": "update", "resource_id": "'$SERVICE_ID'", "key": "LOG_LEVEL", "value": "debug", "secret": false }'

curl https://api.dekka.cloud/v1/changesets/$CHANGESET_ID/deploy \
  -H "Authorization: Bearer $DEKKA_API_KEY" \
  --json '{ "confirm": true }'

A change has a target of resource, variable, shared_variable or connection, and an action of create, update or delete. Staged variable values are encrypted and never returned.