Skip to content

Latest commit

 

History

History
1085 lines (587 loc) · 23.6 KB

changelog.md

File metadata and controls

1085 lines (587 loc) · 23.6 KB

Architect Deploy changelog


[5.0.7] 2024-04-30

Fixed

  • Remove unnecessary legacy validation, including looking for the AWS CLI during deployment; fixes #1482

[5.0.6] 2024-04-29

Changed

  • Updated dependencies
  • Updated package.json engines.node property to reflect changes from v5

Fixed

  • Fixed REST API plugin check; thanks @jonpacker!

[5.0.4 - 5.0.5] 2024-03-25

Changed

  • Updated dependencies

[5.0.3] 2024-02-13

Changed

  • Updated dependencies

Fixed

  • Fixed issue where entirely custom Lambda-based projects may error when trying to print the project's URL(s) after deploying

[5.0.0 - 5.0.2] 2024-02-01

Added

  • Added experimental --fast flag, which ships project to AWS without waiting around to determine if the deployment completed successfully. Use with care!
  • Added proper debug output level

Changed

  • Transitioned from aws-sdk to aws-lite
  • Deploy also no longer needs the AWS CLI
  • Deploy no longer writes sam.json + sam.yaml files upon each deploy
    • However, if you do want to see the sam.json being deployed, use the --dry-run or --debug|-d CLI flags
  • Added Node.js 20.x to test matrix
  • Breaking change: removed support for Node.js 14.x (now EOL, and no longer available to created in AWS Lambda)
  • Added some status messages to CDN operations
  • Combined CDN invalidation into post-deploy app apex ops

Fixed

  • Fixed issues surrounding correctly toggling @cdn as enabled or disabled

[4.6.3] 2023-10-31

Changed

  • Updated dependencies

[4.6.2] 2023-10-23

Changed

  • Updated dependencies

[4.6.1] 2023-08-22

Changed

  • Use CloudFormation --debug when in arc deploy --verbose mode; thanks @frankleng!

[4.6.0] 2023-08-01

Added

  • Added support for Python Lambda treeshaking
  • Enable direct deploys to reconfigure Lambda architecture

[4.5.0 - 4.5.1] 2023-04-22

Added

  • Added support for deploying compiled runtimes

Changed

  • Updated dependencies

[4.4.1 - 4.4.2] 2023-04-13

Fixed

  • Fixed public bucket permissions impacted by AWS's 2023-04 S3 security changes; thanks @brianleroux!
  • Fix subfolders on static asset deployments in Windows; fixes #1420, thanks @r2dliu!

[4.4.0] 2023-03-09

Changed

  • Improved deployment of static assets prior to deploying app changes
  • Updated deps
  • Internal change: refactored globbing logic for Glob v9

Fixed

  • Fixed case where static assets would be pruned prior to deploying app changes, which could leave the app in a broken state during deployment, or if the deployment otherwise fails; fixes #1416
  • Fixed typo; thanks @lpsinger!

[4.3.1] 2023-02-17

Fixed

  • Fixed service names generated by deploy.services() plugins; thanks @lpsinger!

Changed

  • Updated dependencies

[4.3.0] 2023-01-26

Added

  • Deploy now automatically destroys deployment artifacts more than 1 week old; fixes #1399, thanks @alexbepple!
  • Added support for destroying more than 1,000 old static assets per deployment with prune enabled

[4.2.11] 2023-01-18

Changed

  • Updated dependencies

[4.2.9 - 4.2.10] 2023-01-11

Fixed

  • Fix direct deploy to @tables-streams Lambdae

Changed

  • Updated dependencies

[4.2.8] 2023-01-05

Added

  • Deploy now respects ignore patterns when pruning files that may only be in S3 and not on the local filesystem
    • Example use case: upon completion of deployment, you have a separate process for publishing an artifact to your app's static asset bucket; adding that artifact's name, folder name, etc. to @static ignore will now ensure it will not be destroyed with @static prune enabled

[4.2.7] 2022-11-24

Added

  • Added Node.js 18.x to test matrix

Changed

  • Updated dependencies

[4.2.6] 2022-10-27

Added

  • Added support for automatically re-publishing static assets when compression setting changes

Changed

  • Internal change: piping static asset publishing through the Arc updater

Fixed

  • Fixed missing support for legacy @static staging|production setting

[4.2.5]

Fixed

  • Deploy respects --no-hydration with --direct; fixes #1348, thanks @tbeseda, @ThatOneBro!

[4.2.4] 2022-10-04

Changed

  • Updated dependencies

[4.2.3] 2022-09-07

Changed

  • Updated dependencies

[4.2.2] 2022-08-29

Changed

  • Updated dependencies

[4.2.1] 2022-08-05

Fixed

  • Fixed not firing deploy.start plugins / macros; fixes #1364, thanks @mawdesley!

[4.2.0] 2022-07-26

Added

  • Added support for @static compression setting for configuring br and gzip static asset compression

Changed

  • Updated dependencies

Fixed

  • Fixed issue where additional S3 deploy buckets may be created if app name contains an underscore; fixes #1363, thanks @DocLM!

[4.1.4] 2022-07-22

Changed

  • Updated dependencies

Fixed

  • Fixed issue where Deploy may wrongfully infer @http from the @static pragma; fixes #1359

[4.1.3] 2022-05-10

Changed

  • Updated dependencies; sub-dep lambda-runtimes adds nodejs16.x.

[4.1.2] 2022-04-29

Changed

  • Updated dependencies

[4.1.1] 2022-04-28

Changed

  • Updated dependencies

[4.1.0] 2022-04-09

Added

  • Added brotli compression for static asset publishing

[4.0.7] 2022-04-07

Fixed

  • Added static asset sort to publish index.htm[l] files last; fixes #1335
    • Also: index.htm[l] files with deeper sub-paths should publish earlier, with the root HTML file publishing last

[4.0.6] 2022-03-31

Changed

  • Updated dependencies

[4.0.5] 2022-03-24

Changed

  • Updated dependencies

[4.0.4] 2022-03-03

Changed

  • Updated dependencies

[4.0.3] 2022-02-21

Added

  • Add ability to automatically publish static assets to S3 if fingerprint is set to true or external, prune is disabled (which it is by default), and the app has a bucket; fixes #1312, thanks @gopeter!

[4.0.0 - 4.0.2] 2022-01-13

Added

  • Architect 10 plugin API support!
    • Added deploy.start methods for CloudFormation mutation and other arbitrary pre-deploy operations
    • Added deploy.services methods for adding Architect services registration and custom Lambda config data
    • Added deploy.target methods for deploying Architect projects to other targets
    • Added deploy.end methods for running arbitrary post-deploy operations
  • Added --eject option (functionally the same as --dry-run)

Changed

  • Breaking change: moved legacy API Gateway REST API provisioning to @architect/plugin-rest-api plugin; to continue deploying REST APIs with Architect:
    • Install @architect/plugin-rest-api to your project's dependencies
    • Add @plugins architect/plugin-rest-api and @aws apigateway rest to your project manifest
    • Fixes #1297
  • Breaking change: removed --apigateway CLI flag + apiType property from the module API
    • The preferred way to configure your API Gateway is now the @aws apigateway setting in your project manifest
  • Breaking change: bare CLI arguments (e.g. deploy production) as aliases to flags are now discarded, please use CLI flags (e.g. deploy --production or deploy -p)
  • Breaking change: you must now use an individual CLI flag (or let your shell auto expand) for each of multiple tags or direct deploy Lambdas; examples of adding the tags foo + bar:
    • Multiple flags: deploy --tag foo --tag bar
    • Short flags: deploy --t foo --t bar
    • Shell-expanding: deploy --tag={foo,bar}
  • Breaking change: -d CLI flag will now be used for debugging, not direct deployments
  • Breaking change: the deploy.dirty API method is now fully deprecated, please use deploy.direct instead
  • Internal change: moved most internal CloudFormation mutations into Package (where they rightly belong), via the deployStage param
  • Internal change: refactored deployment operation order
  • Upgraded CloudFront HTTPS TLS protocol to TLSv1.2_2021
  • Migrate static bucket permissions from per-object ACLs to a bucket policy so users can customize the static bucket permissions using macros
  • Stop publishing to the GitHub Package registry

[3.1.1] 2022-01-07

Changed

  • Updated dependencies

[3.1.0] 2021-11-16

Added

  • Added support for @tables-streams, the fully customizable successor to @tables with stream true
    • Includes support for specifying multiple streams attached to a single table, as well as specifying custom source paths
    • For more see: https://arc.codes/tables-streams
  • Added support for @tables-indexes (which will eventually supersede @indexes)

[3.0.6] 2021-10-20

Changed

  • Updated dependencies

[3.0.5] 2021-10-12

Changed

  • Updated dependencies

[3.0.4] 2021-09-30

Changed

  • Updated dependencies

[3.0.3] 2021-09-05

Changed

  • Updated dependencies
  • Internal: removed some unnecessary awaits

Fixed

  • Fixed issue where changing @static fingerprint setting may not update cache-control headers in static assets; fixes #1108, thanks @ryanflorence!

[3.0.0 - 3.0.2] 2021-07-26

Changed

  • Breaking change: removed support for Node.js 10.x (now EOL, and no longer available to created in AWS Lambda) and Node.js 12.x
  • Removed aws-sdk from peerDependencies; see aws-sdk caveat in readme.md
  • Updated dependencies

Fixed

  • Fixed issue where REST APIs relying on ASAP would fail during deploy

[2.6.1 - 2.6.2] 2021-06-21

Changed

  • Update dependencies

[2.6.0] 2021-05-24

Added

  • @plugins support now includes generation of SSM Parameters based on the output of a plugin's variables method. See the @plugins docs for more information.

[2.5.4] 2021-04-26

Fixed

  • Fixed bug where plugin-generated Lambdas would not have proper built-in production environment variables assigned when running a production deploy; fixes #1134

[2.5.3] 2021-04-23

Fixed

  • Fixed bug introduced in 2.5.2 with switch to async task processing in deploy; fixes #421

[2.5.2] 2021-04-22

Fixed

  • Fixed bug where macros that were returning copies of CloudFormation JSON would lose CloudFormation state; fixes #1127

[2.5.1] 2021-03-24

Fixed

  • Fixed deployments for legacy REST APIs that do not have a root handler defined; fixes #1089
  • Error gracefully when new verbose route format is used with legacy REST APIs

[2.5.0] 2021-03-22

Added

  • Added beta support for @plugins

[2.4.0] 2021-01-26

Added

  • Added --no-hydrate CLI flag to skip hydration before a deploy

[2.3.3] 2021-01-07

Fixed

  • Typo in error log statement

[2.3.2] 2020-12-21

Added

  • Added Lambda code payload size report for full deploys

[2.3.0 - 2.3.1] 2020-12-06

Added

  • Added support for automated dependency management via Hydrate autoinstall to normal and direct deploys

Changed

  • Deploy artifact cleaner now makes a best effort run after every deployment, whether or not it succeeded

Fixed

  • Added missing dependency hydration step to direct deploys
  • Fixed inability to deploy static asset-only apps; thanks @thedersen!

[2.2.3] 2020-12-09

Fixed

  • Fixed inaccurate API type specification in certain circumstances

[2.2.2] 2020-12-04

Changed

  • Removed printing unnecessary static asset deploy status
  • Updated dependencies

[2.2.1] 2020-11-29

Fixed

  • Fix bug where NODE_ENV would not be updated to production if production environment had no other env vars; thanks @barryf!

[2.2.0] 2020-11-28

Added

  • Moved ASAP + fingerprinting from Package into Deploy (finally)

Fixed

  • Fixed fingerprint check that could cause false negative fingerprinting
  • Improved reliability of direct deploys; thanks @filmaj!

[2.1.1 - 2.1.2] 2020-11-25

Fixed

  • Fixes env var population when Deploy is run via CLI
  • Fixed double banner print when being called from @architect/architect
  • Fixed direct deploys when project does not have an explicit @http root handler
  • Fixed WebSocket API failure related to AWS bug; fixes #1015, thanks @filmaj!

[2.1.0] 2020-11-23

Added

  • Added support for custom file paths
  • Added support for direct deploys of multiple functions from a single source dir (with custom file paths)
  • Added support for direct deploys to production Lambdas
  • Added support for ensuring environment variables are updated during direct deploys
  • Added support for ARC_ENV env var

Changed

  • Implemented Inventory (@architect/inventory)
  • An inventory object is now passed as the 4th parameter to Macros; please note that this is (for now) considered internal-only and may change in the future
  • Shored up AWS region throughout, now defers to options, and then Inventory region (which is itself may use AWS_REGION)
  • Internal change: removed final remnants of old nested code path
  • Internal change: retiring dirty nomenclature / API for direct
  • Added validation checks for @http any + catchall syntax with legacy REST APIs
  • Deploy no longer creates missing Lambda resources by default; to reenable that, add to your preferences file:
@create
autocreate true

Fixed

  • Fixed static deployments on apps with enough CloudFormation resources to paginate; fixes #996, thanks @samirrayani!
    • Also fixed direct deployments on apps with enough CloudFormation resources to paginate
  • Fixed case where explicitly defining @cdn false does not disable the CDN; fixes #968
  • Fixed bug where Deploy would crash instead of bubbling a CloudFormation error
  • Fixed non-exiting CLI process when an error occurs

[2.0.4] 2020-10-26

Added

  • Added support for CloudFormation's new 500 resource limit! This makes us very happy! You can now ship much larger Architect projects.

[2.0.2 - 2.0.3] 2020-10-15

Added

  • Adds support for symlink-aware hydration, ensures no symlinked shared code will ever be deployed to production

[2.0.1] 2020-10-10

Fixed

  • Improved reliability of deploying static assets in Windows
  • Fixed static asset deployments with fingerprinting enabled in Windows, fixes #782

[2.0.0] 2020-09-30

Added

  • Added support for @http catchall syntax (e.g. get /api/*)
  • Added support for @http head + options methods
  • Added support for @http any method syntax (e.g. any /path)
  • Added support for @proxy

Changed

  • Breaking change: with the addition of @http any and *, default get / greedy catchall is now deprecated
    • To restore that behavior, either move your get / route to any /*, or just define a new any /* route
  • Updated dependencies

[1.9.3] 2020-09-21

Fixed

  • Fixed paths in @cdn origin configuration; fixes #965, ht @anatomic
  • Fixed legacy API binary encoding deploy-time patching

[1.9.1 - 1.9.2] 2020-09-17

Fixed

  • Fixed issue where in certain circumstances legacy (REST) APIs could be provisioned without /_static
  • Fixed issue where legacy (REST) APIs stage names was incorrectly set for production

[1.9.0] 2020-09-16

Added

  • HTTP APIs are the new default when provisioning new API Gateway resources
    • Defaults to http setting, which uses the latest payload format, or manually specify httpv2 or legacy httpv1 payload formats
      • Apply in CLI with --apigateway http[v1|v2], or in project manifest with @aws apigateway http[v1|v2]
    • Added backwards compatibility for REST APIs with rest setting
      • Apply in CLI with --apigateway rest, or in project manifest with @aws apigateway rest
    • This only impacts Architect @http, which was formerly provisioned as REST APIs
    • More info: https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html
    • Fixes #838

Changed

  • Internal change: implemented new code standard with @architect/eslint-config

[1.8.4] 2020-07-15

Fixed

  • Fixed static asset deploy path issue; fixes #915, ht gyan!

[1.8.3] 2020-07-01

Changed

  • Apps now ensure least privilege HTTP methods on /_static/*, allowing only GET

Fixed

  • Fixed API Gateway issue that adds an extra stage called Stage
  • Corrected internal configuration for static proxy

[1.8.2] 2020-06-24

Changed

  • Static asset deployments now rely on MD5 hashes for static asset diffing, and not filesystem mtime; fixes #890

[1.8.1] 2020-06-23

Changed

  • Update dependencies

[1.8.0] 2020-06-03

Added

  • Rewrite of static asset S3 publishing
  • Added the ability to prefix any path to deploy.static calls (e.g. always-upload-to-this-folder/file.html) with @static prefix whatever (or as a parameter in deploy.static)
  • Enabled deploy.static calls to override the default Architect behavior (which always deploys to CloudFormation generated S3 buckets) and specify custom bucket and region parameters
  • Added ability to prune from a full deploy (e.g. arc deploy --prune)
  • Respect @static spa setting in root proxy
  • Default root proxy now coldstarts faster by removing any globally defined layers
  • deploy.static now accepts optional AWS credentials object

Fixed

  • Fixed file pruning for projects with @static folder specified
  • Now checks to ensure @static folder exists, and errors if not found
  • Fixes @static fingerprint ignore with more recent versions of Architect Parser

[1.7.1] 2020-05-17

Changed

  • Updated direct deployment copy, added warning
  • Updated dependencies

[1.7.0] 2020-05-10

Added

  • Deploy can now deploy directly deploy single functions or groups of functions to Lambda by providing a path; examples:
    • arc deploy src will dirty deploy all of ./src
    • arc deploy src/http will dirty deploy all of ./src/http
    • arc deploy src/events/foo will dirty deploy ./src/events/foo
    • As a reminder: direct deployments should be considered temporary / for testing only, and will be overwritten by any deployments coming in from a proper full deploy operation
    • Fixes #625, shout out to @filmaj for this awesome feature! 🔥

[1.6.1] 2020-04-16

Added

  • Added Sandbox watcher pausing
    • Writes an empty _pause-architect-sandbox-watcher file in your operating system's $TMP directory (usually /tmp or c:\windows\temp) which temporarily pauses the Sandbox watcher
    • This means Sandbox can remain open during deploys and neither should interfere with the other
  • Allow disabling Architect's CDN checks / processes so user can configure / manage their own CDNS via Macros; fixes #750, thanks @jgallen23!
    • Syntax: @cdn false || @cdn disable || @cdn disabled

Changed

  • Updated dependencies

Fixed

  • Fixed issue where custom named deployments (deploy --name) wouldn't work with static; fixes #759, thanks @jgallen23!
  • Fixed issue where deploying static assets may deploy to the wrong bucket if additional buckets are defined in Macros; fixes #750, thanks @clintjhill + @jgallen23!

[1.6.0] 2020-03-22

Added

  • Added early support for HTTP APIs (currently only via Macro)

[1.5.4] 2020-03-22

Changed

  • Updated dependencies

[1.5.2 - 1.5.3] 2020-03-19

Changed

  • Ensures hydration occurs before macros in the deploy process, enabling macros to mutate dependencies and shared files during a deploy
  • Updated dependencies

[1.5.1] 2020-02-13

Changed

  • Updated dependencies

[1.5.0] 2020-02-05

Added

  • Dry-run flag: deploy --dry-run
    • Test your @macros, function hydration, CloudFormation / SAM template files, and other deployment-related operations without actually building any live infra
    • Dry-run mode runs through all deploy operations necessary to generate your app's CloudFormation / SAM template files
    • Heads up: the AWS CLI requires a live, active S3 bucket to generate your app's templates; however no live infra will be created from these templates

Changed

  • Updated dependencies

[1.4.0] 2020-01-13

Added

  • If no deployment bucket is specified, Deploy now automatically creates one for you
    • If a deployment bucket was automatically created before, but no longer exists (or access is no longer available), a new bucket will be created and your app's configuration will be updated
    • This also means the @aws pragma is no longer stricly necessary to deploy to AWS with Architect

[1.3.3] 2020-01-07

Changed

  • Updated dependencies

[1.3.1 - 1.3.2] 2019-12-28

TODO


[1.3.0] 2019-12-14

Added

  • Adding --name for creating a unique stack name. (Aliased to -n and name.)
  • Adding --tags for adding tags to the CloudFormation stack.

[1.2.14] 2019-12-12

Changed

  • Updated dependencies

[1.2.13] 2019-12-01

Changed

  • Now prints WebSockets URLs upon deployment, thanks @jessehattabaugh!

Fixed

  • Fixes regression related staging and production WebSockets names and paths, thanks @jessehattabaugh!
    • WebSockets APIs named ${appname}Websocket are now named ${appname}Websocket${stage} (like @http APIs)
    • production WebSockets paths now correctly reflect the production stage (e.g. longawsurl.com/production)

[1.2.12] 2019-12-02

Added

  • Adds CAPABILITY_AUTO_EXPAND for nested stack deployments; fixes #436, thanks @jgallen23!

[1.2.11] 2019-11-19

Changed

  • Updated dependencies

Fixed

  • Fixed potential CloudFront error related to destructuring; thanks @roxeteer!

1.2.9 - 1.2.10 TBD


[1.2.8] 2019-10-17

Changed

  • Internal change: swapped out utils/init for @architect/create
  • Updated dependencies

[1.2.7] 2019-10-17

Fixed

  • Fixes failed deploys if file type is known by common mime-type database; resolves #56, thanks @mikemaccana!
  • Fixes paths for deployment of assets on Windows; resolves #58, thanks @mikemaccana!

[1.2.5 - 1.2.6] 2019-10-15

Fixed

  • Fixed deployment issue if get / is not specified in @http; resolves @package#27, /ht @grahamb and @jeffreyfate!

[1.2.4] 2019-10-11

Changed

  • Updated dependencies

[1.2.3] 2019-10-10

Added

  • Added support for @static fingerprint true in root spa / proxy function deployments

Changed

  • Moved fingerprint operations into a pre-CloudFormation step
  • Internal refactor to sam

[1.2.2] 2019-10-10

Changed

  • Ensures html / json are published to S3 with anti-cache headers

Fixed

  • Restores static asset pruning

[1.2.1] 2019-10-09

Added

  • Cleans up temp directory left by package when using root proxy + fingerprint

Changed

  • Now uses @architect/http-proxy instead of manually vendored root proxy file
  • Updated dependencies

[1.2.0] 2019-10-03

Added

  • Automatic @cdn invalidation every deploy (similar behavior to 3rd party CDNs); CloudFront gives you 1000 free invalidations/mo

[1.1.5 - 1.1.6] 2019-10-02

Fixed

  • Fixed issue where with @static fingerprint true enabled, the static.json file would not be copied into deployed functions' shared dirs; fixes #43, thanks @dawnerd + @jgallen23!
  • Removed eslint from production dependencies

Changed

  • Updated dependencies


[1.0.4]

Added

  • changelog.md meta
  • New @static config option: folder to override public