Commit Graph

20 Commits

Author SHA1 Message Date
KM Koushik 04d0f4b123 feat: support standard AWS env vars and default credential chain (#401)
* feat: support standard AWS env vars and default credential chain

Replace non-standard AWS_ACCESS_KEY / AWS_SECRET_KEY with the AWS-standard
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY. The old names are kept as
fallbacks in the runtimeEnv for backward compatibility.

Both vars are now optional. When omitted, the credentials object is not
passed to SESv2Client, STSClient, or SNSClient — the AWS SDK then falls
back to its default provider chain (IAM roles, ECS task roles, instance
profiles, etc.), which is the recommended approach for cloud-native deployments.

Closes #316

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* refactor: extract shared getAwsCredentialOptions helper and add partial-config guard

- Move the credential spread logic into a single credentials.ts helper
  so SESv2Client, STSClient, and SNSClient all share one implementation
- Throw a clear error if only one of AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY
  is set, preventing silent fallback to the default provider chain with a
  half-configured environment

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: align AWS env vars in docker and docs

* fix: use alias import for AWS credentials helper

---------

Co-authored-by: purva <purvahk08@gmail.com>
Co-authored-by: Purva Kandalgaonkar <136103488+purva-8@users.noreply.github.com>
2026-05-17 21:23:28 +10:00
Michał Ordon 62d7c44efc feat: add REDIS_KEY_PREFIX env var for Redis ACL namespace isolation (#365)
* feat: add REDIS_KEY_PREFIX env var for Redis ACL namespace isolation

Adds optional REDIS_KEY_PREFIX env var that prefixes all Redis keys
(BullMQ queues via `prefix` option, cache/lock/rate-limit keys via
`redisKey()` helper). When unset, behavior is unchanged (BullMQ
defaults to "bull:", cache keys are unprefixed).

This enables self-hosters using Redis ACL multi-tenancy to restrict
useSend to its own key namespace (e.g. `~usesend:*`).

16 files changed across env schema, Redis module, 9 BullMQ queue/worker
files, and 5 direct Redis key operation sites.

* docs: add REDIS_KEY_PREFIX to self-host assets and fix docker run example

Add REDIS_KEY_PREFIX env var to docker/prod/compose.yml, .env.example,
.env.selfhost.example, and self-hosting docs. Fix missing trailing
backslashes in standalone docker run example.

* fix(redis): disable ioredis ready check and BullMQ version check

Redis ACL blocks INFO command (in @dangerous category). ioredis uses
INFO for ready check, BullMQ uses it for version detection. Without
these flags, BullMQ workers fail to initialize and silently stop
processing jobs.

- Add enableReadyCheck: false to ioredis connection
- Add skipVersionCheck: true to all 5 Queue + 5 Worker constructors

* fix(redis): add skipVersionCheck to remaining BullMQ job queues

Add skipVersionCheck: true to Queue and Worker constructors in all 4 job
files (campaign-scheduler, cleanup-email-bodies, usage-job,
webhook-cleanup) to match the pattern already used in service files.
This prevents BullMQ version mismatch errors when using REDIS_KEY_PREFIX
with Redis ACL namespace isolation.
2026-03-02 08:12:47 +11:00
KM Koushik 487902421b feat: add web testing foundation with infra-backed suites (#349)
* feat: add web test framework with infra-backed suites

* fix: honor DATABASE_URL env in integration prepare script

* fix: apply web test review feedback

* fix: streamline web test infra lifecycle and workflow scope
2026-02-16 09:13:29 +11:00
KM Koushik 8676965019 feat: add webhooks (#334) 2026-01-18 20:50:54 +11:00
KM Koushik bba9e937bb fix seg fault (#329) 2025-12-30 07:45:34 +11:00
KM Koushik 7fdb82a9e9 Fix version display in side navigation (#306)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-08 09:19:37 +11:00
KM Koushik 3e3f6d521a Display Docker image version in sidebar (#304)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-07 22:18:56 +11:00
KM Koushik 05a02844b2 Update prisma version in start script 2025-11-21 20:14:05 +11:00
KM Koushik b2e0233758 fix: update docker node version (#290) 2025-11-20 18:08:07 +11:00
Alen Abraham 987c07db35 fixed docker setup for psql (#248) 2025-09-21 08:09:11 +10:00
KM Koushik 07c53d3f58 rebrand to useSend (#210) 2025-09-03 08:21:55 +10:00
KMKoushik 3dcd8a1bcc fix docker build 2025-05-12 07:15:40 +10:00
KMKoushik d107d59dfd change smtp env to server env 2025-03-31 23:18:01 +11:00
Sidharth Babu 5cf5022aed refactor: dynamic SMTP for self host (#138)
Co-authored-by: KM Koushik <koushikmohan1996@gmail.com>
2025-03-29 14:40:25 +11:00
KM Koushik 0fc27d8d7e auto unsubscribe on bounce and compaints (#117)
* auto unsubscribe on bounce and compaints

* console
2025-03-18 00:25:11 +11:00
KM Koushik 0a1d93ac60 make dev setup better (#116)
* make dev setup better

* chage docs

* remove the need of github login
2025-03-17 21:33:43 +11:00
KM Koushik f9105971f0 upload image option (#64) 2024-08-26 20:46:38 +10:00
KM Koushik 6af2521ebb Add self hosting docs (#34)
* Add self host docs

* Add more documentation
2024-06-28 20:10:18 +10:00
KMKoushik b23c025747 Fix github org name in packages 2024-06-25 08:53:45 +10:00
KM Koushik f77a8829be Improve Self host setup (#30)
* Add self host setup

* Improve blunders

* Move to bull mq

* More changes

* Add example code for sending test emails
2024-06-24 08:21:37 +10:00