Integrations
External systems the API (ethica-api) or frontends rely on. Document what is integrated and which environment variables configure it (names only — never commit values in this doc).
Third-party services
| Integration | Purpose | Config (names only) |
|---|---|---|
| PostgreSQL | Primary datastore for the API (Sequelize) | DATABASE_URL |
| Resend | Transactional email via MailService | RESEND_API_KEY, optional MAIL_FROM |
| Cloudinary | File uploads and CDN-backed asset URLs (multer storage) | CLOUDINARY_CLOUD_NAME, CLOUDINARY_API_KEY, CLOUDINARY_API_SECRET |
| InfoBip | SMS delivery | INFO_BIP_API_KEY, INFO_BIP_BASE_URL |
Behavior notes
- Email: If
RESEND_API_KEYis unset, the mail service does not send mail (callers should treat email as best-effort in dev). - Database: The API is the only layer that connects to PostgreSQL; browsers and Next.js apps do not use
DATABASE_URL.
Authoritative variable names and comments live in ethica-api/.env.example.