30c9312c57
leo 2026-08-15:「我是說不是要用真實的資料夾套新規範做一次?」 對 matrix/arcrun/docs 的兩個節點做了真的萃取(不是模擬): · docs/ 5 篇原稿 → 5 文件卡 + 9 概念卡 + 1 主題(結構性閘) · user_requirements/ 4 篇 → 2 文件卡 + 7 概念卡 + 1 主題(讓生態自己長) 踩到並如實處理的四個邊緣案例: ① arcrun-landing-page/ 只有 .jsx/.html/.css ⇒ 依規範不是節點,不建 .wiki(index 說明有寫) ② credential_parts.md 29KB、12 個 H2,超過 20KB 分段門檻 ⇒ 只萃 §0–§2,其餘八段在文件卡上如實標明未做——一張卡蓋不住 29KB ③ wishlist.md 是「空」的第三種:指針檔(不是沒東西、不是紀錄) ⇒ 標 no_concept 不產卡。我第一版給它產了卡,wiki-lint 當場報孤島卡抓到 ④ 三個子節點未萃,在 index 標「未萃」——標出來使用者才分得出「沒東西」和「還沒做」 並依 leo 的判準拿掉 type 欄位: 「在這個類似 Logseq 的結構裡根本不分,你要想的是在寫函式時是否不同」 逐一檢查 place_card/patch_card/promote_hub/split_hub/渲染/三個信號/lint ——沒有任何函式需要類型欄位,需要的全是結構屬性(有無父/有無子/有無判斷), 而那三個都是現算的。⇒ type: hub 與 hub_kind 拿掉,wiki-lint 改成用算的。 promote_hub 因此不是改型別,是在有子的卡上補一段判斷,型別自己就變了。 實測:docs 樹 節點 2|卡片 27|卡外邊 62,十五項全 0,退出碼 0 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
---
|
||
tags: [credential, 架構]
|
||
gloss: 做四個 TinyGo/WASM primitive,每個服務只要一份 YAML recipe + 用戶自己的 secret。
|
||
created: 2026-05-25
|
||
updated: 2026-08-15
|
||
---
|
||
# 四個 primitive 不是每服務一個零件
|
||
|
||
← [[credential_parts]]
|
||
|
||
## 摘要
|
||
|
||
credential 設計的核心主張。它是三層模型:primitive(程式)/recipe(公共設定)/secret(私有)。
|
||
|
||
## 重點
|
||
|
||
- **四個 primitive** 涵蓋所有認證方式,不隨服務數量成長
|
||
- **recipe 存平台 KV(公共)、secret 存 tenant KV(私有)**,runtime 由 AuthBroker 組裝
|
||
- 它明確反對 [[n8n 的每服務一零件]]
|
||
- ⚠️ 本卡只涵蓋這份 29KB 文件的 §0–§2;`§3 四個 primitive 詳細規格`、`§4 Recipe Schema` 等**尚未分段萃取**
|
||
|
||
## 實體
|
||
|
||
- **primitive**(零件)— TinyGo/WASM 寫的認證原語,共四個。
|
||
- **recipe**(設定)— 每服務一份 YAML,存公共 KV。
|
||
- **AuthBroker**(組裝者)— runtime 把 recipe 與 secret 組成可用的 HTTP client。
|
||
|
||
## 關聯
|
||
|
||
### 內文知識關係
|
||
|
||
- primitive >> 加上 >> recipe 與 secret
|
||
- AuthBroker >> 組裝 >> 可用的 HTTP client
|
||
- recipe >> 存於 >> 公共 KV
|
||
- secret >> 存於 >> tenant KV
|
||
|
||
### 卡片關係
|
||
|
||
- 四個 primitive 不是每服務一個零件 >> 反的是 >> [[n8n 的每服務一零件]]
|
||
- 四個 primitive 不是每服務一個零件 >> 屬於 >> [[credential_parts]]
|
||
|
||
### 出處(原文 >> 提及 >> 本卡,可多筆)
|
||
|
||
- `../credential_parts.md` >> 提及 >> 四個 primitive 不是每服務一個零件
|