- Adds alias for profile, improves error message (#344)
- Correctly increase version number of new packages
- Fixes deployments without Lambdas (#325)
- Use CloudFormation role (#324)
- Improve CLI (#323)
- Fix runtime bundle (#322)
- Adds static prefix to files served from S3 (#321)
- Add CLI commands (#317)
- No longer require reserved concurrency (#319, #251)
- Use CLI and CDK for deployments (#300)
- Ensure compatibility with AWS Provider Version 4 (#286, #291)
- Add switch for attaching additional policy documents (#276)
- Adds support for route-manifest v4 (#292)
This ensures the builder works with Next.js versions>= v12.1.3
. - Restrict image optimizer submodule version to
<= v12.0.10
(#293)
Since thev12.0.10
release is the last version with support for Terraform AWS Providerv3.x
this update ensures existing setups will not break in the future. - Bump @vercel/build-utils from
2.10.1
to2.12.1
(#287)
- Adds new output for Lambda role ARNs
lambda_execution_role_arns
(#270)
- Support for response headers policy (
cloudfront_response_headers_policy
) for the internal CloudFront distribution (#265, #268)
This also increases the minimum required Terraform AWS provider version from3.43.0
to3.64.0
.
- Bash script for uploading assets to S3 now uses the standard endpoint and is now compatible with newer AWS regions (#263)
- Components fetched from npm registry now use relative paths that are stored in the Terraform state, which prevents unnecessary deployments (#261)
- Fix for cloudfront invalidation dynamic routing paths (#258)
- Option for attaching a waf policy to the internal CloudFront distribution (#250)
- TTL for
Cache-Control
header is set to0
(no cache) when the header is not sent from origin (#241, #236)
Bugfix release that ensures compatibility with the v12.0.0
version of the Terraform Next.js Image Optimization module for AWS.
create_image_optimization
breaks because of breaking change in the newest 12.0.0 release (#243, #244)
This release ensures that static generated routes with dynamic parts (e.g. /test/[...slug]
) are invalidated correctly when running terraform apply.
We also added a new option to define tags exclusively on S3 buckets created by this module.
- Ensure correct invalidation for slug paths (#140, #229, #228)
- Adds new input variable
tags_s3_bucket
(#216, #230)
Beginning with this release we streamline the versioning of the Terraform module with its npm-packages.
So when you use the Terraform module in version 0.10.0
you should also use the tf-next@0.10.0
npm-package for building the Next.js project.
This release also increases the minimum required Terraform version from 0.13
to 0.15
.
- Forward correct
host
header to server-side rendered pages (#156, #161) - Adds charset to
Content-Type
header for static routes and files served by S3 (#214, #226) - Removes empty provider warning when running Terraform commands (#155, #219)
- Removes random ids from resource names (#212, #227)
This release fixes the routing behavior for dynamic routes that are statically generated (served from S3).
We recently changed the namespace of this module from dealmore
to milliHQ
. Make sure to upgrade the source of the module accordingly:
module "tf_next" {
- source = "dealmore/next-js/aws"
+ source = "milliHQ/next-js/aws"
...
}
Besides from the namespace change, this release has now an improved experience when using it with custom domains and some bugfixes to the proxy component when using the trailingSlash
option from Next.js.
- It's now possible to use domain aliases without creating an external CloudFront distribution (#192)
- Ensure
x-nextjs-page
header gets forwarded (#190) - Bump
milliHQ/download/npm
from 1.1.0 to 2.0.0 (#193)
This is a maintenance release which upgrades the image optimizer module to the latest version. We also changed the behavior of the proxy module so that the default root object in CloudFront is no longer necessary.
No configuration changes should be necessary when upgrading from the 0.9.0
release.
- Upgrades Proxy component to 0.7.0 (#139, #141)
- Upgrades Terraform Next.js Image Optimization module for AWS to
11.x.x
release (#142, #144)
The image optimizer Lambda now uses2048mb
RAM by default (from1024mb
) to improve resizing speed. You can change that amount with the newly introduced variableimage_optimization_lambda_memory_size
. This has no effect on the Lambda functions that serve the Next.js pages or api routes (they remain at1024mb
by default). - Bump AWS Lambda Terraform module from 1.47.0 to 2.4.0 (#145)
- Bump AWS API Gateway Terraform module from 0.11.0 to 1.1.0 (#146)
Since the main CloudFront distribution is a central resource that may need advanced customization, we decided to introduce a new way to fully customize the distribution for to your needs.
As part of this change a few input variables are no longer supported and should be removed from the module.
If you are not using one of these variables you can safely upgrade to this release without further changes.
If you use one of the following input variables read below for more information how to upgrade:
cloudfront_custom_behaviors
cloudfront_geo_restriction
cloudfront_origins
cloudfront_viewer_certificate_arn
cloudfront_minimum_protocol_version
create_domain_name_records
domain_names
domain_zone_names
If you are already using one of these input variables you should now create a new CloudFront resource in your main.tf
file and link it with the Next.js module.
For more information please see the "with existing CloudFront" and "with custom domain" examples.
- Enable usage of external CloudFront resource (#55, #134, #137)
- Queue CloudFront invalidations (#48, #125)
- Attaching Lambda to VPC (#110, #111)
Thanks to @chamilad for contributing! - Remove provider proxy from proxy-config module (#102, #124)
- Bump @vercel/nft from 0.9.5 to 0.10.0 (#112)
- Fixes compatibility with Terraform 0.15 (#115, #118)
- Bump AWS Lambda Terraform module from 1.34.0 to 1.47.0 (#117)
- Bump Next.js Image Optimization module from 10.0.5 to 10.0.8 (#116)
This release enables Brotli in addition to gzip as default compression method.
Before upgrading make sure that you define a new alias global_region
for the AWS Provider in the us-east-1
region.
This provider alias is used to create the Lambda@Edge function that must be created in us-east-1
.
# main.tf
provider "aws" {
region = "us-west-2"
}
+ provider "aws" {
+ alias = "global_region"
+ region = "us-east-1"
+ }
module "tf_next" {
source = "dealmore/next-js/aws"
+ providers = {
+ aws.global_region = aws.global_region
+ }
}
- Removes internal AWS provider for
us-east-1
region (#50, #101) - Enable Brotli compression for CloudFront (#8, #82)
- Adds
cloudfront_geo_restriction
variable (#97) - Use
nodejs14.x
as default runtime for Lambda (#67, #80, #81)
- CloudFront invalidations for static files (e.g. static prerendered HTML or files from
public/
) are only issues if the eTag of the file changes (#48, #91)
- Ensure that
INIT_CWD
environment variable is set to the correct working directory (#87)
- Allows dependencies (e.g. Prisma & Blitz.js) to correctly detect the build environment (#70, #73, #85)
- Bump internal module
terraform-aws-modules/apigateway-v2/aws
from0.5.0
to0.11.0
(#68) - Bump internal module
dealmore/next-js-image-optimization/aws
from2.0.0
to2.0.1
(#68)
- Fix for invalid function argument error introduced by
0.7.1
release (#59)
- Add option to set the image optimizer version (#58)
This release brings support for Next.js image optimization 📸.
No extra config is needed, simply update the Terraform module and the tf-next
package to the latest version!
Check out our example for more information: Next image component example
You can always opt-out from creating resources for image optimization by setting create_image_optimization = false
.
- Adds support for
next/image
component (#28, #51) - Refactoring: Outsources a previously private Terraform module, that is now used across multiple projects. Is now avaiable here: NPM Download Terraform module (#41)
- Internal refactoring which changes the way the module is bundled. No feature changes (#43)
- Internal refactoring which changes the way the module is bundled. No feature changes (#43)
- Bump internal module version of
terraform-aws-modules/lambda/aws
: 1.31.0 -> 1.34.0
This should fix an issue when performing a direct upgrade fromv0.3.0
tov0.6.x
- Fix: Correctly propagate the permissions boundary (
lambda_role_permissions_boundary
) to all Lambda & Lambda@Edge functions (#38)
- Fix: Request cookie header should be semi-colon delimitated (#39)
You need to update the tf-next
package to the latest version in order to use it with the v0.6.0
release.
npm upgrade tf-next@latest # npm
yarn upgrade tf-next@latest # yarn
- Upgrade to API Gateway Payload V2.0 (#29, #31)
This is only an upgrade of the internally API used by Lambda and API Gateway (Not the resource itself, since we already use API Gateway V2). See this guide for a detailed look at the differences between the V1.0 and V2.0 format. It fixes a bug where no multi-value headers could be sent by a SSR or API page. - Sends an error message when you try to use the Terraform module together with an old version of
tf-next
(#5, #37) - Upgrades proxy component to
v0.4.0
- Adds a version number to the config file, so that the Terraform module is able to warn about a possible version mismatch (#5, #37)
- Fix to handle
resource
handle type properly
- Fix: Pass permissions boundary to edge proxy lambda (#35)
- Adds
tags
variable to set tags on supported AWS resources (#34) - Adds
lambda_role_permissions_boundary
variable for setting a permission boundary for the Lambda role (#33)
- Adds
cloudfront_hosted_zone_id
output (#30).
Happy New Year! 🍾
With this release we bring native support for redirects in Next.js.
-
The build tool got a new name, now it is simply
tf-next
instead of@dealmore/terraform-next-build
.
For backwards compatibility we plan to release new versions to both the old and the new package name until v1.0. -
When running
tf-next build
we now filter out routes with the prefix_next/static/*
since they are handled directly by CloudFront and will never hit the Proxy.
- Adds new example how to use custom domains.
- Adds ability to change the price class of the associated CloudFront distributions (
cloudfront_price_class
). - Adds new option after how many days the static assets of previous deployments should be deleted from S3(
expire_static_assets
). - Updates deploy trigger Lambda function to
v0.1.0
.
- Static routes are now cached much longer by CloudFront.
- Static routes from CloudFront now get invalidated when a new deployment is pushed.
- Updates deploy trigger Lambda function to support expiration of previous deployments.
- Adds support for Terraform
v0.14
- Drops support for Terraform
v0.12
Note: This will be the last release with support for Terraform
v12.x
, see #18 for more information.
- Destroy non-empty S3 buckets on stack deletion
- Experimental support for pre-Rendered routes (#16)
- Experimental support for pre-Rendered routes (#16)
- Experimental support for pre-Rendered routes (#16)