Espobaseドキュメント
Espobaseはアーリーアクセス中です。これらのページではプラットフォームの仕組みを説明しています。詳細なガイドとAPIリファレンスは、各機能のリリースに合わせて執筆中です。
はじめに
- アカウントを作成し、組織も作成します。
- プロジェクトを作成します。プロジェクトごとに専用のデータベースが用意されます。
- テーブルエディタでテーブルを作成するか、AIビルダーにアプリの内容を説明します。
- プロジェクトの公開可能キーでREST APIを呼び出します。
curl "<project URL>/rest/v1/todos?select=*" \ -H "apikey: <publishable key>"
プロジェクト
プロジェクトは1つのアプリのバックエンドです。専用のPostgreSQLデータベース、REST API、APIキー、アプリのユーザー(App Authentication)を持ちます。プロジェクトは組織に属します。
データベース
すべてのプロジェクトに専用のPostgreSQL 18データベースが用意されます。publicスキーマのテーブルはREST APIを通じて公開され、行レベルセキュリティのポリシーが、各行を誰が読み取り・変更できるかを決めます。
REST API
各テーブルには、プロジェクトのREST URL(…/project/<project-ref>/rest/v1。プロジェクトのAPIページに表示されます)の下にエンドポイントが用意されます。ブラウザやアプリからは公開可能キー(eb_pk_…)を送信します。そのリクエストは匿名で、何が見えるかは行レベルセキュリティが決めます。ログイン中のユーザーのアクセストークンをAuthorization: Bearerとして追加すると、そのユーザーとしてリクエストを実行できます。シークレットキー(eb_sk_…)はユーザー単位のアクセス制御をバイパスするため、信頼できるサーバーでのみ使用してください。
認証
EspobaseのApp Authenticationを使うと、アプリ独自のユーザーがメールアドレスとパスワードで新規登録・ログインできます。これはEspobaseのアカウントとは別のものです。ユーザーはプロジェクトのデータベースに保存されます。ログインすると、有効期間の短いアクセストークン(プロジェクト独自のキーで署名)とローテーションするリフレッシュトークンが返されます。@espobase/client SDKはこれらを最新の状態に保ち、すべてのリクエストにトークンを付けて送信するため、行レベルセキュリティはユーザーを認証済みとして扱います。ユーザートークンがない場合、公開可能キーでのリクエストは匿名です。シークレットキーはサーバー側のサービスロールとして動作するため、信頼できるサーバーでのみ使用してください。
行レベルセキュリティ
行レベルセキュリティは、テーブルエディタ、SQLエディタ、マイグレーション、AIビルダーのいずれで作成しても、すべての新しいテーブルで有効になります。データベース → ポリシーでポリシーを追加するまで、公開可能キーでは行が1つも見えません。シークレットキー(サーバー側のみ)ではすべてが見えます。生成されたSQLは、実行前に必ずあなたがレビューします。公開読み取りは誰にでも機能します。ログインユーザーのみ、ユーザーが行の所有者、組織のメンバーシップ、管理者のみは、App Authenticationでログインしたユーザーに適用されます。espobase.user_id()はログイン中のユーザーのID、espobase.app_role()はそのアプリロールで、どちらも検証済みトークンから取得されます。組織のメンバーシップには独自のメンバーシップテーブル(ユーザーが自分のメンバーシップを読み取れるポリシー付き)も必要で、管理者のみにはサーバー側で割り当てるアプリロールが必要です。
ストレージ
バケットにはファイルが保存されます。アクセスはテーブルと同じ行レベルセキュリティのモデルに従います。
リアルタイム
espobase.realtime でアプリにライブ更新を。チャンネルの全員にメッセージを送り、プレゼンスで誰がオンラインかを確認し、ダッシュボードのリアルタイムでオンにしたテーブルの行の変更を受け取れます。各購読者が受け取るのは、テーブルのセキュリティルールでそのユーザーが読める行だけです。削除では行の主キーだけが送られます。詳しいガイドは espobase.com/docs/realtime をご覧ください。
Edge Functions
espobase.functions で独自のサーバーコードを。ダッシュボードやCLIからデプロイするTypeScriptの関数で、Webhook、決済、メール送信などのサーバー処理に使えます。各プロジェクトの関数は専用のサンドボックスで動き、シークレットは暗号化して保存され、ログイン中のユーザーは自動で検証され、各呼び出しの出力はログに表示されます。詳しいガイドは espobase.com/docs/functions をご覧ください。
ホスティング
アプリのフロントエンドをバックエンドのすぐ隣で公開します。サイトをビルドし、ダッシュボードまたは `espobase deploy` でフォルダを公開すると、HTTPS 付きの `https://<名前>.espohost.com` で公開されます。すべてのデプロイが保持されるので、ワンクリックで元に戻せます。Pro と Group で利用できます。詳しいガイドは espobase.com/docs/hosting をご覧ください。
AIバックエンドビルダー
アプリの内容を説明すると、Espobaseがテーブル、リレーション、ポリシーを提案します。すべてのステートメントはあなたがレビューし、承認なしに実行されるものはありません。
ベクトル検索
すべてのプロジェクトにpgvectorが含まれています。埋め込みをvectorカラムに保存し、HNSWでインデックスを作成し、REST APIまたはespobase.rpc()から呼び出すデータベース関数で類似度検索ができます。行レベルセキュリティが適用されます。詳しいガイドはespobase.com/docs/vectorをご覧ください。
CLI
npx espobase login、続けてnpx espobase init。フォルダをプロジェクトにリンクし、TypeScriptの型を生成し、読み取り専用クエリを実行し、ログと使用量をターミナルから確認できます。詳しいガイドはespobase.com/docs/cliをご覧ください。
AIツールを接続する(MCP)
Claude、ChatGPT、Cursor、VS CodeからEspobaseを使えます。スキーマ、APIリファレンス、ログ、使用量を読み取り、読み取り専用クエリを実行し、あなたが承認する変更を提案します。詳しいガイドはespobase.com/docs/ai-toolsをご覧ください。