Any new functionality should be introduced as a new plugin in the src/plugins directory. New plugins should make use of the shared featureIsDisabled
function so that repositories can disable the feature if they desire. New plugins should also have an entry added in config.ts
The project uses Terraform to manage AWS infrastructure. The configuration files are located in the terraform/
directory.
main.tf
: Provider configuration and backend setuplambda.tf
: Lambda function definitionsiam.tf
: IAM roles and policiesapi_gateway.tf
: API Gateway configurationcloudwatch.tf
: CloudWatch log groupsvariables.tf
: Input variablesoutputs.tf
: Output values
- Make your changes to the Terraform files
- Run
terraform fmt
to ensure consistent formatting - Run
terraform validate
to check for configuration errors - Create a PR - the GitHub Actions workflow will automatically:
- Check formatting
- Validate configuration
- Generate and post a plan to the PR
Infrastructure changes are automatically deployed when merged to main
. The deployment:
- Packages and uploads Lambda functions to S3
- Applies Terraform changes with the new configuration