Skip to content

mochiOS/DeveloperConsole

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mochiOS Console

console.mochios.orgで提供する開発者向けポータルです。Rustとworkers-rsで 実装したBFF、Cloudflare Workers Static Assets、D1セッションで構成します。

ConsoleはDeveloper、Developer Member、追加Developer申請、Developer Certificate発行を操作します。証明書発行時は.mpkgを端末内で展開し、 manifest.tomlpackage.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_reviewersapp_store_reviewersで責務ごとに明示的に許可します。

本番設定と手順はdocs/deployment.mdを参照してください。

About

No description, website, or topics provided.

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages