デプロイ
Pack公開とFlow露出の宣言的モデル
レプリケーション
content-addressedなRegistryミラーリング
スケジューリング
cronとイベントで実行、Journal付き
シークレット
実行時にワーカー上でのみ解決
アクセス制御
owner / memberのRBACとAPIキー
可観測性
Journal上に構築されたRun Inspector
- アーキテクチャ
コントロールプレーンがFlowを自分で実行することはありません。Flowをスケジューリングし、観測します。実行は常に実行の同じRiderであり、プレーンのStore、Secrets、Registryを指すbuildRunDepsを持つワーカー上で動きます。サービスはコーディネーターであり、新しいエンジンではありません。
スタック: API(
@browserflow/web-api)にはHono on Bun、UI(apps/web)にはNext.js、メタデータにはSQLite(PlaneStoreインターフェイス経由。同じインターフェイスの背後でPostgresに差し替え可能)を使います。すべてインターフェイスの背後で置き換えられます。
- デプロイ - FlowとPackの公開
「Deploy SDKs」は、PackをプレーンのRegistryに公開し、そのFlowを必要なLauncherで公開する操作になります。
デプロイは宣言的で、元に戻せます。どのFlow digestがどのfrontでliveなのかを記録します。ロールバックは以前のdigestへ向け直すだけです。digestはすでに不変のFlowSpecを識別しているため、再ビルドは不要です。環境間の昇格(dev → staging → prod)はdigestを移動させるので、テストしたものと出荷されるものは完全に同じです。
- レプリケーション
「Services to replicate them」。Registryは他のRegistryとの間でPackをミラーできます。そのため、ある環境で作成されたPackを、別の環境に固定済みかつ検証済みの形で表示できます。レプリケーションはcontent-addressedなので、安全で、冪等で、差分的です。
- pull - 一致するPackをリモートからローカルRegistryへ取得します。
- push - ローカルPackをリモートへ公開します。
- sync - 双方向です。新しいdigestが勝ち、競合は表面化します(同じ
name@versionの下に異なる2つのbodyがある場合はハードな競合であり、黙って上書きされることはありません。semverとdigestの不変性がそれを禁じます)。 - scheduled - ウォームミラー / DRレプリカのために、上記のいずれかをcronで実行します。
- スケジューリング
プレーンのスケジューラーは、cron式とイベント(webhook、キューメッセージ、上流Flowの完了)でFlowを実行します。スケジュールされた各実行はJournalを持つ通常のRunなので、失敗したスケジュールや実行されなかったスケジュールも、他と同じように検査可能でリプレイ可能です。スケジュール自体も宣言的なレコード(Flowにdigest固定)なので、記録上のスケジュールはコンソール内だけではなく、バージョン管理に存在します。
- シークレット
プレーンは、シークレットをFlowSpec、Journal、ログのいずれにも保存せずに仲介します(フリート全体での境界不変条件)。Flowの作成者はsecret.WEBHOOK_URLを参照します。プレーンのSecrets providerは、値をワーカー上で、実行時に解決し、secrets capabilityを宣言した手順にだけ注入します。バックエンドは差し替え可能です(プレーン自身の暗号化ストア、Vault、クラウドシークレットマネージャー)。ローテーションは透過的です。シークレットはすべての実行で再解決され、埋め込まれることはありません。
- アクセス制御、APIキー、MCP
ホスト型サービスのRBACは、意図的に小さくしています。org membershipは、ownerまたはmemberのちょうど2つのロールのいずれかです。
| ロール | できること | できないこと |
|---|---|---|
| owner | APIキーの発行/取り消し、メンバー管理、スケジュールの作成/削除、オーサリングの操作(Recordingの開始、手順の編集、公開) | — |
| member | オートメーション、Run、ライブビューの読み取り | 上記の変更操作すべて |
jbt_live_<rand>またはjbt_test_<rand>として発行されます。永続化されるのはsha256ハッシュだけで、平文は作成時に一度だけ表示されます。- **
test**キーは、secret型の入力を持たない任意のオートメーションを実行できますが、シークレットを宣言しているオートメーションでは拒否されます(403 test_key_forbidden)。漏えいしたtest keyが本番認証情報に到達することはありません。シークレットを参照してください。 - 任意のscopes allowlistにより、キーを特定のオートメーション(名前で指定)に制限できます。org境界だけでなく、さらに細かく最小権限を適用できます。スコープなし(デフォルト)は、org内のすべての公開済みオートメーションに到達できます。これはscopesが存在する前から変わりません。
Scopesは
POST /v1/run/:flowとPOST /mcpに同じように適用されます。スコープ外のオートメーションは/v1/runで403になり、MCPサーバーのtools/listにも表示されません。アクセス制御を参照してください。POST /mcp**は、ホスト型のModel Context Protocolエンドポイントです。同じBearerキーで認証します。各リクエストは、新しいステートレスなMCPサーバー(Streamable HTTP仕様に従い、sessionIdGenerator: undefined)を構築し、呼び出し元が公開済みでMCP有効にしているオートメーションごとに1つのToolを公開します。オートメーションのownerは、RESTの公開状態に触れずに、単一のオートメーションをMCPから隠せます(mcp_enabled: false)。デフォルトの同期ディスパッチモードでは、MCPからトリガーされたRunも、/v1/run/:flowが使う同じRunスコープのライブビューハブに登録されます。そのため、/api/automations/:id/run-liveはRESTやPlaygroundのRunとまったく同じように中継します。可観測性を参照してください。
- 可観測性 - Run Inspector
UIは何よりも、Journalの上に構築されたRun Inspectorです。
- Timeline / DAG - グラフ、どの手順が実行されたか、どの手順がスキップされたか、何が並列実行されたか、どこに時間がかかったかを確認できます。
- Step detail - 入力(シークレットはマスク)、出力、リトライ、解決されたToolバージョンとそのcontract digestを確認できます。
- Live view - 読み取るJournalがまだ存在しない段階でも、同期ディスパッチされたRunのブラウザータブをCDPスクリーンキャスト越しにリアルタイムで見られます。
- Time-travel - Journalをエントリごとにステップ実行します。ブラウザーToolでは、記録されたセッションのDOMリプレイをスクラブできます。
- Replay - Toolアップグレードを昇格する前にFlowがまだ同じように振る舞うことを確認するため、UIから直接Journal(
--verify)を使って再実行します。
browserflow inspectが出力するもの」は同じデータです。第2の信頼できる情報源はありません。
- UIでの編集 ↔ Git内のYAML
UIキャンバスとYAMLは、1つのFlowSpecの2つの面です(原則 T1)。キャンバスでFlowを編集すると、正規化されたYAMLが出力されます。YAMLをインポートすると、キャンバスがレンダリングされます。チームは、エンジニアにGitでFlowを保守させ、非エンジニアにUIで調整させることができます。そしてdigestが、どのバージョンがliveなのかを全員に正確に示します。「コンソール」と「リポジトリ」の間にドリフトはありません。
- オープンコアの境界
| 階層 | 内容 | ライセンス |
|---|---|---|
| Engine + SDK + std packs + CLI | 作成、コンパイル、実行、リプレイ、pack、launch - 完全にセルフホスト可能 | Apache-2.0 |
| Service | ホスト型Registry、scheduler、secrets broker、RBAC、run inspector、replication | オープンコア。セルフホストまたはマネージド |
| Enterprise | SSO、細粒度RBAC、audit export、private browser pools、on-prem support | 商用 |
境界線は、再現性やポータビリティに不可欠なものがサービスの背後に置かれないように引かれています。無料のエンジンで構築され、検証されたFlowは、有料サービスでも同一に動作します。サービスが追加するのは調整であり、capabilityではありません。
次のステップ
CLIとDeveloper Experience
Flowの作成、実行、公開、検査のためのコマンドラインサーフェスです。
実行
コントロールプレーンがスケジューリングし、観測するRiderです。置き換えることはありません。
Launcher
ローカル、コンテナ、クラウド、オンプレミスにまたがって、FlowをREST、MCPなどとして公開します。
ToolsとPacks
content-addressedなPackと、Registryの背後にあるレプリケーションモデルです。