refactor: rename idp fields to provider naming
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
- `company_key` TEXT NOT NULL UNIQUE
|
||||
- `display_name` TEXT NOT NULL
|
||||
- `legal_name` TEXT
|
||||
- `idp_group_id` TEXT
|
||||
- `provider_group_id` TEXT
|
||||
- `status` VARCHAR(16) NOT NULL default `'active'`
|
||||
- `created_at` TIMESTAMPTZ NOT NULL default `now()`
|
||||
- `updated_at` TIMESTAMPTZ NOT NULL default `now()`
|
||||
@@ -19,7 +19,7 @@
|
||||
- `company_id` UUID NOT NULL FK -> `companies(id)` ON DELETE CASCADE
|
||||
- `display_name` TEXT NOT NULL
|
||||
- `domain` TEXT
|
||||
- `idp_group_id` TEXT
|
||||
- `provider_group_id` TEXT
|
||||
- `status` VARCHAR(16) NOT NULL default `'active'`
|
||||
- `created_at` TIMESTAMPTZ NOT NULL default `now()`
|
||||
- `updated_at` TIMESTAMPTZ NOT NULL default `now()`
|
||||
@@ -28,7 +28,7 @@
|
||||
- `id` UUID PK default `gen_random_uuid()`
|
||||
- `system_key` TEXT NOT NULL UNIQUE
|
||||
- `name` TEXT NOT NULL
|
||||
- `idp_client_id` TEXT NOT NULL UNIQUE
|
||||
- `provider_client_id` TEXT NOT NULL UNIQUE
|
||||
- `status` VARCHAR(16) NOT NULL default `'active'`
|
||||
- `created_at` TIMESTAMPTZ NOT NULL default `now()`
|
||||
- `updated_at` TIMESTAMPTZ NOT NULL default `now()`
|
||||
@@ -39,11 +39,11 @@
|
||||
- `system_id` UUID NOT NULL FK -> `systems(id)` ON DELETE CASCADE
|
||||
- `name` TEXT NOT NULL
|
||||
- `description` TEXT
|
||||
- `idp_role_name` TEXT NOT NULL
|
||||
- `provider_role_name` TEXT NOT NULL
|
||||
- `status` VARCHAR(16) NOT NULL default `'active'`
|
||||
- `created_at` TIMESTAMPTZ NOT NULL default `now()`
|
||||
- `updated_at` TIMESTAMPTZ NOT NULL default `now()`
|
||||
- UNIQUE(`system_id`, `idp_role_name`)
|
||||
- UNIQUE(`system_id`, `provider_role_name`)
|
||||
|
||||
## 5) site_roles
|
||||
- `id` UUID PK default `gen_random_uuid()`
|
||||
@@ -55,7 +55,7 @@
|
||||
## 6) users
|
||||
- `id` UUID PK default `gen_random_uuid()`
|
||||
- `user_sub` TEXT NOT NULL UNIQUE
|
||||
- `idp_user_id` TEXT UNIQUE
|
||||
- `provider_user_id` TEXT UNIQUE
|
||||
- `username` TEXT UNIQUE
|
||||
- `email` TEXT UNIQUE
|
||||
- `display_name` TEXT
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
- 此站台包含的 `users`
|
||||
|
||||
3. 系統管理(唯讀 + 同步)
|
||||
- 欄位:`system_key`, `name`, `idp_client_id`, `status`
|
||||
- 欄位:`system_key`, `name`, `provider_client_id`, `status`
|
||||
- 系統詳情需顯示底下 `roles` 列表
|
||||
- 建立/修改/刪除在 Keycloak 處理,member 後台提供「同步 Keycloak」按鈕
|
||||
|
||||
4. 角色管理(DB 關聯為主)
|
||||
- 欄位:`role_key`, `system_key`, `name`, `description`, `idp_role_name`, `status`
|
||||
- 欄位:`role_key`, `system_key`, `name`, `description`, `provider_role_name`, `status`
|
||||
- 關聯操作:指派到 Site(新增/刪除 `site_roles`)
|
||||
|
||||
5. 會員管理(CRUD)
|
||||
|
||||
@@ -22,8 +22,9 @@
|
||||
6. `POST /internal/users/upsert-by-sub`
|
||||
7. `GET /internal/users/{user_sub}/roles`
|
||||
8. `GET /internal/permissions/{user_sub}/snapshot`(相容路徑,回 role 聚合資料)
|
||||
9. `POST /internal/idp/users/ensure`
|
||||
10. `POST /internal/keycloak/users/ensure`
|
||||
9. `POST /internal/provider/users/ensure`
|
||||
10. `POST /internal/idp/users/ensure`(舊路徑相容,不建議新串接使用)
|
||||
11. `POST /internal/keycloak/users/ensure`(舊路徑相容,不建議新串接使用)
|
||||
|
||||
## 角色聚合回應(`GET /internal/users/{user_sub}/roles`)
|
||||
```json
|
||||
@@ -39,7 +40,7 @@
|
||||
"system_name": "Marketing",
|
||||
"role_key": "RL20260402X0002",
|
||||
"role_name": "campaign_edit",
|
||||
"idp_role_name": "campaign_edit"
|
||||
"provider_role_name": "campaign_edit"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ npm run dev
|
||||
2. 前端按「前往 Keycloak 登入」應可成功導轉與回跳。
|
||||
3. `GET /me` 登入後應有資料。
|
||||
4. 非 admin 群組帳號打 `/admin/*` 應為 403。
|
||||
5. `POST /admin/sync/from-keycloak?force=true` 可手動觸發全量補齊同步。
|
||||
5. `POST /admin/sync/from-provider?force=true` 可手動觸發全量補齊同步。
|
||||
|
||||
## 6) 新模型驗收路徑
|
||||
1. 新增 Company、Site。
|
||||
|
||||
Reference in New Issue
Block a user