From c4bb86f2fc6544260d6bb6f90503551cc641ffb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Sun, 31 May 2026 13:33:18 +0300 Subject: [PATCH] =?UTF-8?q?chore:=20=D1=81=D0=BA=D1=80=D1=8B=D1=82=D1=8C?= =?UTF-8?q?=20=D0=B2=D0=BD=D1=83=D1=82=D1=80=D0=B5=D0=BD=D0=BD=D1=8E=D1=8E?= =?UTF-8?q?=20=D0=B0=D0=BD=D0=B0=D0=BB=D0=B8=D1=82=D0=B8=D0=BA=D1=83=20?= =?UTF-8?q?=D0=B8=D0=B7=20=D0=BF=D1=83=D0=B1=D0=BB=D0=B8=D1=87=D0=BD=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D1=80=D0=B5=D0=BF=D0=BE=20(.gitignore)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 8 ++++++++ docs/questions-devops.md | 42 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 docs/questions-devops.md diff --git a/.gitignore b/.gitignore index c3bf464..3e6baae 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,11 @@ __pycache__/ .vscode/ .idea/ Files/nubes_login.har + +# Внутренняя аналитика — не для публичного доступа +PROJECT-AUDIT.md +AGENT-DIAGNOSIS.md +CONTEXT.md + +# Результаты тестов — генерируются при прогоне +test-results/ diff --git a/docs/questions-devops.md b/docs/questions-devops.md new file mode 100644 index 0000000..b32d209 --- /dev/null +++ b/docs/questions-devops.md @@ -0,0 +1,42 @@ +# Вопросы девопсам — IPWhiteList + +## 1. Аутентификация (OIDC/Keycloak) + +**Как выглядит токен когда пользователь принадлежит нескольким компаниям?** +В ТЗ п. 3.1 сказано «поддерживается сценарий когда пользователь принадлежит нескольким компаниям». В текущем токене один `ClientID = WZ01325`. Если компаний несколько — это массив? Отдельный claim? Или всегда разные учётки? + +**Какие claims реально приходят в токене?** +Мы видели в HAR-файле: `ClientID`, `company_id`, `company_name`, `email`, `login`, `groups: null`, `realm_access.roles: null`. Это окончательный список? `groups` всегда `null` или при каких-то условиях заполняется? + +**Как определяется роль администратора?** +Сейчас проверяем `clientId === ADMIN_CLIENT_ID (WZ01112)`. В ТЗ написано «и отдельный чек-бокс». Это флаг/роль `admin` в Keycloak? В каком claim? + +**JWKS URL для прода?** +Для dev генерим RSA-пару локально. Для прода: это `https://keycloak.nubes.ru/realms/cloud/protocol/openid-connect/certs` или другой? + +**Redirect URI для Keycloak?** +Нужно зарегистрировать `https://white.nodejsk8s.dev.nubes.ru/callback` как redirect_uri? + +## 2. Развёртывание Node.js + +**Почему Node.js не деплоится?** +PostgreSQL развернулся, Node.js — «нет ресурсов для аллоцирования». Это ограничение платформы? Другой тип ресурсной группы? + +**Формат `jsonEnv`?** +Поле `jsonEnv` ругается «Invalid JSON String». Какой точный формат? + +**Переменные для прода:** +- `NODE_ENV=production` +- `KC_CLIENT_ID` + `KC_CLIENT_SECRET` +- `SESSION_SECRET` — случайная строка +- `DATABASE_URL` — строка подключения + +Всё через jsonEnv или иначе? + +## 3. Сеть + +**Кто потребитель `/export`?** +По ТЗ — без авторизации, ограничение по IP. Какие IP/подсети? + +**Ingress/CSP:** +На проде не работают inline onclick/onchange. Ingress добавляет CSP? Можно ослабить или делать на event delegation?