The estate's one channel exit

Services that need to reach a person hand the message here instead of each
carrying a SendGrid key. Email goes to SendGrid, SMS to Twilio; whatsapp and
push answer 501 rather than pretending.

It binds loopback and the docker bridge only. An authenticated relay on the
public internet is an open spam relay the moment the token leaks, and that
token is copied into every consumer's environment.

The log names a channel, a redacted address and the provider's answer. Never
the subject, never the body.
This commit is contained in:
nirpa
2026-08-18 15:41:28 -04:00
commit e4d6230dd1
17 changed files with 913 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
# Copy to .env on the host and chmod 600. Values come from the estate's
# existing accounts — this service issues no credentials of its own.
# The port this is published on, from the registry at $SHRE_PORTS_PATH.
CHANNEL_EXIT_PORT=
# The shared secret every consumer presents as `Authorization: Bearer ...`.
# Generate with: openssl rand -hex 32
CHANNEL_EXIT_TOKEN=
# SendGrid. The key needs mail.send and nothing more.
SENDGRID_API_KEY=
# Must be a verified sender on that SendGrid account or every send 403s.
EMAIL_FROM=
# Twilio.
TWILIO_ACCOUNT_SID=
TWILIO_AUTH_TOKEN=
TWILIO_FROM=