AdminService
Спільний модуль project-application-api для керування ProjectAdmin.
UI: не описано.
Swagger: /v2/docs у project-application-api.
Задача
Тримає frontend API для отримання, додавання й оновлення адмін панелей. Login після створення не змінюється.
Під час додавання або зміни password спочатку викликає Project Admin API відповідного проєкту. Дані зберігаються тільки після успішної перевірки на партнері.
API
Фактично реалізовані операції:
| № | Операція | Endpoint | Доступ |
|---|---|---|---|
| 1 | Список адмін панелей за проєктом | POST /v2/admins/findByProject | director, HR |
| 2 | Логіни адмін панелей за списком canonical ID | POST /v2/admins/resolveReferences | director, HR, top manager, тімлід, KM |
| 3 | Створення адмін панелі | POST /v2/admins/create | director |
| 4 | Зміна password, settings або status | POST /v2/admins/update | director |
Список повертає counts: { supervisors, operators, tu }. Поточна Golden-реалізація вже рахує тімлідів/operator зі Stack users; підрахунок TU із project_tus ще потрібно підключити перед frontend cutover.
Flow
Створення
- AdminService передає введені credentials у Project Admin API відповідного проєкту для перевірки.
- Якщо партнер повернув помилку, AdminService повертає її frontend і нічого не зберігає.
- Якщо credentials валідні, AdminService шифрує password і створює активний
ProjectAdminзdirectorIdіз access token.
Зміна password
- Новий password разом із незмінним login перевіряється через Project Admin API.
- При помилці старий password залишається без змін.
- Після успішної перевірки AdminService шифрує і зберігає новий password.
Блокування
Блокування та розблокування змінюють тільки status між active і blocked.
Межа з legacy
Після Golden cutover лише project-application-api створює та змінює адмін панелі. stack-golden не пише у golden_admins: його ще не перенесені модулі читають project_admins через типізований compatibility repository і отримують legacy-проєкцію з розшифрованим password.