portal-auth P2(#24 #25):portal_user 模型+認證 API(不 merge,待總管審) (#51)

This commit was merged in pull request #51.
This commit is contained in:
Leo
2026-07-14 04:19:54 +00:00
parent 7f409646e5
commit 1260d8cffb
11 changed files with 1372 additions and 14 deletions
+38
View File
@@ -0,0 +1,38 @@
/**
* Portal KBDB template 種子資料(portal-auth design §2.1/§3.2Gitea #24/#25 P2
*
* 種子資料檔慣例(rule 07 §1 / pre-write-guard *-seeds.ts 類別):
* 「裝好後預設有哪些 template」是 API 的能力,資料宣告放 server(本檔),
* 由 /init/seed(與 /portal/admin/bootstrap 的 ensure 路徑)冪等灌入 KBDB。
* 薄殼(CLI/MCP)不自帶這份清單。
*
* 零新表鐵律:這些是 KBDB 萬用表的 template(虛擬表定義),不是 D1 真表。
* 帳號「資料」(records/entries)一律寫 `{CONSOLE_TENANT}::portal` 子 namespace
* design D-2);template 定義本身是全域 schematemplates 表無 owner 概念)。
*/
export interface PortalTemplateSeed {
name: string;
description: string;
slots: string[];
created_by: 'system';
}
export const PORTAL_TEMPLATE_SEEDS: PortalTemplateSeed[] = [
{
// design §2.1portal 同仁帳號。password_hash 存 KDF 輸出(pbkdf2-sha256$…,D-6),
// 永不存明碼;libraries 是 JSON array 字串(["general"] / ["*"]=全庫)。
name: 'portal_user',
description: 'RAG Portal 同仁帳號(portal-auth §2.1;資料寫 {tenant}::portal 子 namespace',
slots: ['email', 'display_name', 'status', 'role', 'password_hash', 'libraries', 'created_at', 'updated_at'],
created_by: 'system',
},
{
// design §3.2:庫目錄(admin 頁列庫用)。庫本體=知識條目 metadata_json.$.library 標記,
// 這裡只是「有哪些庫」的登記簿。
name: 'portal_library',
description: 'RAG Portal 庫目錄登記(portal-auth §3.2;庫=metadata_json.$.library 標記)',
slots: ['name', 'display_name', 'description', 'status'],
created_by: 'system',
},
];