Goal
Add a new ses provider so Lunogram can send email through Amazon SES, based on the same provider-level scope and expectations as #216.
Scope
- Add Amazon SES support for the email channel (
providers.ChannelEmail)
- Define config requirements for credentials (at minimum AWS region, access key ID, and secret access key)
- Implement send behavior mapping Lunogram email payload -> Amazon SES API request
- Validate required configuration before send
- (If feasible) add webhook handling for delivery/bounce/complaint events mapped to canonical provider webhook events
Provider expectations
- Follow the current provider architecture and contracts used by Lunogram
- Include provider metadata (id, title, icon/color, website, rate limit)
- Use AWS Signature Version 4 signing for API requests
- Keep error handling explicit and classify permanent vs transient failures where possible
Acceptance criteria
- Provider appears in provider metadata/list endpoints with module id
ses
- Creating a provider with valid config succeeds
- Email send works end-to-end for HTML/text payloads
- Clear permanent/transient error classification is implemented
- Tests added/updated for core send + validation behavior
Out of scope
- SMS or push support
- Advanced SES features (configuration sets, dedicated IP pools, template management, etc.) in first version
Goal
Add a new
sesprovider so Lunogram can send email through Amazon SES, based on the same provider-level scope and expectations as #216.Scope
providers.ChannelEmail)Provider expectations
Acceptance criteria
sesOut of scope