# CDK Changelog
The best time to start documenting is at the beginning of a project
The second best time to start documenting is now.  Sorry to future me.

## Release.78

- You can provide a mailer string in the mail object in the webservice settings to allow you to swap mailers between smtp, sendgrid and ses
- The twingate stack and package are published in this release.  First draft docs of how to use are in 
- Static sites can now be deployed at the root domain.  Leaving the subdomain value null in the settings will cause this to create an A record in the root domain (if one doesn’t already exist).  If one already exists the stack update will error out.
- The network stack now creates a full vpc if no id is passed in, with three subnet groups and two AZ’s each.  
- You can now pass a cluster ARN to the web service stack instead of it trying to create a new cluster.  If no cluster arn is supplied a new cluster will be created. 

## Release.79

- The network package and webService stack now accept an instance of a vpc as an IVpc object in addition to undefined and string.  This allows you to create a vpc in the core stack, and then provide that vpc as an object to the stack, rather than hardcoding the vpc id.

## Release.80

- The WebStatic stack provisions a deploy user.  If you create two webstatic stacks (staging and prod, for example) you get collisions where the app namespace creates two deploy users with the same name.  
- This release alters the naming to use the env var passed in.  It also allows you to pass a IUser interface object so that you can share a deploy user between staging and prod if you want.

## Release.81
- Deconflicts the web static stack deploy policy to use the env var

## Release.83
- Publishes the webstatic distribution and zone so they can be extended
- Outputs the distribution id

## Release.84
- Exposes the CF default behavior object to allow stacks to add behaviors

## Release.85
- When booting a static stack, you can now pass subject alt names into the stack

## Release.86
- Merge the domain list so the alt domains show up in the cf list

## Release.86
- Publish ARecord set from webStatic dns list

## Release.87
- Fixing the way that certs are issued so you can change the order of domains in binding to a cf distro

## Release.88
- Publish twingate packages via the index so they can be referenced directly in includes

## Release.89
- Allow web static to pass in group as IGroup for shared groups

## Release.90
- Allows functionAssociation to be provided as an array to the webStatic stack so 
you can associate cloudfront functions with a distribution.

## Release.91
- Alter the web service stack and package to allow an IUser object to be passed to the stack 
rather than forcing a username string

## Release.92
- Have the ECR Depenency stack publish the URI of the web and queue repositories

## Release.93 
- Fixing a dumb bug with the exports from 92


## Release.94
- Allow user to set "assignPublicIP" prop in twingate stack, and default it to false

## Release.95
- Adding a handoff static web stack with sophisticated functional associations and 
- Sharing users between the handoff functional web stack by default

## Release 0.1.0
- Improvements to the handoff-cdk cf functions and response functions
- Upgrading cdk to 2.69.0

## Release 0.1.1
- Improvements to the handoff-cdk cf functions and response functions

## Release 0.1.3
- Fixes a bug where the tags aren't passed to to the twingate image that's built

## Release 0.1.5
- Makes the subnets optional in the web service and defaults the db and containers
to the proper subnets

## Release 0.1.6
- Sets a reasonable number of images to store in the ecr.

## Release 0.1.7
- Allows database public accessability to be configured and defaults it to true
to preserve existing behavior.

## Release 0.1.8
- Allows booting of web service containers without issuing public ips
- Targets web service containers to public subnet
- Passes assignPublicIp through from the stack layer to the web service package

## Release 0.1.9
- Defaults queue containers to public subnet
- Allows Container settings to use SubnetSelection to define subnets for fargate
services

## Release 0.1.10
- Allows the network stack to be asked to create a nat gateway, EIP allocation 
and routing for the private subnets
- If no vpc is provided for the web service stack, we assume we should create a 
nat gateway and move the containers to the private egress subnet

## Release 0.1.12
- Expose the secret manager interface so secrets can be used downstream, without 
exposing them as plaintext values

## Release 0.1.13
- Adds a twingate security group to the twingate stack to make it easier to 
control what resources the twingate cluster can access

## Release 0.1.14
- Adds vpc as an option in the twingate package and modifies the twingate stack
to pass the vpc to the service properly

## Release 0.1.15
- Adds a bitbucket odic package for reuse.  Accepts a workspace uuid, a repo uuid
and a set of managed policies that can be used
- Modifies the web service package to use the ODIC bitbucket package if requested and falls
back to the deploy user if not provided
- Modifies the web service stack to allow the ODIC config to passed to the service

## Release 0.1.17
- Removes unneeded policies from generic odic config since policies are provided
by the stack, not by the frontend request

## Release 0.1.20
- Allows us to pass an odicARN to the web stack package if an odic for a service
already exists in the account

## Release 0.1.21
- Bugfix where the BB odic package looked for the wrong setting when trying to 
fetch an ODIC from arn

## Release 0.1.25
- Adding additional permissions to the stack deploy to support bb task
update pipeline

## Release 0.1.26
- Adds a github ODIC connection and policy
- Sets the vpn to version 1.59 of twingate and sets the log retention to 3 months

## Release 0.1.27
- Make the workspace slug in the bitbucket odic configurable and default to convertiv_dev

## Release 0.2.0
- Updating to the latest version of AWS CDK 2.95.1

## Release 0.2.1
- Fixes a bug that causes a naming collision when manually selecting subnets and deploying multiple db servers in a group
- Increments twingate default version to 1.59.0

## Release 0.2.2
- Enables github odic as part of the web service deploy
- Extends the ODICPackageConfig to support both bb and gh odic

## Release 0.2.3
- Fixes small bugs in github ODIC implementation in webservice

## Release 0.2.4
- Adds ssmmessages permissions to the task role to allow properly permissioned
users to activate execute command in the service.

## Release 0.2.5
- Ensures fargate stack doesn't use TLS < 1.2 or old versions of ssl
- Allows containers in web stack access to a single defined secret
- Read secret at container deploy time rather baking them into the task 
definition

## Release 0.2.6
- Moving getSecret permissions to task execution role
- Defining a secret validation for web service
- Correctly passing secrets to the main stack and queue stack as secrets rather 
than environment vars

## Release 0.2.7
- Fixes bugs where secrets were populated by key rather than value

## Release 0.2.8
- Typing bug

## Release 0.2.9
- Makes the database optional in the web service stack

## Release 0.2.10
- Fixes a missing env setting

## Release 0.2.11
- Fixing missing workspace_slug in bb odic

## Release 0.2.12
- Insisting that workspace_slug gets passed during webstack

## Release 0.2.13
- Fixes typo in permissions for web service. Deploy user should have the `ecs:ListTaskDefinitions`
instead of the `ecr:ListTaskDefinitions` permission

## Release 0.2.14
- Upgrades aws-cdk and aws-cdk-lib to 2.144.0 to resolve some out of date packages