All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- dropped node v12 and v14 from testing matrix; added v20
0.15.0 - 2024-02-05
- now uses the correct mysql "major" version value so that v8.0 parameter groups are possible
- new deploy config setting to enable the ECS service remote command execution feature
0.14.0 - 2023-07-26
ts-node
package was incorrectly listed in the dev dependencies- pinning dep versions in a way that works with shrinkwrap + tarball installation
lbOptions.healthCheckPath
- specify a different path for the load balancer target health check requests
- default mysql/aurora LTS version to use
- ability for app stack to create its own vpc
- lookup table for ssh bastion instance ami id to use in alternate regions
0.13.0 - 2022-09-13
- migrate to CDK v2 w/ associated import statement changes
- dropped support for node v10.x, added support for v18.x
- one-off app-only task exec now users fargate platform 1.4 (same as regular app task)
- prettier formatting
- husky + lint-staged commit hook
0.12.0 - 2022-03-17
- aws-cdk, eslint, jest and object-hash dependency versions
- apps that use an imported security group via
firewallSgId
will also now create another, miscellaneous security group, attached to the load balancer. This group will initially have no ingress rules and is meant for things like allowing an Opencast instance to push metadata updates to Porta, and other situations that wouldn't be appropriate for a common security group shared with other apps
0.11.0 - 2022-02-22
- updated the alarm threshold docdb cursor timeouts. Instead of firing on each occurrance it now has to see 5 over 5 minutes for 3 consectuive evaluation periods.
- update to Fargate platform version 1.4
- fixed two files related to task scheduling that were somehow formatted with tabs instead of spaces
- tags are now propagated from the ECS service to the Fargate tasks
- new deploy configuration setting:
targetDeregistrationDelay
, specifies number of seconds between when load balancer stops sending new reguests to a target and the target is finally deregistered. - new configuration setting,
firewallSgId
allows for importing a security group to apply to the load balancer and bastion host. meant as a way to restrict app traffic to internal (office, vpn) ips.
0.10.3 - 2021-09-29
stack ... changeset
now also obeys the--yes
flag
0.10.2 - 2021-09-28
- migrate to lockfileVersion 2 so that npm v7 can symlink our dependent binaries correctly
0.10.1 - 2021-09-28
isProductionAccount
was erroring if user's config didn't setproductionAccounts
0.10.0 - 2021-09-24
- rds/mysql database metrics were not showing up. Database constructs were rewritten to allow rds/mysql metrics to come from db instances while docdb metrics continue to come from the cluster
- rearranged the db section of the dashboard
innodb_monitor_enable='all'
added to the rds/mysql instance parameter group to provide additional metrics- two new dashboard db metrics: Transactions and Queries
0.9.3 - 2021-09-23
- fixing an issue with the last release: performance insights isn't supported on all instance types
0.9.2 - 2021-09-23
stack
subcommand now uses explicit path to thecdk
executable instead ofnpx
cdk.json
app configuration now uses explicit path tots-node
executable instead ofnpx
stack
subcommand now setsCDK_DISABLE_VERSION_CHECK
to supress the "newer version available" messages.- enabled performance insights (free tier) on rds mysql db instances
0.9.1 - 2021-09-21
- "main" is now considered a primary branch name when fetching a list of available ECR images
- during the
new
command process, the error thrown when there are no valid image tags has a more informative message
0.9.0 - 2021-09-17
- New deployment configuration setting to control database removal policy:
dbOptions.removalPolicy
. - databases now get their own security groups so that we can set them to the same removal policy.
0.8.1 - 2021-09-15
- no longer assigning a name to the Fargate Service as it would in some cases cause name collision errors when CloudFormation needed to replace the resource. As a result the service names will be something like:
- "CacclDeploy-foo-app-EcsServiceFargateServiceF382E1EB-pbHI10hubZdS"
- instead of "CacclDeploy-foo-app-service"
- scheduled tasks: managed with new
schedule
subcommand, and executed using CloudWatch Events and a Lambda function - new
connect
subcommand options:-q
/--quiet
- only output the ssh tunnel command (suitable for wrapping in a shell script)-S
/--sleep
- increase/decrease the amount of time the tunnel will stay open waiting for activity (e.g. a client connection)
- an example iam policy that should cover all needed aws permissions
- the aws-sdk and all aws-cdk packages updated to the latest release
0.7.4 - 2021-08-13
- additional column in the
show ... --full-status
output showing the version of caccl-deploy used for the most recent deployment
0.7.3 - 2021-08-12
- can't rely on docdb engine version and parameter group family perfectly matching; cloudformation is REALLY picky about this stuff
0.7.2 - 2021-08-12
- stack vs cli version diff check was failing if stack didn't actually exist yet
0.7.1 - 2021-08-12
- version generation incorrectly detecting if programming running from a git repo
0.7.0 - 2021-08-11, porta deployment changes
- bug fix:
helpers.fromJson
couldn't handle relative paths. Replaced use ofrequire.resolve
withpath.resolve
and added a couple of tests. - docdb engine version wasn't being pinned properly for the cluster or parameter group
- ec2 ami for bastion hosts is now pinned to prevent surprise replacements
- CDK construct for deploying an Elasticache (redis) instance
- new
exec
command for running one-off app tasks (e.g. a djangomigrate
) - new
stack
subcommand,info
, which just prints out all the cloudformation stack exports - new
stack
subscommand,changeset
, like deploy but generates a CloudFormation changeset that must be manually inspected and approved - extra confirmation if the deployed stack version differs from the cli version by more than a patch level
cdk/lib/db
now supports multiple db engines: currently docdb or aurora/myql. Note: the previous deploy configuration for including a docdb instance,{ docDb: true, ... }
, is still supported, but new apps should use the new format. See README for more info.- nginx proxy image now pulled with
latest
tag
0.6.4 - 2021-06-09
- updated the
cdk/.npmignore
file which was excluding important files from the published package!
0.6.3 - 2021-06-04
- allow a successful load balancer target health check for a 302 response
- pin the fargate version to 1.3
- pin docdb engine version to 3.6.0
0.6.2 - 2021-05-21
- added 2 (two!) jest tests
./cdk
no longer has it's ownpackage.json
- switched from
package-lock.json
tonpm-shrinkwrap.json
to ensure that published releases install with the expected dependency versions
0.6.1 - 2021-02-19
- utility script,
bin/perms.sh
for examining IAM user permissions
- update our github action npm publish workflow to run on push to main & use JS-DevTools/npm-publish
- Fix task definition registration to exclude invalid parameters
- Fix the
release
command process so that the Fargate service uses the newly created task definition - rename default git branch to "main"
0.6.0 - 2021-02-05
- Fargate service now enables the "circuit breaker" feature
- unecessary eslint config in the
./cdk
subtree
- package dependencies updated