-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
32 lines (25 loc) · 2.95 KB
/
Copy path.env.example
File metadata and controls
32 lines (25 loc) · 2.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# ── Окружение ────────────────────────────────────────────────────────────────
APP_ENV=development # development | production (влияет на формат логов)
LOG_LEVEL=INFO
JSON_LOGS=false # true → JSON-логи (prod), false → human-readable (dev)
# ── Безопасность ─────────────────────────────────────────────────────────────
API_KEY=dev-secret-api-key # значение заголовка X-API-Key для бизнес-ручек
WEBHOOK_SECRET=dev-webhook-hmac-secret # ключ подписи HMAC-SHA256 исходящих webhook
# ── PostgreSQL (async, asyncpg) ──────────────────────────────────────────────
DATABASE_URL=postgresql+asyncpg://payments:payments@postgres:5432/payments
# ── RabbitMQ ─────────────────────────────────────────────────────────────────
RABBITMQ_URL=amqp://guest:guest@rabbitmq:5672/
# ── Outbox dispatcher ────────────────────────────────────────────────────────
OUTBOX_POLL_INTERVAL=1.0 # сек, период опроса таблицы outbox при наличии работы
OUTBOX_IDLE_INTERVAL=2.0 # сек, период опроса когда очередь пуста
OUTBOX_BATCH_SIZE=100 # сколько событий публиковать за один проход
# ── Эмуляция обработки платежа ───────────────────────────────────────────────
PROCESSING_MIN_SECONDS=2.0
PROCESSING_MAX_SECONDS=5.0
PROCESSING_SUCCESS_RATE=0.9 # 0.9 → 90% succeeded / 10% failed
# ── Retry / DLQ (RabbitMQ, без плагинов) ─────────────────────────────────────
MAX_PROCESSING_ATTEMPTS=3 # всего попыток обработки сообщения, затем DLQ
RETRY_TTLS_MS=5000,25000 # TTL уровней retry-очередей (len = attempts-1), экспонента
# ── Webhook ──────────────────────────────────────────────────────────────────
WEBHOOK_TIMEOUT_SECONDS=10.0
WEBHOOK_MAX_ATTEMPTS_TRACKED=20 # сколько последних попыток хранить в payments.webhook_attempts