fix(cli): deploy 注入 MULTI_TENANT=false 到 self-hosted worker(修 MCP 401 注入缺口)
根因(非 code bug):partner-auth.ts MULTI_TENANT 分支邏輯對,但部署沒注入 → worker c.env.MULTI_TENANT===undefined → 走 partner-key → self-hosted 401。 mcp/wrangler.toml 的 MULTI_TENANT 原是註解掉的,injectWranglerConfig 注了 KV/WORKER_SUBDOMAIN/D1 卻漏 MULTI_TENANT。只取消註解不夠(只修手動 fork, 沒修 acr update 自動部署這條 mira 走的路)。 修法(方案①,注 vars 非 secret,self-hosted 零填寫): - deploy.ts:DeployContext 加 selfHosted;新增 injectMultiTenant(active/註解/無行三態 → 加進 [vars]);injectWranglerConfig 在 selfHosted 時呼叫。 - init.ts:deployCtx selfHosted:true(本就是 --self-hosted 分支)。 - update.ts:ctx selfHosted = mode==='self-hosted' || multi_tenant===false(mira 走這條)。 - mcp/wrangler.toml:# [vars] 改 active [vars](官方不含 MULTI_TENANT=多租戶; 注入加行在 [vars] 下,結構正確)。 本地驗注入(真實 export 函式 dry-run):mcp/cypher 注入後各 1 行 active MULTI_TENANT="false" 在 active [vars] 下 → PASS。cli tsc exit 0。 端到端交棒 mira:leo21c 重跑 acr update → curl Bearer leo /mcp 應 200。 SDD: mcp-account-source.md §5.5.1。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -250,7 +250,9 @@ async function initSelfHosted(
|
||||
|
||||
// 4. 下載 repo 部署物(含預編譯 wasm)+ 注入 KV id + wrangler deploy 全部 Worker
|
||||
console.log(chalk.gray('\n → 下載部署物 + 部署 Worker(從 GitHub 拉預編譯 wasm,用你的 CF token 部署)...'));
|
||||
const deployCtx: DeployContext = { accountId, apiToken: cfApiToken, workerSubdomain, kvNamespaceIds, d1DatabaseId };
|
||||
// selfHosted: true → deploy 注入 MULTI_TENANT="false"(mcp-account-source §5.5,修 MCP 401)。
|
||||
// init.ts 這條本就是 --self-hosted 分支(config.mode 稍後寫 'self-hosted')。
|
||||
const deployCtx: DeployContext = { accountId, apiToken: cfApiToken, workerSubdomain, kvNamespaceIds, d1DatabaseId, selfHosted: true };
|
||||
const deploy = await downloadAndDeploy(deployCtx);
|
||||
const cypherUrl = deploy.cypherExecutorUrl
|
||||
?? (workerSubdomain ? `https://arcrun-cypher-executor.${workerSubdomain}.workers.dev` : '');
|
||||
|
||||
Reference in New Issue
Block a user