iframeを汎用的なコンポジションプリミティブとして。
すべてのコンテナサービス — ターミナル、ディスプレイ、ファイル、コードエディタ、ブラウザ、SQLite UI — はiframeに埋め込み可能なHTTPS URLです。ダッシュボードはインフラの上に構築されるのではなく、インフラから組み立てられます。
1つのHTMLファイル + iframe = カスタムインフラUI · SDK不要 · postMessage不要
インフラの上にダッシュボードを構築しない。インフラから組み立てる。
従来のダッシュボードはデータベースを読み込み、APIをポーリングし、数値やグラフをレンダリングします。Hoodyのダッシュボードはサービス自体のiframeを埋め込みます — ライブターミナル、実行中のディスプレイ、編集可能なファイルツリー。同期すべきものがないため、同期の遅延もありません。
ポーリングレイヤーなし
ダッシュボードは監視エンドポイントをポーリングしません。監視対象そのものを埋め込みます。
閲覧して操作する
メトリクスのスパイクに気づきましたか?その横に埋め込まれたターミナルをクリックして`top`と入力します。コンテキストスイッチなし。
顧客別・プロジェクト別・環境別
URLからダッシュボードを組み合わせる — あらゆる組み合わせがダッシュボードになります。
AI対応コンポジション
LLMがiframe URLを含むHTMLを出力できます。オンデマンドで生成されるカスタム可観測性UI。
コンテナを変更する。iframeが反映する。
postMessage不要。親子プロトコル不要。iframeはサービスURLを表示し、そのサービスはHTTP APIで更新され、iframeの次のリクエストが新しい状態を取得します。iframeとAPIは同じコンテナです。
アプリがサービスURLを埋め込む
親ページがコンテナサービスURLを指すiframeをレイアウトに配置します。
アプリが制御用HTTPリクエストを送信する
POST /api/v1/files/upload(または他のAPI呼び出し)— 同じコンテナに対して認証済みで実行。
iframeが新しい状態を取得する
自動更新、SSE、またはユーザー操作が新しいリクエストをトリガーします。新しいファイルがiframeに表示されます。
ラッパープロトコルなし
アプリはiframeにpostMessageを送りません。コンテナを更新するだけで、iframeは次のレンダリング時に変更を認識します。
iframeはすべてのブラウザでレンダリングされます。すべてのブラウザはすべてのデバイスにあります。
埋め込まれたHoodyダッシュボードはスマートフォンで動きます。タブレットで。TVブラウザで。スマートウォッチで。VRヘッドセットのブラウザで。ブラウザがそうするため、埋め込み可能性の特性はすべてのデバイス環境に伝わります。
コンポジションプリミティブはiframe + HTTPSです。どちらも普遍的です。それがデバイスの対等性が自動である唯一の理由です。
LLMがコンテナURLからダッシュボードを組み立てられます。
エージェントに「これら3つのコンテナのヘルスチェックダッシュボードを作って」と依頼します。指定したターミナル、ディスプレイ、exec URLを指すiframeタグを含むHTMLを出力します。結果は1つのプロンプターンで完成する、本物のライブダッシュボードです。
エージェントがスペックを受け取る
「frontend、backend、dbという3つのコンテナを監視したい。それぞれのターミナルログを表示して。」
エージェントがHTMLを出力する
各コンテナの正しいterminal-1 URLを指す3つのiframeタグを含むテンプレート。
どこからでも配信する
静的ファイルに貼り付けるか、iframe埋め込みを許可するNotionページに、またはhttp-3000を実行する専用Hoodyコンテナに。
URLを開く
ライブダッシュボード。ダッシュボード製品からではなく、インフラから組み立てられました。
埋め込み可能性がブラウザの限界にぶつかる箇所。
iframeはブラウザのプリミティブです。ブラウザは埋め込み可能なものとそうでないものにルールを適用します。これらはHoody固有の制約ではなく普遍的な制約ですが、UIを組み立てるときに重要です。
X-Frame-Options / CSP
`X-Frame-Options: DENY`または`frame-ancestors 'none'`を設定した外部URLは埋め込めません。Hoody自身のサービスは設定しません。埋め込むサードパーティURLが設定している場合があります。
混在コンテンツ
HTTPページ内にHTTPのURLを埋め込むことはブロックされます。HoodyのURLは常にHTTPS — どこでも動作します。
サードパーティCookie
ブラウザはサードパーティCookieをますますブロックしています。埋め込まれたiframe内の認証には、セッションCookieではなくリクエストごとのトークンが必要になる場合があります。
サードパーティストレージ
iframe内のlocalStorageはiframeのオリジンにスコープされます。iframe間の状態はブラウザではなくコンテナから来る必要があります。
インフラの上ではなく、インフラからダッシュボードを構築する。
1つのHTMLファイル。少数のiframeタグ。ライブで動くコンテナ。それが完全なスタックです。
関連情報 — Hoody内のコンポジションは/platform/os、Workspaceランタイムは/kit/workspaces、共有iframeセッションは/methods/multiplayerをご覧ください。