Skip to content

Promote to prod

Each environment has a promotesTo field pointing at the next one downstream. Pipebase forms a tree (or a DAG with branches):

dev ──→ test ──→ staging ──→ prod

The “Promote to next” button on a flow’s detail page only appears when:

  1. The current environment has the flow in-sync (deployed, hash matches local YAML)
  2. The current environment’s promotesTo field is set

Click it, and Pipebase deploys the same YAML to the downstream environment via the same PUT /_api/flows/:id mechanism — same code path as a regular Deploy. Parameter substitution applies (each environment can override {{paramName}} placeholders), so environment-specific URLs / credentials / topics swap in automatically.

  1. Open the flow — click a flow in the master list. The detail pane on the right shows a Promotion matrix.
  2. Verify dev is in-sync — the matrix row for dev should say In sync with a green badge. If it says Stale, redeploy from the editor’s Deploy button first.
  3. Click “Promote to test” on the test row. The action only appears when dev → test is configured.
  4. Wait — the toast confirms the promote and the test row updates to In sync.
  5. Repeat for test → staging and staging → prod.

To roll a single flow back: click the runtime’s row in the matrix and hit “Undeploy”, then redeploy from the upstream environment’s source.

To roll the whole stack back to a previous Pipebase version:

Terminal window
# Pin to a previous version in .env
sed -i 's/^PIPEBASE_VERSION=.*/PIPEBASE_VERSION=v0.4.0/' .env
docker compose -f docker-compose.yml -f docker-compose.prod.yml pull
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d

Flow data in the volumes persists across version changes.