Сценарії

Підключення баз даних

MySQL, PostgreSQL, MongoDB: конектори проєкту, тест з'єднання, безпека, блоки flow.

Навіщо це

Блоки MySQL, PostgreSQL і MongoDB у flow працюють із вашими зовнішніми базами — CRM, склад, аналітика, legacy-система. Це не внутрішня БД платформи Epsenta (контакти бота зберігаються окремо).

Один проєкт може мати кілька іменованих конекторів (alias): наприклад «CRM prod» і «Analytics read-only».

Де налаштувати

Панель → Налаштування → вкладка Бази даних. Потрібне право на налаштування проєкту (роль адміністратора або кастомна з settings).

Для кожного движка — окрема секція: MySQL (port 3306), PostgreSQL (5432), MongoDB (27017 або URI).

Створення конектора

  • Натисніть «Додати підключення», оберіть движок
  • Alias — зрозуміла назва для вибору в блоці flow
  • Host, port, database, username, password
  • SSL — для хмарних БД (Atlas, Neon, RDS)
  • readOnly — якщо бот лише читає дані
  • maxRows (500) та queryTimeoutMs (15 с) — захист від важких запитів
  • PostgreSQL: schema (public); MongoDB: authSource, connection URI
  • Зберегти → **Тест з'єднання**

Мережа та доступ

Запити виконує сервер Epsenta (production: Hetzner VPS). Ваш firewall / security group має дозволити вхід з IP платформи або використовуйте публічний endpoint хмарного провайдера з SSL.

Паролі зберігаються зашифровано; у логах платформи connection string з паролем не з'являється.

Використання в flow

У редакторі flow — палітра Бази даних: перетягніть MySQL / PostgreSQL / MongoDB. Оберіть конектор і дію (SELECT, INSERT, find, aggregate…).

Параметри запиту — JSON-масив або поля з підстановкою {змінних} контакту. Результат — у змінну (JSON-масив), також _count і _first.

Два виходи: Успіх (навіть 0 рядків) і Помилка (таймаут, SQL-помилка, readOnly). Деталі по блоках: /wiki/blok-mysql-query, /wiki/blok-postgres-query, /wiki/blok-mongodb-query.

Безпека

  • Лише параметризовані запити — не вставляйте текст користувача напряму в SQL
  • readOnly для аналітики та перевірки статусів
  • UPDATE/DELETE вимагають WHERE — захист від повного wipe
  • DDL (CREATE/DROP) за замовчуванням заблоковано
  • Окремий DB-користувач з мінімальними правами для бота