Changelog

All notable changes to this project are documented in this file.

Next release [x.x.x] - XXXX-XX-XX

Added

nothing

Changed

  • Example application

    • Terraform version upgrade

    • Terraform providers upgrade

  • Github workflow

    • actions/checkout version upgrade

    • actions/setup-python version upgrade

Deprecated

nothing

Removed

nothing

Fixed

  • Documentation: the version switch layout height was excessive

Security

nothing

[0.4.2] - 2024-10-15

Added

nothing

Changed

nothing

Deprecated

nothing

Removed

nothing

Fixed

  • Documentation:

    • Fixed a warning issue that was preventing the documentation for 0.4.1 from compiling

    • Fixed a minor formatting issue

Security

nothing

[0.4.1] - 2024-10-15

Added

  • Code

    • Supported Python versions: added 3.12 (according to AWS Lambda supported runtimes to date)

Changed

  • Example application

    • Terraform version upgrade

Deprecated

nothing

Removed

  • Code

    • Supported Python versions: removed 3.7 and 3.8 (according to AWS Lambda supported runtimes to date)

Fixed

  • Example application

    • Fixed the installation/deinstallation scripts’ shebang: sh was erroneously used instead of bash, causing errors with Ubuntu

    • Switched the Lambda runtime from Python 3.9 to Python 3.10

Security

nothing

[0.4.0] - 2023-05-16

Added

  • Code

    • initiated awsmate.sns module with awsmate.sns.LambdaMessageEvent

  • Example application

    • Python and Terraform source code to demonstrate awsmate.sns

Changed

  • Code

    • transparently moved code from class awsmate.s3.LambdaNotificationEvent to awsmate.lambdafunction.LambdaEvent for mutualization

  • Example application

    • Terraform version upgrade

Deprecated

nothing

Removed

nothing

Fixed

  • Code

    • awsmate.apigateway.LambdaProxyEvent.__init__(): fixed return type hint

    • awsmate.s3.LambdaNotificationEvent.__init__(): fixed return type hint

  • Example application

    • Fixed erroneous S3 bucket ACL in Terraform code that is now rejected by AWS

Security

nothing

[0.3.1] - 2023-04-28

Added

nothing

Changed

  • Example application

    • Terraform version upgrade

  • Documentation

    • wording

    • README structure

Deprecated

nothing

Removed

nothing

Fixed

  • Code

    • awsmate.lambdafunction.LambdaEvent.__init__(): fixed error message if passed parameter is not a dict

    • awsmate.s3.LambdaNotificationEvent.object_url(): fixed missing return type hint

  • Documentation

    • example application: protected curl URLs with quotes so that the shell does not interpret &

    • example application: fixed typos in some example URLs

Security

nothing

[0.3.0] - 2023-04-17

Added

  • Code

    • added class awsmate.apigateway.HttpServerError

    • added class awsmate.apigateway.HttpError, which is the base class of awsmate.apigateway.HttpClientError and awsmate.apigateway.HttpServerError

    • added class awsmate.apigateway.HttpServerError hierarchy

    • added method awsmate.s3.LambdaNotificationEvent.object_url()

  • Example application

    • added a Lambda function specific to awsmate.logger

Changed

  • Code

    • awsmate.logger.log_internal_error(): explanatory message has been made optional

    • awsmate.apigateway.HttpClientError doesn’t log an error anymore at construction time

    • awsmate.apigateway.build_http_server_error_response() has a new signature and logs a critical error and a stack trace by default

    • awsmate.apigateway.build_http_client_error_response() now logs an error by default

    • awsmate.s3.LambdaNotificationEvent.object_key() performs URL decoding on the returned value

  • Documentation

    • example application: rewording

  • Example application

    • made the AWS region used for deployment configurable through an environment variable, without editing any file

Deprecated

nothing

Removed

nothing

Fixed

  • Code

    • awsmate.apigateway: corrected type hints for **kwargs

  • Example application

    • deployment scripts: . was mistakenly assumed to be in the PATH.

    • API Gateway: fixed the redeployment issue

Security

nothing

[0.2.0] - 2023-04-05

Added

  • Code

    • added awsmate.apigateway.LambdaProxyEvent.source_ip()

    • added all missing awsmate.apigateway.HttpClientError subclasses

    • initiated awsmate.eventbridge module with awsmate.eventbridge.LambdaBridgePutEvent

  • Documentation

    • Flyout menu that allows switching between versions

    • Available for download in PDF and HTML (zip)

Changed

  • Code

    • Made all awsmate.apigateway.HttpClientError subclasses to rely on http.HTTPStatus for status codes and standard messages

    • Refactoring

  • Documentation

    • Direct access to sub-levels of the documentation from the table of contents in the sidebar

  • Example application

    • Terraform version upgrade

    • Refactoring: Terraform code structure and AWS resources naming

Deprecated

  • Code

    • awsmate.apigateway.build_http_server_error_response() will change in version 0.3.0: the message positional parameter will be replaced by an error parameter of type HttpServerError to be introduced in the same version.

Removed

nothing

Fixed

  • Code

    • fixed status code of awsmate.apigateway.HttpUnauthorizedError: was erroneously set to 403. Now set to 401.

  • Example application

    • API Gateway route “forbidden” was not using the correct exception (awsmate.apigateway.HttpForbiddenError)

Security

nothing

[0.1.0] - 2023-03-31

Added

  • Documentation

    • Contributing guidelines

    • Code of conduct

  • Example application

    • Deployment scripts

    • Python and Terraform source code to demonstrate awsmate.apigateway, awsmate.s3 and awsmate.logger

    • Corresponding documentation

  • Code

    • added variable awsmate.__version__

    • added awsmate.apigateway.LambdaProxyEvent.http_protocol()

    • added awsmate.apigateway.LambdaProxyEvent.http_user_agent()

    • added awsmate.apigateway.LambdaProxyEvent.query_domain_name()

    • added awsmate.apigateway.LambdaProxyEvent.authorizer_claims()

    • added awsmate.s3.LambdaNotificationEvent.object_size()

    • added awsmate.s3.LambdaNotificationEvent.object_etag()

    • added awsmate.s3.LambdaNotificationEvent.bucket_name()

    • added awsmate.s3.LambdaNotificationEvent.bucket_arn()

    • added awsmate.s3.LambdaNotificationEvent.event_name()

Changed

  • Documentation

    • improved documentation in general

  • Code

    • made awsmate.apigateway.LambdaProxyEvent.http_method() based on event['requestContext']['httpMethod'] instead of event['httpMethod']

    • made awsmate.apigateway.build_http_server_error_response() to handle **kwargs to pass to awsmate.apigateway.build_http_response

    • made awsmate.apigateway.build_http_client_error_response() to handle **kwargs to pass to awsmate.apigateway.build_http_response

    • renamed awsmate.apigateway.LambdaProxyEvent.call_path() -> awsmate.apigateway.LambdaProxyEvent.query_path() and made it based on event['requestContext']['path'] instead of event['path']

    • renamed awsmate.apigateway.LambdaProxyEvent.call_string() -> awsmate.apigateway.LambdaProxyEvent.query_string() and made it include the prototype and the domain name of the call

    • renamed awsmate.apigateway.LambdaProxyEvent.payload() -> awsmate.apigateway.LambdaProxyEvent.query_payload_()

Deprecated

nothing

Removed

nothing

Fixed

nothing

Security

nothing

[0.0.3] - 2023-03-18

Added

  • this changelog

  • documentation of the existing code

  • function awsmate.logger.log_internal_error()

Changed

  • Almost all functions: Python naming convention applied to parameters

  • Method awsmate.s3.LambdaNotificationEvent.object_key(): corrected a typo in its name

Deprecated

nothing

Removed

nothing

Fixed

nothing

Security

nothing

[0.0.2] and before - 2023-02-28

Genesis.