- Updated dependencies
- Updated
package.json
engines.node
property to reflect changes from v9
- Updated dependencies
- Transitioned from
aws-sdk
toaws-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
RouteSelectionExpression
in deployed Architect apps vs. locally in Sandbox- The
RouteSelectionExpression
is 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_NAME
could only be configured by setting theSESSION_TABLE_NAME
env 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|production
setting
- Add
provisionedConcurrency
project 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-runtimes
addsnodejs16.x
.
- Fixed a CloudFormation syntax error that was introduced in 8.1.1; thanks @lpsinger!
- Relaxed
@tables
permissions 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/asap
from properly peeking into a directory to look for a default index.html file
- Added
ARC_STACK_NAME
env var to fix missing stack name data; fixes #1322, thanks @Lugana707, @pgte
- Architect 10 plugin API support!
- Added support for Inventory's
deployStage
property, 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:
createFunction
helper 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_NAME
moving 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_CLOUDFORMATION
env vars- For environment identification needs, Architect now relies solely on
ARC_ENV
- Thus,
NODE_ENV
is 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
+spa
settings were not getting populated into root handlers other thanget /
- Fixed issue where using
architect-default-policies
did not include SSM IAM permissions; thanks @tbeseda!
- 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
- Added support for AWS's new Lambda
arm64
architecture via@aws architecture
setting; default remainsx86_64
- Removed internal
ARC_HTTP
env 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
PointInTimeRecovery
topitr
to support a cleaner Arc@tables
option; fixes #1155 - Updated dependencies
- Moved and renamed helper method
createFunction
(formerlycreateLambdaJSON
) for@plugins
authors as export on main module export, it is now available atrequire('@architect/package').createFunction
- Added helper method
createLambdaJSON
for@plugins
authors to help in defining CloudFormation-compatible Lambda definitions
- Added support for
name
property in@indexes
pragma to allow explicit naming of GSIs; thanks @anatomic!
- Added ability for
@static
buckets – otherwise enabled by default – to be disabled with@static false
- Updated dependencies
- Fixed regression where
@scheduled
functions 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
@scheduled
function 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.json
injection into ASAP if fingerprinting is enabled
- Added support for custom file paths
- Added
ARC_ENV
env 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
HTTP
routes usingany
would 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
nested
CloudFormation code path (which was not maintained and known to be broken) - Removed
.toSAM
and.toCFN
methods
- Fixed obscure false negative for adding Arc Static Asset Proxy when
@http
contains a route that looks likeget /:hey/there
- 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
HTTP
APIs are the new default when provisioning API Gateway resources- This only impacts Architect
@http
, which was formerly provisioned asREST
APIs @architect/deploy
now provides backwards compatibility forREST
APIs- 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
mkdirp
in favor of Node.js >= 10.xmkdir
recursive - Updated dependencies
- Fixed
@aws
configuration in root project manifest and.arc-config
, especially pertaining to the use oflayer
orlayers
; 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
ContentBasedDeduplication
to be enabled by default; thanks @filmaj!
- Updated dependencies
- If
@http
is defined a static bucket will be created (@static
is now implicit) - Updated
http-proxy
to support API Gateway HTTP APIs (say that three times fast) - Fix missing
arc.static
bug in adding mocks
- Updated dependencies
- Updated npm config
- Fixes issue deploying FIFO queues
- Updated dependencies
- Issue with adding
FifoQueue
to CloudFormation
FifoQueue: true
default for@queues
(override withfifo false
in.arc-config
)
VisibilityTimeout
will now match the coresponding@queue
timeout
value in.arc-config
- Updated default Lambda runtime to
nodejs12.x
(formerlynodejs10.x
) - Updated dependencies
- Adds
PointInTimeRecovery
attribute to tables defined in.arc
for DynamoDB Point In Time Recovery support.
- Adds
encrypt
attribute to tables defined in.arc
for DynamoDB Encryption using customer or AWS managed keys
- Updated dependencies
- Updated calls to various
utils
methods
- Deno support!
- Adds
/staging
path 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
ArcWebSocketPolicy
to the generated IAM Role - Adds
ARC_WSS_URL
environment variable to all Lambdas if@ws
is defined - Fix
.arc-config
properties:layers
andpolicies
- adding one layer or policy per line:
layers my:arn:here
orpolicies my:arn:here
- adding arns as a list (two spaces indented below
layers
orpolicies
) - eg:
- adding one layer or policy per line:
@aws
layers
my:arn:here
my:other:arn:here
- Generated CloudFormation template Output value
WSS
is now a plain URL withoutwss://
orhttps://
protocol, without the/staging
and/production
path part, and the suffix@connections
(which was removed by AWS from theApiGatewayManagementApi
) - Removed
ArcRoleReflection
policy from the generated IAM Role - Removed
PYTHONPATH
unless a Lambda function explicitly has a Python runtime