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 SMTP configuration as a new singleton migration resource, stacking on top of the policies migration. The source reads SMTP settings via the typed
Confidence Score: 5/5Safe to merge; the read-then-merge pattern correctly preserves the destination password, and all routing constants are consistently updated across the five changed files. The new SMTP path is a straightforward singleton migration: export reads typed model fields directly, import merges only the non-secret fields into the destination document, and the cache is purged after the update. No data-loss or auth boundary issues were found. src/Migration/Sources/Appwrite.php — minor structural inconsistency in the SMTP try/catch block compared to the other blocks in exportGroupIntegrations. Important Files Changed
Reviews (6): Last reviewed commit: "Move SMTP into integrations group (exter..." | 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.