Skip to content

Commit

Permalink
2.0.0 - CDK Pipelines support
Browse files Browse the repository at this point in the history
  • Loading branch information
mcosicaws committed Apr 29, 2021
1 parent d525786 commit 804e98e
Show file tree
Hide file tree
Showing 130 changed files with 4,789 additions and 14,795 deletions.
85 changes: 85 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,91 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.0.0] - 2021-04-28
The version 2.0.0 brings a support for CDK Pipelines, as described in [Deploying with AWS CDK Pipelines](/cdk-stacks/README.md#Deploying-with-AWS-CDK-Pipelines), and introduces significant updates in CDK Stacks, Lambdas and DynamoDB, therefore not backward compatible with 1.x.x version. In case you already had v1.x.x deployed, it is necessary to deploy v2.0.0 as a new stack.

### Added
- [cdk-stacks] - folder containing all backend and frontend resources:
- [cdk-stacks/bin/cdk-stacks.ts] - CDK application, supports:
- [`Stack mode`] - deploys `CdkBackendStack` and `CdkFrontendStack`
- [`Pipeline mode`] - deploys `CdkPipelineStack`, with `CdkPipelineStage`, where `CdkPipelineStage` deploys `CdkBackendStack` and `CdkFrontendStack`
- [cdk-stacks/lib/cdk-backend-stack] - AWS CDK stack, defines backend resources:
- [infrastructure/CognitoStack] - `UserPool`, `UserPoolClient`, `UserPoolDomain`, `IdentityPool`, `CognitoDefaultUnauthenticatedRole`, `CognitoDefaultAuthenticatedRole`
- [infrastructure/DynamoDBStack] - single DynamoDB table - `VideoCallEscalationDB`, for all the entities
- [infrastructure/ssm-param-util] - utility functions for AWS SSM configuration parameters
- [api/chatAPI] - `StartChatLambda`, `Chat API Gateway`
- [api/chimeAPI] - `CreateMeetingLambda`, `EndMeetingForAllLambda`, `GetAttendeeJoinDataLambda`, `GetAttendeeNameLambda`, `CreateAttendeeLambda`, `Chime API Gateway`
- [api/connectAPI] - `CCPLoginLambda`, `Connect API Gateway`
- [api/meetingAPI] - `Meeting API Gateway`
- [api/routingAPI] - `CreateAdHocRouteLambda`, `Routing API Gateway`
- [WebAppBucket] - Amazon S3 bucket to host web applications
- [FrontendConfigStack] - `FrontendConfigLambda`, `FrontendConfigCustomResource` - gets Stack outputs, generates `frontend-config.js` file, and uploads it to `WebAppBucket`
- [cdk-stacks/lib/cdk-frontend-stack] - AWS CDK stack, defines frontend resources:
- [FrontendS3DeploymentStack] - deploys `agent-app` and `demo-website` to `WebAppBucket`
- [WebAppCloudFrontDistribution] - deploys CloudFront Web Distribution for `WebAppBucket`
- [cdk-stacks/lib/pipeline] - AWS CDK stack for CDK Pipelines:
- [CdkPipelineStack] - `AWS CodeCommit Repository`, `AWS CodeCommit Repository User`, `AWS CDK Pipeline`
- [CDKPipelineStage] - deploys `CDKBackendStack` and `CDKFrontEndStack`
- [cdk-stacks/lambdas/handlers] - folder containing all AWS Lambda function handlers:
- [ChatAPI] - AWS Lambda handler for `StartChatLambda`
- [ChimeAPI] - AWS Lambda handlers for: `CreateAttendeeLambda`, `CreateMeetingLambda`, `EndMeetingForAllLambda`, `GetAttendeeJoinDataLambda`, `GetAttendeeNameLambda`
- [ConnectAPI] - AWS Lambda handler for `CCPLoginLambda`
- [RoutingAPI] - AWS Lambda handler for `CreateAdHocRouteLambda`
- [cdk-stacks/lambdas/services] - folder containing all services, consumed by AWS Lambda handlers:
- [AttendeeService] - `getAttendeeName`, `createAttendee`, `getAttendeeJoinData`
- [ChatService] - `startChat`
- [ConnectService] - `ccpLogin`
- [MeetingService] - `createMeeting`, `endMeetingForAll`
- [RoutingService] - `createAdHocRoute`, `getRouteToAgent`
- [cdk-stacks/lambdas/repository] - folder containing DynamoDB operations:
- [AttendeeRepo] - `getAttendeeName`, `getAttendeeJoinData`, `putAttendee`
- [MeetingRepo] - `getMeetingByExternalMeetingId`, `putMeeting`, `setMeetingEndedAt`
- [RoutingRepo] - `putRoute`, `getRouteById`, `setRouteUsedAt`
- [Constants] - definition of Entities and their attributes: `Meeting`, `Attendee`, `Route`
- [cdk-stacks/lambda/lib] - folder containing Utility functions, previously in `utility-layer`:
- [AuthUtility] - `getCurrentUser` verifies claims from JWT and returns `username` and `email`
- [CommonUtility] - `uuid`, `validateEmailAddress`
- [HashUtility] - `createNumericHash`
- [LambdaUtility] - `buildLambdaResponse`, `parseEventBody`
- [cdk-stacks/lambdas/custom-resources/frontend-config] - AWS Lambda function that creates `frontend-config` as a Custom Resource in CDK stack, and uploads it to `WebAppBucket`
- [cdk-stacks/config.params] - new parameters added to support CDK Pipeline deploy mode: `cdkPipelineEnabled`, `cdkPipelineRepositoryName`, `cdkPipelineRepositoryBranchName`, `cdkPipelineCreateNewRepository`, `cdkPipelineStageName`
- [cdk-stacks/config.params] - new parameters added to unify CDK resource names: `CdkAppName`, `CdkBackendStack`, `CdkFrontendStack`, `CdkPipelineStack`, `WebAppRootPrefix`, `WebAppStagingPrefix`

### Changed
- [config.params] - `connectAPILambdaRoleToAssume` renamed to `ccpLoginLambdaRoleToAssume`
- [cdk version] - CDK upgraded to v1.98.0
- [cdk.json] - `"@aws-cdk/core:newStyleStackSynthesis": true` to use new-style bootstrapping
- [Cognito User Pool] - set removalPolicy to `destroy`
- [agent-app] - changes to support `frontend-config.js` (previously `aws-exports.json`). A change of config (SSM param) does not require `build` anymore
- [agent-app] - set local webpack port to `3000`
- [agent-app] - unified variable/reference names: `externalMeetingId`, `meetingRegion`, `attendeeName`, `attendeeEmail`, `attendeeExternalUserId`
- [demo-website] - changes to support `frontend-config.js` (previously `aws-exports.json`). A change of config (SSM param) does not require `build` anymore
- [demo-website] - set local webpack port to `3001`
- [demo-website] - unified variable/reference names: `externalMeetingId`, `meetingRegion`, `attendeeName`, `attendeeEmail`, `attendeeExternalUserId`
- [cdk-stacks/package.json] - new scripts introduced to support:
- [install] - `install:agent-app`, `install:demo-website`, `install:cdk-stacks`, `install:lambdas`, `install:all`
- [echo CDK outputs] - `echo:web-app-root-prefix`, `echo:cdk-frontend-stack-name-param`, `echo:cdk-frontend-stack-physical-name`, `echo:web-app-bucket`
- [sync config] - Downloads `frontend-config.js` from `WebAppBucket` to support local frontend testing: `sync-config`, `sync-config:agent-app`, `sync-config:demo-website`
- [build] - `build:agent-app`, `build:demo-website`, `build:frontend`
- [cdk deploy] - `cdk:remove:context`, `cdk:deploy`
- [single command build and deploy] - `build:frontend:cdk:deploy`
- [diagrams] - Solution Diagram and Sequence Diagrams updated to reflect all the changes in release v2.0.0


### Removed
- [cdk-backend] - folder removed, all resources migrated to `cdk-stacks` folder
- [cdk-frontend] - folder removed, all resources migrated to `cdk-stacks` folder
- [chatapi-lambda] - folder removed, APIs migrated to `cdk-stacks/lambdas/handlers/ChatAPI` folder
- [chimeapi-lambda] - folder removed, APIs migrated to `cdk-stacks/lambdas/handlers/ChimeAPI` folder
- [connectapi-lambda] - folder removed, APIs migrated to `cdk-stacks/lambdas/handlers/ConnectAPI` folder
- [routingapi-lambda] - folder removed, APIs migrated to `cdk-stacks/lambdas/handlers/RoutingAPI` folder
- [utility-layer] - folder removed, Utility functions migrated to `cdk-stacks/lambdas/lib` folder
- [install.sh] - script deprecated, use `npm run install:all` in `cdk-stacks` folder
- [deploy.sh] - scripts deprecated, use `npm run cdk:deploy` in `cdk-stacks` folder
- [MeetingsTable] - DynamoDB table deprecated, all entities stored in a single-table `VideoCallEscalationDB`
- [AttendeesTable] - DynamoDB table deprecated, all entities stored in a single-table `VideoCallEscalationDB`
- [RoutesTable] - DynamoDB table deprecated, all entities stored in a single-table `VideoCallEscalationDB`

## [1.1.4] - 2021-04-28
### Changed
- [demo-website] - Upgrade `amazon-connect-chat-interface.js`, to support `ca-central-1` region
Expand Down
Loading

0 comments on commit 804e98e

Please sign in to comment.