- Remove unnecessary legacy validation, including looking for the AWS CLI during deployment; fixes #1482
- Updated dependencies
- Updated
package.json
engines.node
property to reflect changes from v5
- Fixed REST API plugin check; thanks @jonpacker!
- Updated dependencies
- Updated dependencies
- Fixed issue where entirely custom Lambda-based projects may error when trying to print the project's URL(s) after deploying
- 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
- Transitioned from
aws-sdk
toaws-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
- However, if you do want to see the
- 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 issues surrounding correctly toggling
@cdn
as enabled or disabled
- Updated dependencies
- Updated dependencies
- Use CloudFormation
--debug
when inarc deploy --verbose
mode; thanks @frankleng!
- Added support for Python Lambda treeshaking
- Enable direct deploys to reconfigure Lambda architecture
- Added support for deploying compiled runtimes
- Updated dependencies
- 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!
- Improved deployment of static assets prior to deploying app changes
- Updated deps
- Internal change: refactored globbing logic for Glob v9
- 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!
- Fixed service names generated by
deploy.services()
plugins; thanks @lpsinger!
- Updated dependencies
- 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
- Updated dependencies
- Fix direct deploy to
@tables-streams
Lambdae
- Updated dependencies
- 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
- 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
- Added Node.js 18.x to test matrix
- Updated dependencies
- Added support for automatically re-publishing static assets when compression setting changes
- Internal change: piping static asset publishing through the Arc updater
- Fixed missing support for legacy
@static staging|production
setting
- Deploy respects
--no-hydration
with--direct
; fixes #1348, thanks @tbeseda, @ThatOneBro!
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Fixed not firing deploy.start plugins / macros; fixes #1364, thanks @mawdesley!
- Added support for
@static
compression
setting for configuringbr
andgzip
static asset compression
- Updated dependencies
- Fixed issue where additional S3 deploy buckets may be created if app name contains an underscore; fixes #1363, thanks @DocLM!
- Updated dependencies
- Fixed issue where Deploy may wrongfully infer
@http
from the@static
pragma; fixes #1359
- Updated dependencies; sub-dep
lambda-runtimes
addsnodejs16.x
.
- Updated dependencies
- Updated dependencies
- Added brotli compression for static asset publishing
- 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
- Also:
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Add ability to automatically publish static assets to S3 if
fingerprint
is set totrue
orexternal
,prune
is disabled (which it is by default), and the app has a bucket; fixes #1312, thanks @gopeter!
- 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
- Added
--eject
option (functionally the same as--dry-run
)
- 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
- Install
- 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
- The preferred way to configure your API Gateway is now the
- Breaking change: bare CLI arguments (e.g.
deploy production
) as aliases to flags are now discarded, please use CLI flags (e.g.deploy --production
ordeploy -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}
- Multiple flags:
- 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 usedeploy.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: architect/package#148, #350
- Stop publishing to the GitHub Package registry
- Updated dependencies
- Added support for
@tables-streams
, the fully customizable successor to@tables
withstream 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
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Internal: removed some unnecessary
await
s
- Fixed issue where changing
@static fingerprint
setting may not update cache-control headers in static assets; fixes #1108, thanks @ryanflorence!
- 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
frompeerDependencies
; seeaws-sdk
caveat inreadme.md
- Updated dependencies
- Fixed issue where
REST
APIs relying on ASAP would fail during deploy
- Update dependencies
@plugins
support now includes generation of SSM Parameters based on the output of a plugin'svariables
method. See the@plugins
docs for more information.
- Fixed bug where plugin-generated Lambdas would not have proper built-in production environment variables assigned when running a production deploy; fixes #1134
- Fixed bug introduced in 2.5.2 with switch to async task processing in deploy; fixes #421
- Fixed bug where macros that were returning copies of CloudFormation JSON would lose CloudFormation state; fixes #1127
- 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
- Added beta support for
@plugins
- Added
--no-hydrate
CLI flag to skip hydration before a deploy
- Typo in error log statement
- Added Lambda code payload size report for full deploys
- Added support for automated dependency management via Hydrate autoinstall to normal and direct deploys
- Deploy artifact cleaner now makes a best effort run after every deployment, whether or not it succeeded
- Added missing dependency hydration step to direct deploys
- Fixed inability to deploy static asset-only apps; thanks @thedersen!
- Fixed inaccurate API type specification in certain circumstances
- Removed printing unnecessary static asset deploy status
- Updated dependencies
- Fix bug where
NODE_ENV
would not be updated toproduction
ifproduction
environment had no other env vars; thanks @barryf!
- Moved ASAP + fingerprinting from Package into Deploy (finally)
- Fixed
fingerprint
check that could cause false negative fingerprinting - Improved reliability of direct deploys; thanks @filmaj!
- 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!
- 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
- 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 useAWS_REGION
) - Internal change: removed final remnants of old
nested
code path - Internal change: retiring
dirty
nomenclature / API fordirect
- Added validation checks for
@http
any
+catchall
syntax with legacyREST
APIs - Deploy no longer creates missing Lambda resources by default; to reenable that, add to your preferences file:
@create
autocreate true
- 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
- Added support for CloudFormation's new 500 resource limit! This makes us very happy! You can now ship much larger Architect projects.
- Adds support for symlink-aware hydration, ensures no symlinked shared code will ever be deployed to production
- Improved reliability of deploying static assets in Windows
- Fixed static asset deployments with fingerprinting enabled in Windows, fixes #782
- 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
- Breaking change: with the addition of
@http
any
and*
, defaultget /
greedy catchall is now deprecated- To restore that behavior, either move your
get /
route toany /*
, or just define a newany /*
route
- To restore that behavior, either move your
- Updated dependencies
- Fixed paths in
@cdn
origin configuration; fixes #965, ht @anatomic - Fixed legacy API binary encoding deploy-time patching
- 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
HTTP
APIs are the new default when provisioning new API Gateway resources- Defaults to
http
setting, which uses the latest payload format, or manually specifyhttpv2
or legacyhttpv1
payload formats- Apply in CLI with
--apigateway http[v1|v2]
, or in project manifest with@aws apigateway http[v1|v2]
- Apply in CLI with
- Added backwards compatibility for
REST
APIs withrest
setting- Apply in CLI with
--apigateway rest
, or in project manifest with@aws apigateway rest
- Apply in CLI with
- This only impacts Architect
@http
, which was formerly provisioned asREST
APIs - More info: https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html
- Fixes #838
- Defaults to
- Internal change: implemented new code standard with
@architect/eslint-config
- Fixed static asset deploy path issue; fixes #915, ht gyan!
- Apps now ensure least privilege HTTP methods on
/_static/*
, allowing onlyGET
- Fixed API Gateway issue that adds an extra stage called
Stage
- Corrected internal configuration for static proxy
- Static asset deployments now rely on MD5 hashes for static asset diffing, and not filesystem
mtime
; fixes #890
- Update dependencies
- 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 indeploy.static
) - Enabled
deploy.static
calls to override the default Architect behavior (which always deploys to CloudFormation generated S3 buckets) and specify custombucket
andregion
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 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
- Updated direct deployment copy, added warning
- Updated dependencies
- 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! 🔥
- Added Sandbox watcher pausing
- Writes an empty
_pause-architect-sandbox-watcher
file in your operating system's$TMP
directory (usually/tmp
orc:\windows\temp
) which temporarily pauses the Sandbox watcher - This means Sandbox can remain open during deploys and neither should interfere with the other
- Writes an empty
- 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
- Syntax:
- Updated dependencies
- Fixed issue where custom named deployments (
deploy --name
) wouldn't work withstatic
; 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!
- Added early support for HTTP APIs (currently only via Macro)
- Updated dependencies
- Ensures hydration occurs before macros in the deploy process, enabling macros to mutate dependencies and shared files during a deploy
- Updated dependencies
- Updated dependencies
- 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
- Test your
- Updated dependencies
- 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
- Updated dependencies
TODO
- Adding
--name
for creating a unique stack name. (Aliased to-n
andname
.) - Adding
--tags
for adding tags to the CloudFormation stack.
- Updated dependencies
- Now prints WebSockets URLs upon deployment, thanks @jessehattabaugh!
- Fixes regression related
staging
andproduction
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
)
- WebSockets APIs named
- Adds
CAPABILITY_AUTO_EXPAND
for nested stack deployments; fixes #436, thanks @jgallen23!
- Updated dependencies
- Fixed potential CloudFront error related to destructuring; thanks @roxeteer!
- Internal change: swapped out
utils/init
for@architect/create
- Updated dependencies
- 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!
- Fixed deployment issue if
get /
is not specified in@http
; resolves @package#27, /ht @grahamb and @jeffreyfate!
- Updated dependencies
- Added support for
@static fingerprint true
in root spa / proxy function deployments
- Moved fingerprint operations into a pre-CloudFormation step
- Internal refactor to sam
- Ensures html / json are published to S3 with anti-cache headers
- Restores static asset pruning
- Cleans up temp directory left by
package
when using root proxy + fingerprint
- Now uses
@architect/http-proxy
instead of manually vendored root proxy file - Updated dependencies
- Automatic
@cdn
invalidation every deploy (similar behavior to 3rd party CDNs); CloudFront gives you 1000 free invalidations/mo
- Fixed issue where with
@static fingerprint true
enabled, thestatic.json
file would not be copied into deployed functions' shared dirs; fixes #43, thanks @dawnerd + @jgallen23! - Removed
eslint
from production dependencies
- Updated dependencies
changelog.md
meta- New
@static
config option:folder
to overridepublic