bug: `projects create-platform` fails with "Access to this API is forbidden" in CLI v16
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 75/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 静か
- 技術スタック
- node.js, typescript
- 領域
- cli
調査の方向性
dist/cli.cjs の getProjectsClient から始め、lib/commands/projects.js の以前の実装と比較してください。CLI v16 で appwrite projects create-platform を再現し、すべての projects サブコマンドが Console クライアントを使用していることを確認し、アクセス拒否エラーが発生しなくなったことを確認してください。
索引モデルが issue の本文から書いたものです。
説明
Bug Description
Running appwrite projects create-platform fails with:
Error: Access to this API is forbidden.
And if no appwrite.config.json exists in the current directory, it fails earlier with:
Error: Project is not set. Please run appwrite init project to initialize...
Steps to Reproduce
- Install
[email protected] - Run
appwrite login - Run:
appwrite projects create-platform \ --project-id <your-project-id> \ --type web \ --name "My App" \ --hostname localhost - Observe:
Error: Access to this API is forbidden.
Root Cause
In dist/cli.cjs, getProjectsClient uses sdkForProject() instead of sdkForConsole():
// ❌ Current (broken) — sets x-appwrite-project to local project ID
const getProjectsClient = async () => {
const sdkClient = await sdkForProject();
...
};
The server-side projects.php enforces that x-appwrite-project must be console:
if ($project->getId() !== 'console') {
throw new Exception(Exception::GENERAL_ACCESS_FORBIDDEN);
}
The fix is to use sdkForConsole(), which correctly sets x-appwrite-project: console. This matches the behavior of the old lib/commands/projects.js before the TypeScript migration.
// ✅ Fix
const getProjectsClient = async () => {
const sdkClient = await sdkForConsole();
...
};
This affects all appwrite projects subcommands (create-platform, list-platforms, create-key, list-keys, etc.).
Environment
- CLI version: 16.0.0
- Appwrite server: 1.8.1 (self-hosted)
- Node: v22.x
- 主要言語
- Go
- スター
- 103
- フォーク
- 45
- 平均マージ
- 7時間 40分
- マージ済み PR(30日)
- 4
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
appwrite/sdk-for-cli のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
appwrite/sdk-for-cli#324 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 68/100
appwrite/sdk-for-cli#363 · リアクション 1 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
appwrite/sdk-for-cli#341 ·
-
TypeScript enumsオープン
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
appwrite/sdk-for-cli#277 ·
-
During deployment, the packaging command did not exclude the ignore files.再び着手できるかも @ChiragAgg5k が 231 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
appwrite/sdk-for-cli#250 · 担当者 1 名 ·
appwrite/sdk-for-cli の issue をすべて見る
似ている issue
-
difficulty: easy documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
-
scaleway_lb_frontend: updating a frontend with external_acls = true deletes all scaleway_lb_aclオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
scaleway/terraform-provider-scaleway#4485 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100