Skip to content

Конфигурация Doppler

Обзор

Doppler используется для хранения глобальных секретов — переменных, общих для всех интеграций. Секреты конкретных интеграций (API ключи CRM и т.д.) хранятся в D1.

┌─────────────────────────────────────────────────────────────────────┐
│                         DOPPLER (Уровень 1)                         │
│                      Глобальные секреты                             │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  ШИФРОВАНИЕ:                                                        │
│  ├── CRYPTO_KEY  — ключ для шифрования секретов в D1                │
│  └── CRYPTO_SALT — соль для PBKDF2 key derivation                   │
│                                                                     │
│  ВНЕШНИЕ СЕРВИСЫ (общие для всех интеграций):                      │
│  ├── OPENAI_API_KEY        — OpenAI API                             │
│  ├── CLAUDE_API_KEY     — Claude API                             │
│  ├── GROQ_API_KEY          — Groq API                               │
│  ├── QDRANT_URL/API_KEY    — Vector store                           │
│  └── UPSTASH_REDIS_URL/TOKEN — Rate limiting                        │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────────┐
│                    CLOUDFLARE D1 (Уровень 2)                        │
│                  Per-integration секреты                            │
├─────────────────────────────────────────────────────────────────────┤
│  Хранятся в таблице creds, зашифрованы CRYPTO_KEY + CRYPTO_SALT    │
│  ├── sofa/NETHUNT_API_KEY                                           │
│  ├── sofa/SAAS_ASSISTANT_ID                                         │
│  └── rozetka/CRM_TOKEN                                              │
└─────────────────────────────────────────────────────────────────────┘

Полный список переменных Doppler

ПеременнаяОписаниеlocaldevprod
CRYPTO_KEYКлюч шифрования (64 hex символа)ГенерироватьГенерироватьГенерировать
CRYPTO_SALTСоль для шифрования (16+ символов)ГенерироватьГенерироватьГенерировать
OPENAI_API_KEYAPI ключ OpenAIОпциональноДаДа
GROQ_API_KEYAPI ключ GroqОпциональноДаДа
SAAS_API_URLURL SaaS APIhttps://api.dev.happ.toolshttps://api.dev.happ.toolshttps://api.happ.tools
SAAS_ACCESS_TOKENТокен SaaS APIДаДаДа

💡 D1/KV ID не хранятся в Doppler. Для local — подставляются автоматически скриптом generate:env. Для dev/prod — указываются в wrangler.toml.tpl или CI/CD.


Что нужно добавить в Doppler

Для всех окружений (local, dev, prod)

bash
# Генерация ключа шифрования
openssl rand -hex 32
# → a75a9de60aeebfc889967594f6aa94cfd745737486a441a83dc51c10928c89a1

# Добавить в Doppler
CRYPTO_KEY=<сгенерированный-ключ>
CRYPTO_SALT=integ-core  # Любая строка 16+ символов

Как добавить переменные в Doppler

Через веб-интерфейс

  1. Откройте https://dashboard.doppler.com
  2. Выберите проект integ-core
  3. Выберите конфиг (local, dev или prod)
  4. Нажмите "Add Secret"
  5. Введите имя переменной и значение

Через CLI

bash
# Для local
doppler secrets set CRYPTO_KEY <ключ> --config local
doppler secrets set CRYPTO_SALT integ-core --config local
# Для dev
doppler secrets set CRYPTO_KEY <ключ> --config dev
doppler secrets set CRYPTO_SALT integ-core-dev --config dev

# Для prod
doppler secrets set CRYPTO_KEY <ключ> --config prod
doppler secrets set CRYPTO_SALT integ-core-prod --config prod

Как это работает

  1. Когда вы запускаете pnpm start sofa:

    • generate-env.script.ts загружает все секреты из Doppler
    • Подставляет placeholder ID для D1/KV в wrangler.toml.tpl
    • Генерирует готовый wrangler.toml
    • Копирует секреты в .dev.vars
    • Запускает wrangler dev
  2. wrangler.toml НЕ коммитится в git (добавлен в .gitignore)

    • Генерируется заново каждый раз
    • Для local ID = placeholder, для dev/prod — реальные ID из wrangler.toml.tpl

Полная инструкция для разработчика

bash
# 1. Установить Doppler CLI
# https://docs.doppler.com/docs/install

# 2. Авторизоваться
doppler login

# 3. Выбрать проект
doppler setup
# Выберите проект "integ-core" и конфиг "local"

# 4. Запустить проект
docker compose up -d          # Запустить Docker сервисы
pnpm install                  # Установить зависимости
pnpm start sofa               # Запустить Sofa интеграцию
# Автоматически:
# - Загружаются все секреты из Doppler (local)
# - Генерируется .dev.vars файл
# - Генерируется wrangler.toml с placeholder D1/KV ID
# - Запускается wrangler dev

Готово! Никаких вручную вводимых секретов не требуется.