- 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
pruneenabled
- Updated dependencies
- Fix direct deploy to
@tables-streamsLambdae
- Updated dependencies
- Deploy now respects
ignorepatterns 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 ignorewill now ensure it will not be destroyed with@static pruneenabled
- 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|productionsetting
- Deploy respects
--no-hydrationwith--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
@staticcompressionsetting for configuringbrandgzipstatic 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
@httpfrom the@staticpragma; fixes #1359
- Updated dependencies; sub-dep
lambda-runtimesaddsnodejs16.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
fingerprintis set totrueorexternal,pruneis disabled (which it is by default), and the app has a bucket; fixes #1312, thanks @gopeter!
- Architect 10 plugin API support!
- Added
deploy.startmethods for CloudFormation mutation and other arbitrary pre-deploy operations - Added
deploy.servicesmethods for adding Architect services registration and custom Lambda config data - Added
deploy.targetmethods for deploying Architect projects to other targets - Added
deploy.endmethods for running arbitrary post-deploy operations
- Added
- Added
--ejectoption (functionally the same as--dry-run)
- Breaking change: moved legacy API Gateway REST API provisioning to
@architect/plugin-rest-apiplugin; to continue deploying REST APIs with Architect:- Install
@architect/plugin-rest-apito your project's dependencies - Add
@plugins architect/plugin-rest-apiand@aws apigateway restto your project manifest - Fixes #1297
- Install
- Breaking change: removed
--apigatewayCLI flag +apiTypeproperty from the module API- The preferred way to configure your API Gateway is now the
@aws apigatewaysetting 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 --productionordeploy -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:
-dCLI flag will now be used for debugging, not direct deployments - Breaking change: the
deploy.dirtyAPI method is now fully deprecated, please usedeploy.directinstead - Internal change: moved most internal CloudFormation mutations into Package (where they rightly belong), via the
deployStageparam - 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
- Updated dependencies
- Added support for
@tables-streams, the fully customizable successor to@tableswithstream 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
awaits
- Fixed issue where changing
@static fingerprintsetting 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-sdkfrompeerDependencies; seeaws-sdkcaveat inreadme.md - Updated dependencies
- Fixed issue where
RESTAPIs relying on ASAP would fail during deploy
- Update dependencies
@pluginssupport now includes generation of SSM Parameters based on the output of a plugin'svariablesmethod. See the@pluginsdocs 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-hydrateCLI 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_ENVwould not be updated toproductionifproductionenvironment had no other env vars; thanks @barryf!
- Moved ASAP + fingerprinting from Package into Deploy (finally)
- Fixed
fingerprintcheck 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_ENVenv 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
nestedcode path - Internal change: retiring
dirtynomenclature / API fordirect - Added validation checks for
@httpany+catchallsyntax with legacyRESTAPIs - 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 falsedoes 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
@httpcatchall syntax (e.g.get /api/*) - Added support for
@httphead+optionsmethods - Added support for
@httpanymethod syntax (e.g.any /path) - Added support for
@proxy
- Breaking change: with the addition of
@httpanyand*, 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
@cdnorigin 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
HTTPAPIs are the new default when provisioning new API Gateway resources- Defaults to
httpsetting, which uses the latest payload format, or manually specifyhttpv2or legacyhttpv1payload 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
RESTAPIs withrestsetting- 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 asRESTAPIs - 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.staticcalls (e.g.always-upload-to-this-folder/file.html) with@static prefix whatever(or as a parameter indeploy.static) - Enabled
deploy.staticcalls to override the default Architect behavior (which always deploys to CloudFormation generated S3 buckets) and specify custombucketandregionparameters - Added ability to prune from a full deploy (e.g.
arc deploy --prune) - Respect
@static spasetting in root proxy - Default root proxy now coldstarts faster by removing any globally defined layers
deploy.staticnow accepts optional AWS credentials object
- Fixed file pruning for projects with
@static folderspecified - Now checks to ensure
@static folderexists, and errors if not found - Fixes
@static fingerprint ignorewith 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 srcwill dirty deploy all of./srcarc deploy src/httpwill dirty deploy all of./src/httparc deploy src/events/foowill 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-watcherfile in your operating system's$TMPdirectory (usually/tmporc:\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
@awspragma is no longer stricly necessary to deploy to AWS with Architect
- Updated dependencies
TODO
- Adding
--namefor creating a unique stack name. (Aliased to-nandname.) - Adding
--tagsfor adding tags to the CloudFormation stack.
- Updated dependencies
- Now prints WebSockets URLs upon deployment, thanks @jessehattabaugh!
- Fixes regression related
stagingandproductionWebSockets names and paths, thanks @jessehattabaugh!- WebSockets APIs named
${appname}Websocketare now named${appname}Websocket${stage}(like@httpAPIs) productionWebSockets paths now correctly reflect the production stage (e.g.longawsurl.com/production)
- WebSockets APIs named
- Adds
CAPABILITY_AUTO_EXPANDfor nested stack deployments; fixes #436, thanks @jgallen23!
- Updated dependencies
- Fixed potential CloudFront error related to destructuring; thanks @roxeteer!
- Internal change: swapped out
utils/initfor@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 truein 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
packagewhen using root proxy + fingerprint
- Now uses
@architect/http-proxyinstead of manually vendored root proxy file - Updated dependencies
- Automatic
@cdninvalidation every deploy (similar behavior to 3rd party CDNs); CloudFront gives you 1000 free invalidations/mo
- Fixed issue where with
@static fingerprint trueenabled, thestatic.jsonfile would not be copied into deployed functions' shared dirs; fixes #43, thanks @dawnerd + @jgallen23! - Removed
eslintfrom production dependencies
- Updated dependencies
changelog.mdmeta- New
@staticconfig option:folderto overridepublic