credential 填入形態不統一(json_blob vs 字串)→ 統一成散裝欄位+自動組裝 #6
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
問題:credential 填入形態不統一,違「單一方法」+ 攻打 low-code 用戶
現況:
auth-recipe-seeds.ts裡 google service_account 類 recipe 的required_secrets定type: json_blob(label「Service Account JSON 整份貼上/下載」),但 notion/telegram 等是單一字串。同樣「填 credential」卻兩種形態——有的填一格、有的要用戶去 GCP 下載整份 JSON 貼上。為什麼是缺陷:
.env/界面填欄位,程式讀環境變數自動組裝。private_key+client_email兩個欄位(用戶.env本就有),卻要求「上傳整份 JSON」。實測連 AI 都得寫腳本把散裝值組成 JSON 才填得進去,low-code 用戶做不到。正解:
required_secrets從json_blob改成散裝欄位(private_key/client_email,其餘如token_uri用程式預設值)。acr creds push/ credential 寫入路徑照 recipe 的required_secrets欄位定義自動組裝(該組 JSON 的組 JSON),用戶只丟.env/界面有的值。驗收:用戶只在
.env填private_key+client_email→acr creds push→ google_sheets_sa workflow 注入成功,全程無「下載/貼上 JSON 檔」步驟。呼應 arcrun 既有「外部 API 只有一條一致的路」原則(兩種寫法=bug,收斂成一條)。
擴充(leo 拍板北極星鐵律,2026-07-05):不只散裝欄位,還要 GUI/明碼檔為主
原 issue 講「json_blob → 散裝欄位」是對的,但只是最小修。leo 把層級拉到 low-code 用戶體驗,填入方法有硬優劣排序:
關鍵洞:
.env對 low-code 用戶太難——它是隱藏檔,OS 預設不顯示,用戶打開資料夾看不到、不懂怎麼叫出隱藏檔、不知道去哪填。「藏成 .env」是開發者安全直覺,對 low-code 用戶是障礙。正解(本 issue 範圍擴大):
credentials.yaml/my-secrets.yaml這種非.開頭、看得見的檔名,安全靠.gitignore擋(用戶自己電腦不外洩就夠),不靠藏成隱藏檔。驗收:low-code 用戶(不懂 CLI、不懂隱藏檔)能只靠「Mira 界面點填」或「打開一個看得見的檔案填幾個值」完成任一 credential,全程無「下載 JSON / 叫出隱藏檔 / 跑命令」。
依據:InkStoneCo D25 + 北極星「low-code 用戶入口永遠是丟網址/一句話給 AI」+「攻打 low-code 用戶」鐵律。