console.mochios.orgで提供する開発者向けポータルです。Rustとworkers-rsで
実装したBFF、Cloudflare Workers Static Assets、D1セッションで構成します。
ConsoleはDeveloper、Developer Member、追加Developer申請、Developer
Certificate発行を操作します。証明書発行時は.mpkgを端末内で展開し、
manifest.tomlのpackage.idと全binary.requiresからscopeとCapabilityを
自動入力します。パッケージ本体はConsoleへ送信せず、DeveloperCAが同じリクエスト内で
Certificateを即時発行します。
allowlistへ登録された担当者は、Developer確認、追加作成申請、Certificate失効、 検証済みApp Store Releaseをブラウザーから審査できます。DeveloperCAの秘密鍵、 管理token、Accountsのセッショントークンをブラウザーへ渡しません。 Certificateの発行審査・承認・却下操作はありません。管理者がCertificateに対して行う 操作は、固定reason codeと説明を伴う失効だけです。
ブラウザー
├─ AccountsでGitHub OAuth
└─ Console Worker(HttpOnlyセッション)
├─ Accounts Service Binding
├─ DeveloperCA Service Binding
├─ DeveloperCA管理BFF(審査担当者のみ)
├─ AppStore Service Binding(審査担当者のみ)
├─ D1(Consoleセッション)
└─ Static Assets(日本語UI)
AccountsからConsoleへのログイン引き渡しには、120秒で失効し一度だけ交換できる 認可コードを使用します。AccountsのCookieへ親ドメインは設定しません。
cargo test --offline
cargo clippy --offline --all-targets -- -D warnings
npx wrangler d1 migrations apply mochios-console --local
npx wrangler deploy --dry-run.dev.varsへ次のSecretを設定します。
CONSOLE_SERVICE_TOKEN=<Accountsとの内部API用ランダム値>
DEVELOPER_CA_TOKEN_SIGNING_KEY=<DeveloperCA短期token用base64 Ed25519 32-byte seed>
APPSTORE_ADMIN_TOKEN=<AppStore APIのADMIN_TOKENと同じ値>
署名鍵と管理tokenはConsole Worker内だけで使用します。HTML、JavaScript、APIレスポンス
には含めません。DeveloperCA tokenは60秒で失効し、操作ごとに新しいjtiを持ちます。
審査担当者はConsole D1のdeveloper_ca_reviewersと
app_store_reviewersで責務ごとに明示的に許可します。
本番設定と手順はdocs/deployment.mdを参照してください。