Files
member-platform/docs/BACKEND_ARCHITECTURE.md

53 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# memberapi.ose.tw 後端架構(公司/品牌站台/會員 + 系統/模組權限)
## 資料層級
- 業務層級:`companies -> sites -> users`
- 功能層級:`systems -> modules`
- 授權掛載點:
- Scope`company``site`
- 能力:`system` 必填,`module` 選填(空值代表系統層)
## 權限模型
- 直接授權:`user_scope_permissions`
- 群組授權:`permission_groups` + `permission_group_members` + `permission_group_permissions`
- 權限快照:`/me/permissions/snapshot` 會合併「直接 + 群組」並去重
## 目前後端 API管理面
- 主資料:
- `GET|POST|PATCH /admin/systems`
- `GET|POST|PATCH /admin/modules`
- `GET|POST|PATCH /admin/companies`
- `GET|POST|PATCH /admin/sites`
- 會員:
- `GET /admin/members`
- `POST /admin/members/upsert`
- `PATCH /admin/members/{authentik_sub}`
- 會員群組(改由會員頁管理):
- `GET /admin/members/{authentik_sub}/permission-groups`
- `PUT /admin/members/{authentik_sub}/permission-groups`
- 群組:
- `GET|POST|PATCH /admin/permission-groups`
- `GET /admin/permission-groups/{group_key}/permissions`
- `POST /admin/permission-groups/{group_key}/permissions/grant`
- `POST /admin/permission-groups/{group_key}/permissions/revoke`
- 直接授權:
- `POST /admin/permissions/grant`
- `POST /admin/permissions/revoke`
- `GET /admin/permissions/direct`
- `DELETE /admin/permissions/direct/{permission_id}`
## 驗證與查詢 API
- 使用者端:
- `GET /me`
- `GET /me/permissions/snapshot`
- OIDC
- `GET /auth/oidc/url`
- `POST /auth/oidc/exchange`
- Internal跨系統查詢
- `GET /internal/systems|modules|companies|sites|members`
- `GET /internal/permissions/{authentik_sub}/snapshot`
## DB 與初始化
- 統一 schema`backend/scripts/init_schema.sql`
- schema 快照:`docs/DB_SCHEMA_SNAPSHOT.md`