- support for Cognito User Pool triggers (eg
claudia add-cognito-user-pool-trigger --user-pool-id POOLID --events PreSignUp
) - bugfix for add-s3-event-source, when claudia was created with a role given as an ARN
- Use the new node6.10 runtime by default when creating functions. You can still use the older 4.3 runtime by supplying the --runtime flag
### 2.9.0, 20 Feb 2017
- Cognito Authorizers now finally work with Claudia Api Builder, thanks to Andrew Gits, Paul Korzhyk and David Hooper.
- support for triggering Lambda functions using IOT topic filters
- allows the same lambda version to bind multiple times to the same bucket (fix for claudiajs#101)
- allow env variables set on the command line to be set when validating the package (fixes claudiajs#96)
- bugfix:
claudia destroy
now uses--profile
correctly (fix for claudiajs#100)
- support for
--suffix
when adding S3 event sourcs. (thanks to Kamil Dybicz)
- support for API Gateway Binary content handling
- support for configuring VPC access using
--subnet-ids
and--security-group-ids
(thanks to Roy Reiss)
- added --events option for customizing S3 event types (thanks to Harry Gu)
- allow setting AWS http client timeout with --aws-client-timeout (thanks to Leonardo Nicolas)
- Allow CORS max-age to be set using API builder
- Set environment variables in create, update and set-version
- Pass a role ARN with create --role to deploy without any IAM access
- Remove claudia.json after destroying a function
- Lambda now supports loading Node modules from subdirectories, so Claudia no longer warns about it
- API Gateway post-deploy steps now get
apiCacheReused
in Lambda properties, set totrue
if API definition was reused from cache - Claudia now uses native promises and promise support in AWS SDK instead of Bluebird
- Dependencies are shrinkwrapped to prevent problems with sub-dependencies breaking backwards compatibility
- downgrade shelljs to avoid bug that would silently cause some files not to be copied when using --local-dependencies
- bugfix for deployment from directories containing a space (claudiajs#84)
- force V4 signing for S3, to support european S3 operations
- bugfix for using scoped packages @company/name (claudiajs#80), thanks to Nicolas Cochard
- bugfix for using local .npmrc files inside project folders (claudiajs#81)
- prevent ambiguous definitions when handler specified without . or api module specified with function/extension
- bugfix for setting cache params and method params with API gateway.
- bugfix for setting Access-Control-Allow-Credentials header for CORS
- bugfix for
--no-optional-dependencies
, thanks to jveres - bugfix for wildcards including files in package.json
- Claudia is now using NPM to package files, instead of directly copying individual files, so all NPM tricks and workflow events for packaging are directly supported
- support for
--generate-serverless-express-proxy
, helping users create aws-serverless-express wrappers.
- support for --deploy-proxy-api
- using AWS Proxy integration to support custom response codes and headers easier (will only work with claudia-api-builder 2.0.0)
- stopping support for node 0.10
- Reuse code easier across different functions: Claudia can now work working with local relative dependencies in package.json (referencing relative directories on your disk)
- Use Claudia easier in storage-restricted environments, such as cloud continuous integration: Temporary files produced for packaging are now cleaned up automatically after deployment. Specify --keep with
create
orupdate
to keep the zip files around for troubleshooting (claudia will print out the location of the archive in that case). (A huge thanks to Philipp Holly) - Use Claudia easier with low bandwidth and larger functions, and keep binary packages on S3 for auditing purposes: supply a S3 bucket name with
--use-s3-bucket <bucket-name>
when usingclaudia create
orclaudia update
and Claudia will send a binary archive to S3 then install it to Lambda from there, instead of uploading code directly to Lambda. It will also print out the uploaded file key in the command results, so you can easily integrate it with auditing tools.
- support for
--no-optional-dependencies
, allowing you to exclude things like aws-sdk and imagemagick from the package uploaded to Lambda - support for
--cache-api-config
, allowing faster deployments of web APIs and chat bots when the API configuration does not change
- support for custom authorizers defined by claudia-api-builder
- support for
--profile
to select a profile (this could be used instead of setting the AWS_PROFILE variable) - better validation for authorization types and credentials requested by claudia API builder APIs
### 1.6.2, 18 August 2016
add-scheduled-event
no longer checks for role inclaudia.json
, it was not being used anyway
- bugfix for deployments under assumed roles/STS tokens
- API Gateway request support for
.normalizedHeaders
, containing a copy of the headers with lowercase header names, for easier processing - API Gateway request support for
.rawBody
, containing the unparsed body inapplication/json
requests, to allow for Facebook authentication and otherwise taking a hash of the raw body when needed. (thanks to Fabricio C Zuardi)
- support for setting custom credentials and passing on caller credentials with IAM and STS (thanks to Conor Dockry)
- bugfix that caused template mappings to fail if a header contained a quote
- support for
AWS_IAM
authorization type in API Gateway configuration (thanks to Chris Bumgardner)
- support for
--allow-recursion
in create to automate IAM permissions for the function to call itself - create and update will refuse to work when the source is the same as the Node temp folder, avoiding recursive disk fill-up
- Claudia can be forced to use local dependencies, instead of doing npm install, by
--use-local-dependencies
- experimental support for postDeploy steps in Api Builder
- bugfix for working with non-reentrant dependency modules
create
andupdate
now log command execution to avoid looking like claudia is stuck when deploying a large project. use--quiet
to suppress output
- bugfix for using relative paths in
--source
- bugfix for #39 -- when the files property is specified,
.gitignore
is not used
- support for
--memory
and--timeout
increate
- bugfix/workaround for quoted POST and query string arguments, see https://forums.aws.amazon.com/thread.jspa?threadID=229672
- added cognito/authorizer fields to the context in API gateway, so they are available to the lambda function
- lambda description set automatically from the package.json description, can be overridden by --description when creating
- form POST now also includes .body with raw input (so it can be posted back to paypal IPN)
- create, update and set-version now print out a web API URL if they create/update a web API
- it's no longer necessary to use
files
inpackage.json
to deploy using Claudia. If the files property is not specified, Claudia will package everything apart fromnode_modules
, typical VCS utility files (eg.git
) and automatically exclude all patterns specified in.gitignore
and.npmignore
--name
is now optional increate
, by default Claudia will use the name frompackage.json
- Claudia now creates Node.js 4.3.2 deployments by default.
- Use --runtime when calling create to specify an alternative runtime (eg nodejs for the legacy 0.10)
- support for JSON result templates that contain a charset
- bugfix for application/xml POSTs
- all validations are executed before any objects are created/updated, to avoid partially created functions
- web API handlers can now set custom headers (requires API Builder 1.1.0 or later). See the Custom Headers Example Project
- web API handlers can now set custom CORS origins, or completely disable CORS (requires API Builder 1.1.0 or later). See the Custom CORS Example Project
- web API now accepts text/plain content for POST, PUT and PATCH
- create and update prevent several common user errors and report more meaningfully on those
- when the lambda handler can't be required (eg package dependency issue or syntax error)
- when the API module does not export a Claudia API Builder-compatible interface (eg forgot to do module.exports)
- when the API module does not contain any configured methods
- when the API module does not contain the configured handler method
- when the custom policies argument is specified but no files match it
- when updating over a non-existent (eg removed) function or API definition
- when working with an incompatible API version (eg claudia needs to be updated)
- retry TooManyRequestsException automatically, AWS SDK seems to have a recurring bug to not retry those
- use --version to print current version
- test-lambda now accepts --version
- documentation re-structured so individual commands now print out options with --help
- markdown docs for the API on github
- bugfix to handle correctly POST operations with a charset (jQuery Ajax does this)
- utility destroy command for undeploying lambda and removing the API and associated roles.
- support for apiKeyRequired option in the apiBuilder methods. See Requiring Api Keys for more information
- better error message when the
api-module
argument is not compatible with theApiBuilder
interface (eg people forget to export the api);
- support for text/xml requests
- scheduled events now support
--cron
shorthand argument for easier parsing on Windows
- scheduled events now support
--rate
shorthand argument for easier parsing on Windows
- Support for alternative config files (instead of claudia.json). just supply
--config FILE_NAME
to any command
- bugfix for empty FORM post parameters