- Add support for Python 3.13 (#2137)
- Drop support for Python 3.8 (#2138)
- Update pip to the latest version (<25.1)
- Update pip to the latest version (<24.4)
- Remove distutils warning when packaging/deploying apps (#2123)
- Add configuration option for MaximumConcurrency for SQS event source (#2104)
- Update pip version to allow 24.0 (#2092)
- Validate tar extraction does not escape destination dir (#1990)
- Add support for Python 3.12 (#2086)
- Drop support for Python 3.7 (#2095)
- Add support for Python 3.11 (#2053)
- Update version dependency on pip (#2080)
- Add support for Python 3.10 (#2037)
- Bump pip version range to latest version <23.2 (#2034)
- Add support for
log_retention_in_days(#943)
- Update required terraform version to support 1.3 (#2014)
- Bump pip version range to latest version <22.3 (#2016)
- Fix version string updates used in the release process (#1971)
- Update aws provider constraint to allow versions 4.x (#1951)
- Add attribute for message attributes in SNSEvent and generated test events (#1934)
- Bump pip version range to latest version <22.2 (#1924)
- Add support for WebSockets API Terraform packaging (#1670)
- Add support for CDK v2 (#1742)
- Set a default timeout when creating the local LambdaContext instance (#1896)
- Fix RuntimeError with pip v22.x (#1887)
- Remove template provider in favor of locals (#1869)
- Bump Terraform version to suppose 1.1.x (#1868)
- Use updated keywords for providing provider version constraints (#1717)
- Remove redundant error code in error message string (#1339)
- Associate VPC endpoint with Rest API (#1449)
- Update pyyaml to 6.x (#1830)
- Correctly configure websocket endpoint in the aws-cn partition (#1820)
- Bump pip dependency to latest released version (#1817)
- Don't include tests package in .whl file (#1814)
- Add support for setting the Websocket protocol from the connect handler (#1768)
- Added MaximumBatchingWindowInSeconds to SQS event handler (#1778)
- Add support for Python 3.9 (#1787)
- Bump attrs dependency to latest version (#1786)
- Upgrade Click dependency to support v8.0.0 (#1729)
- Fix ARN parsing when generating a builtin AuthResponse (#1775)
- Fix partition error when updating API Gateway in GovCloud region (#1770)
- Remove support for Python 2.7 (#1766)
- Update Terraform packaging to support version 1.0 (#1757)
- Add missing WebsocketEvent type information (#1746)
- Add source account to Lambda permissions when configuring S3 events (#1635)
- Add support for Terraform v0.15 (#1725)
- Add queue_arn parameter to enable CDK integration with SQS event handler (#1681)
- Wait for function state to be active when deploying
- Add missing types to app.pyi stub file (#1701)
- Fix custom domain generation when using the CDK (#1640)
- Special cases pyrsistent packaging (#1696)
- Bump Terraform version to include 0.14
- Fix type definitions in app.pyi (#1676)
- Use references instead of function names in Terraform packaging (#1558)
- Add log property to blueprint
- Change enum-compat dependency to enum34 with version restrictions (#1667)
- Fix build command in pipeline generation (#1653)
- Bump pip version range to latest version 21.x (#1630)
- Improve client call collection when generation policies (#692)
- Add built-in support for the AWS CDK (#1622)
- Bump attr version constraint (#1620)
- Add support for custom headers in built-in authorizers (#1613)
- Map custom domain outputs in Terraform packaging (#1601)
- Increase upper bound for AWS provider in Terraform to 3.x (#1596)
- Add support for manylinux2014 wheels (#1551)
- Fix config validation for env vars on py27 (#1573)
- Bump pip version contraint (#1590)
- Add Allow header with list of allowed methods when returning 405 error (#1583)
- Allow custom Chalice class in local mode (#1502)
- Ensure single reference to managed layer (#1563)
- Add test client methods for generating sample kinesis events
- Validate env var values are strings (#1543)
- Add support for HTTP middleware catching exceptions (#1541)
- Fix issue with wildcard partition names in s3 event handlers (#1508)
- Fix special case processing for root URL auth (#1271)
- Fix custom domain name configuration for websockets (#1531)
- Add support for multiple actions in builtin auth in local mode (#1527)
- Fix websocket client configuration when using a custom domain (#1503)
- Fix CORs handling in local mode (#761)
- Add support for Kinesis and DynamoDB event handlers (#987)
- Fix regression when invoking Lambda functions from blueprints (#1535)
- Support returning native python types when using
*/*for binary types (#1501)
- Preserve docstring in blueprints (#1525)
- Add support for middleware (#1509)
- Add support for AWS X-Ray (#464)
- Add
current_appproperty to Blueprints (#1094) - Set
AWS_CHALICE_CLI_MODEenv var whenever a Chalice CLI command is run (#1200)
- Add a new v2 template for the deployment pipeline CloudFormation template (#1506)
- Add fallback to retrieve name/version from sdist (#1486)
- Handle symbols with multiple (shadowed) namespaces (#1494)
- Add support for automatic layer creation (#1485, #1001)
- Add Chalice test client (#1468)
- Add support for non
awspartitions including aws-cn and aws-us-gov (#792).
- Fix error when using old versions of click by requiring >=7
- Fix local mode builtin authorizer not stripping query string from URL (#1470)
- Add support for custom domain names to REST/WebSocket APIs (#1194)
- Add support for oauth scopes on routes (#1444).
- Avoid error from cognito client credentials in local authorizer (#1447)
- Traverse symlinks to directories when packaging the vendor directory (#583).
- Fix setup.py dependencies where the wheel package was not being installed (#1435)
- Mark blueprints as an accepted API (#1250)
- Add ability to generate and merge yaml CloudFormation templates (#1425)
- Add support for tailing logs (#4).
- Allow generated terraform template to be used as a terraform module (#1300)
- Update pip version range to 20.1.
- Add
dev plan/appgraphcommands (#1396)
- Validate queue name is used and not queue URL or ARN (#1388)
- Fix pandas packaging regression (#1398)
- Add support for multiValueHeaders in local mode (#1381).
- Add support for cognito in local mode (#1377).
- Ensure repeatable zip file generation (#1114).
- Make
current_requestthread safe in local mode (#759) - Fix terraform generation when injecting custom domains (#1237)
- Fix CORS request when returning compressed binary types (#1336)
- Add global CORS configuration (#70)
- Add support for Python 3.8 (#1315)
- Add support for invocation role in custom authorizer (#1303)
- Fix error for
chalice logswhen a Lambda function has not been invoked (#1252) - Fix packaging simplejson (#1304)
- Fix packaging on case-sensitive filesystems (#1356)
- Add
generate-modelscommand (#1245)
- Add
closeandinfocommands to websocket api (#1259) - Bump upper bound on PIP to
<19.4(#1273, #1272)
- Add support for multi-value headers responses (#1205)
- Fix mouting blueprints with root routes (#1230)
- Add support for stage independent lambda configuration (#1162)
- Add support for subscribing to CloudWatch Events (#1126)
- Add a
descriptionargument to CloudWatch schedule events (#1155)
- Fix deployment of API Gateway resource policies (#1220)
- Add experimental support for websockets (#1017)
- API Gateway Endpoint Type Configuration (#1160)
- API Gateway Resource Policy Configuration (#1160)
- Add --merge-template option to package command (#1195)
- Add support for packaging via terraform (#1129)
- Make MultiDict mutable (#1158)
- Support repeating values in the query string (#1131)
- Add layer support to chalice package (#1130)
- Update PIP to support up to 19.1.x (#1104)
- Raise TypeError when trying to serialize an unserializable type (#1100)
- Update
policies.jsonfile (#1110) - Change exceptions to always be logged at the ERROR level (#969)
- Add support for both relative and absolute paths for
--package-dir(#940)
- Fix handling of more complex Accept headers for binary content types (#1078)
- Fix bug with route
namekwarg raising aTypeError(#1112) - Fix bug handling exceptions during
chalice invokeon Python 3.7 (#1139) - Add support for API Gateway compression (#672)
- Add support for Lambda layers. (#1001)
- Fall back to pure python version of yaml parser when unable to compile C bindings for PyYAML (#1074)
- Add support for passing SNS ARNs to
on_sns_message(#1048) - Add support for Blueprints (#1023)
- Add support for opting-in to experimental features (#1053)
- Provide Lambda context in event object (#856)
- Fix packaging multiple local directories as dependencies (#1047)
- Add support for python3.7 (#992)
- Support bytes for the application/json binary type (#988)
- Generate swagger documentation from docstrings (#574)
- Add support for pip 18.2 (#991)
- Add more detailed debug logs to the packager. (#934)
- Use more compact JSON representation by default for dicts (#958)
- Log internal exceptions as errors (#254)
- Fix issue with
requirements-dev.txtnot setting up a working dev environment (#920) - Add support for pip 18 (#910)
- Fix local mode issue with unicode responses and Content-Length (#910)
- Add
chalice invokecommand (#900)
- Add support for S3 upload_file/download_file in policy generator (#889)
- Add support for connecting lambda functions to S3 events (#855)
- Add support for connecting lambda functions to SNS message (#488)
- Add support for connecting lambda functions to an SQS queue (#884)
- Add support for generating python 3.6 pipelines (#858)
- Make
watchdogan optional dependency and add a built instat()based file poller (#867)
- Add support for Lambdas in a VPC (#413, #837, #673)
- Add support for packaging local directories (#653)
- Add support for automatically reloading the local dev server when files are modified (#316, #846, #706)
- Add support for viewing cloudwatch logs of all lambda functions (#841, #849)
- Add support for pip 10 (#808)
- Update
policies.jsonfile (#817)
- Fix package command not correctly setting environment variables (#795)
- Add CORS headers to error response (#715)
- Fix parsing empty query strings in local mode (#767)
- Fix regression in
chalice packagewhen using role arns (#793)
This release features a rewrite of the core deployment code used in Chalice. This is a backwards compatible change for users, but you may see changes to the autogenerated files Chalice creates. Please read the upgrade notes for 1.2.0 for more detailed information about upgrading to this release.
- Add support for AWS Lambda only projects (#162, #640)
- Update the
chalice packagecommand to support pure lambda functions and scheduled events. (#772)
- Print out full stack trace when an error occurs (#711)
- Add
image/jpegas a default binary content type (#707) - Rewrite Chalice deployer to more easily support additional AWS resources (#604)
- Fix inconsistent IAM role generation with pure lambdas (#685)
- Fix packager edge case normalizing sdist names (#778)
- Fix SQLAlchemy packaging (#778)
- Fix packaging abi3, wheels this fixes cryptography 2.2.x packaging (#764)
- Add
--connection-timeoutto thedeploycommand (#344)
- Support async/await syntax in automatic policy generation (#565)
- Support additional PyPi package formats (.tar.bz2) (#720)
- Fix IAM role creation issue (#565)
- Fix
chalice localhandling of browser requests (#565)
- Add
--codebuild-imageto thegenerate-pipelinecommand (#609) - Add
--sourceand--buildspec-fileto thegenerate-pipelinecommand (#609)
- Default to
Nonein local mode when no query parameters are provided (#593) - Add support for binding a custom address for local dev server (#596)
- Fix local mode handling of routes with trailing slashes (#582)
- Scale
lambda_timeoutparameter correctly in local mode (#579)
- Add support for custom authorizers with
chalice package(#580)
- Fix issue deploying some packages in Windows with utf-8 characters (#560)
- Add
--stageparameter tochalice local(#545)
- Fix issue with some packages with
-or.in their distribution name (#555) - Fix issue where chalice local returned a 403 for successful OPTIONS requests (#554)
- Fix issue with chalice local mode causing http clients to hang on responses with no body (#525)
- Fix issue with analyzer that followed recursive functions infinitely (#531)
- Add support for Builtin Authorizers in local mode (#404)
- Allow view to require API keys as well as authorization (#473)
- Fix issue where requestParameters were not being mapped correctly resulting in invalid generated javascript SDKs (#498)
- Fix issue where
api_gateway_stagewas being ignored when set in theconfig.jsonfile (#495) - Fix bug where
raw_bodywould raise an exception if no HTTP body was provided (#503) - Fix bug where exit codes were not properly being propagated during packaging (#500)
- Fix environment variables being passed to subprocess while packaging (#501)
- Print useful error message when config.json is invalid (#458)
- Only use alphanumeric characters for event names in SAM template (#450)
- Fix api gateway stage being set incorrectly in non-default chalice stage (#470)
- Add support for wildcard routes and HTTP methods in
AuthResponse(#403)
- Change default API Gateway stage name to
api(#431) - Add support for
CORSConfiginchalice local(#436) - Propagate
DEBUGlog level when settingapp.debug(#386) - Update
chalice localto use HTTP 1.1 (#448)
- Fix bug when analyzing list comprehensions (#412)
Please read the upgrade notes for 1.0.0b2 for more detailed information about upgrading to this release.
Note: to install this beta version of chalice you must specify
pip install 'chalice>=1.0.0b2,<2.0.0' or
use the --pre flag for pip: pip install --pre chalice.
- Set env vars from config in
chalice local(#396) - Remove legacy
policy.jsonfile support. Policy files must use the stage name, e.g.policy-dev.json(#430) - Validate route path is not an empty string (#432)
- Change route code to invoke view function with kwargs instead of positional args (#429)
- Fix edge case when building packages with optional c extensions (#421)
- Fix issue where IAM role policies were updated twice on redeploys (#428)
Please read the upgrade notes for 1.0.0b1 for more detailed information about upgrading to this release.
Note: to install this beta version of chalice you must specify
pip install 'chalice>=1.0.0b1,<2.0.0' or
use the --pre flag for pip: pip install --pre chalice.
- Add support for scheduled events (#390)
- Add support for pure lambda functions (#390)
- Add support for wheel packaging. (#249)
- Fix unicode responses being quoted in python 2.7 (#262)
- Fix deployment issue for projects deployed with versions prior to 0.10.0 (#387)
- Fix crash in analyzer when encountering genexprs and listcomps (#263)
- Add support for view functions that share the same view url but differ by HTTP method (#81)
- Add support for built-in authorizers (#356)
- Improve deployment error messages for deployment packages that are too large (#246, #330, #380)
- Fix issue where provided
iam_role_arnwas not respected on redeployments of chalice applications and in the CloudFormation template generated bychalice package(#339) - Fix
autogen_policyin config being ignored (#367)
- Add support for
IAMauthorizer (#334) - Add support for configuring
lambda_timeout,lambda_memory_size, andtagsin your AWS Lambda function (#347) - Add support for binary payloads (#348)
- Fix vendor directory contents not being importable locally (#350)
- Add
chalice deletecommand (#40)
- Fix issue where
--api-gateway-stagewas being ignored (#325)
- Alway overwrite existing API Gateway Rest API on updates (#305)
- Added more granular support for CORS (#311)
- Add back custom authorizer support (#322)
- Fix duplicate content type header in local model (#311)
- Fix content type validation when charset is provided (#306)
- Add support for python3! (#296)
- Fix swagger generation when using
api_key_required=True(#279) - Fix
generate-pipelineto install requirements file before packaging (#295)
- Add
chalice packagecommand. This will create a SAM template and Lambda deployment package that can be subsequently deployed by AWS CloudFormation. (#258) - Add a
--stage-nameargument for creating chalice stages. A chalice stage is a completely separate set of AWS resources. As a result, most configuration values can also be specified per chalice stage. (#264, #270) - Add support for
iam_role_file, which allows you to specify the file location of an IAM policy to use for your app (#272) - Add support for setting environment variables in your app (#273)
- Add a
generate-pipelinecommand (#277)
Check out the upgrade notes for 0.6.0 for more detailed information about changes in this release.
- Add port parameter to local command (#220)
- Add support for binary vendored packages (#182, #106, #42)
- Add support for customizing the returned HTTP response (#240, #218, #110, #30, #226)
- Always inject latest runtime to allow for chalice upgrades (#245)
- Add support for serializing decimals in
chalice local(#187) - Add stdout handler for root logger when using
chalice local(#186) - Map query string parameters when using
chalice local(#184) - Support Content-Type with a charset (#180)
- Fix not all resources being retrieved due to pagination (#188)
- Fix issue where root resource was not being correctly retrieved (#205)
- Handle case where local policy does not exist (#29)
- Add
chalice urlcommand to print the deployed URL (#169) - Add support for
DELETEandPATCHinchalice local(#167) - Add
chalice generate-sdkcommand (#178)
- Add default application logger (#149)
- Return 405 when method is not supported when running
chalice local(#159) - Add path params as requestParameters so they can be used in generated SDKs as well as cache keys (#163)
- Map cognito user pool claims as part of request context (#165)
- Bump up retry limit on initial function creation to 30 seconds (#172)
- Add support for multi-file applications (#21)
- Add support for
chalice local, which runs a local HTTP server for testing (#22)
- Raise errors when unknown kwargs are provided to
app.route(...)(#144) - Raise validation error when configuring CORS and an OPTIONS method (#142)
- Fix issue where role name to arn lookup was failing due to lack of pagination (#139)
- Add initial support for CORS (#133)
- Only add API gateway permissions if needed (#48)
- Add
--versionand--debugoptions to the chalice CLI
- Fix bug with case insensitive headers (#129)
- Fix error when dict comprehension is encountered during policy generation (#131)
- Add support for input content types besides
application/json(#96) - Allow
ChaliceViewErrorsto propagate, so that API Gateway can properly map HTTP status codes in non debug mode (#113) - Add windows compatibility (#31)
- Add support for authenticate routes (#14)
- Add ability to disable IAM role management (#61)
- Require
virtualenvas a package dependency. (#33) - Add
--profileoption when creating a new project (#28) - Add support for more error codes exceptions (#34)
- Improve error validation when routes containing a
trailing
/char (#65) - Validate duplicate route entries (#79)
- Ignore lambda expressions in policy analyzer (#74)
- Print original error traceback in debug mode (#50)