DiiaTools

Мій аналіз трішки перейшов межі банального гіст, тому треба вже писати багато тексту, щоб ті хто не слідкували за процесом аналізу, мали змогу подивитися на те що є у більш прийнятному форматі. Через те що я так само як і ви зовнішня людина, якась інформація на цьому це мої спекуляції, тому вживайте на свій розсуд.

Що зараз є

Сервіси

OpenAPI

GRPC

Опис архітектури

дуже поверхнево, і я ще викладені сервіси не аналізував детально, тому велика імовірність що я десь провтикаю глобально.

те що виклано це лише шлюз для доступу до самих реестрів + система авторизації + зберігання інформаціі для праці. усі команди від фронта у вигляді мобільних апок кладуться на шину поверх Кроліка. далі переважно Дія нічого глобального не робить, а лише передає запити у правильному форматі на шину які достаавляють до реестрів.

Монга для зберігання локальних даних (ще не знаю що саме там зберігається, треба час щоб щось прийнятне витягти) Аутентіфікація там якесь незрозуміле кубло, я буду тягти до останнього поки норм, бо я не спеціалізуюся на безпеці, і мені буде складно аналізувати що там таке.

процеси і події із шини задокументовані, і що цікаво є якісь великі коди процесні, що вказує на те що є якийсь над великий документ де усі держ процеси можливо задокументовані.

Спостереження

  1. Клієнти, для яких немає ісходного коду, згенеровані якоюсь іншою версію genproto ніж та що у опенсурсі або із іншою версією пакету types. Є дрібні відмінності, які мабуть світчами не зробиш. можливо це залежить від версії ts-proto або protoc, не знаю.
  2. Не зовсім безпека, але потенційні операційні проблеми колись
    • https://github.com/diia-open-source/be-auth-service/blob/4c7e8500780694b9778656def29a82273fc55ffb/src/config.ts#L217
    • https://github.com/diia-open-source/be-auth-service/blob/4c7e8500780694b9778656def29a82273fc55ffb/src/config.ts#L330-L333
  3. Якщо колись Дія впаде і БанкІд буде фігово працювати то система авторізаціі може не стартувати
  4. Також сервіси падають через раз якщо звʼязок із монгами/релізами відлітає Через те що середовище майже гарантоване у Кубернетіс, і те що у коді є healthchecks, то це не так критично.