Expose PUT /api/service/project-members for external apps that authenticate with only the API key, reusing portal validation while keeping acting-based writes unchanged. Co-authored-by: Cursor <cursoragent@cursor.com>
2.0 KiB
2.0 KiB
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-поток не затрагиваются