v0.5.154: fix приоритет IAM_API_URL, docs/IAM-ENV.md
This commit is contained in:
@@ -0,0 +1,65 @@
|
|||||||
|
# IAM — переменные окружения
|
||||||
|
|
||||||
|
> Дата: 2026-06-17
|
||||||
|
> Путь: `src/config.js`, `v2/src/config/index.js`
|
||||||
|
|
||||||
|
## IAM_API_URL (основная, приоритет выше)
|
||||||
|
|
||||||
|
**Где используется:** `src/config.js` → `src/auth.js` (fetchIamUser, switchProfile)
|
||||||
|
|
||||||
|
**Формат:** `https://auth-api.ngcloud.ru` (без /api/v1)
|
||||||
|
|
||||||
|
Код добавляет `/api/v1/auth/user` автоматически.
|
||||||
|
|
||||||
|
**Назначение:** получение профилей пользователя, переключение компании.
|
||||||
|
|
||||||
|
**Дефолт:** `https://auth-api.ngcloud.ru`
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- IAM_API_URL=https://auth-api.ngcloud.ru
|
||||||
|
- Фактический путь: https://auth-api.ngcloud.ru/api/v1/auth/user
|
||||||
|
|
||||||
|
## IAM_API_BASE (запасная, приоритет ниже)
|
||||||
|
|
||||||
|
**Где используется:** `v2/src/config/index.js` → `v2/server.js` (тестовые страницы)
|
||||||
|
|
||||||
|
**Формат:** `https://lk-api-gateway.ngcloud.ru/api/v1/iam`
|
||||||
|
|
||||||
|
Код НЕ добавляет /api/v1, путь должен быть полный.
|
||||||
|
|
||||||
|
**Назначение:** тестовые страницы (/v2/iam-gateway-test), заглушка пока IAM не починят.
|
||||||
|
|
||||||
|
**Дефолт:** берётся из IAM_API_URL
|
||||||
|
|
||||||
|
**Пример:**
|
||||||
|
- IAM_API_BASE=https://lk-api-gateway.ngcloud.ru/api/v1/iam
|
||||||
|
- Фактический путь: https://lk-api-gateway.ngcloud.ru/api/v1/iam/auth/user
|
||||||
|
|
||||||
|
## Приоритет в src/config.js
|
||||||
|
|
||||||
|
```
|
||||||
|
process.env.IAM_API_URL || process.env.IAM_API_BASE || 'https://auth-api.ngcloud.ru'
|
||||||
|
```
|
||||||
|
|
||||||
|
1. IAM_API_URL — явно задан (auth-api)
|
||||||
|
2. IAM_API_BASE — запасной (lk-api-gateway)
|
||||||
|
3. Дефолт — auth-api.ngcloud.ru
|
||||||
|
|
||||||
|
## Когда что использовать
|
||||||
|
|
||||||
|
| Ситуация | Какая переменная | Какой API |
|
||||||
|
|----------|-----------------|-----------|
|
||||||
|
| Обычная работа (логин, CRUD, компании) | IAM_API_URL | auth-api.ngcloud.ru |
|
||||||
|
| Имперсонация (админ работает от имени юзера) | IAM_API_BASE | lk-api-gateway.ngcloud.ru |
|
||||||
|
| Когда IAM починят | IAM_API_URL | auth-api.ngcloud.ru (везде) |
|
||||||
|
|
||||||
|
## Текущий статус
|
||||||
|
|
||||||
|
- auth-api.ngcloud.ru — не отдаёт profiles таргета при имперсонации (баг разработчиков IAM)
|
||||||
|
- lk-api-gateway.ngcloud.ru — работает, отдаёт profiles таргета, НО не принимает токен от Keycloak whitelist (только от ЛК)
|
||||||
|
- Когда IAM починят: удалить IAM_API_BASE из кода и Nubes UI, оставить только IAM_API_URL
|
||||||
|
|
||||||
|
## Nubes UI (текущие переменные)
|
||||||
|
|
||||||
|
- IAM_API_URL=https://auth-api.ngcloud.ru
|
||||||
|
- IAM_API_BASE=https://lk-api-gateway.ngcloud.ru/api/v1/iam
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ipwhitelist",
|
"name": "ipwhitelist",
|
||||||
"version": "0.5.153",
|
"version": "0.5.154",
|
||||||
"description": "IP WhiteList microservice for cloud provider",
|
"description": "IP WhiteList microservice for cloud provider",
|
||||||
"main": "server.js",
|
"main": "server.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
+2
-2
@@ -13,7 +13,7 @@
|
|||||||
// ── IAM API ───────────────────────────────────────────────────────────────────
|
// ── IAM API ───────────────────────────────────────────────────────────────────
|
||||||
// URL IAM-сервиса для получения профилей пользователя (GET /api/v1/auth/user)
|
// URL IAM-сервиса для получения профилей пользователя (GET /api/v1/auth/user)
|
||||||
// и переключения активной компании (POST /api/v1/user/switch-profile).
|
// и переключения активной компании (POST /api/v1/user/switch-profile).
|
||||||
const IAM_API_URL = (process.env.IAM_API_BASE || process.env.IAM_API_URL || 'https://auth-api.ngcloud.ru').replace(/\/$/, '');
|
const IAM_API_URL = (process.env.IAM_API_URL || process.env.IAM_API_BASE || 'https://auth-api.ngcloud.ru').replace(/\/$/, '');
|
||||||
|
|
||||||
// ── Мок-пользователи (только dev/staging) ─────────────────────────────────────
|
// ── Мок-пользователи (только dev/staging) ─────────────────────────────────────
|
||||||
// В продакшене этот список не используется — вход через Keycloak.
|
// В продакшене этот список не используется — вход через Keycloak.
|
||||||
@@ -94,4 +94,4 @@ function backUrl(isAdmin, companyId, extra = {}) {
|
|||||||
// Передаётся в шаблоны через app.locals чтобы отображаться в UI.
|
// Передаётся в шаблоны через app.locals чтобы отображаться в UI.
|
||||||
const { version: APP_VERSION } = require('../package.json');
|
const { version: APP_VERSION } = require('../package.json');
|
||||||
|
|
||||||
module.exports = { MOCK_USERS, backUrl, APP_VERSION, IAM_API_URL: (process.env.IAM_API_BASE || process.env.IAM_API_URL || 'https://auth-api.ngcloud.ru').replace(/\/$/, '') };
|
module.exports = { MOCK_USERS, backUrl, APP_VERSION, IAM_API_URL: (process.env.IAM_API_URL || process.env.IAM_API_BASE || 'https://auth-api.ngcloud.ru').replace(/\/$/, '') };
|
||||||
|
|||||||
Reference in New Issue
Block a user