開発者コンソール

対象読者:ローカル Alpha のコンソールでプロジェクト作成、メンバー招待、プレイヤーフィードバック確認を行う開発者。

開発者コンソールは http://localhost:4173 で動作し、既定では http://localhost:4100 の admin API に接続します。公開ルートは product Landing page、ログイン後の route は運用 console です。

組織とプロジェクトへのアクセスにはメール確認が必要です。JWTは実際のサーバーセッションに結び付きます。通常のログアウトは現在のセッションを、全ログアウト・パスワード変更/再設定・無効化・退会は対象の全セッションを失効させます。旧Alphaのアカウントとデータは移行しません。詳細はアカウントとセキュリティを参照してください。

最小例

cd ../echo-nebula-infra
./scripts/e2e-all.sh
open http://localhost:4173

Developer A で登録・メール確認をしてログインし、組織、プロジェクト、project key を作成します。チーム領域で Developer B を招待し、招待 token をコピーして、Developer B としてログインして受諾します。Developer C は A のプロジェクトやフィードバックを見られない必要があります。

organization owner は organization panel で member role を変更または member を削除できます。admin が管理できるのは owner 以外の member だけです。UI は最後の owner を保護し、server confirmation 後にだけ role badge を更新し、inline の 2 段階 confirmation で削除します。organization membership を削除しても direct project access は取り消されません。

組織詳細設定

/orgs/{organization_id} を開くと organization identity を確認し、表示名を変更できます。owner または admin role の member は name を編集できます。developerqaviewer member には編集 form を出さず、同じ server-confirmed value を read-only settings summary で表示します。system_admin account 自体に tenant 編集権限はなく、明示的な owner または admin membership が別途必要です。organization ID、現在の role、slug は常に read-only で、name を変更しても ID と slug は変わりません。

Console は raw draft を 120 Unicode code point の上限と照合してから前後の whitespace を除去し、正規化後に空の name を拒否します。正規化済み draft に変更がなければ Save は無効です。Save は { "name": ... } だけを送り、Discard は最後の server-confirmed organization に戻します。page は summary を optimistic update せず、同じ immutable identity field を含む有効で完全な Organization response を API が返した場合だけ変更を受け入れます。別の organization と同じ name も使用できます。

プロジェクト詳細設定

/projects/{project_id} を開くと project identity と設定を確認できます。organization owner/admin または direct project admin は、project name、SDK default locale、default environment、5 つの SDK feature gate を変更できます。developer、QA、viewer には同じ server-confirmed value が read-only で表示されます。Project ID、現在の role、slug は常に read-only で、name を変更しても slug は変わりません。

Console は name と environment draft の前後空白を除去し、正確な zh-CNenja locale を検証します。正規化後の draft に変更がなければ Save は無効です。request は変更された top-level field だけを送ります。feature toggle が 1 つでも変わった場合は、screenshotrecent_logsbreadcrumbsoffline_queuecontact の完全な object を送ります。Discard は最後の server-confirmed project に戻します。Save 後の summary は API が有効で完全な Project response を返した場合だけ更新されます。SDK default locale は SDK/player panel content に作用し、Console UI language は変更しません。

Project feature gate は project で提供可能な機能を定義するだけで、player consent ではありません。screenshot、recent logs、contact を有効にしても、consent は事前選択も記録もされません。新しい feedback panel を開くたびに screenshot、recent logs、privacy confirmation は未選択で始まり、contact は player がその送信で明示的に入力した場合だけ含まれます。各 report は独自の consent snapshot を保存します。breadcrumbsoffline_queue は project capability であり、追加の consent field ではありません。

リストのページング

feedback list は実 API を 50 件ずつ request し、total に対する現在の範囲を表示します。前へ/次へは offsethas_more に基づいて有効になり、project、status、category、search を変更すると offset=0 に戻ります。同時更新または filter 変更で現在の offset が結果範囲を超えた場合、Console は空 page を固定表示せず、最後の有効 page を request します。

現在の management UI が完全な context を必要とする他の collection は、has_more に従って全 page を自動集約します。対象は organization member/invitation、project member/invitation/key、feedback detail の attachment/comment です。各 page は引き続き正確な { items, offset, limit, total, has_more } envelope である必要があり、page 間で total が一致しなければなりません。malformed または drift した response は有効 data として merge しません。organization/project navigation は pagination されない Developer Graph から取得するため、最初の 50 件を完全な navigation graph と誤認しません。

よくある間違い

次のステップ

Admin API の例を実行し、コンソールの流れと照合してください。