Gateway Configuration
Настройка Gateway API для всех окружений.
Обзор
Integ API работает как прослойка между админкой и Gateway API. Для каждого окружения нужно настроить свой Gateway URL.
Архитектура
Админка → Integ API → Gateway APIФормат аутентификации
⚠️ Важно: Gateway использует кастомный заголовок x-access-token, а не стандартный Authorization: Bearer.
✅ Правильно:
curl http://localhost:3001/admin/integrations \
-H "x-access-token: 4a3cfd7cc7d449c8f7e4a2e13b5e12ffd3d45d38a9aac5ccb8d5e44fb5f5af67"Ожидаемый ответ:
{"success": true, "data": [...]}❌ Неправильно:
curl http://localhost:3001/admin/integrations \
-H "Authorization: Bearer YOUR_TOKEN"Ответ с ошибкой:
{ "error": "Missing x-access-token header" }Проверка подключения
# Быстрый тест
curl http://localhost:3001/admin/integrations \
-H "x-access-token: $(doppler secrets get GATEWAY_ACCESS_TOKEN --config local --plain)"Конфигурация по окружениям
Local (localhost)
✅ Текущая конфигурация:
- URL:
http://localhost:3001 - Token: Настроен (64 символа)
- Header:
x-access-token
Если нужно изменить:
# Использовать локальный Gateway (рекомендуется)
doppler secrets set GATEWAY_URL "http://localhost:3001" --config local
doppler secrets set GATEWAY_ACCESS_TOKEN "ваш-токен-доступа" --config local
# Перегенерировать environment
npm run generate:env:localDevelopment (dev)
✅ Текущая конфигурация:
- URL:
https://api.integ.dev.happ.tools - Token: Настроен (64 символа)
Если нужно изменить:
# URL dev Gateway API
doppler secrets set GATEWAY_URL "https://api.integ.dev.happ.tools" --config dev
doppler secrets set GATEWAY_ACCESS_TOKEN "your-dev-gateway-token" --config dev
# Также не забудьте другие переменные для dev
doppler secrets set POSTGRES_HOST "your-dev-db-host" --config dev
doppler secrets set POSTGRES_PASSWORD "dev-password" --config dev
# Перегенерировать environment
npm run generate:env:devProduction (prod)
✅ Текущая конфигурация:
- URL:
https://api.integ.happ.tools - Token: Настроен (64 символа)
Если нужно изменить:
# URL prod Gateway API
doppler secrets set GATEWAY_URL "https://api.integ.happ.tools" --config prod
doppler secrets set GATEWAY_ACCESS_TOKEN "your-prod-gateway-token" --config prod
# Также не забудьте другие переменные для prod
doppler secrets set POSTGRES_HOST "your-prod-db-host" --config prod
doppler secrets set POSTGRES_PASSWORD "strong-prod-password" --config prod
# Перегенерировать environment
npm run generate:env:prodПолучение Access Token
Access Token для Gateway API нужно получить из админ-панели Gateway или у команды, которая управляет Gateway.
Где найти токены:
- Local/Dev - обычно тестовые токены или можно сгенерировать в Gateway админке
- Prod - только production токены с ограниченными правами
Проверка подключения
После настройки проверьте подключение:
# Запустить приложение
npm start
# В другом терминале
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" \
http://localhost:3000/api/integrationsЕсли Gateway недоступен, вы увидите ошибку:
Failed to list integrations: getaddrinfo ENOTFOUND <gateway-url>Troubleshooting
ENOTFOUND ошибка
Проблема: getaddrinfo ENOTFOUND api.integ.happ.tools
Решение:
- Проверьте, что Gateway URL правильный
- Проверьте, что Gateway доступен (ping, curl)
- Проверьте DNS резолюцию
# Проверить Gateway URL в environment
cat src/environments/environment.ts | grep -A 3 "gateway:"
# Проверить доступность Gateway
curl https://your-gateway-url/healthНеправильный токен
Проблема: 401 Unauthorized при запросах к Gateway
Решение:
- Проверьте токен в Doppler
- Проверьте срок действия токена
- Сгенерируйте новый токен
# Проверить токен
doppler secrets get GATEWAY_ACCESS_TOKEN --config local
# Обновить токен
doppler secrets set GATEWAY_ACCESS_TOKEN "new-token" --config local
npm run generate:env:localGateway не запущен локально
Проблема: ECONNREFUSED при запросах к localhost:3001
Решение:
- Запустите Gateway локально
- Или используйте dev Gateway URL
# Переключиться на dev Gateway
doppler secrets set GATEWAY_URL "https://api.integ.dev.happ.tools" --config local
npm run generate:env:localТекущие настройки
Проверить текущие настройки для всех окружений:
# Local
doppler secrets get GATEWAY_URL --config local
doppler secrets get GATEWAY_ACCESS_TOKEN --config local
# Dev
doppler secrets get GATEWAY_URL --config dev
doppler secrets get GATEWAY_ACCESS_TOKEN --config dev
# Prod
doppler secrets get GATEWAY_URL --config prod
doppler secrets get GATEWAY_ACCESS_TOKEN --config prodBest Practices
✅ DO:
- Используйте разные токены для каждого окружения
- Проверяйте доступность Gateway перед деплоем
- Логируйте все запросы к Gateway (уже настроено)
- Используйте HTTPS в dev и prod
❌ DON'T:
- Не используйте prod токены в dev/local
- Не коммитьте токены в Git
- Не используйте HTTP в production
Мониторинг
Проверить логи Gateway запросов:
# В логах приложения ищите
[GatewayService] Failed to list integrations
[GatewayService] Failed to get integration: <name>Документация Gateway API
Ссылки на документацию Gateway API:
- Local/Dev:
http://localhost:3001/api/docsилиhttps://api.integ.dev.happ.tools/api/docs - Prod:
https://api.integ.happ.tools/api/docs