feat: IAM API интеграция + обновление ТЗ + тесты

- src/auth.js: fetchIamUser(), switchProfile(), userFromPayload(iamData)
- src/config.js: IAM_API_URL из env
- src/routes/oidc.js: обогащение сессии через IAM (с fallback на JWT)
- ui/routes/auth.js: обогащение при токен-логине
- ui/routes/entries.js: switchTo через POST /switch-profile
- src/api/routes/entries.js: resolveCompany через profiles[]
- views/index.ejs: переключатель компаний с названиями из profiles
- .env.example: IAM_API_URL
- docs: обновлены ТЗ-реализация.md, ТЗ-плюс.md, добавлен iam-integration.md
- tests: api-crud.sh (14 тестов CRUD + валидации)
- .gitignore: исключены .env.test, DEPLOY-TESTING.md
This commit is contained in:
2026-06-04 13:53:44 +03:00
parent 878e46287b
commit a8a07fe019
15 changed files with 1404 additions and 164 deletions
+5
View File
@@ -22,6 +22,11 @@ PORT=3001
# ── Администратор (clientId) ──
ADMIN_CLIENT_ID=WZ01112
# ── IAM API (сервис авторизации Nubes) ──
# Используется для получения списка компаний пользователя (GET /api/v1/auth/user)
# и переключения активной компании (POST /api/v1/user/switch-profile).
IAM_API_URL=https://auth-api.ngcloud.ru
# ── Keycloak / OIDC (ЗАПОЛНИТЬ при DEV_MODE=false) ──
# KC_CLIENT_ID= # ID зарегистрированного OIDC-клиента в Keycloak
# KC_CLIENT_SECRET= # секрет клиента