> ## Documentation Index
> Fetch the complete documentation index at: https://docs.platform.nora.my/llms.txt
> Use this file to discover all available pages before exploring further.

# Publishing

> Ship the Draft as an immutable version — the one production traffic sees.

Editing your Flow doesn't affect production. Only **publishing** does. A publish takes your Draft, freezes it, and points production traffic at the frozen snapshot.

## How to publish

1. Open your Flow.
2. Click **Publish** in the top-right.
3. Nora runs pre-publish checks (see below).
4. Add a release note describing what changed.
5. Confirm.

The publish is live within seconds. New runs use the new version immediately; in-flight runs finish on their old version.

## Pre-publish checks

Before letting the publish through, Nora checks:

* **All required inputs are wired.** No orphan blocks.
* **All Agents have a prompt and a model.** Empty prompts are rejected.
* **All Tools with parameters have parameter descriptions.** The Agent can't call a tool it can't understand.
* **All secrets resolve.** No broken references to deleted secrets.
* **No cycles in the wiring graph** (unless you've explicitly used a loop pattern with a bound).
* **Change vs. currently-published.** Publishing an identical Draft is rejected — nothing to ship.

If any check fails, you'll see a red banner explaining what to fix. The Publish button stays disabled until it passes.

## What "immutable" means

A published version is a content-addressed snapshot. Its ID is a hash of its contents. That means:

* The same version always behaves the same way, even months later.
* Rolling back is instant — pointing production to a prior version is a metadata update, not a redeploy.
* Two Flows that happen to publish identical content share storage.

You cannot edit a published version. You can only publish a new one.

## Release notes

The note is optional but strongly recommended. Good release notes look like:

> Add support for partial refunds. Tightens the escalation rule to catch cases where the customer mentions a chargeback. Bumps model to the higher-accuracy tier for questions containing "fraud" or "dispute".

Notes show up in the version history, in the CLI (`nora flows versions list`), and in audit logs.

## Publishing from the CLI

```bash theme={null}
nora flows publish --note "2026-07-31 tightened escalation rule"
```

Same checks, same behavior. Common in CI pipelines that run tests, then publish only on green.

## Who can publish

By default, only **Owners** and **Managers** can publish. Members can edit the Draft but not ship it. Change under **Flow settings → Access**.

## What to do next

<CardGroup cols={2}>
  <Card title="Rollback" icon="rotate-left" href="/reliable/versions/rollback">
    Something broke? Point production back to a prior version.
  </Card>

  <Card title="Version diff" icon="code-compare" href="/reliable/versions/diff">
    See exactly what changed between two versions.
  </Card>
</CardGroup>
