- Force resource name change on scheduled functions since resource type was changed
- Queue now accepts
batchSizeandbatchWindowproperties; only works withfifo true - Queue can now directly configure
fifo true|falseexplicitly (default istrue)
- Add support for
timezoneproperty for scheduled functions
- updated to >= node22
- moved to native node test runner
- Fixed a bug where the logical ID for Lambda HTTP Events was using duplicate identifiers, potentially leading to identifiers longer than 255 characters which could cause CloudFormation errors upon deployment. Fixed in #168 - thank you @MartinRamm!
- Updated dependencies
- Updated
package.jsonengines.nodeproperty to reflect changes from v9
- Updated dependencies
- Transitioned from
aws-sdktoaws-lite - 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)
- Potentially breaking fix: resolved mismatch between
RouteSelectionExpressionin deployed Architect apps vs. locally in Sandbox- The
RouteSelectionExpressionis now$request.body.action, meaning WebSocket code running locally (but not on AWS) should be updated fromws.send(JSON.stringify({ message: 'custom-endpoint', ... }))tows.send(JSON.stringify({ action: 'custom-endpoint', ... })) - This fixes #768; thanks @mawdesley + @MartinRamm!
- The
- Upgraded Deno from 1.18.x to 1.36.2
- Updated dependencies
- Fixed issue where
ARC_SESSION_TABLE_NAMEcould only be configured by setting theSESSION_TABLE_NAMEenv var
- Added support for publishing compiled runtimes
- Updated dependencies
- Fixed public bucket permissions impacted by AWS's 2023-04 S3 security changes; thanks @brianleroux!
- Add additional metadata to ASAP Lambdas in CloudFormation
- Added support for defining projection attributes on table
@indexes(relates to #1083)
- Updated dependencies
- Add Architect-specific metadata to Lambdas in CloudFormation
- Added Node.js 18.x to test matrix
- Updated dependencies
- Fix missing support for legacy
@static staging|productionsetting
- Add
provisionedConcurrencyproject manifest option to configure AWS Lambda provisioned concurrency- For more information, see: https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html
- Thanks, @lpsinger!
- Updated dependencies
- Updated dependencies
- Updated dependencies; sub-dep
lambda-runtimesaddsnodejs16.x.
- Fixed a CloudFormation syntax error that was introduced in 8.1.1; thanks @lpsinger!
- Relaxed
@tablespermissions in the default role
- Use https, not http, for API Gateway proxy to static bucket; thanks @lpsinger!
- Reduced excess CloudFormation statements for
@tables; thanks @frankleng!
- Added support for configuring Lambda's ephemeral storage feature
- Upgraded Deno from 0.24.x to 1.19.1
- Fixed regression where S3 IAM policy could prevent
@architect/asapfrom properly peeking into a directory to look for a default index.html file
- Added
ARC_STACK_NAMEenv var to fix missing stack name data; fixes #1322, thanks @Lugana707, @pgte
- Architect 10 plugin API support!
- Added support for Inventory's
deployStageproperty, allowing proper stage awareness to CloudFormation / SAM generation- Took over a variety of CloudFormation mutations in Deploy
- Breaking change: Package can no longer be run via CLI, and now serves purely as a module generating CloudFormation
- Breaking change:
createFunctionhelper exported for the plugins beta is now deprecated in favor ofset.customLambdas - Package now populates
ARC_SESSION_TABLE_NAME, and prefers it to the non-namespacedSESSION_TABLE_NAME- Both are supported, we suggest using only
ARC_SESSION_TABLE_NAMEmoving forward, as all non-namespaced env vars will be retired in a future release
- Both are supported, we suggest using only
- Breaking change: Package (and thus Architect) no longer automatically populates
NODE_ENV+ARC_CLOUDFORMATIONenv vars- For environment identification needs, Architect now relies solely on
ARC_ENV - Thus,
NODE_ENVis returned to userland, and is entirely optional
- For environment identification needs, Architect now relies solely on
- Stop publishing to the GitHub Package registry
- Migrate static bucket permissions from per-object ACLs to a bucket policy so users can customize the static bucket permissions using plugins
- See: #148, architect/deploy#350
- Fixed issue where
@static prefix+spasettings were not getting populated into root handlers other thanget / - Fixed issue where using
architect-default-policiesdid not include SSM IAM permissions; thanks @tbeseda!
- 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
- Added support for AWS's new Lambda
arm64architecture via@aws architecturesetting; default remainsx86_64
- Removed internal
ARC_HTTPenv var (partly used for Arc v5 backwards compat, which is no longer supported)
- Updated dependencies
- Fixed issue where specified policies would not be adopted by Lambdas so long as the default role remained intact; fixes #1212
- Fixed issue where multiple layers or policies specified in a single line would lose all but the first
- Fixed a few minor bugs in unit tests
- 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
- Updated + tidied dependencies
- Changed internal Inventory parameter from
PointInTimeRecoverytopitrto support a cleaner Arc@tablesoption; fixes #1155 - Updated dependencies
- Moved and renamed helper method
createFunction(formerlycreateLambdaJSON) for@pluginsauthors as export on main module export, it is now available atrequire('@architect/package').createFunction
- Added helper method
createLambdaJSONfor@pluginsauthors to help in defining CloudFormation-compatible Lambda definitions
- Added support for
nameproperty in@indexespragma to allow explicit naming of GSIs; thanks @anatomic!
- Added ability for
@staticbuckets – otherwise enabled by default – to be disabled with@static false
- Updated dependencies
- Fixed regression where
@scheduledfunctions may not fire; fixes #1040, thanks @alexbepple! - Fixed issue where the static bucket url in the Cloudformation Output was wrong for newer AWS regions; thanks @thedersen
- Updated dependencies
- Fixed issue where longer
@scheduledfunction names would fail to deploy due to funky SAM transform behavior; thanks @gmartins, fixes #1038
- Updated dependencies
- Breaking change: Package now assumes Deploy will handle
static.jsoninjection into ASAP if fingerprinting is enabled
- Added support for custom file paths
- Added
ARC_ENVenv var to all functions
- Implemented Inventory (
@architect/inventory) - Breaking change: Package now accepts an Inventory object, and no longer accepts a raw Architect object
- Fixed issue where API Gateway
HTTProutes usinganywould not respect using Lambda payload format v1.0 (and would fall back to v2.0 mode)
- Added support for CloudFormation's new 500 resource limit! This makes us very happy!
- Removed check for >200 CloudFormation resources, and related
nestedCloudFormation code path (which was not maintained and known to be broken) - Removed
.toSAMand.toCFNmethods
- Fixed obscure false negative for adding Arc Static Asset Proxy when
@httpcontains a route that looks likeget /:hey/there
- 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
HTTPAPIs are the new default when provisioning API Gateway resources- This only impacts Architect
@http, which was formerly provisioned asRESTAPIs @architect/deploynow provides backwards compatibility forRESTAPIs- More info: https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html
- Fixes #838
- This only impacts Architect
- Removed experimental support for static mocks
- Internal change: implemented new code standard with
@architect/eslint-config
- Fixed inadvertent mutation of
arc.http
- 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
- Updated dependencies
- Added layer region validation (instead of letting CloudFormation fail without a helpful error)
- Removed
mkdirpin favor of Node.js >= 10.xmkdirrecursive - Updated dependencies
- Fixed
@awsconfiguration in root project manifest and.arc-config, especially pertaining to the use oflayerorlayers; fixes #852, ht @jessrosenfield!
- Updates HTTP proxy lib to 3.10.0, which includes improved caching and pretty URL support
- If creating a FIFO queue, set
ContentBasedDeduplicationto be enabled by default; thanks @filmaj!
- Updated dependencies
- If
@httpis defined a static bucket will be created (@staticis now implicit) - Updated
http-proxyto support API Gateway HTTP APIs (say that three times fast) - Fix missing
arc.staticbug in adding mocks
- Updated dependencies
- Updated npm config
- Fixes issue deploying FIFO queues
- Updated dependencies
- Issue with adding
FifoQueueto CloudFormation
FifoQueue: truedefault for@queues(override withfifo falsein.arc-config)
VisibilityTimeoutwill now match the coresponding@queuetimeoutvalue in.arc-config
- Updated default Lambda runtime to
nodejs12.x(formerlynodejs10.x) - Updated dependencies
- Adds
PointInTimeRecoveryattribute to tables defined in.arcfor DynamoDB Point In Time Recovery support.
- Adds
encryptattribute to tables defined in.arcfor DynamoDB Encryption using customer or AWS managed keys
- Updated dependencies
- Updated calls to various
utilsmethods
- Deno support!
- Adds
/stagingpath part to WSS URL for printing and env vars
- Updated dependencies
- Bump max resources to 200 per CloudFormation limit (was 100)
- Updated dependencies
- Updated dependencies
- Adds
ArcWebSocketPolicyto the generated IAM Role - Adds
ARC_WSS_URLenvironment variable to all Lambdas if@wsis defined - Fix
.arc-configproperties:layersandpolicies- adding one layer or policy per line:
layers my:arn:hereorpolicies my:arn:here - adding arns as a list (two spaces indented below
layersorpolicies) - eg:
- adding one layer or policy per line:
@aws
layers
my:arn:here
my:other:arn:here
- Generated CloudFormation template Output value
WSSis now a plain URL withoutwss://orhttps://protocol, without the/stagingand/productionpath part, and the suffix@connections(which was removed by AWS from theApiGatewayManagementApi) - Removed
ArcRoleReflectionpolicy from the generated IAM Role - Removed
PYTHONPATHunless a Lambda function explicitly has a Python runtime