admin-service

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/findByProjectdirector, HR
2Логіни адмін панелей за списком canonical IDPOST /v2/admins/resolveReferencesdirector, HR, top manager, тімлід, KM
3Створення адмін панеліPOST /v2/admins/createdirector
4Зміна password, settings або statusPOST /v2/admins/updatedirector

Список повертає counts: { supervisors, operators, tu }. Поточна Golden-реалізація вже рахує тімлідів/operator зі Stack users; підрахунок TU із project_tus ще потрібно підключити перед frontend cutover.

Flow

Створення

  1. AdminService передає введені credentials у Project Admin API відповідного проєкту для перевірки.
  2. Якщо партнер повернув помилку, AdminService повертає її frontend і нічого не зберігає.
  3. Якщо credentials валідні, AdminService шифрує password і створює активний ProjectAdmin з directorId із access token.

Зміна password

  1. Новий password разом із незмінним login перевіряється через Project Admin API.
  2. При помилці старий password залишається без змін.
  3. Після успішної перевірки AdminService шифрує і зберігає новий password.

Блокування

Блокування та розблокування змінюють тільки status між active і blocked.

Межа з legacy

Після Golden cutover лише project-application-api створює та змінює адмін панелі. stack-golden не пише у golden_admins: його ще не перенесені модулі читають project_admins через типізований compatibility repository і отримують legacy-проєкцію з розшифрованим password.