project-admin

ProjectAdmin

Collection project_admins — canonical-документ адмін панелей партнерських сайтів для всіх проєктів. Поточна schema та unique index оголошені в @it-monkeys/backend-common.

Поля

  • directorId — ID директора з access token, який додав адмін панель.
  • project — проєкт, до якого належить адмін панель (Golden,Chathouse…)
  • login — login адмін панелі, збережений як string. Адаптер проєкту перетворює його на id_api, email або secret_id.
  • passwordEncrypted — зашифрований password; не входить у звичайні read projections.
  • status — active, blocked.
  • partnerIds — ідентифікатори, отримані після перевірки адмін панелі на партнері: Golden idApi, Udate ulid і legacyId.
  • settings — додаткові поля конкретного проєкту, валідовані його schema.
  • validatedAt — час останньої успішної перевірки credentials.
  • createdAt / updatedAt — час створення й останньої зміни документа.

Відмінності проєктів

ПроєктLogin у partner APIPassword у partner APIДодаткові поля
Goldenid_apipasswordчисловий idApi у partnerIds
PrimeemailpasswordcandidateSourceType у settings
Chathousesecret_idsecret_key—
Udateemailpasswordulid, legacyId у partnerIds

Ідентифікатори

НазваЩо означає
projectAdminIdProjectAdmin.id із collection project_admins. Усі нові зв’язки з адмін панеллю використовують тільки його.
adminLoginLogin адмін панелі на партнері. В ProjectAdmin зберігається як login; Golden id_api конвертується у string.

Поточні поля не мають одного змісту:

ПроєктLegacy-полеПоточне значення
Goldengolden_admin, adminId_apiPartner id_api, number
Primeprime_adminMongo ID із prime_admin, string
ChathouseadminMongo ID із chathouse_admins, string
Udateudate_adminMongo ID із udate_admin, string
Client manageradmins[]Змішаний legacy ID залежно від проєкту

Legacy-поля не додаємо в canonical document. Під час backfill зберігаємо старий Mongo _id, де це можливо; Golden migration уже зберігає _id із golden_admins. Legacy-код отримує стару форму { id_api, password, isBlocked } через compatibility repository, який читає project_admins, розшифровує password і виконує явне перетворення.

Заповнити

  • Визначити правила вибірки адмін панелей для майбутньої ролі з глобальним доступом.
  • Залишити unique index { project, login }.
  • Затвердити validation schema для settings кожного проєкту.