stack/apps/backend
Aman Ganapathy 4f34200db9
[Feat] Setup new route for email monitoring (#1095)
### Summary of Changes
We need a way to tell if our email service is working. So, we set up a
route that will be periodically hit by uptime kuma. This route tries to
sign up to stack auth.
Upon signing up, an verification email will be sent. We use resend to
check the inbox and return a success if the email is found.
We use resend to setup a test email domain, and we query that domain to
see if the email has been received. In test environments/dev, we use
inbucket instead. This route also requires a secret token, which can be
configured via `.env` variables.

### Necessary config changes

Note we add several new environment variables which will need to be
populated in prod.
Also, the [config settings for
resend](https://resend.com/docs/send-with-smtp) are as follows:

1. **Host:** `smtp.resend.com`
2. **Port:** `465`
3. **Username:** `resend`
4. **Password:** `<RESEND_API_KEY>`
These may need to be set up in docker to enable emails being sent out to
resend.

To set this up with uptime kuma, follow the steps below:

1. Create a new monitor
2. Set the monitor type to `HTTP(s)`
3. The URL should hit the `/health/email` endpoint.
4. Suggested request timeout is at least 120 seconds. Reading emails
from the resend inbox can take a bit of time.
5. In headers, set the header as below:
```
{
    "authorization": "Bearer <STACK_EMAIL_MONITOR_SECRET_TOKEN>"
}
```
2026-01-28 19:09:47 -08:00
..
prisma TokenRefreshEventType 2026-01-28 11:18:15 -08:00
scripts --no-bail for verify-data-integrity script 2026-01-28 13:53:28 -08:00
src [Feat] Setup new route for email monitoring (#1095) 2026-01-28 19:09:47 -08:00
.env [Feat] Setup new route for email monitoring (#1095) 2026-01-28 19:09:47 -08:00
.env.development [Feat] Setup new route for email monitoring (#1095) 2026-01-28 19:09:47 -08:00
.eslintrc.cjs tsup for stack-shared (#647) 2025-04-28 21:26:52 -07:00
.gitignore Migrations toolkit (#409) 2025-02-01 17:46:21 -08:00
instrumentation-client.ts Upgrade backend to Next.js 16 2025-12-12 16:59:07 -08:00
LICENSE Split backend and dashboard (#83) 2024-06-18 15:49:31 +02:00
next.config.mjs Upgrade Prisma to v7 (#1064) 2025-12-26 08:13:34 -08:00
package.json clickhouse setup (#1032) 2026-01-28 09:12:33 -08:00
prisma.config.ts Upgrade Prisma to v7 (#1064) 2025-12-26 08:13:34 -08:00
tsconfig.json fix flaky typecheck test (#1072) 2025-12-17 12:26:12 -08:00
vercel.json Update vercel.json 2025-12-16 12:02:11 -08:00
vitest.config.ts Customizable ports (#962) 2025-10-20 15:24:47 -07:00
vitest.setup.ts Customizable ports (#962) 2025-10-20 15:24:47 -07:00