UI Gateway
BFF (Backend for Frontend) — API Gateway для Angular UI. Объединяет все downstream API в один endpoint, управляет WebSocket-соединениями, обрабатывает presigned URL для MinIO. Порт: 3000 .
Назначение
Единая точка входа для браузера. Проксирует запросы к нужным микросервисам, управляет аутентификацией сессий. При auth=false включает DEV_MODE (без логина). При auth=true валидирует JWT-токен Keycloak.
Зависимости
Входящие
Источник
Протокол
Назначение
Браузер
HTTP/WebSocket
UI API
genai-gateway
—
HTTPRoute → ui-gateway:3000
Исходящие
Сервис
K8s Service
Порт
model-mgmt
model-mgmt
8000
scan-profile
scan-profile
8000
orchestrator
orchestrator
8000
jailbreak
jailbreak-api
8000
asr
asr-api
8000
cv
cv-api
8000
results
results
8002
auth-service
auth-service
8000
license-service
license-service
8000
minio (внутренний)
minio
9000
Values
Параметр
По умолчанию
Обязателен
Описание
image.name
—
да
registry.appsec.global/appsecgenai-release/ui-gateway
image.tag
—
да
Версия образа
imagePullSecrets[0].name
—
да
imagePullSecret
env.AUTH_ENABLED
"true"
нет
"false" в dev/smoke
env.DEV_MODE
—
при auth=false
"true" отключает проверку токенов
env.CORS_ORIGIN
авто из global
нет
"*" в dev; https://app.example.com в prod
env.S3_PUBLIC_URL
авто из global.minioPublicUrl
да
Публичный URL MinIO для presigned URL
env.KEYCLOAK_URL
авто из global
при auth=true
URL Keycloak realm
env.KEYCLOAK_REALM
"appsec-genai"
нет
env.OTEL_SDK_DISABLED
—
нет
"true" если нет otel-collector
global.domain
—
да
Домен (используется для CORS и KEYCLOAK_URL)
global.publicScheme
"https"
нет
global.minioPublicUrl
—
да
Публичный URL MinIO (для браузера)
global.url.modelManagementUrl
{svc: model-mgmt, port: 8000}
нет
global.url.scanOrchestratorUrl
{svc: orchestrator, port: 8000}
нет
global.url.scanProfileUrl
{svc: scan-profile, port: 8000}
нет
global.url.cvAdversarialUrl
{svc: cv-api, port: 8000}
нет
global.url.asrAdversarialUrl
{svc: asr-api, port: 8000}
нет
global.url.resultsServiceUrl
{svc: results, port: 8002}
нет
Порт 8002
global.url.jailbreakServiceUrl
{svc: jailbreak-api, port: 8000}
нет
global.url.authServiceUrl
{svc: auth-service, port: 8000}
нет
global.url.licenseServiceUrl
{svc: license-service, port: 8000}
нет
global.url.s3InternalUrl
{svc: minio, port: 9000, scheme: http}
нет
Внутренний URL MinIO
Пример values.yaml
auth=false (dev/smoke) auth=true (production)
# values-ui-gateway.yaml
image :
name : registry.appsec.global/appsecgenai-release/ui-gateway
tag : "<VERSION>"
imagePullSecrets :
- name : harbor-cr
env :
NODE_ENV : "production"
AUTH_ENABLED : "false"
DEV_MODE : "true"
CORS_ORIGIN : "*"
OTEL_SDK_DISABLED : "true"
S3_PUBLIC_URL : "http://minio.app.example.com"
global :
domain : "app.example.com"
publicScheme : "http"
minioPublicUrl : "http://minio.app.example.com"
url :
modelManagementUrl : { svc : model-mgmt , port : 8000 }
scanOrchestratorUrl : { svc : orchestrator , port : 8000 }
scanProfileUrl : { svc : scan-profile , port : 8000 }
cvAdversarialUrl : { svc : cv-api , port : 8000 }
asrAdversarialUrl : { svc : asr-api , port : 8000 }
resultsServiceUrl : { svc : results , port : 8002 }
jailbreakServiceUrl : { svc : jailbreak-api , port : 8000 }
authServiceUrl : { svc : auth-service , port : 8000 }
licenseServiceUrl : { svc : license-service , port : 8000 }
s3InternalUrl : { svc : minio , port : 9000 , scheme : http }
# values-ui-gateway.yaml
image :
name : registry.appsec.global/appsecgenai-release/ui-gateway
tag : "<VERSION>"
imagePullSecrets :
- name : harbor-cr
env :
NODE_ENV : "production"
AUTH_ENABLED : "true"
OTEL_SDK_DISABLED : "true"
S3_PUBLIC_URL : "https://minio.app.example.com"
KEYCLOAK_URL : "https://keycloak.app.example.com/realms/appsec-genai"
global :
domain : "app.example.com"
publicScheme : "https"
minioPublicUrl : "https://minio.app.example.com"
url :
modelManagementUrl : { svc : model-mgmt , port : 8000 }
scanOrchestratorUrl : { svc : orchestrator , port : 8000 }
scanProfileUrl : { svc : scan-profile , port : 8000 }
cvAdversarialUrl : { svc : cv-api , port : 8000 }
asrAdversarialUrl : { svc : asr-api , port : 8000 }
resultsServiceUrl : { svc : results , port : 8002 }
jailbreakServiceUrl : { svc : jailbreak-api , port : 8000 }
authServiceUrl : { svc : auth-service , port : 8000 }
licenseServiceUrl : { svc : license-service , port : 8000 }
s3InternalUrl : { svc : minio , port : 9000 , scheme : http }
Установка
helm upgrade --install ui-gateway \
oci://registry.appsec.global/appsecgenai-release/charts/ui-gateway \
--version <VERSION> -n genai \
--wait \
-f values-ui-gateway.yaml