Перейти до вмісту

Email та Analytics

ПолеЗначення
ПровайдерSMTP (точний — TODO: подивитись /abitly/prod/backend/SMTP_HOST значення)
Бібліотека@nestjs-modules/mailer
Призначеннятранзакційні листи (TODO: сценарії — підтвердження, password reset, нотифікації)
Env-ключіSMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, SMTP_FROM, SMTP_SECURE

Сервіс відправлення — Abitly API.

ПотікПровайдерЩо трекає
Власний lake-houseAWS (API GW + Lambda + Firehose + S3 Iceberg + Athena + dbt + Metabase)product-events з фронту через track() (деталі)
GTM (Google Tag Manager)GTM-контейнер, синхронізується скриптом npm run gtm:sync у фронт-репоповедінка користувача / маркетингові тригери

Endpoint analytics: NEXT_PUBLIC_ANALYTICS_COLLECTOR_URL (SSM /abitly/{env}/frontend/).

Моніторинг помилок — БЕЗ Sentry

Section titled “Моніторинг помилок — БЕЗ Sentry”
КаналЧерез що
Telegram-logger botERROR_LOGGER_TYPE=telegram → бот пише у чат TELEGRAM_LOG_CHAT_ID (логіка в API)
CloudWatchавтоматично, ECS stdout / Lambda execution
Grafana + Lokiагрегація логів на DO Droplet (observability)

Sentry в стеку немає — переконайтесь, що нові helper-ах/документації її не пропонуєте.

  • SMTP-листи не доходять → перевірити SMTP_HOST/SMTP_PORT/SMTP_SECURE; помилка SSL → ставити SMTP_SECURE=false лише для 587/STARTTLS.
  • Подія не з’являється в Athena → перевірити Lambda CloudWatch (Ajv-валідація могла відкинути payload).
  • GTM не тригеритьnpm run gtm:sync міг не запушити останню версію контейнера.