feat(ses): implement PutEmailIdentityConfigurationSetAttributes for SES v2#1698
Open
okinaka wants to merge 3 commits into
Open
feat(ses): implement PutEmailIdentityConfigurationSetAttributes for SES v2#1698okinaka wants to merge 3 commits into
okinaka wants to merge 3 commits into
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds SES v2 support for PutEmailIdentityConfigurationSetAttributes and propagates an email identity’s default configuration set into the send pipeline so configuration-set features (event destinations, suppression, tracking) apply automatically when a send omits ConfigurationSetName. This aligns Floci’s SES v2 surface more closely with AWS SES behavior and includes both RestAssured integration coverage and an AWS SDK v2 compatibility test.
Changes:
- Implement
PUT /v2/email/identities/{EmailIdentity}/configuration-setand surfaceConfigurationSetNameviaGetEmailIdentity. - Resolve an effective configuration set during
SendEmail/SendRawEmailwhenConfigurationSetNameis omitted (including Raw sends where sender is derived from MIMEFrom). - Add Quarkus integration tests plus an SDK-based compatibility test, and update SES service documentation.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/test/java/io/github/hectorvent/floci/services/ses/SesEmailIdentityConfigurationSetV2IntegrationTest.java | New integration coverage for identity default configuration set association + send routing (including Raw/MIME sender resolution). |
| src/main/java/io/github/hectorvent/floci/services/ses/SesService.java | Applies identity-default configuration set resolution in send paths and adds service method to associate/clear the default configuration set. |
| src/main/java/io/github/hectorvent/floci/services/ses/SesController.java | Adds the SES v2 REST endpoint for configuration-set association and includes ConfigurationSetName in identity responses. |
| src/main/java/io/github/hectorvent/floci/services/ses/model/Identity.java | Persists the identity’s ConfigurationSetName in the SES Identity model. |
| docs/services/ses.md | Documents the new SES v2 endpoint. |
| compatibility-tests/sdk-test-java/src/test/java/com/floci/test/SesEmailIdentityConfigurationSetTest.java | Adds AWS SDK v2 compatibility test for the new API behavior (associate/read/clear/unknown identity). |
3bc88aa to
dccdf40
Compare
…ES v2 Add the v2 PutEmailIdentityConfigurationSetAttributes API and wire an email identity's default configuration set into the send path so its event destinations fire. This includes Raw sends with no explicit FromEmailAddress: the configuration set is re-resolved from the MIME "From" header once parsed, so an omitted-sender Raw send still routes through the identity default. Unknown identities surface the AWS-matched error message.
… config-set compat test
dccdf40 to
848af96
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the SES v2
PutEmailIdentityConfigurationSetAttributesAPI (PUT /v2/email/identities/{EmailIdentity}/configuration-set) and wires an email identity's default configuration set into the send path so its event destinations, suppression and tracking apply automatically.ConfigurationSetName;GetEmailIdentitysurfaces it.SendEmail/SendRawEmailwith no explicitConfigurationSetNameresolve to the sender identity's default (matched by the exact address first, then the domain). For Raw content with noFromEmailAddress, the sender — and therefore the configuration set — is resolved from the MIMEFromheader.NotFoundException; an unknown configuration set returnsNotFoundException.Type of change
fix:)feat:)feat!:orfix!:)AWS Compatibility
Behaviour verified against real AWS (SES v2, boto3 / raw signed requests, us-east-1):
ConfigurationSetNameclears the association (200). An explicit empty string is accepted (200) and — on AWS — stored verbatim; Floci collapses""into a clear, a deliberate no-op simplification (no SDK/CLI client sends"").SerializationException(400) and does not clear, matching AWS.FromEmailAddress(sender taken from the MIMEFrom).Checklist
./mvnw testpasses locally