Конфигурация микросервисов¶
Каждый микросервис платформы конфигурируется через переменные окружения, задаваемые в файле docker-compose.yml. В этом разделе приведены полные таблицы переменных для каждого сервиса.
Общий принцип
Переменные, использующие синтаксис ${VAR:-default}, наследуют значение из файла .env. Если переменная не задана в .env, используется значение по умолчанию после :-.
Model Management (порт 8001)¶
Назначение: каталог AI/ML-моделей, управление контрактами, мониторинг состояния моделей, хранение весов в S3.
Контейнеры: model-management-migrations, model-management-cv-seed, model-management
IP-адрес: 172.28.0.100
Healthcheck: GET http://localhost:8000/healthz
| Переменная | Значение | Описание |
|---|---|---|
APP_NAME |
Model Management Service |
Имя сервиса (отображается в логах и трейсинге) |
APP_VERSION |
0.1.0 |
Версия сервиса |
ENVIRONMENT |
${ENVIRONMENT:-dev} |
Режим работы: dev, staging, production |
DEBUG |
${DEBUG:-false} |
Режим отладки |
LOG_LEVEL |
${LOG_LEVEL:-INFO} |
Уровень логирования: DEBUG, INFO, WARNING, ERROR |
JSON_LOGS |
${JSON_LOGS:-true} |
Формат логов JSON (рекомендуется для production) |
DATABASE_URL |
postgresql+asyncpg://...@postgres:5432/genai |
Строка подключения к БД (schema: model_management) |
DATABASE_POOL_SIZE |
${DATABASE_POOL_SIZE:-20} |
Размер пула подключений к БД |
DATABASE_MAX_OVERFLOW |
${DATABASE_MAX_OVERFLOW:-10} |
Дополнительные подключения сверх пула |
REDIS_URL |
redis://redis:6379/0 |
Подключение к Redis (DB 0) |
NATS_URL |
nats://nats-1:4222 |
Подключение к NATS JetStream |
NATS_MAX_RECONNECTS |
${NATS_MAX_RECONNECTS:-10} |
Макс. количество попыток переподключения к NATS |
OTLP_ENDPOINT |
http://jaeger:4317 |
Endpoint OpenTelemetry (Jaeger) |
S3_ENDPOINT_URL |
http://minio:9000 |
Endpoint MinIO S3 API |
S3_ACCESS_KEY |
${S3_ADMIN_USER:-minioadmin} |
Ключ доступа MinIO |
S3_SECRET_KEY |
${S3_ADMIN_PASSWORD:-minioadmin} |
Секретный ключ MinIO |
S3_BUCKET_NAME |
model-weights |
Бакет для хранения весов моделей |
S3_REGION |
us-east-1 |
Регион S3 |
API_PREFIX |
/api/v1 |
Префикс API-маршрутов |
Scan Profile (порт 8002)¶
Назначение: управление профилями сканирования, реестр определений атак (27+ атак), JSON Schema валидация конфигураций, хранение аудио- и изображений.
Контейнеры: scan-profile-migrations, scan-profile-seed, scan-profile.
IP-адрес: 172.28.0.101.
Healthcheck: GET http://localhost:8000/healthz.
| Переменная | Значение | Описание |
|---|---|---|
SERVICE_NAME |
scan-profile |
Имя сервиса |
ENVIRONMENT |
${ENVIRONMENT:-dev} |
Режим работы |
DEBUG |
${DEBUG:-false} |
Режим отладки |
LOG_LEVEL |
${LOG_LEVEL:-INFO} |
Уровень логирования |
LOG_FORMAT |
${LOG_FORMAT:-json} |
Формат логов: json или text |
DATABASE_URL |
postgresql+asyncpg://...@postgres:5432/genai |
Строка подключения к БД (schema: scan_profile) |
DATABASE_POOL_SIZE |
${DATABASE_POOL_SIZE:-20} |
Размер пула подключений |
DATABASE_MAX_OVERFLOW |
${DATABASE_MAX_OVERFLOW:-10} |
Дополнительные подключения |
API_PREFIX |
/api/v1 |
Префикс API-маршрутов |
CORS_ORIGINS |
${CORS_ORIGINS:-*} |
Разрешённые CORS-домены |
OTEL_ENABLED |
${OTEL_ENABLED:-true} |
Включение OpenTelemetry |
OTEL_EXPORTER_OTLP_ENDPOINT |
http://jaeger:4317 |
Endpoint Jaeger |
OTEL_SERVICE_NAME |
scan-profile |
Имя сервиса в трейсах |
MODEL_MANAGEMENT_URL |
http://model-management:8000 |
URL сервиса управления моделями |
S3_ENDPOINT |
http://minio:9000 |
Endpoint MinIO |
S3_ACCESS_KEY |
${S3_ADMIN_USER:-minioadmin} |
Ключ доступа |
S3_SECRET_KEY |
${S3_ADMIN_PASSWORD:-minioadmin} |
Секретный ключ |
S3_AUDIO_BUCKET |
audio-samples |
Бакет для аудиофайлов |
S3_IMAGE_BUCKET |
cv-images |
Бакет для изображений |
S3_USE_SSL |
false |
Использование SSL при подключении к MinIO |
S3_PUBLIC_ENDPOINT |
${S3_PUBLIC_ENDPOINT:-http://localhost:9000} |
Публичный URL для presigned URLs |
PRESIGNED_URL_EXPIRY |
3600 |
Время жизни presigned URL в секундах (1 час) |
MAX_AUDIO_FILE_SIZE_MB |
100 |
Максимальный размер аудиофайла (МБ) |
MAX_IMAGE_FILE_SIZE_MB |
50 |
Максимальный размер изображения (МБ) |
Results (порт 8003)¶
Назначение: хранение результатов сканирования, уязвимостей и артефактов. Подписка на поток RESULTS из NATS.
Контейнеры: results-migrations, results.
IP-адрес: 172.28.0.102.
Healthcheck: GET http://localhost:8002/healthz.
Внутренний порт
Сервис Results слушает на внутреннем порту 8002, но мапится на хостовый порт 8003.
| Переменная | Значение | Описание |
|---|---|---|
SERVICE_NAME |
results |
Имя сервиса |
SERVICE_VERSION |
1.0.0 |
Версия |
ENVIRONMENT |
${ENVIRONMENT:-dev} |
Режим работы |
DEBUG |
${DEBUG:-false} |
Режим отладки |
LOG_LEVEL |
${LOG_LEVEL:-INFO} |
Уровень логирования |
LOG_FORMAT |
${LOG_FORMAT:-json} |
Формат логов |
DATABASE_URL |
postgresql+asyncpg://...@postgres:5432/genai |
Строка подключения (schema: results) |
DATABASE_POOL_SIZE |
${DATABASE_POOL_SIZE:-20} |
Размер пула |
DATABASE_MAX_OVERFLOW |
${DATABASE_MAX_OVERFLOW:-10} |
Дополнительные подключения |
NATS_URL |
nats://nats-1:4222 |
Подключение к NATS |
NATS_STREAM_NAME |
RESULTS |
Имя потока для подписки |
NATS_CONSUMER_NAME |
results-consumer |
Имя consumer-группы |
S3_ENDPOINT |
http://minio:9000 |
Endpoint MinIO |
S3_PUBLIC_ENDPOINT |
${S3_PUBLIC_ENDPOINT:-http://localhost:9000} |
Публичный URL MinIO |
S3_ACCESS_KEY |
${S3_ADMIN_USER:-minioadmin} |
Ключ доступа |
S3_SECRET_KEY |
${S3_ADMIN_PASSWORD:-minioadmin} |
Секретный ключ |
S3_BUCKET_NAME |
results-artifacts |
Основной бакет результатов |
S3_CV_ARTIFACTS_BUCKET |
cv-attack-artifacts |
Бакет CV-артефактов |
S3_ASR_ARTIFACTS_BUCKET |
asr-attack-artifacts |
Бакет ASR-артефактов |
S3_ALLOWED_BUCKETS |
["cv-attack-artifacts","cv-images","asr-attack-artifacts","audio-samples"] |
Разрешённые бакеты для чтения |
S3_REGION |
us-east-1 |
Регион |
S3_USE_SSL |
false |
Использование SSL |
API_HOST |
0.0.0.0 |
Адрес привязки API |
API_PORT |
8002 |
Внутренний порт API |
API_PREFIX |
/api/v1 |
Префикс маршрутов |
CORS_ORIGINS |
["*"] |
CORS-домены |
EXPORT_MAX_RECORDS |
${EXPORT_MAX_RECORDS:-10000} |
Лимит записей для экспорта |
Scan Orchestrator (порт 8004)¶
Назначение: оркестрация жизненного цикла сканирования, распределение задач атак через NATS, координация между сервисами.
Контейнеры: scan-orchestrator-migrations, scan-orchestrator.
IP-адрес: 172.28.0.103.
Healthcheck: GET http://localhost:8000/healthz.
| Переменная | Значение | Описание |
|---|---|---|
SERVICE_NAME |
scan-orchestrator |
Имя сервиса |
SERVICE_VERSION |
1.0.0 |
Версия |
ENVIRONMENT |
${ENVIRONMENT:-development} |
Режим работы |
DEBUG |
${DEBUG:-false} |
Режим отладки |
LOG_LEVEL |
${LOG_LEVEL:-INFO} |
Уровень логирования |
LOG_FORMAT |
${LOG_FORMAT:-json} |
Формат логов |
DATABASE_URL |
postgresql+asyncpg://...@postgres:5432/genai |
Строка подключения (schema: scan_orchestrator) |
DATABASE_POOL_SIZE |
${DATABASE_POOL_SIZE:-20} |
Размер пула |
DATABASE_MAX_OVERFLOW |
${DATABASE_MAX_OVERFLOW:-10} |
Дополнительные подключения |
NATS_URL |
nats://nats-1:4222 |
Подключение к NATS |
NATS_SCANS_STREAM |
SCANS |
Поток событий сканирования |
NATS_ATTACKS_STREAM |
ATTACKS |
Поток заданий атак |
NATS_MAX_RECONNECTS |
${NATS_MAX_RECONNECTS:-10} |
Попытки переподключения |
REDIS_URL |
redis://redis:6379/1 |
Подключение к Redis (DB 1) |
MODEL_MANAGEMENT_URL |
http://model-management:8000 |
URL Model Management |
SCAN_PROFILES_URL |
http://scan-profile:8000 |
URL Scan Profile |
RESULTS_SERVICE_URL |
http://results:8002 |
URL Results |
LICENSE_SERVICE_URL |
http://license-service:8000 |
URL License Service |
JAILBREAK_SERVICE_URL |
http://jailbreak-api:8000 |
URL Jailbreak API |
ASR_SERVICE_URL |
http://asr-adversarial-api:8000 |
URL ASR API |
CV_SERVICE_URL |
http://cv-adversarial-api:8000 |
URL CV API |
API_HOST |
0.0.0.0 |
Адрес привязки |
API_PORT |
8000 |
Внутренний порт |
API_PREFIX |
/api/v1 |
Префикс маршрутов |
API_TITLE |
Scan Orchestrator API |
Заголовок в Swagger |
API_VERSION |
1.0.0 |
Версия API |
CORS_ORIGINS |
["*"] |
CORS-домены |
CORS_ALLOW_CREDENTIALS |
true |
Разрешение credentials |
WORKER_ENABLED |
true |
Включение NATS-воркера |
WORKER_SHUTDOWN_GRACE_PERIOD |
30 |
Период ожидания при остановке (сек) |
CIRCUIT_BREAKER_FAILURE_THRESHOLD |
5 |
Порог ошибок для срабатывания circuit breaker |
CIRCUIT_BREAKER_RECOVERY_TIMEOUT |
60 |
Время восстановления circuit breaker (сек) |
CIRCUIT_BREAKER_HALF_OPEN_ATTEMPTS |
3 |
Количество пробных запросов в состоянии half-open |
Jailbreak Service (порт 8005)¶
Назначение: тестирование LLM-моделей на Jailbreak-уязвимости. Включает конвейер трансформации промптов (24 техники), атакующие алгоритмы (Penetrator, PAIR, GCG, TAP, Crescendo), оценку ответов и формирование отчётов.
Количество контейнеров: 7 (migrations, seed, api, preparator, attacker, judge, reporter).
IP-адрес API: 172.28.0.105.
Healthcheck API: GET http://localhost:8000/healthz.
Общие переменные (для всех контейнеров Jailbreak)¶
| Переменная | Значение | Описание |
|---|---|---|
SERVICE_NAME |
jailbreak-service |
Имя сервиса |
SERVICE_VERSION |
1.0.0 |
Версия |
DATABASE_URL |
postgresql+asyncpg://...@postgres:5432/genai |
Строка подключения (schema: jailbreak_service) |
REDIS_URL |
redis://redis:6379/0 |
Подключение к Redis (DB 0) |
NATS_URL |
nats://nats-1:4222 |
Подключение к NATS |
S3_ENDPOINT |
minio:9000 |
Endpoint MinIO (без протокола) |
S3_ACCESS_KEY |
${S3_ADMIN_USER:-minioadmin} |
Ключ доступа |
S3_SECRET_KEY |
${S3_ADMIN_PASSWORD:-minioadmin} |
Секретный ключ |
S3_BUCKET |
jailbreak-reports |
Бакет для отчётов |
S3_SECURE |
false |
SSL для MinIO |
Контейнеры Jailbreak Service¶
| Контейнер | Команда | Описание |
|---|---|---|
jailbreak-api |
uvicorn api.main:app |
REST API — приём заданий, статус, результаты |
jailbreak-preparator |
python -m preparator.main |
Подготовка промптов, применение трансформаций |
jailbreak-attacker |
python -m attacker.main |
Выполнение атак на целевую LLM |
jailbreak-judge |
python -m judge.main |
Оценка ответов на успешность jailbreak |
jailbreak-reporter |
python -m reporter.main |
Формирование отчётов и сохранение результатов |
Ollama (локальный LLM)
Контейнер jailbreak-attacker содержит extra_hosts: host.docker.internal:host-gateway, что позволяет подключаться к Ollama, запущенному на хост-машине. Настройте URL модели в профиле сканирования, указав http://host.docker.internal:11434.
ASR Adversarial (порт 8025)¶
Назначение: тестирование моделей распознавания речи (ASR) на состязательные атаки: DABA, PIBA, FGSM Audio, Noise Injection, Jingleback, Ultrasonic, Trigger.
Количество контейнеров: 6 (migrations, api, preparator, attacker, judge, reporter).
IP-адрес API: 172.28.0.106.
Healthcheck API: GET http://localhost:8000/healthz.
Общие переменные (для всех контейнеров ASR)¶
| Переменная | Значение | Описание |
|---|---|---|
SERVICE_NAME |
asr-adversarial-service |
Имя сервиса |
SERVICE_VERSION |
1.0.0 |
Версия |
DATABASE_URL |
postgresql+asyncpg://...@postgres:5432/genai |
Строка подключения (schema: asr_adversarial) |
REDIS_URL |
redis://redis:6379/2 |
Подключение к Redis (DB 2) |
NATS_URL |
nats://nats-1:4222 |
Подключение к NATS |
S3_ENDPOINT |
http://minio:9000 |
Endpoint MinIO |
S3_ACCESS_KEY |
${S3_ADMIN_USER:-minioadmin} |
Ключ доступа |
S3_SECRET_KEY |
${S3_ADMIN_PASSWORD:-minioadmin} |
Секретный ключ |
S3_BUCKET |
asr-attack-artifacts |
Бакет артефактов атак |
S3_SECURE |
false |
SSL для MinIO |
S3_AUDIO_BUCKET |
audio-samples |
Бакет исходных аудиофайлов |
Дополнительные переменные attacker-контейнера¶
| Переменная | Значение | Описание |
|---|---|---|
MODEL_MANAGEMENT_URL |
http://model-management:8000 |
URL для получения информации о моделях |
MODEL_WEIGHTS_S3_ENDPOINT |
minio:9000 |
S3 endpoint для скачивания весов моделей |
MODEL_WEIGHTS_S3_BUCKET |
model-weights |
Бакет с весами моделей |
MODEL_WEIGHTS_S3_ACCESS_KEY |
${S3_ADMIN_USER:-minioadmin} |
Ключ доступа к весам |
MODEL_WEIGHTS_S3_SECRET_KEY |
${S3_ADMIN_PASSWORD:-minioadmin} |
Секретный ключ |
MODEL_WEIGHTS_S3_SECURE |
false |
SSL |
WHISPER_DEVICE |
auto |
Устройство для Whisper: auto, cpu, cuda |
NVIDIA_VISIBLE_DEVICES |
all |
Доступные GPU для whitebox-атак |
Контейнеры ASR Service¶
| Контейнер | Команда | Описание |
|---|---|---|
asr-adversarial-api |
uvicorn api.main:app |
REST API |
asr-adversarial-preparator |
python -m preparator.main |
Подготовка аудио, скачивание весов |
asr-adversarial-attacker |
python -m attacker.main |
Выполнение состязательных атак |
asr-adversarial-judge |
python -m judge.main |
Оценка результатов атак |
asr-adversarial-reporter |
python -m reporter.main |
Формирование отчётов |
CV Adversarial (порт 8008)¶
Назначение: тестирование моделей компьютерного зрения (CV) на состязательные атаки: FGSM, I-FGSM, MI-FGSM, PGD, C&W, DeepFool, UAP, APP, TI, JSMA, L-BFGS, LogBarrier, ILA, ZOO, Substitute, TREMBA, OnePixel, ReColorAdv, SinIR.
Количество контейнеров: 6 (migrations, api, preparator, attacker, judge, reporter).
IP-адрес API: 172.28.0.115.
Healthcheck API: GET http://localhost:8000/healthz.
Общие переменные (для всех контейнеров CV)¶
| Переменная | Значение | Описание |
|---|---|---|
SERVICE_NAME |
cv-adversarial-service |
Имя сервиса |
SERVICE_VERSION |
1.0.0 |
Версия |
DATABASE_URL |
postgresql+asyncpg://...@postgres:5432/genai |
Строка подключения (schema: cv_adversarial) |
REDIS_URL |
redis://redis:6379/3 |
Подключение к Redis (DB 3) |
NATS_URL |
nats://nats-1:4222 |
Подключение к NATS |
S3_ENDPOINT |
minio:9000 |
Endpoint MinIO (без протокола) |
S3_ACCESS_KEY |
${S3_ADMIN_USER:-minioadmin} |
Ключ доступа |
S3_SECRET_KEY |
${S3_ADMIN_PASSWORD:-minioadmin} |
Секретный ключ |
S3_BUCKET |
cv-attack-artifacts |
Бакет артефактов CV-атак |
S3_SECURE |
false |
SSL для MinIO |
Дополнительные переменные attacker-контейнера¶
| Переменная | Значение | Описание |
|---|---|---|
MODEL_MANAGEMENT_URL |
http://model-management:8000 |
URL Model Management |
MODEL_WEIGHTS_S3_ENDPOINT |
minio:9000 |
S3 endpoint для весов моделей |
MODEL_WEIGHTS_S3_BUCKET |
model-weights |
Бакет с весами моделей |
MODEL_WEIGHTS_S3_ACCESS_KEY |
${S3_ADMIN_USER:-minioadmin} |
Ключ доступа |
MODEL_WEIGHTS_S3_SECRET_KEY |
${S3_ADMIN_PASSWORD:-minioadmin} |
Секретный ключ |
MODEL_WEIGHTS_S3_SECURE |
false |
SSL |
MODEL_CACHE_DIR |
/tmp/cv-adversarial-models |
Директория кеша моделей внутри контейнера |
MODEL_CACHE_MAX_SIZE_GB |
10.0 |
Макс. размер кеша моделей (ГБ) |
Контейнеры CV Service¶
| Контейнер | Команда | Описание |
|---|---|---|
cv-adversarial-api |
uvicorn api.main:app |
REST API |
cv-adversarial-preparator |
python -m preparator.main |
Подготовка изображений, скачивание весов |
cv-adversarial-attacker |
python -m attacker.main |
Выполнение состязательных атак |
cv-adversarial-judge |
python -m judge.main |
Оценка результатов |
cv-adversarial-reporter |
python -m reporter.main |
Формирование отчётов |
UI Gateway (порт 3000)¶
Назначение: Backend-For-Frontend (BFF) на базе NestJS. Проксирует запросы от Angular UI ко всем Python-микросервисам, выполняя автоматическое преобразование camelCase (JavaScript) в snake_case (Python) и обратно. Поддерживает WebSocket для обновлений статусов сканирования в реальном времени.
Контейнер: ui-gateway.
IP-адрес: 172.28.0.120.
| Переменная | Значение | Описание |
|---|---|---|
NODE_ENV |
production |
Режим работы Node.js |
PORT |
3000 |
Порт API Gateway |
CORS_ORIGIN |
http://localhost:8080 |
Разрешённый CORS-домен (URL UI) |
MOCK_MODE |
false |
Режим моков — для разработки без бэкенда |
MODEL_MANAGEMENT_URL |
http://model-management:8000 |
URL Model Management |
SCAN_ORCHESTRATOR_URL |
http://scan-orchestrator:8000 |
URL Scan Orchestrator |
SCAN_PROFILE_URL |
http://scan-profile:8000 |
URL Scan Profile |
RESULTS_SERVICE_URL |
http://results:8002 |
URL Results |
JAILBREAK_SERVICE_URL |
http://jailbreak-api:8000 |
URL Jailbreak |
LICENSE_SERVICE_URL |
http://license-service:8000 |
URL License Service |
CV_ADVERSARIAL_URL |
http://cv-adversarial-api:8000 |
URL CV Adversarial |
ASR_ADVERSARIAL_URL |
http://asr-adversarial-api:8000 |
URL ASR Adversarial |
S3_INTERNAL_URL |
http://minio:9000 |
Внутренний URL MinIO |
S3_PUBLIC_URL |
${S3_PUBLIC_URL:-http://localhost:9000} |
Публичный URL MinIO (для presigned URLs) |
CV_ARTIFACTS_BUCKET |
cv-attack-artifacts |
Бакет CV-артефактов |
ASR_ARTIFACTS_BUCKET |
asr-attack-artifacts |
Бакет ASR-артефактов |
AUTH_ENABLED |
${AUTH_ENABLED:-false} |
Включение аутентификации |
KEYCLOAK_URL |
http://keycloak:8080 |
URL Keycloak |
KEYCLOAK_REALM |
appsec-genai |
Realm Keycloak |
AUTH_SERVICE_URL |
http://auth-service:8000 |
URL Auth Service |
Переменная S3_PUBLIC_URL
Используется для замены внутренних URL MinIO (http://minio:9000) на доступные из браузера (http://localhost:9000 или https://s3.example.com). Это необходимо для корректной работы presigned URLs, возвращаемых сервисами.
UI (порт 8080)¶
Назначение: веб-интерфейс платформы на Angular 21, раздаётся через nginx-unprivileged.
Контейнер: ui.
IP-адрес: 172.28.0.121.
Healthcheck: wget --spider http://localhost:8080.
UI не имеет переменных окружения. Конфигурация Angular встроена в собранный бандл на этапе сборки Docker-образа. Nginx проксирует запросы /api/* на UI Gateway (ui-gateway:3000).
Auth Service (порт 8006)¶
Назначение: сервис аутентификации и авторизации, интеграция с Keycloak, управление ролями пользователей.
Контейнеры: auth-service-migrations, auth-service.
IP-адрес: 172.28.0.107.
Healthcheck: GET http://localhost:8000/healthz.
| Переменная | Значение | Описание |
|---|---|---|
SERVICE_NAME |
auth-service |
Имя сервиса |
SERVICE_VERSION |
0.1.0 |
Версия |
SERVICE_PORT |
8000 |
Внутренний порт |
ENVIRONMENT |
${ENVIRONMENT:-dev} |
Режим работы |
DEBUG |
${DEBUG:-false} |
Режим отладки |
LOG_LEVEL |
${LOG_LEVEL:-INFO} |
Уровень логирования |
LOG_FORMAT |
json |
Формат логов |
DATABASE_URL |
postgresql+asyncpg://...@postgres:5432/genai |
Строка подключения (schema: auth) |
DATABASE_POOL_SIZE |
${DATABASE_POOL_SIZE:-5} |
Размер пула |
DATABASE_MAX_OVERFLOW |
${DATABASE_MAX_OVERFLOW:-5} |
Дополнительные подключения |
REDIS_URL |
redis://redis:6379/1 |
Redis (DB 1) |
AUTH_MODE |
${AUTH_MODE:-keycloak_only} |
Режим авторизации |
KEYCLOAK_URL |
http://keycloak:8080 |
Внутренний URL Keycloak |
KEYCLOAK_REALM |
appsec-genai |
Realm |
KEYCLOAK_CLIENT_ID |
auth-service |
Client ID в Keycloak |
KEYCLOAK_CLIENT_SECRET |
${KEYCLOAK_AUTH_CLIENT_SECRET:-auth-service-secret} |
Client Secret |
KEYCLOAK_JWKS_URL |
http://keycloak:8080/realms/appsec-genai/protocol/openid-connect/certs |
URL JWKS |
GROUP_ROLE_MAPPING |
{"asg-viewer":"viewer","asg-user":"user",...} |
Маппинг групп Keycloak на роли |
CORS_ORIGINS |
["http://localhost:4200","http://localhost:8080"] |
CORS-домены |
License Service (порт 8009)¶
Назначение: управление лицензиями платформы, валидация лицензионных ключей, интеграция с License Center.
Контейнеры: license-service-migrations, license-service.
IP-адрес: 172.28.0.108.
Healthcheck: GET http://localhost:8000/healthz.
| Переменная | Значение | Описание |
|---|---|---|
SERVICE_NAME |
license-service |
Имя сервиса |
SERVICE_VERSION |
0.1.0 |
Версия |
SERVICE_PORT |
8000 |
Внутренний порт |
ENVIRONMENT |
${ENVIRONMENT:-dev} |
Режим работы |
LOG_LEVEL |
${LOG_LEVEL:-INFO} |
Уровень логирования |
LOG_FORMAT |
json |
Формат логов |
DATABASE_URL |
postgresql+asyncpg://...@postgres:5432/genai |
Строка подключения (schema: licensing) |
REDIS_URL |
redis://redis:6379/2 |
Redis (DB 2) |
LICENSE_CENTER_PUBLIC_KEY |
${LICENSE_CENTER_PUBLIC_KEY:-} |
Публичный ключ License Center |
ORGANIZATION_ID |
${ORGANIZATION_ID:-00000000-...} |
UUID организации |
ORGANIZATION_NAME |
${ORGANIZATION_NAME:-Default Organization} |
Название организации |
GRACE_PERIOD_DAYS |
14 |
Период отсрочки при истечении лицензии (дней) |
CORS_ORIGINS |
["http://localhost:4200","http://localhost:8080"] |
CORS-домены |