RBAC — ownerとmember
ホスト型サービスのRBACは意図的に小さく作られています。組織メンバーシップは2つのロール(RoleSchema)のうち必ず1つに解決され、すべてのリクエストでサーバー側でチェックされます。Cookieからの値を信用することはありません。
| ロール | できること |
|---|---|
| owner | memberができるすべてに加えて、APIキーの発行/取り消し、メンバーの追加/変更/削除、スケジュールの作成/削除、オーサリングの操作(Recordingの開始、一時停止したキャプチャの再開、手順の編集、公開) |
| member | 組織全体で読み取り専用: オートメーションの表示、Runの検査、ライブビューの監視 |
requireRole(wrapper, "owner") はowner専用の各mutationをゲートし、requireSession の後に実行されます。ownerではないユーザーには、リソースの存在有無を漏らす404ではなく、403 forbidden が返ります。有効なセッションCookieがないリクエスト(または組織がすでに存在しないリクエスト)は、ロールチェックが実行される前に401になります。session:<user> または api_key:<id>)とタイムスタンプとともに、下の監査ログへ書き込まれます。そのため、「誰がXを行うことを許可されているか」と「実際に誰がいつXを行ったか」の両方を、同じシステムから答えられます。
Last-owner protection
組織がowner不在の状態になることはありません。組織の最後のownerをmember に降格する、または完全に削除する操作は、409 last_owner で拒否されます。これはUIで無効化されるだけではなく、現在のメンバーシップ数に対してサーバー側でチェックされます。
DELETE /api/members/:userId にも適用されます。これにより、mutation権限を持つ全員を降格/削除してしまい、チームが自分たちの組織から締め出される事態を防ぎます。
キーごとのスコープ — 最小権限
ダッシュボードでキーを発行する方法は、PlaygroundとAPIキーを参照してください。このセクションではスコープモデルを扱います。
POST /v1/run/:flow— REST実行ゲートウェイPOST /mcp— ホスト型MCPエンドポイント
scopes の省略、null、[] は、いずれも unscoped に正規化されます。そのキーは組織内のすべての公開済みオートメーションに到達できます。これは、スコープが存在する前に発行されたすべてのキーの挙動でもあります(移行なし、暗黙のロックアウトなし)。
キーの mode は、独立した直交するゲートです。test モードのキーは、スコープに関係なく、secret型の入力を宣言する任意のオートメーションで拒否されます(403 test_key_forbidden)。詳しくはシークレットを参照してください。
RBACとシークレットの相互作用
daily-price-watch では、条件付きの http.post 手順が secrets capabilityを宣言し、secret.WEBHOOK_URL を参照します。プレーンの Secrets providerは、実行時にワーカー上でその値を解決し、その手順だけに注入します(シークレットを参照)。Run Inspectorは後で、その手順が実行されたこと、マスクされた入力、解決されたToolのcontract digestを表示しますが、webhook URL自体は決して表示しません。したがって、Runの読み取りアクセスを完全に持つ読者であっても、起きたことの形は見えますが、そのとき使われたシークレットは見えません。
監査ログ
ownerでゲートされたすべてのmutationは、append-onlyで組織スコープの監査ログに、actor(session:<user> または api_key:<id>)、timestamp、target IDとともに書き込まれます。
| アクション | 記録される内容 |
|---|---|
key.issued | actor、時刻、新しいキーのmodeと表示用prefix、そのscopes(null = 明示的にunscoped)— ハッシュや平文は決して記録しない |
key.revoked | actor、時刻、取り消されたキーのmodeとprefix |
automation.published | actor、時刻、オートメーション、liveになったdigest |
secret.provisioned | actor、時刻、slot名 — 値は決して記録しない |
schedule.created / schedule.deleted | actor、時刻、スケジュールとそのオートメーション |
member.added / member.role_changed / member.removed | actor、時刻、対象メンバーとロール |
すべての監査行の
metadata には、非シークレットの手がかり(slot名、キーmode、prefix、ロール)だけが入ります。シークレット値、キーハッシュ、平文は決して入りません。これはRun Inspectorが強制するものと同じ境界の不変条件を、監査証跡に適用したものです。テナンシー — ワークスペースごとの名前空間
Registry、シークレット、Runは、ワークスペースごとに名前空間化されます。ホスト型サービスでは、ワークスペースは組織です。すべてのオートメーション、APIキー、シークレット、Run ref、メンバーシップがスコープされる同じorg_id であり、RBAC(owner/member)とキーごとのスコープはいずれも組織相対です。ワークスペースが分離の単位です。
Registry
ワークスペースのRegistryに公開されたPackは、そのワークスペース内で表示および解決できます。Replication(
browserflow registry mirror)はPackをRegistry間で明示的に移動し、到着時にdigestを検証します。そのため、ワークスペース境界を越えることは、暗黙の可視性ではなく、意図的で監査された操作です。レプリケーションを参照してください。シークレット
ワークスペースのシークレットは、そのワークスペース内のRunに対してのみ仲介されます。
secret.WEBHOOK_URL は、それを所有するテナント内で解決され、別のワークスペースのRunへ漏れることはありません。オープンコア境界
このサービスはオープンコアかつオプトインです。採用してもFlowの実行方法は決して変わりません。境界は、再現性や移植性に不可欠なものがサービスの背後に置かれないように引かれています。| ティア | 内容 | ライセンス |
|---|---|---|
| Engine + SDK + std packs + CLI | 作成、コンパイル、実行、リプレイ、pack、launch — 完全にセルフホスト可能 | Apache-2.0 |
| Service | ホスト型Registry、scheduler、secrets broker、RBAC、Run Inspector、replication | オープンコア。セルフホストまたはマネージド |
| Enterprise | SSO、fine-grained RBAC、監査エクスポート、private browser pools、オンプレミスサポート | 商用 |
何が無料かつセルフホスト可能なままですか?
何が無料かつセルフホスト可能なままですか?
Engine、SDK、standard packs、CLIはApache-2.0で、完全にセルフホスト可能です。インフラなし、サービスなしで、
daily-price-watch を作成、コンパイル、実行、リプレイ、pack、launchできます。再現性(FlowSpec digest、Journal、--verify によるリプレイ)は、完全にここにあります。オープンコアのServiceは何を追加しますか?
オープンコアのServiceは何を追加しますか?
チームのためのcoordinationです。ホスト型Registry、scheduler、secrets broker、RBAC、Run Inspector、replicationが含まれます。このティアはセルフホストすることも、マネージドで使うこともできます。Runをスケジュールし、観測しますが、2つ目のエンジンになることはありません。実行は常にワーカー上の同じ
Rider だからです。Enterprise(商用)とは何ですか?
Enterprise(商用)とは何ですか?
SSO、fine-grained RBAC、監査エクスポート、private browser pools、オンプレミスサポートです。これらは、Flowの実行方法を変えずに、上で説明したガバナンスを拡張します(たとえば、content-addressedな監査証跡を外部システムへエクスポートする、ロールスコープをより厳密にするなど)。
関連
可観測性
Run InspectorはJournalを読みます。すべてのロールでシークレットはマスクされます。
シークレット
brokerが
secret.WEBHOOK_URL をFlowSpec内ではなくワーカー上で解決する仕組み。コントロールプレーン
Runをスケジュールし、観測する任意のcoordinator。設計上オプトインです。