Add SMTP migration#187
Conversation
Adds a single SMTP settings resource carrying the project's custom SMTP configuration. Source reads via the typed Project model (Project::get()->smtp*); destination writes the smtp attribute on the project document directly, matching the pattern used by the other 5 settings resources. Password is intentionally not migrated — the source API only exposes smtpPassword as an empty string (write-only field). The destination's existing password is preserved via read-then-merge of the smtp map.
Greptile SummaryThis PR adds project SMTP configuration as a new
Confidence Score: 5/5Safe to merge — the change is a self-contained singleton resource that follows an established pattern with no regressions to existing functionality. The implementation is structurally identical to the existing Protocols/Labels/Services singleton migrations. Error handling, status reporting, read-then-merge destination writes, and registration in Transfer/Resource constants are all consistent with the rest of the codebase. The password-omission limitation is documented and intentional. No files require special attention. Important Files Changed
Reviews (3): Last reviewed commit: "Normalize error code for SMTP export han..." | Re-trigger Greptile |
Adds the project SMTP configuration as a new settings resource. Source reads via the typed
Project::get()model; destination writes the project doc'ssmtpmap directly (read-then-merge to preserve destination password — source API never exposes it). Stacks on top of #186.