- Remove hasbin dependency
-
Add ability to provide function to execute when calling sls wsgi command
ayaan-qadri
-
Fix lambda response processing
Eric Petway
-
As of Werkzeug 3.0.0, url_encode is no longer available, use the urllib counterparts
Ryan Whittaker
-
Support base path stripping for v2 events
-
Default to https when protocol not specified in event
-
Add blacklist entries
arsoni20
-
Fix handling of v1 event payload emitted by Serverless Offline plugin
-
Handle event with None body emitted by Serverless Offline plugin
-
Fixes for Scaleway
Andrej Shadura
-
Fix console output on commands/manage
Justin Lyons
-
Update serverless integration for v3 compatibility (breaks integration with serverless < 2.32.0) (#193)
Mariusz Nowak
-
Add options for specifying SSL cert location when serving locally (#195)
Nathaniel J. Padgett
-
Support wsgi handler placed in a subfolder (#198)
Felipe Passos
-
Compatibility upgrade for serverless 2.32 (#189)
Justin Lyons
- Lambda integration handler invoked for API Gateway proxy events, caused by #185 (#188)
- Drops Python 2 support and require Werkzeug 2 or later
- Remove deprecated API_GATEWAY_AUTHORIZER, event and context variables from WSGI environment. (Use serverless.authorizer, serverless.event and serverless.context instead)
-
Pin Werkzeug version (#178)
Adam Chelminski
-
Add handler for lambda integration (#167)
Jan Varho
-
Fix serverless deprecation warnings (#174)
Jan Varho
-
Support for the new HTTP API lambda proxy response payload v2.0 (#149)
Ronald Tscherepanow
-
Fix eventContext for KONG gateway (#147)
Grant Johnson
-
Fix the ALB query parameter handling (#146)
Hsiao-Ting Yu
-
Fix integration with virtualenv for latest version (20.x)
-
Fix wrong encoding of error messages during packaging (#122, #139)
Jan Varho
- Return error exit code when
exec
,command
,manage
orflask
commands fail (#114) - Display output from failing
command
invocations instead of throwing exception (#107)
-
Add
--ssl
flag tosls wsgi serve
(#103) -
Add log message when skipping handler on warmup events (#95)
-
Add options for disabling threading and setting number of processes when invoking
sls wsgi serve
(#100)Bryan Worrell
-
Allow use of CloudFront with a pre-set path (#101)
Paul Bowsher
-
Properly decode event
path
into environPATH_INFO
(#93) -
Fix local serving when package
individually: true
and functionmodule
are provided (#98) -
Fix Flask CLI invocation of built-in commands (#99)
Mischa Spiegelmock
-
Support multi-value query string parameters (#87)
Jan Varho
-
Support multi-value headers in request and response
-
Add
sls wsgi flask
andsls wsgi flask local
commands (#86)
- Add local versions of manage, command and exec commands (#79)
- Support serverless-python-requirements packaging with
individually
andmodule
configuration (#85)
- Rename
.wsgi_app
to.serverless-wsgi
(to follow convention fromserverless-rack
) - Check for werkzeug presence in bundle or issue warning (#80)
- The
wsgi.handler
has been renamed towsgi_handler.handler
due to a naming conflict with an internal AWS wsgi module. A warning and workaround is issued in order to prevent breaking existing configuration files (#84)
- Use proper namespacing for custom WSGI environment variables:
serverless.authorizer
,serverless.event
andserverless.context
. Note:API_GATEWAY_AUTHORIZER
,event
andcontext
will be deprecated later. - Permute header casings for multiple values of any header, not just
Set-Cookie
-
Add
exec
,command
andmanage
CLI commands for invoking scripts remotely (#75) -
Detect presence of
serverless-python-requirements
and disablepackRequirements
automatically -
Add
pipArgs
configuration option for passing additional arguments to pip (#76) -
Add support for ALB requests (#77)
Alan Trope
-
Improve log output for errors at import-time
Jackal
- Add
sls wsgi install
command to install WSGI handler and requirements for local use - Support
sls invoke local
(serverless/serverless#5475)
- Add
image/svg+xml
to default text mime types (#74)
- Add missing
werkzeug
requirement tosetup.py
(#73)
-
Fix import error when using unzip_requirements from serverless-python-requirements (#72)
Justin Plock
- Allow adding additional text mime-types (#68)
- Improve detection of available Python executable and associated error messages (#66)
- Start multithreaded server when running
sls wsgi serve
(#69) - Publish Python package to PyPI (#63)
- Change
.wsgi_app
to contain JSON serialized configuration object
-
Add compatibility with serverless-offline (#61)
Matthew Hardwick
- Set
IS_OFFLINE
before importing application when running undersls wsgi serve
(#65)
-
Set correct SCRIPT_NAME in
amazonaws.com.*
AWS regionsWinton Wang
-
Gracefully handle scheduled events and invocations from serverless-plugin-warmup (#54)
Chao Xie
-
Enable zip dependencies when using the serverless-python-requirements plugin (#56)
Eric Magalhães
- Skip setting CloudFormation-interpreted environment variables during local serving (#53)
- Include
application/javascript
as a plain text MIME type (#55)
-
Skip WSGI encoding dance for request body to avoid garbling UTF-8 characters
Shintaro Tanaka
- Ignore
*.dist-info
and*.pyc
when packaging requirements - Remove
.requirements
prior to packaging to avoid deploying packages that are no longer required
-
Make binding host configurable when invoking
sls wsgi serve
Eric Magalhães
-
Add
application/vnd.api+json
to list of non-binary MIME typesMarshal Newrock
-
Fix double conversion issue for binary payloads
Alex DeBrie
- Fix calculation of content length for binary payloads on Python 3
- WSGI error stream was output to stdout instead of stderr
-
Add IS_OFFLINE environment variable to serve (#42).
Alex DeBrie
-
Handle binary request payloads and compressed responses (#41).
Malcolm Jones
-
Provide access to raw
event
through request environment (#37).
-
Fixed issue where CONTENT_LENGTH was computed differently than the wsgi.input (#40).
Phil Hachey
-
Fix deprecation warnings for the before:deploy:createDeploymentArtifacts and after:deploy:createDeploymentArtifacts hooks (#43).
Malcolm Jones
-
Blacklist
__pycache__
from requirements packaging in order to avoid conflicts (#35). -
Fix insecure usage of X-Forwarded-For (#36).
-
Explicitly set virtualenv interpreter when packaging requirements (#34).
- Package requirements into service root directory in order to avoid munging sys.path to load requirements (#30).
- Package requirements when deploying individual non-WSGI functions (#30).
- Added
pythonBin
option to set python executable, defaulting to current runtime version (#29).
-
Add configuration for handling base path mappings (API_GATEWAY_BASE_PATH)
Alex DeBrie
-
Only add .requirements folder to includes when packing enabled
Darcy Rayner
-
Load subdirectory packages by adding the subdirectory to the search path (i.e. setting the wsgi handler to something like
dir/api.app.handler
).Previously, the subdirectory was expected to be a package (i.e. containing
__init__.py
)
-
Skip removing
.requirements
ifpackRequirements: false
Alex DeBrie
-
Supply wsgi.input as BytesIO on Python 3
Brett Higgins
- Add default package includes for
.wsgi_app
and.requirements
-
Fix requirement packaging on Mac OS with Python 3.6 (Anaconda)
Vitaly Davydov
-
Support base64 encoding of binary responses automatically based on MIME type
Andre de Cavaignac
-
Properly handle Python 3 bytestring response
Andre de Cavaignac
- Python 3 support
-
Pass Lambda context in the
context
property of the WSGI environment.Lucas Costa
-
Support for multiple Set-Cookie headers (#11). Thanks to Ben Bangert for creating an issue and providing an implementation.
-
Forward API Gateway authorizer information as API_GATEWAY_AUTHORIZER in the WSGI request environment (#7)
Thanks to Greg Zapp for reporting
-
Optional requirement packaging: Skips requirement packaging if
custom.wsgi.packRequirements
is set to falseLucas Costa
-
Adds support for packaging requirements when wsgi app is in a subdirectory (i.e. setting the wsgi handler to something like
dir/app.handler
).Lucas Costa
-
Package WSGI handler and requirements on single-function deployment
Lucas Costa
-
Adds support for packaging handlers inside directories (i.e. setting the wsgi handler to something like
dir/app.handler
).Lucas Costa
- Added unit tests.
- Internal requirements file was not included when user requirements file was present.
- Enable using the requirements packaging functionality alone, without the WSGI handler. This is enabled by omitting the
custom.wsgi.app
setting fromserverless.yml
. - Load provider and function environment variables when serving WSGI app locally.
- If no
requirements.txt
file is present and the WSGI handler is enabled, make sure to package werkzeug.