Skip to content

Commit

Permalink
feat: Custom Resource to Perform Manual Merge of a Source API And Sig…
Browse files Browse the repository at this point in the history
…nal Cl… (#238)

This feature allows the source API owner to ensure that when merge conflicts are introduced, the Cloudformation stack update would fail and cause a rollback. Otherwise, if the merge is successful, the team knows that the updates were successfully applied to the merged API.

The SourceApiAssociationMergeOperationProvider construct creates the Lambda handlers for submitting the merge operation and ensuring that it succeeded or failed.
The SourceApiAssociationMergeOperation construct provides the ability to merge a source api to a Merged Api, invoking a merge within a Cloudformation custom
resource. If the merge operation fails with a conflict, the Cloudformation update will fail and rollback the changes to the source API in the stack. This constructs accepts a merge operation provider which allows the customer to customize the default SourceApiAssociationMergeOperationProvider class if they desire and ensures that we only require a single provider that can be used across multiple merge operations.

Closes aws/aws-cdk#27170, we decided to implement the functionality here instead of in cdk package itself for now.
  • Loading branch information
ndejaco2 authored Oct 7, 2023
1 parent 4fa8661 commit 94c7f29
Show file tree
Hide file tree
Showing 12 changed files with 2,038 additions and 41 deletions.
12 changes: 10 additions & 2 deletions .projen/deps.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions .projen/tasks.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion .projenrc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { awscdk } from 'projen';
const project = new awscdk.AwsCdkConstructLibrary({
author: 'Mitchell Valine',
authorAddress: '[email protected]',
cdkVersion: '2.60.0',
cdkVersion: '2.99.0',
defaultReleaseBranch: 'main',
name: 'awscdk-appsync-utils',
projenrcTs: true,
Expand Down Expand Up @@ -34,4 +34,7 @@ const project = new awscdk.AwsCdkConstructLibrary({
moduleName: 'github.com/cdklabs/awscdk-appsync-utils-go',
},
});

project.addDevDeps('@aws-sdk/client-appsync');
project.addDevDeps('@types/aws-lambda');
project.synth();
Loading

0 comments on commit 94c7f29

Please sign in to comment.