From 0a6d73aa29c1ef5f0016338184c9918d43c98b2a Mon Sep 17 00:00:00 2001 From: Grant Date: Thu, 18 Jun 2026 11:22:28 -0500 Subject: [PATCH] Mark merchant_profiles SMTP columns dormant; email plan dropped The keysat-smtp-emails plan is superseded: Keysat will not send buyer email itself (operators own that via their app plus the existing webhooks). The smtp_* columns from migration 0020 are never read to send mail; left in place (a removal migration isn't worth it) and flagged so no send path is built against them. --- licensing-service/src/merchant_profiles.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/licensing-service/src/merchant_profiles.rs b/licensing-service/src/merchant_profiles.rs index 365f230..aaa5726 100644 --- a/licensing-service/src/merchant_profiles.rs +++ b/licensing-service/src/merchant_profiles.rs @@ -27,10 +27,14 @@ use uuid::Uuid; /// A merchant profile row. Mirrors the `merchant_profiles` table. /// -/// SMTP fields are flattened onto the same struct for simplicity; they -/// land in the same table on the same row. NULL on all six means -/// "inherit StartOS-level SMTP config." See the keysat-smtp-emails -/// plan for how they're consumed. +/// NOTE: the `smtp_*` fields are DORMANT and not consumed by anything. +/// They were laid down in migration 0020 ahead of the keysat-smtp-emails +/// plan, which was SUPERSEDED 2026-06-18: Keysat will never send buyer +/// email itself (operators own that via their own app + the existing +/// webhooks). The columns are left in place because a removal migration +/// isn't worth it — do not build a send path against them. See +/// `plans/keysat-smtp-emails.md` (superseded banner) and the +/// "Operability & alerts" ROADMAP item. #[derive(Debug, Clone, Serialize, Deserialize)] pub struct MerchantProfile { pub id: String, @@ -42,7 +46,8 @@ pub struct MerchantProfile { pub post_purchase_redirect_url: Option, pub is_default: bool, - // SMTP override (all-or-nothing for now; the SMTP plan refines this). + // Dormant SMTP-override columns (see struct doc) — stored/returned + // but never read to send mail; no send path exists or is planned. pub smtp_host: Option, pub smtp_port: Option, pub smtp_username: Option,