AirApp をウェブサイトとして公開する
ウェブサイトエンジンで AirApp を常時オンラインの公開アドレスに置き、サイトから Busabase API でワークスペースを読み書きします。
AirApp のほかの 3 つのエンジン(ブラウザ内、このマシン、クラウドサンドボックス)は、誰かがアプリを開いている間だけ動きます。ウェブサイトエンジンは違います。公開すると、アプリは決まったアドレスで常にオンラインになり、ログインしなくても誰でも開けます。ショップ、ランディングページ、問い合わせフォームなど、ワークスペースの外の人に見せるものに使います。
ウェブサイトにはページも独自のバックエンド API も置けます。Cloudflare Workers 上で動きます。
始める前に
- プラン: Busabase Cloud では Plus 以上が必要です。Free プランでは、エンジンの選択肢でウェブサイトにアップグレードの案内が表示されます。
- セルフホスト版: 先に管理者がウェブサイトエンジンを設定する必要があります。設定されるまで、ウェブサイトは理由付きでグレー表示になります。セルフホスト版にプランの制限はありませんが、有効なライセンスが必要です。
- アプリ側: アプリの
airapp.jsonでウェブサイトエンジンを指定します。エージェントにbusabase-app-creatorスキルに従って書くよう頼めば、書き方はスキルに書いてあります。
プレビューと公開
- 実行: アプリを開きます。ウェブサイトエンジンで実行するとプレビューになり、ワークスペースのメンバーしか開けません。
- 公開: プレビューで問題がなければ、ツールバーの公開をクリックします。公開されるのは直前にプレビューしたバージョンで、状態は公開中になります。
- ファイルを変更したら: もう一度実行して新しいプレビューを確認してから公開します。そうしないと「このプレビューの後にファイルが変更されました。もう一度実行してから公開してください。」と表示され、公開中のサイトは古いバージョンのままです。
ツールバーに未公開の変更ありと表示されている場合、プレビューのほうが公開中のサイトより新しい状態です。
アドレスと公開スイッチ
アプリの設定に、サイトのアドレスと公開スイッチがあります。
- 公開オン: アドレスを知っていれば誰でも開けます。
- 公開オフ: すぐにオフラインになり、アドレスは「見つかりません」と表示されます。オンに戻せば復帰し、公開し直す必要はありません。
- ゴミ箱に移動: サイトはオフラインになります。ゴミ箱から復元した後、公開スイッチをもう一度オンにします。
- 完全に削除: サイトとアドレスもアプリと一緒に削除されます。
サイトから Base を読み書きする
サイトのバックエンド(Worker)は Busabase API でワークスペースを読み書きします。エージェント、CLI、SDK と同じ API と権限です。
サイトが受け取るキー
実行や公開のたびに、Busabase はサイトに API キーを発行します。
- 誰のキーか: 公開版は公開をクリックした人、プレビューはプレビューを実行したメンバーのキーです。サイトにできることは、その人がワークスペースでできることを超えません。
- 何ができるか: アプリの
airapp.jsonに書いたレベルで決まります。読み取りのみ(既定)、変更リクエストの提出、書き込みのいずれかです。公開することが承認で、ほかの承認はありません。 - どこで使えるか: このワークスペースだけです。その人のほかのワークスペースでは拒否され、個人の Vault の値も読めません。
- どこで確認できるか: その人の API キー一覧に
Site: <アプリ名>(プレビューはSite preview: <アプリ名>)として表示されます。そこで削除すると、次に公開するまでサイトは読み書きできなくなります。
プレビューも同じレベルの別のキーを使い、ほかのエンジンと同じくワークスペースの実データを読み書きします。
止まるとき
- 公開をオフにする、またはアプリをゴミ箱に移動する: 公開版のキーはすぐに無効になります。公開をオンに戻すと元に戻ります。
- アプリを完全に削除する: キーも削除されます。
- 公開した人がワークスペースを抜ける: キーは使えなくなります。権限のある人がもう一度実行して公開してください。
- 公開するたびに: 新しいキーに置き換わり、古いキーは無効になります。
サイトによる変更はほかの API 書き込みと同じく変更リクエストを通り、履歴にはそのキーが記録されます。
見知らぬ人が何に触れられるかは、サイトのコードで決まります
このキーは、公開した人がこのワークスペースでそのレベルで読み書きできるものすべてに届きます。サイトが使う Base だけではありません。見知らぬ人がキーそのものを手にすることはなく、サイトが公開している入口を通してしか使えません。エージェントには busabase-app-creator スキルに従って書かせ、具体的なエンドポイントだけを公開し、訪問者のリクエストをそのまま API に転送しないようにしてください。書き込みが不要なら読み取りのみのままにします。CAPTCHA はまだないため、公開フォームはスパムされる可能性があります。