雲端拿得到 youlin 那把 CF token,而且清單會自己跟機器對帳(inkstone/ISEP#115 → comment 5526)

scripts/make-cloud-env.sh 的 NEEDED 只有 1 個變數,裡面從來沒有任何 CF 憑證
——雲端 `env | grep -ciE 'cloudflare|^CF_|wrangler'` 回 0 是這麼來的,不是漏設。

- NEEDED 加 CLOUDFLARE_API_TOKEN_YOULIN_CC_USE(youlin = AI 的 stage)。
  leo21c 正式環境那 7 把(B 段)一把都沒動,理由寫在清單旁邊。
- 新增 scripts/test-make-cloud-env.sh(docs/TESTING.md A25,10 條):
  A 段用假 .env 隔離跑(證明缺值會被標紅、什麼都不寫進 repo);
  B 段拿真 .env 對帳,判準是「值出自哪個檔案」而不是名字裡有沒有某個字,
  並用一個已知住在 polaris/mira/.env 的變數自驗偵測真的會亮。
- TESTING.md B1 原本點名「加一個 GITEA_TOKEN_CLAUDE_CODE」已經過時,
  改成「① 區塊每一行都貼」。
- README/plugin.json 的 scripts 數字在自己的樹上實數:48 → 49。

值全程沒有進版控、沒有進對話(只印名字與長度)。
版本號待總管定。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-01 11:47:55 +08:00
parent 013a987688
commit ca9ea9993b
5 changed files with 201 additions and 5 deletions
+15 -1
View File
@@ -11,8 +11,22 @@ set -euo pipefail
# ── 雲端需要哪些變數(只有名字。要加就加在這裡)──────────────────
NEEDED=(
GITEA_TOKEN_CLAUDE_CODE # 機器帳號 claude-code 的 Gitea tokenbootstrap 與 plugin 安裝都靠它
GITEA_TOKEN_CLAUDE_CODE # 機器帳號 claude-code 的 Gitea tokenbootstrap 與 plugin 安裝都靠它
CLOUDFLARE_API_TOKEN_YOULIN_CC_USE # youlin AI 的 stage 實例;D37 起這把就是設計給 CC 用的
)
#
# 🔴 這份清單的邊界——加一把之前先問「這把打得到哪個實例」,不是「這把方便嗎」
# (依據:inkstone/InkStoneCo#14 comment 3890leo 2026-08-20 親自把憑證分成 AB 段)
#
# 可以進來的:雲端總管做**自己的工作**要用到的(stage、機器帳號、測試實例)。
# 🔴 不准進來的:leo21c 正式環境那一段(B 段,leo 明確選擇不放)。
# 其中 `CLOUDFLARE_API_TOKEN` / `CLOUDFLARE_ACCOUNT_ID` 這兩個**沒有名字**的,
# 值就是 leo21c 的,而且所有 CF 工具都把它們當預設 ⇒ 雲端一個沒指定帳號的
# 指令就會打到正式環境。2026-08-14 那輪審查把它列為「本輪最危險的發現」。
#
# ⚠️ youlin 沒有對應的 `CLOUDFLARE_ACCOUNT_ID_*`——六個 .env 裡都沒有這個名字。
# 要 account id 的工具請拿上面那把 token 去問 CF `/accounts`
# **不要退而求其次填那個沒有名字的 `CLOUDFLARE_ACCOUNT_ID`**(那是 leo21c)。
# ── 去哪裡找值(credentials-map.md 記的六個 .env)────────────────
BASE="${INKSTONE_ROOT:-$HOME/Documents/tech_projects/InkStoneCo}"