feat: connect workspace access lifecycle to admin api

This commit is contained in:
a.tolmachev
2026-03-31 09:12:42 +03:00
parent 3065b3100b
commit cb23f1eb96
12 changed files with 551 additions and 31 deletions
+9 -1
View File
@@ -51,15 +51,23 @@
- `POST /api/admin/workspaces`
- `GET /api/admin/workspaces/{workspace_id}`
- `PATCH /api/admin/workspaces/{workspace_id}`
- `DELETE /api/admin/workspaces/{workspace_id}`
- `GET /api/admin/workspaces/{workspace_id}/members`
- `PATCH /api/admin/workspaces/{workspace_id}/members/{user_id}`
- `DELETE /api/admin/workspaces/{workspace_id}/members/{user_id}`
- `GET /api/admin/workspaces/{workspace_id}/invitations`
- `POST /api/admin/workspaces/{workspace_id}/invitations`
- `DELETE /api/admin/workspaces/{workspace_id}/invitations/{invitation_id}`
- `GET /api/admin/workspaces/{workspace_id}/export`
Контракт:
- `POST /invitations` возвращает metadata invitation и одноразовый `invite_token`;
- `invite_token` доступен только в create-response и не возвращается повторно в list endpoints.
- `invite_token` доступен только в create-response и не возвращается повторно в list endpoints;
- `PATCH /members/{user_id}` меняет роль участника;
- `DELETE /members/{user_id}` удаляет участника из workspace;
- `GET /export` возвращает JSON snapshot workspace lifecycle-данных;
- `DELETE /workspaces/{workspace_id}` разрешен только `owner`.
### 5.2. Auth and session
+9 -5
View File
@@ -302,27 +302,31 @@ UI-файлы:
- `GET /api/admin/workspaces/{workspace_id}`
- `PATCH /api/admin/workspaces/{workspace_id}`
- `GET /api/admin/workspaces/{workspace_id}/members`
- `PATCH /api/admin/workspaces/{workspace_id}/members/{user_id}`
- `DELETE /api/admin/workspaces/{workspace_id}/members/{user_id}`
- `GET /api/admin/workspaces/{workspace_id}/invitations`
- `POST /api/admin/workspaces/{workspace_id}/invitations`
- `DELETE /api/admin/workspaces/{workspace_id}/invitations/{invitation_id}`
- `GET /api/admin/workspaces/{workspace_id}/export`
- `DELETE /api/admin/workspaces/{workspace_id}`
Что еще не хватает:
- `switch current workspace` все еще живет на клиенте, а не в session/backend;
- endpoint на удаление участника или изменение роли, если UI хочет это поддерживать;
- delete/export workspace lifecycle пока не реализован на backend
- session-aware current workspace model;
- finer-grained permission matrix beyond current `owner/admin` management rules.
Отдельный конфликт:
- current workspace по-прежнему client-side;
- memberships и invitations уже live, но role-management пока read-only;
- memberships, role-management и invitations уже live;
- `settings` page не должна дублировать этот flow, пока у нее нет своего backend-контракта
Простой итог:
- `workspace-setup` уже подключен к live backend;
- create/edit workspace, refresh списка workspace и invitations работают;
- role management и workspace deletion остаются отдельным следующим этапом.
- create/edit workspace, memberships, invitations, export и delete работают;
- текущий workspace все еще остается client-side моделью.
### 4.8. Settings