38 lines
1.3 KiB
Markdown
38 lines
1.3 KiB
Markdown
# memberapi.ose.tw 後端架構(公司/品牌站台/會員)
|
||
|
||
## 核心主檔(對齊 DB Schema)
|
||
- `users`:會員
|
||
- `companies`:公司
|
||
- `sites`:品牌站台(隸屬 company)
|
||
- `systems`:系統層(member/mkt/...)
|
||
- `modules`:模組(使用 `system.module` key)
|
||
|
||
## 權限模型
|
||
- 直接權限:`user_scope_permissions`
|
||
- 群組權限:`permission_groups` + `permission_group_members` + `permission_group_permissions`
|
||
- Snapshot 回傳:合併「user 直接 + group」去重
|
||
|
||
## 授權層級
|
||
- `system` 必填
|
||
- `module` 選填
|
||
- 有值:`{system}.{module}`(例:`mkt.campaign`)
|
||
- 無值:系統層權限,使用 `system.__system__`
|
||
|
||
## 主要 API
|
||
- `GET /me`
|
||
- `GET /me/permissions/snapshot`
|
||
- `POST /admin/permissions/grant|revoke`
|
||
- `GET|POST /admin/systems`
|
||
- `GET|POST /admin/modules`
|
||
- `GET|POST /admin/companies`
|
||
- `GET|POST /admin/sites`
|
||
- `GET /admin/members`
|
||
- `GET|POST /admin/permission-groups`
|
||
- `POST|DELETE /admin/permission-groups/{group_key}/members/{authentik_sub}`
|
||
- `POST /admin/permission-groups/{group_key}/permissions/grant|revoke`
|
||
- `GET /internal/systems|modules|companies|sites|members`
|
||
|
||
## DB Migration
|
||
- 初始化:`backend/scripts/init_schema.sql`
|
||
- 舊庫補齊:`backend/scripts/migrate_align_company_site_member_system.sql`
|