26 lines
2.0 KiB
Markdown
26 lines
2.0 KiB
Markdown
|
|
## Why
|
|||
|
|
|
|||
|
|
Внешние приложения должны заводить уже существующего сотрудника Merakomis в конкретный проект с разделом и ролью, но текущий `PUT /api/project-members` требует `X-Acting-Emp-Id` и портальные права `isRwMember`. Service-to-service интеграция с одним API-ключом не может выполнить эту операцию.
|
|||
|
|
|
|||
|
|
## What Changes
|
|||
|
|
|
|||
|
|
- Добавить отдельный service-эндпоинт `PUT /api/service/project-members` для upsert участника команды проекта.
|
|||
|
|
- Авторизация только по API-ключу (`X-Api-Key` / Bearer); **без** `X-Acting-Emp-Id` и без проверки `Rules::isRwMember`.
|
|||
|
|
- Тело и валидации как у существующего `PUT /api/project-members`: `project_id`, `emp_id`, `section_id`, `role`, опционально `active` и `text`.
|
|||
|
|
- Существующий `PUT /api/project-members` (с acting) **не меняется**.
|
|||
|
|
- Обновить документацию API (`docs/user-reader-api.md`, при необходимости `DEVELOPERS.md`).
|
|||
|
|
|
|||
|
|
## Capabilities
|
|||
|
|
|
|||
|
|
### New Capabilities
|
|||
|
|
- `service-project-members`: service-to-service запись участника проекта (upsert TeamMember) только по API-ключу
|
|||
|
|
|
|||
|
|
### Modified Capabilities
|
|||
|
|
|
|||
|
|
## Impact
|
|||
|
|
|
|||
|
|
- Код: `services/user-reader` — новый роут (или расширение write-модуля), переиспользование `validate_member_write` / `upsert_team_member`
|
|||
|
|
- API: новый путь `/api/service/project-members`; матрица доступа в docs
|
|||
|
|
- Безопасность: доверие к владельцу API-ключа (полный write состава без impersonation)
|
|||
|
|
- Клиенты: внешние приложения; портальный UI и acting-поток не затрагиваются
|