# ドラフト、公開、Live

Source: https://openflow.run/ja/docs/concepts/versions/
Language: ja
Product version: 0.1.0-beta.77

編集、テスト、本番実行で使われる定義を確認します。

フローには、変更できる **Draft head** が 1 つあり、変更不能な**リビジョン**（Revision）を指します。成功した**公開**（Publication）は、本番用のリビジョンを固定します。**Live** は現在有効な公開版を指します。

## ドラフトとリビジョン

実行内容の編集は、新しいリビジョンを作成して Draft head を進めます。期待するリビジョンと固定のリクエスト識別子を使い、無断の上書きや、応答が不明な場合の重複コミットを防ぎます。

未完成のドラフトも保存できます。ノードを保存できることと、フロー全体が有効で実行可能なことは別です。

## 公開

公開ではグラフ全体を検証し、必要な外部リソースを準備します。すべての準備に成功してから公開版になります。準備中や失敗時には、それまでの Live が有効なままです。

公開中や公開後にドラフトを編集しても、公開済みリビジョンは変わりません。

## Live 実行

自動トリガーは現在の Live 定義と対応するランタイムバインドを使います。明示的な Live 実行は Start を選びます。受付時に、バージョン、入力、認可スナップショット、実行範囲を固定します。

フローを無効にすると、新しい本番実行の受付は停止しますが、受け付け済みの実行は取り消されません。実行中の処理を止める場合は、実行の取消しインターフェースを使います。

## 履歴とロールバック

過去の公開版と実行は、固定された定義を保持します。ロールバックは履歴を書き換えず、新しい公開版を作成します。外部への影響を取り消したり、別途保存された Flow State を初期化したりはしません。

表示情報は実行内容とは別にバージョン管理され、公開時に閲覧用として固定されます。[フローと表示情報](https://openflow.run/ja/docs/concepts/flows-and-nodes/index.md)を参照してください。

## 参照元

*   [docs/architecture.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/architecture.md#flow-revision-and-presentation)
*   [docs/architecture.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/architecture.md#publication-and-trigger)
*   [docs/control/contracts/control-api.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/control/contracts/control-api.md#4-validation-publication-and-live)
