A Talis library of AWS CDK constructs, implemented in Typescript and currently Node v18.16.0
This project follows conventional commits, and enforces this choice during the build and release cycle.
Builds are conducted by CircleCI, and upon successful build of the main branch, semantic-release will generate a new release, an appropriate version (based on commits), and release-notes to cover the content of the commit log.
-
CDN Site Hosting constructs
CdnSiteHostingConstructfor static-site or single-page application hosting in S3 via CloudFront.CdnSiteHostingWithDnsConstructfor static-site or single-page application hosting in S3 via CloudFront, with DNS record provisioning
-
LambdaWorker- A serverless background job.
- Possible replacement for Resque Workers / Jobs
- Details here.
-
AuthenticatedApi(http api)- An API Gateway (v2)
- Built in optional Persona authentication on routes
- Details here.
-
AuthenticatedRestApi(rest api)- An API Gateway Rest API
- Built in optional Persona authentication on routes
- Note: token validation is implemented, but scope validation is not
- Details here.
-
TalisCdkStack- Base stack to be extended by talis stacks
- Details here
-
TalisRegion- Aliases of AWS regions to the regions we deploy applications
- Details here
-
TalisDeploymentEnvironment- Aliases and resuable constants for referencing our specific deployment environments.
- Details here
ResourcePrefixer- Prefixs all AWS resources with the given prefix
- Details here
npm run buildcompile typescript to jsnpm run watchwatch for changes and compilenpm run infra-testperform the infra jest unit testsnpm run integration-testperform the integration testsnpm run lintwill check code quality and style guidelines (using ESlint and Prettier)npm run formatwill format the code (using Prettier)
The integration tests are run against versions of the example projects deployed into AWS.
To run the integration tests locally:
export AWS_PREFIX=development-XX-where XX are your initials- The
authenticated-lambdaconstruct integration test needs the following environment variables for client/secrets. The values can be found by searching fortalis-cdk-construct integration testsin keeper.export TALIS_CDK_AUTH_API_MISSING_SCOPE_CLIENT=export TALIS_CDK_AUTH_API_MISSING_SCOPE_SECRET=export TALIS_CDK_AUTH_API_VALID_CLIENT=export TALIS_CDK_AUTH_API_VALID_SECRET=
- Following the instruction to deploy the
simple-lambda-workerin the examples readme. - Following the instruction to deploy the
simple-authenticated-apiin the examples readme. npm run integration-test