---
title: Staged changes
description: Collect settings changes in an environment and deploy them together, so related edits land at the same time.
section: Start
order: 3
---

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](/docs/environment-variables#reference-another-services-variable), 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](/docs/deployments).

> [!WARNING]
> A draft that deletes a database or bucket shows "Deletes data that can't be recovered" next to that change, and the button reads **Deploy, including 1 deletion** so it can't be missed.

## 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`.

```bash tab="cURL"
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.
