コンテンツへスキップ
supastack
ドキュメントを閲覧

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ja/docs/mobile/api.md (or send Accept: text/markdown).

モバイル API

アプリがサーバーと通信する方法 — セッション、到達性、ペイロード。

このガイドについて質問
開くアプリ

初心者向けのウォークスルー

前提条件: 以下の 2 つの初心者向けガイドを読み、モバイル ローカル セットアップを完了してください。 Expo の値を apps/mobile/.env.local に入れます。 EXPO_PUBLIC_API_URL をデバイスが到達できるバックエンド ホストに設定します。モバイル専用チェックアウトには Web バックエンドがないため、個別に開始または接続します。 Expo エクスポートが成功すると、デバイスや購入の受け入れではなく、JavaScript バンドルが証明されます。

簡単に説明すると、ワークスペースは 1 つのチームの個別のユーザー、データ、設定です。サーバーは信頼できるバックエンドです。プロバイダー キーがブラウザーや電話コードに含まれないようにします。移行は、テーブルを作成または更新する、バージョン管理されたデータベースの変更です。 AI モデルは答えを返すエンジンです。モデル カタログは、使用可能なモデル ID と価格のサーバーのリストです。プロバイダーは、AI、電子メール、請求サービスなどの外部サービスです。資格は、ワークスペースで機能を使用できるようにする付与です。 Webhook は、あるサービスが別のサービスの URL に送信するメッセージです。

1. apps/mobile/.env.local で、EXPO_PUBLIC_API_URL を電話から到達可能な実行中のバックエンド アドレスに設定します。物理デバイスから localhost を使用しないでください。

2. モバイル ローカル セットアップに従って、Expo を起動し、サインインして、ワークスペース、設定、およびチャット画面を開きます。

3. 同じワークスペースからの認証済みデータが期待されます。リクエストがタイムアウトした場合は、電話とコンピュータのネットワークを確認し、モバイル専用チェックアウトでバックエンドを個別に起動します。

カスタム コードの場合は、提供された prompts/README.md から始めて、最も近いプロンプト (アプリ画面の場合は prompts/new-app-screen.md、パブリック ページの場合は prompts/new-landing-page.md) をコピーします。サーバー、データベース、またはプロバイダーの作業については、コーディング エージェントにこのガイドのタスクを与え、AGENTS.md、.ai/PROJECT_CONTEXT.md、および一致する .ai/ ミラーを読み取るように依頼します。ここで指定されている正確なソース ファイルを調べてください。ファイルをリストし、編集前にチェックします。ワークスペースの所有権とサーバーのみの秘密を保持します。そして差分を見せてください。必要な動作、入力フィールドと出力フィールド、許可されるロール、予想される成功とエラー、テスト アカウント、プロバイダー、またはデバイスを指定します。サンプル値を使用します。絶対に本当の秘密を貼り付けないでください。

【端末の基本】(/docs/web/terminal-basics)

ネイティブスコープを理解する

Expo には、ワークスペース、設定、チャット、RevenueCat 購入サーフェスに加えて、ネイティブ認証/セッションとディープ リンクが含まれています。共有されたビジネス動作と承認は Web バックエンド/パッケージ内に残ります。 apps/mobile/src のネイティブ クライアントは、プロバイダーの資格情報を埋め込まずにこれらの API を呼び出します。

セッション認証された BFF を使用する

/api/mobile ルートは、資格、RevenueCat 購入の可用性とサーバー同期、組織、メンバー、招待状、監査、API キー、Webhook、ドメイン、スケジュール、機能リクエストをカバーします。ワークスペースの所有権とロールのチェックを保持します。これらは、sk_ ベアラーキー /api/v1 パブリック コントラクトとは異なります。

デバイスが到達可能な EXPO_PUBLIC_API_URL と構成されたオリジン/スキームを使用します。パブリック Expo 変数にはプロバイダーの資格情報が含まれることはありません。

ネイティブ ターゲットで検証する

サポートする予定のデバイス/ビルドの読み込み/エラー/空の状態、再接続、期限切れのセッション、禁止された管理アクション、およびディープリンクのリターンを確認します。 Expo エクスポートはバンドルを証明するものであり、ネイティブの配送や購入の承諾を証明するものではありません。

インストールとセットアップ

アプリは /api/mobile とバージョン管理された /api/v1 サーフェスの API を、Web アプリの Cookie 前提ではなくメンバーのセッションで呼び出します。EXPO_PUBLIC_API_URL はクライアントが知る唯一のオリジンで、設計上公開され、シークレットを含みません。

セッショントークンは Better Auth Expo フローから得られ、ネイティブのセキュアストレージに保持されます — 平文の AsyncStorage やバンドルされた設定には保存しません。

GET  /api/mobile/entitlement    # access state for the member
GET  /api/mobile/organization   # active workspace context
GET  /api/mobile/usage          # current-month AI spend, meter caps, and credit balance
GET  /api/mobile/appearance     # synced appearance bundle (GET/PUT)
POST /api/v1/ai-tasks            # authorized work, same as web

Session: /api/auth/* (Better Auth Expo flow)
# Optional server-only token for authenticated Expo push sends:
# EXPO_ACCESS_TOKEN=

実装ワークフロー

最初の認証リクエスト前に保存済みセッションを解決し、サーバーが期限切れを報告したら更新し、失効したらクリーンにログアウトします。API 未到達と無効セッションは別の状態として扱います — 前者はリトライ、後者はサインインへ戻ります。

ペイロードは Web コントラクトと同一に保ちます。どのクライアントが呼んでも、サーバーは同じワークスペース・エンタイトルメント・検証ルールを適用します。

検証とトラブルシューティング

機内モードでの失敗、セッション途中のトークン期限切れ、失効したセッション、有効なトークン保存済みのコールドスタートをテストします。閉じて失敗する(拒否される)リクエストは正常、開いて失敗するものはリリース前に修正すべきバグです。

よくある質問

14 件の質問

supastack とは何ですか?

supastack は AI SaaS 製品を構築するためのモジュラー基盤です。共通インフラをまとめて提供するので、製品固有の機能に集中できます。

Web とモバイルに対応していますか?

はい。supastack には Web とモバイル体験の出発点として Next.js アプリと Expo アプリが含まれています。

どの認証が含まれていますか?

Better Auth がメール/パスワード、OTP、ソーシャルログインをカバーします。個人ワークスペースはアカウントと一緒にプロビジョニングされ、初日からレコードが境界内に収まります。

AI はどうサポートされていますか?

supastack には設定可能なマルチプロバイダー AI、使用量追跡、予算、暗号化された自前キー(BYOK)サポートが含まれています。

サブスクリプションはどう管理されますか?

このキット上に構築された製品では、Stripe 課金・サブスクリプション・権限が有料アクセスの基盤になります。プロバイダーの秘密はサーバー側に留まります。

製品固有のコードはどこに置きますか?

製品固有の機能は別のコードベースに置き、製品側が supastack の基本モジュールを設定・統合します。

supastack の価格は?

キットは生涯アップデート付きの一回払いです:単一フレームワーク 249 ドル(期間限定のローンチ価格 — 通常価格 349 ドルから 100 ドル割引)、または全フレームワーク(Next.js・iOS・Android)499 ドル(期間限定のローンチ価格 — 通常価格 599 ドルから 100 ドル割引)、追加開発者シート 1 席 75 ドル。キットのサブスクリプションはありません。このサイトのチェックアウトはライセンスキーをメールで配信し、GitHub 招待でリポジトリアクセスを提供します。

ワークスペースはどうデータを囲いますか?

ユーザーレコードは workspaceId でスコープされます。認証、権限、AI 使用量、課金イベント、監査エントリは個人ワークスペースの境界内に留まります。

バックグラウンドジョブはどう機能しますか?

Trigger.dev が明示的なジョブランタイムです。JobRunner コントラクトは enqueue・status・cancel のみを約束し、ワークフロー意味論は Trigger.dev 固有で明示的です。

メールとアウトリーチの違いは?

トランザクションメールはタスク完了通知などの製品ワークフローをカバーします。コールドアウトリーチやキャンペーンは製品自身に属し、このキットのメールモジュールの外です。

モバイルの購入はどのように機能しますか?

モバイルでは RevenueCat によるネイティブ購入と復元に対応し、アクセス権をサーバーで検証します。公開前にストアアカウントを設定し、実機テストを完了してください。Web 課金は別に管理します。

AI プロバイダーのキーはどこにありますか?

BYOK 認証情報は暗号化され、サーバー側に留まります。キーはログでサニタイズされ、使用量と予算はワークスペースレベルで可視です。

チェックアウトで使える支払い方法は?

Stripe ホストのチェックアウトはカードを受け付け、Stripe アカウントでウォレットを有効にすれば Alipay と WeChat Pay も提供できます——中国の購入者に便利です。ウォレット認可は非同期で確定するため、決済完了と同時にライセンスページが更新されます。

返金を受けることはできますか?

リポジトリへのアクセス権を取得した後は、supastack は永久にあなたのものとなるため、返金はできません。ですがご安心ください。生涯アップデートを含む完全なソースコードを入手し、ご自身やクライアントのために無制限にプロダクトを構築・公開できます。コードの転売や、リポジトリをスターターキットやテンプレートとして再配布することのみ禁止されています。

JA
テーマ