Communitygithub.com

poofdotnew/openapps-skill

WebまたはReact NativeフロントエンドをOpenAppsに接続します。(@bounded-sh/client SDKによる読み取り、書き込み、サブスクリプション、クエリ、ホスティングされた静的フロントエンド、エンドユーザー認証UI(ワンタイムパスワード、OAuth、ブラウザゲスト/匿名アカウントとアップグレード)対象。OpenAppsアプリのクライアント構築やエンドユーザーのログイン処理時に使用。サーバーサイドのルール、関数、アクターモデルはopenapps-backendスキル、デプロイ/ホスティング設定はopenapps-deployスキルに存在するOpenAppsスキルファミリーの一部。

openapps-skill とは?

OpenAppsフロントエンドスキルは、WebまたはReact NativeアプリケーションからOpenAppsプラットフォームに接続するためのクライアントサイドSDK、エンドユーザー認証、およびホスティングフロントエンドの提供を担当します。このスキルは、@bounded-sh/client SDKを使用したデータの読み取り、書き込み、サブスクリプション、クエリ(集計、カウント、フィルター、ソート、カーソルページネーションを含む)を提供し、エンドユーザー認証UI(メールOTP、OAuth、ゲスト/匿名アカウントとアップグレード)を統合します。重要な設計原則として、すべてのクライアント書き込みはポリシーによって管理され、コレクションはプッシュベースであるためポーリングは不要です。また、ウォレットアドレス(@user.address)とユーザーID(@user.id)を明確に区別し、アイデンティティ管理には@user.idを使用することを推奨します。このスキルは、サーバーサイドのルールや関数を扱うopenapps-backendスキル、デプロイ設定を扱うopenapps-deployスキルと連携して使用します。

対応~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/poofdotnew/openapps-skill/tree/HEAD/openapps-frontend

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

OpenApps フロントエンド

OpenAppsアプリのクライアントサイド:Webまたはモバイルアプリが呼び出すSDK、エンドユーザーの認証方法、およびホスティングされたフロントエンドの提供方法。クライアントからのすべての書き込みはポリシーによって管理されるため、クライアントアクションにルールや不変条件が必要な場合はopenapps-backendスキルと組み合わせ、ホスティングとドメインにはopenapps-deployスキルを使用します。ファミリー全体のルーティングについては、ルートのopenappsスキルを参照してください。

リファレンスルーター

現在のタスクまたは用語に一致する行のみを読み取ってください。

タスクまたは用語読む場所
SDKの読み取り、書き込み、サブスクリプション、ページネーション、queryAggregate、count、フィルター、ソート、カーソル、setMany、set(path, null)SDKリファレンス
Webフロントエンドの構築Webアプリガイド
ローカル開発サーバー(npm run dev、Vite、localhost)、ログインポップアップ失敗、redirect_uri origin is not a registered origin、ローカル開発中のCORSlocalhostでの開発
リフレッシュタイマー、setInterval、ポーリング、「鮮度を保つ」、カウントダウン、古いUISDKリファレンス
React Native / モバイル向けの構築React Nativeガイド
アプリユーザーのメールOTP、OAuth、openBoundedWidget、統合ログインウィジェット、デフォルトのTurnkey認証アプリ認証
独自ウォレットログイン;walletLogin、authMethod:'phantom'、supportsWalletSignIn、サポートされていないウォレット / Wallet Standardウォレットログイン
リフレッシュでウォレットログインが消える、getCurrentUser()がnullを返す、bounded_last_auth_method、セッション復元方法ウォレットログイン - 「ウォレットセッションはリロード後も維持されます」
ゲスト、匿名ユーザー、招待リンク、アカウントアップグレード匿名アカウント
ユーザーのXアカウントをリンク、connect('x')、completeConnection、getConnections、確認済みXハンドル、__connections__接続アカウント
ホスティングされたフロントエンドとアプリURLフロントエンドホスティング
CLI開発者ログインまたはopenapps login開発者アカウント
埋め込みウォレット、auth.wallets、@user.address after email/social login埋め込みウォレット
onramp()、カードでSOL/USDC購入、Coinbase Onramp、ウォレットチャージonramp

経験則

  • すべてのクライアント書き込みはポリシーによって管理されます。書き込み時の403はクライアントのバグではなく、ルール拒否です。ルールについてはopenapps-backendスキルを参照してください。
  • 拒否された読み取りは403ではなく、空の200レスポンスを返します。
  • デフォルトでライブ。絶対にポーリングしないでください。 すべてのコレクションはプッシュベースであるため、パスを再読み取りするsetIntervalはバグであり、チューニングの選択肢ではありません。Reactの場合はuseQuery、またはsubscribeを使用してください。カウントダウンは再読み取りではなく、ローカルクロック状態で動作します。ライブではない数少ない表面(runQuery、functions.invoke、サードパーティ)については、意図的にポーリングしてください:非表示タブで一時停止し、タイマーを必要な状態にスコープし、バックオフし、制限を設けてください。sdk-reference.mdを参照してください。
  • 計算値のリストに対してはrunQueryManyでバッチ読み取りを行い、リストに対してrunQueryをマッピングしないでください。sdk-reference.mdを参照してください。
  • プロバイダーAPIキーは(バックエンドの)OpenAppsシークレットに配置し、フロントエンドコードには絶対に配置しないでください。
  • npm auditで@solana/web3.js -> jaysonを介したuuid勧告GHSA-w5hq-g745-h8pqが報告された場合は、スコープ付きオーバーライドレシピを使用してください。この勧告に対処します。インストールされたロックファイルに対してnpm audit --omit=devを実行し、残りの検出結果は個別に調査してください。
  • ほとんどのアプリでは認証のデフォルトを維持してください。 「ウォレットを有効にする」ためにauthModeやauth.walletsを追加しないでください。デフォルトのTurnkeyメール/ソーシャルログインには既に@user.addressが含まれています。外部キーペアセッション(独自ウォレットログイン、サーバーSDKキーペアクライアント、CLIキーペアデータレーン)に対してのみ"auth": { "wallets": true }をデプロイしてください。完全なルールとオプトアウト:embedded-wallets.md。
  • @user.id(アカウントID)はアイデンティティ/所有権、@user.addressはウォレットです。 @user.id(常に存在)でキーの所有権、メンバーシップ、認証ガードを管理します。@user.addressはウォレット/オンチェーンセマンティクスのためにのみ使用し、決してアイデンティティキーとしては使用しないでください。
  • 電話でのウォレットログインにはSolana Mobileアダプターが必要です。 電話のブラウザはウォレットアプリを注入しません。@solana-mobile/wallet-standard-mobileをインストールしたままにし(.npmrcでlegacy-peer-deps=true)、ウィジェットを開く前にwindow.solanaを事前チェックしないでください。Solana Mobileを参照してください。

関連スキル