UNPKG

@architect/deploy

Version:
911 lines (496 loc) 20.9 kB
# Architect Deploy changelog --- ## [4.2.9] 2023-01-11 ### Fixed - Fix direct deploy to `@tables-streams` Lambdae --- ## [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 - See: https://github.com/architect/package/pull/148, https://github.com/architect/deploy/pull/350 - 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`) - For more see: https://arc.codes/tables-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 `await`s ### 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](https://arc.codes/docs/en/guides/extend/plugins) 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](https://github.com/architect/architect/issues/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](https://github.com/architect/functions/issues/1127) --- ## [2.5.2] 2021-04-22 ### Fixed - Fixed bug where macros that were returning copies of CloudFormation JSON would lose CloudFormation state; fixes [#1127](https://github.com/architect/architect/issues/1127) --- ## [2.5.1] 2021-03-24 ### Fixed - Fixed deployments for legacy REST APIs that do not have a root handler defined; fixes [#1089](https://github.com/architect/architect/issues/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: ```arc @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 --- <!-- TODO backfill, please! --> --- ## [1.0.4] ### Added - `changelog.md` _meta_ - New `@static` config option: `folder` to override `public`