# email-connect transactional SMTP + ingest token Date: 2026-08-12 Workplan: EMAIL-WP-0004-T03 · CCR-2026-0010 Catalog: `email-connect-transactional` (**active** — OpenBao path live, ESO delivering on railiance01) Pointer playbook for the IONOS STARTTLS credentials and shared caller bearer used by the `email-connect` transactional invitation/verification receiver on railiance01. ops-warden issues SSH certs only — SMTP passwords and API tokens are OpenBao → Kubernetes Secret actions owned by `railiance-platform` and the `email-connect` package. --- ## Owners | Concern | Owner repo | Authoritative doc | | --- | --- | --- | | OpenBao path, ESO policy/role, ClusterSecretStore | `railiance-platform` | `docs/workload-kv-access-lanes.md` — email-connect section | | K8s package, NetworkPolicy, probes, rollback | `email-connect` | `deploy/k8s/railiance/README.md` | | user-engine caller wiring (same ingest token) | `net-kingdom` / user-engine | NK-WP-0024 | --- ## Do not ask ops-warden ```bash warden route show openbao-api-key --json warden route show email-connect-transactional --json ``` `EMAIL_CONNECT_SMTP_PASSWORD` and `EMAIL_CONNECT_INGEST_TOKEN` must not appear in Git, State Hub, workplans, logs, or chat. --- ## Custody shape (proposed) ```text platform/workloads/email-connect/transactional ``` Properties: - `EMAIL_CONNECT_INGEST_TOKEN` - `EMAIL_CONNECT_SMTP_USERNAME` - `EMAIL_CONNECT_SMTP_PASSWORD` Delivery: ExternalSecret `email-connect/email-connect-runtime` (ClusterSecretStore `openbao-email-connect`, ESO policy `external-secrets-email-connect`) → Secret `email-connect-runtime`. Non-secret host/port/sender/portal URL: ConfigMap `email-connect-config`. --- ## Worker checklist ### 1. Confirm need - [ ] Consumer is the transactional receiver in namespace `email-connect` - [ ] Need is SMTP send or shared ingest token — not Binky IMAP mailbox scan (`binky-company-email-imap` is a different lane) - [ ] CCR-2026-0010 is approved before live provision ### 2. Platform path - [ ] Path provisioned under `platform/workloads/email-connect/transactional` - [ ] ESO role `external-secrets-email-connect` applied - [ ] ClusterSecretStore `openbao-email-connect` namespace-limited ### 3. Deployment wiring - [ ] `kubectl apply -k deploy/k8s/railiance` (email-connect repo) - [ ] ExternalSecret SecretSynced; Deployment Ready - [ ] user-engine holds the **same** ingest token; no SMTP fields there ### 4. Smoke - [ ] `/healthz` from a user-engine pod succeeds - [ ] A pod outside user-engine cannot reach TCP 8080 - [ ] Record non-secret evidence only (timestamps, request ids, Ready status) --- ## Related lanes | Catalog id | Relationship | | --- | --- | | `binky-company-email-imap` | Mailbox **read** for evidence scans — not this send path | | `openbao-api-key` | Generic pointer when no concrete lane exists |