Skip to content

Changelog

All notable changes to this project will be documented in this file.

This project follows Keep a Changelog format for changes and adheres to Semantic Versioning.

1.26.2 - 2022-06-16

Bug Fixes

  • event-handler: body to empty string in CORS preflight (ALB non-compliant) (#1249)

Maintenance

  • deps: bump actions/setup-python from 3 to 4 (#1244)
  • deps-dev: bump mypy from 0.960 to 0.961 (#1241)
  • deps-dev: bump mypy-boto3-ssm from 1.23.0.post1 to 1.24.0 (#1231)
  • deps-dev: bump mypy-boto3-secretsmanager from 1.23.8 to 1.24.0 (#1232)
  • deps-dev: bump mypy-boto3-dynamodb from 1.23.0.post1 to 1.24.0 (#1234)
  • deps-dev: bump mypy-boto3-appconfig from 1.23.0.post1 to 1.24.0 (#1233)
  • governance: fix workflow action requirements & syntax
  • governance: add release label on pr merge
  • governance: auto-merge on all PR events
  • governance: enforce safe scope on pr merge labelling
  • governance: auto-merge workflow_dispatch off
  • governance: auto-merge to use squash
  • governance: limit build workflow to code changes only
  • governance: auto-merge mypy-stub dependabot
  • governance: check for related issue in new PRs
  • governance: address gh reusable workflow limitation
  • governance: warn message on closed issues
  • metrics: revert dimensions test before splitting (#1243)

1.26.1 - 2022-06-07

Bug Fixes

  • metrics: raise SchemaValidationError for >8 metric dimensions (#1240)

Documentation

  • governance: link roadmap and maintainers doc
  • maintainers: initial maintainers playbook (#1222)
  • roadmap: use pinned pause issue instead

Maintenance

  • deps-dev: bump mypy from 0.950 to 0.960 (#1224)
  • deps-dev: bump mypy-boto3-secretsmanager from 1.23.0.post1 to 1.23.8 (#1225)

1.26.0 - 2022-05-20

Bug Fixes

  • batch: missing space in BatchProcessingError message (#1201)
  • batch: docstring fix for success_handler() record parameter (#1202)
  • docs: remove Slack link (#1210)

Documentation

  • layer: upgrade to 1.25.10
  • roadmap: add new roadmap section (#1204)

Features

  • parameters: accept boto3_client to support private endpoints and ease testing (#1096)

Maintenance

  • deps: bump pydantic from 1.9.0 to 1.9.1 (#1221)
  • deps: bump email-validator from 1.1.3 to 1.2.1 (#1199)
  • deps-dev: bump mypy-boto3-secretsmanager from 1.21.34 to 1.23.0.post1 (#1218)
  • deps-dev: bump mypy-boto3-appconfig from 1.21.34 to 1.23.0.post1 (#1219)
  • deps-dev: bump mypy-boto3-ssm from 1.21.34 to 1.23.0.post1 (#1220)

1.25.10 - 2022-04-29

Bug Fixes

  • data-classes: Add missing SES fields and (#1045)
  • deps: Ignore boto3 changes until needed (#1151)
  • deps-dev: remove jmespath due to dev deps conflict (#1148)
  • event_handler: exception_handler to handle ServiceError exceptions (#1160)
  • event_handler: Allow for event_source support (#1159)
  • parser: Add missing fields for SESEvent (#1027)

Documentation

  • layer: upgrade to 1.25.9

Features

  • parameters: add clear_cache method for providers (#1194)

Maintenance

  • ci: changelog pre-generation to fetch tags from origin
  • ci: post release on tagged issues too
  • ci: disable mergify configuration after breaking changes (#1188)
  • deps: bump codecov/codecov-action from 3.0.0 to 3.1.0 (#1143)
  • deps: bump github/codeql-action from 1 to 2 (#1154)
  • deps-dev: bump flake8-bugbear from 22.1.11 to 22.4.25 (#1156)
  • deps-dev: bump flake8-eradicate from 1.2.0 to 1.2.1 (#1158)
  • deps-dev: bump mkdocs-git-revision-date-plugin (#1146)
  • deps-dev: bump mypy from 0.942 to 0.950 (#1162)
  • deps-dev: bump xenon from 0.8.0 to 0.9.0 (#1145)
  • deps-dev: bump mypy from 0.931 to 0.942 (#1133)

Regression

  • parser: Add missing fields for SESEvent (#1027) (#1190)

1.25.9 - 2022-04-21

Bug Fixes

  • deps: correct py36 marker for jmespath

1.25.8 - 2022-04-21

Bug Fixes

  • governance: removed ambiguous quotes from labels
  • deps: update jmespath marker to support 1.0 and py3.6 (#1139)
  • governance: update label in names in issues

Documentation

  • install: instructions to reduce pydantic package size (#1077)
  • layer: remove link from clipboard button (#1135)
  • layer: update to 1.25.7

Maintenance

  • deps: bump codecov/codecov-action from 2.1.0 to 3.0.0 (#1102)
  • deps: bump actions/upload-artifact from 2 to 3 (#1103)
  • deps-dev: bump mkdocs-material from 8.2.4 to 8.2.7 (#1131)
  • deps-dev: bump pytest from 6.2.5 to 7.0.1 (#1063)

1.25.7 - 2022-04-08

Bug Fixes

  • idempotency: pass by value on idem key to guard inadvertent mutations (#1090)
  • logger: clear_state should keep custom key formats (#1095)
  • middleware_factory: ret type annotation for handler dec (#1066)

Documentation

  • layer: update to 1.25.6; cosmetic changes

Maintenance

  • governance: refresh pull request template sections
  • governance: update external non-triage effort disclaimer
  • governance: update static typing to a form
  • governance: update rfc to a form
  • governance: update feat request to a form
  • governance: bug report form typo
  • governance: update docs report to a form
  • governance: update bug report to a form
  • governance: new ask a question
  • governance: new static typing report

1.25.6 - 2022-04-01

  • logger: clear_state regression on absent standard keys like level, location, timestamp (#1088)

1.25.5 - 2022-03-18

Bug Fixes

  • logger-utils: regression on exclude set leading to no formatter on append_keys (#1080)

1.25.4 - 2022-03-17

Bug Fixes

  • logger-utils: ensure external loggers doesn't propagate logs when copying config

Documentation

  • appsync: fix typo on listLocations return
  • contributing: pause new features/enhancements over operational excellence focus

1.25.3 - 2022-03-09

Bug Fixes

  • logger: ensure state is cleared for custom formatters (#1072)

Documentation

  • plugin: add mermaid to create diagram as code (#1070)

1.25.2 - 2022-03-07

Bug Fixes

  • event_handler: high-level import CorsConfig, docs snippets (#1019)
  • lambda-authorizer: allow proxy resources path in arn (#1051)
  • metrics: flush upon a single metric 100th data point (#1046)

Documentation

  • layer: update to 1.25.1
  • parser: APIGatewayProxyEvent to APIGatewayProxyEventModel (#1061)

Maintenance

  • deps: bump actions/setup-python from 2.3.1 to 3 (#1048)
  • deps: bump actions/checkout from 2 to 3 (#1052)
  • deps: bump actions/github-script from 5 to 6 (#1023)
  • deps: bump fastjsonschema from 2.15.2 to 2.15.3 (#949)
  • deps-dev: bump mkdocs-material from 8.1.9 to 8.2.4 (#1054)

1.25.1 - 2022-02-14

Bug Fixes

batch: bugfix to clear exceptions between executions (#1022)

1.25.0 - 2022-02-09

Bug Fixes

  • apigateway: remove indentation in debug_mode (#987)
  • ci: pr label regex for special chars in title
  • logger: exclude source_logger in copy_config_to_registered_loggers (#1001)
  • logger: test generates logfile

Documentation

  • event-handler: improve testing section for graphql (#996)
  • layer: update to 1.24.2
  • theme: upgrade mkdocs-material to 8.x (#1002)
  • tutorial: fix broken internal links (#1000)
  • general: fix syntax errors and line highlights (#1004)

Features

  • event-handler: new resolvers to fix current_event typing (#978)
  • logger: log_event support event data classes (e.g. S3Event) (#984)
  • mypy: complete mypy support for the entire codebase (#943)

Maintenance

  • deps-dev: bump flake8-bugbear from 21.11.29 to 22.1.11 (#955)
  • metrics: fix tests when warnings are disabled (#994)

1.24.2 - 2022-01-21

Bug Fixes

  • data-classes: underscore support in api gateway authorizer resource name

1.24.1 - 2022-01-20

Bug Fixes

  • batch: report multiple failures (#967)
  • data-classes: docstring typos and clean up (#937)
  • parameters: appconfig internal _get docstrings (#934)

Documentation

  • rename quickstart to tutorial in readme
  • batch: snippet typo on batch processed messages iteration (#951)
  • batch: fix typo in context manager keyword (#938)
  • homepage: link to typescript version (#950)
  • install: new lambda layer for 1.24.0 release
  • metrics: keep it consistent with other sections, update metric names
  • nav: make REST and GraphQL event handlers more explicit (#959)
  • quickstart: expand on intro line
  • quickstart: tidy requirements up
  • quickstart: same process for Logger
  • quickstart: add sub-sections, fix highlight & code
  • quickstart: sentence fragmentation, tidy up
  • quickstart: make section agnostic to json lib
  • tenets: make core, non-core more explicit
  • tracer: update ServiceLens image w/ API GW, copywriting
  • tracer: warning to note on local traces
  • tracer: add initial image, requirements
  • tracer: add annotation, metadata, and image

1.24.0 - 2021-12-31

Bug Fixes

  • apigateway: support @app.not_found() syntax & housekeeping (#926)
  • event-sources: handle dynamodb null type as none, not bool (#929)
  • warning: future distutils deprecation in 3.12 (#921)

Documentation

  • general: consistency round admonitions and snippets (#919)
  • homepage: Added GraphQL Sample API to Examples section of README.md (#930)
  • batch: remove leftover from legacy
  • layer: bump Lambda Layer to version 6
  • tracer: new ignore_endpoint feature (#931)

Features

  • event-sources: cache parsed json in data class (#909)
  • feature_flags: support beyond boolean values (JSON values) (#804)
  • idempotency: support dataclasses & pydantic models payloads (#908)
  • logger: support use_datetime_directive for timestamps (#920)
  • tracer: ignore tracing for certain hostname(s) or url(s) (#910)

Maintenance

  • deps-dev: bump mypy from 0.920 to 0.930 (#925)

1.23.0 - 2021-12-20

Bug Fixes

  • apigateway: allow list of HTTP methods in route method (#838)
  • event-sources: pass authorizer data to APIGatewayEventAuthorizer (#897)
  • event-sources: handle claimsOverrideDetails set to null (#878)
  • idempotency: include decorated fn name in hash (#869)
  • metrics: explicit type to single_metric ctx manager (#865)
  • parameters: mypy appconfig transform and return types (#877)
  • parser: mypy overload parse when using envelope (#885)
  • parser: kinesis sequence number is str, not int (#907)
  • parser: mypy support for payload type override as models (#883)
  • tracer: add warm start annotation (ColdStart=False) (#851)

Documentation

  • nav: reference cloudformation custom resource helper (CRD) (#914)
  • add new public Slack invite
  • disable search blur in non-prod env
  • update Lambda Layers version
  • apigateway: add new not_found feature (#915)
  • apigateway: fix sample layout provided (#864)
  • appsync: fix users.py typo to locations #830
  • lambda_layer: fix CDK layer syntax

Features

  • apigateway: add exception_handler support (#898)
  • apigateway: access parent api resolver from router (#842)
  • batch: new BatchProcessor for SQS, DynamoDB, Kinesis (#886)
  • logger: allow handler with custom kwargs signature (#913)
  • tracer: add service annotation when service is set (#861)

Maintenance

  • minor housekeeping before release (#912)
  • correct pr label order
  • ci: split latest docs workflow
  • deps: bump fastjsonschema from 2.15.1 to 2.15.2 (#891)
  • deps: bump actions/setup-python from 2.2.2 to 2.3.0 (#831)
  • deps: support arm64 when developing locally (#862)
  • deps: bump actions/setup-python from 2.3.0 to 2.3.1 (#852)
  • deps: bump aws-xray-sdk from 2.8.0 to 2.9.0 (#876)
  • deps-dev: bump mypy from 0.910 to 0.920 (#903)
  • deps-dev: bump flake8 from 3.9.2 to 4.0.1 (#789)
  • deps-dev: bump black from 21.10b0 to 21.11b1 (#839)
  • deps-dev: bump black from 21.11b1 to 21.12b0 (#872)

1.22.0 - 2021-11-17

Tenet update! We've updated Idiomatic tenet to Progressive to reflect the new Router feature in Event Handler, and more importantly the new wave of customers coming from SRE, Data Analysis, and Data Science background.

  • BEFORE: Idiomatic. Utilities follow programming language idioms and language-specific best practices.
  • AFTER: Progressive. Utilities are designed to be incrementally adoptable for customers at any stage of their Serverless journey. They follow language idioms and their community’s common practices.

Bug Fixes

  • ci: change supported python version from 3.6.1 to 3.6.2, bump black (#807)
  • ci: skip sync master on docs hotfix
  • parser: body and query strings can be null or omitted in ApiGatewayProxyEventModel and ApiGatewayProxyEventV2Model (#820)

Code Refactoring

  • apigateway: Add BaseRouter and duplicate route check (#757)

Documentation

  • docs: updated Lambda Layers definition & limitations. (#775)
  • docs: Idiomatic tenet updated to Progressive
  • docs: use higher contrast font to improve accessibility (#822)
  • docs: fix indentation of SAM snippets in install section (#778)
  • docs: improve public lambda layer wording, add clipboard buttons to improve UX (#762)
  • docs: add amplify-cli instructions for public layer (#754)
  • api-gateway: add new router feature to allow route splitting in API Gateway and ALB (#767)
  • apigateway: re-add sample layout, add considerations (#826)
  • appsync: add new router feature to allow GraphQL Resolver composition (#821)
  • idempotency: add support for DynamoDB composite keys (#808)
  • tenets: update Idiomatic tenet to Progressive (#823)
  • docs: remove Lambda Layer version tag

Features

  • apigateway: add Router to allow large routing composition (#645)
  • appsync: add Router to allow large resolver composition (#776)
  • data-classes: ActiveMQ and RabbitMQ support (#770)
  • logger: add ALB correlation ID support (#816)

Maintenance

  • deps: bump boto3 from 1.19.6 to 1.20.3 (#809)
  • deps: bump boto3 from 1.18.58 to 1.18.59 (#760)
  • deps: bump urllib3 from 1.26.4 to 1.26.5 (#787)
  • deps: bump boto3 from 1.18.61 to 1.19.6 (#783)
  • deps: bump boto3 from 1.18.56 to 1.18.58 (#755)
  • deps: bump boto3 from 1.18.59 to 1.18.61 (#766)
  • deps: bump boto3 from 1.20.3 to 1.20.5 (#817)
  • deps-dev: bump coverage from 6.0.1 to 6.0.2 (#764)
  • deps-dev: bump pytest-asyncio from 0.15.1 to 0.16.0 (#782)
  • deps-dev: bump flake8-eradicate from 1.1.0 to 1.2.0 (#784)
  • deps-dev: bump flake8-comprehensions from 3.6.1 to 3.7.0 (#759)
  • deps-dev: bump flake8-isort from 4.0.0 to 4.1.1 (#785)
  • deps-dev: bump coverage from 6.0 to 6.0.1 (#751)
  • deps-dev: bump mkdocs-material from 7.3.3 to 7.3.5 (#781)
  • deps-dev: bump mkdocs-material from 7.3.5 to 7.3.6 (#791)
  • deps-dev: bump mkdocs-material from 7.3.2 to 7.3.3 (#758)

1.21.1 - 2021-10-07

Regression

  • metrics: typing regression on log_metrics callable (#744)

Documentation

  • add new public layer ARNs (#746)

Maintenance

  • ignore constants in test cov (#745)
  • github-actions: add support for publishing fallback
  • deps: bump boto3 from 1.18.54 to 1.18.56 (#742)
  • deps-dev: bump mkdocs-material from 7.3.1 to 7.3.2 (#741)

1.21.0 - 2021-10-05

Bug Fixes

  • data-classes: use correct asdict funciton (#666)
  • feature-flags: rules should evaluate with an AND op (#724)
  • idempotency: sorting keys before hashing (#722)
  • idempotency: sorting keys before hashing
  • logger: push extra keys to the end (#722)
  • mypy: a few return types, type signatures, and untyped areas (#718)

Code Refactoring

  • data-classes: clean up internal logic for APIGatewayAuthorizerResponse (#643)

Documentation

  • Terraform reference for SAR Lambda Layer (#716)
  • event-handler: document catch-all routes (#705)
  • idempotency: fix misleading idempotent examples (#661)
  • jmespath: clarify envelope terminology
  • parser: fix incorrect import in root_validator example (#735)

Features

  • expose jmespath powertools functions (#736)
  • boto3 sessions in batch, parameters & idempotency (#717)
  • feature-flags: add get_raw_configuration property in store; expose store (#720)
  • feature-flags: Bring your own logger for debug (#709)
  • feature-flags: improve "IN/NOT_IN"; new rule actions (#710)
  • feature-flags: get_raw_configuration property in Store (#720)
  • feature_flags: Added inequality conditions (#721)
  • idempotency: makes customers unit testing easier (#719)
  • validator: include missing data elements from a validation error (#686)

Maintenance

  • add python 3.9 support
  • deps: bump boto3 from 1.18.51 to 1.18.54 (#733)
  • deps: bump boto3 from 1.18.32 to 1.18.38 (#671)
  • deps: bump boto3 from 1.18.38 to 1.18.41 (#677)
  • deps: bump boto3 from 1.18.49 to 1.18.51 (#713)
  • deps: bump boto3 from 1.18.41 to 1.18.49 (#703)
  • deps: bump codecov/codecov-action from 2.0.2 to 2.1.0 (#675)
  • deps-dev: bump coverage from 5.5 to 6.0 (#732)
  • deps-dev: bump mkdocs-material from 7.2.8 to 7.3.0 (#695)
  • deps-dev: bump mkdocs-material from 7.2.6 to 7.2.8 (#682)
  • deps-dev: bump flake8-bugbear from 21.4.3 to 21.9.1 (#676)
  • deps-dev: bump flake8-bugbear from 21.9.1 to 21.9.2 (#712)
  • deps-dev: bump radon from 4.5.2 to 5.1.0 (#673)
  • deps-dev: bump mkdocs-material from 7.3.0 to 7.3.1 (#731)
  • deps-dev: bump xenon from 0.7.3 to 0.8.0 (#669)

Bug Fixes

  • event-handler: fix issue with strip_prefixes and root level resolvers (#646)

Maintenance

  • deps: bump boto3 from 1.18.26 to 1.18.32 (#663)
  • deps-dev: bump mkdocs-material from 7.2.4 to 7.2.6 (#665)
  • deps-dev: bump pytest from 6.2.4 to 6.2.5 (#662)
  • deps-dev: bump mike from 0.6.0 to 1.0.1 (#453)
  • license: add third party license to pyproject.toml (#641)

1.20.2 - 2021-09-02

Bug Fixes

  • event-handler: fix issue with strip_prefixes and root level resolvers (#646)

Maintenance

  • deps: bump boto3 from 1.18.26 to 1.18.32 (#663)
  • deps-dev: bump mkdocs-material from 7.2.4 to 7.2.6 (#665)
  • deps-dev: bump pytest from 6.2.4 to 6.2.5 (#662)
  • deps-dev: bump mike from 0.6.0 to 1.0.1 (#453)
  • license: add third party license to pyproject.toml (#641)

1.20.1 - 2021-08-22

Bug Fixes

  • idempotency: sorting keys before hashing (#639)

Maintenance

  • markdown linter fixes (#636)
  • setup codespaces (#637)
  • license: add third party license (#635)

1.20.0 - 2021-08-21

Bug Fixes

  • api-gateway: HTTP API strip stage name from request path (#622)

Code Refactoring

  • event-handler: match to match_results; 3.10 new keyword (#616)

Documentation

  • data-classes: make authorizer concise; use enum (#630)
  • feature-flags: correct link and json examples (#605)
  • data-class: fix invalid syntax in new AppSync Authorizer
  • api-gateway: add new API mapping support

Features

  • data-classes: authorizer for API Gateway HTTP and REST API (#620)
  • data-classes: new data_as_bytes property in KinesisStreamRecordPayload (#628)
  • data-classes: AppSync Lambda authorizer event (#610)
  • event-handler: prefixes to strip for custom domain mapping paths (#579)
  • general: support for Python 3.9 (#626)
  • idempotency: support for any synchronous function (#625)

Maintenance

  • actions: include new labels
  • api-docs: enable allow_reuse to fix the docs (#612)
  • deps: bump boto3 from 1.18.25 to 1.18.26 (#627)
  • deps: bump boto3 from 1.18.24 to 1.18.25 (#623)
  • deps: bump boto3 from 1.18.22 to 1.18.24 (#619)
  • deps: bump boto3 from 1.18.17 to 1.18.21 (#608)
  • deps: bump boto3 from 1.18.21 to 1.18.22 (#614)
  • deps-dev: bump flake8-comprehensions from 3.5.0 to 3.6.0 (#609)
  • deps-dev: bump flake8-comprehensions from 3.6.0 to 3.6.1 (#615)
  • deps-dev: bump mkdocs-material from 7.2.3 to 7.2.4 (#607)
  • docs: correct markdown based on markdown lint (#603)
  • shared: fix cyclic import & refactor data extraction fn (#613)

1.19.0 - 2021-08-11

Bug Fixes

  • deps: bump poetry to latest (#592)
  • feature-flags: bug handling multiple conditions (#599)
  • parser: API Gateway WebSocket validation under check_message_id; plus some housekeeping (#553)
  • feature-toggles: correct cdk example (#601)

Code Refactoring

  • feature-flags: add debug statements for all feature evaluations (#590)
  • feature-flags: optimize UX and maintenance (#563)

Documentation

  • event-handler: new custom serializer option
  • feature-flags: create concrete documentation (#594)
  • feature-flags: correct docs and typing (#588)
  • parameters: auto-transforming values based on suffix (#573)
  • readme: add code coverage badge (#577)
  • tracer: update wording that it auto-disables on non-Lambda env
  • feature-flags: fix SAM infra, convert CDK to Python
  • feature-flags: fix sample feature name in evaluate method
  • feature-flags: add guidance when to use vs env vars vs parameters

Features

  • api-gateway: add support for custom serializer (#568)
  • data-classes: decode json_body if based64 encoded (#560)
  • feature-flags: Add not_in action and rename contains to in (#589)
  • params: expose params max_age, raise_on_transform_error to high level functions (#567)
  • tracer: auto-disable tracer for non-Lambda environments to ease testing (#598)

Maintenance

  • deps: bump boto3 from 1.18.1 to 1.18.15 (#591)
  • deps: bump codecov/codecov-action from 2.0.1 to 2.0.2 (#558)
  • deps: bump boto3 from 1.18.15 to 1.18.17 (#597)
  • deps-dev: bump mkdocs-material from 7.2.2 to 7.2.3 (#596)
  • deps-dev: bump mkdocs-material from 7.2.1 to 7.2.2 (#582)
  • deps-dev: bump pdoc3 from 0.9.2 to 0.10.0 (#584)
  • deps-dev: bump isort from 5.9.2 to 5.9.3 (#574)
  • deps-dev: bump mkdocs-material from 7.2.0 to 7.2.1 (#566)
  • deps-dev: bump mkdocs-material from 7.1.11 to 7.2.0 (#551)
  • deps-dev: bump flake8-black from 0.2.1 to 0.2.3 (#541)

1.18.1 - 2021-07-23

Bug Fixes

  • api-gateway: route regression for non-word and unsafe URI chars (#556)

1.18.0 - 2021-07-20

Bug Fixes

  • api-gateway: non-greedy route pattern regex which incorrectly mapped certain route params to function params (#533)
  • api-gateway: incorrect plain text mimetype constant #506
  • data-classes: include milliseconds in scalar types to correctly align with AppSync scalars (#504)
  • mypy: addresses lack of optional types (#521)
  • parser: make ApiGateway version, authorizer fields optional (#532)
  • tracer: mypy generic to preserve decorated method signature (#529)

Code Refactoring

  • feature-toggles: code coverage and housekeeping (#530)

Documentation

  • api-gateway: new HTTP service error exceptions (#546)
  • logger: new get_correlation_id method (#545)

Features

  • api-gateway: add debug mode (#507)
  • api-gateway: add common HTTP service errors (#506)
  • event-handler: Support AppSyncResolverEvent subclassing (#526)
  • feat-toggle: New simple feature toggles rule engine (WIP) (#494)
  • logger: add get_correlation_id method (#516)

Maintenance

  • mypy: add mypy support to makefile (#508)
  • deps: bump codecov/codecov-action from 1 to 2.0.1 (#539)
  • deps: bump boto3 from 1.18.0 to 1.18.1 (#528)
  • deps: bump boto3 from 1.17.110 to 1.18.0 (#527)
  • deps: bump boto3 from 1.17.102 to 1.17.110 (#523)
  • deps-dev: bump mkdocs-material from 7.1.10 to 7.1.11 (#542)
  • deps-dev: bump mkdocs-material from 7.1.9 to 7.1.10 (#522)
  • deps-dev: bump isort from 5.9.1 to 5.9.2 (#514)
  • event-handler: adjusts API Gateway/ALB service errors exception docstrings to not confuse AppSync customers

1.17.1 - 2021-07-02

Bug Fixes

  • Validator: Handle built-in custom formats like date-time when type is string (#498)

Documentation

  • Layers: Add Layers example for Serverless framework & CDK (#500)
  • Misc.: Enable dark mode switch (#471)
  • Tracer: Additional scenario when to disable auto-capture for responses larger than 64K (#499)

Maintenance

  • deps: bump boto3 from 1.17.101 to 1.17.102 (#493)
  • deps: bump boto3 from 1.17.91 to 1.17.101 (#490)
  • deps: bump email-validator from 1.1.2 to 1.1.3 (#478)
  • deps: bump boto3 from 1.17.89 to 1.17.91 (#473)
  • deps-dev: bump flake8-eradicate from 1.0.0 to 1.1.0 (#492)
  • deps-dev: bump isort from 5.8.0 to 5.9.1 (#487)
  • deps-dev: bump mkdocs-material from 7.1.7 to 7.1.9 (#491)

1.17.0 - 2021-06-08

Added

  • Documentation: Include new public roadmap (#452)
  • Documentation: Remove old todo in idempotency docs
  • Data classes: New AttributeValueType to get type and value from data in DynamoDBStreamEvent (#462)
  • Data classes: New decorator event_source to instantiate data_classes (#442)
  • Logger: New clear_state parameter to clear previously added custom keys upon invocation (#467)
  • Parser: Support for API Gateway HTTP API #434 (#441)

Maintenance

  • deps: bump xenon from 0.7.1 to 0.7.3 (#446)
  • assited changelog pre-generation, auto-label PR (#443)
  • enable dependabot for dep upgrades (#444)
  • enable mergify (#450)
  • deps: bump mkdocs-material from 7.1.5 to 7.1.6 (#451)
  • deps: bump boto3 from 1.17.78 to 1.17.84 (#449)
  • update mergify to require approval on dependabot (#456)
  • deps: bump actions/setup-python from 1 to 2.2.2 (#445)
  • deps: bump boto3 from 1.17.87 to 1.17.88 (#463)
  • deps: bump boto3 from 1.17.88 to 1.17.89 (#466)
  • deps: bump boto3 from 1.17.84 to 1.17.85 (#455)
  • deps: bump boto3 from 1.17.85 to 1.17.86 (#458)
  • deps: bump boto3 from 1.17.86 to 1.17.87 (#459)
  • deps-dev: bump mkdocs-material from 7.1.6 to 7.1.7 (#464)
  • deps-dev: bump pytest-cov from 2.12.0 to 2.12.1 (#454)
  • mergify: disable check for matrix jobs
  • mergify: use job name to match GH Actions

1.16.1 - 2021-05-23

Fixed

  • Parser: Upgrade Pydantic to 1.8.2 due to CVE-2021-29510

1.16.0 - 2021-05-17

Features

  • data-classes(API Gateway, ALB): New method to decode base64 encoded body (#425)
  • data-classes(CodePipeline): Support for CodePipeline job event and methods to handle artifacts more easily (#416)

1.15.1 - 2021-05-13

Fixed

  • Logger: Fix a regression with the %s operator

1.15.0 - 2021-05-06

Added

  • Event handlers: New API Gateway and ALB utility to reduce routing boilerplate and more
  • Documentation: Logger enhancements such as bring your own formatter, handler, UTC support, and testing for Python 3.6
  • Parser: Support for API Gateway REST Proxy event and envelope
  • Logger: Support for bringing custom formatter, custom handler, custom JSON serializer and deserializer, UTC support, expose LambdaPowertoolsFormatter
  • Metrics: Support for persisting default dimensions that should always be added

Fixed

  • Documentation: Fix highlights, Parser types
  • Validator: Fix event type annotations for validate standalone function
  • Parser: Improve and fix types
  • Internal: Remove X-Ray SDK version pinning as serialization regression has been fixed in 2.8.0
  • Internal: Latest documentation correctly includes a copy of API docs reference

1.14.0 - 2021-04-09

Added

  • Event handlers: New core utility to easily handle incoming requests tightly integrated with Data Classes; AppSync being the first as we gauge from the community what additional ones would be helpful
  • Documentation: Enabled versioning to access docs on a per release basis or staging docs (develop branch)
  • Documentation: Links now open in a new tab and improved snippet line highlights
  • Documentation(validation): JSON Schema snippets and more complete examples
  • Documentation(idempotency): Table with expected configuration values for hash key and TTL attribute name when using the default behaviour
  • Documentation(logger): New example on how to set logging record timestamps in UTC
  • Parser(S3): Support for the new S3 Object Lambda Event model (S3ObjectLambdaEvent)
  • Parameters: Support for DynamoDB Local via endpoint_url parameter, including docs
  • Internal: Include make pr in pre-commit hooks when contributing to shorten feedback loop on pre-commit specific linting

Fixed

  • Parser: S3Model now supports keys with 0 length
  • Tracer: Lock X-Ray SDK to 2.6.0 as there's been a regression upstream in 2.7.0 on serializing & capturing exceptions
  • Data Classes(API Gateway): Add missing property operationName within request context
  • Misc.: Numerous typing fixes to better to support MyPy across all utilities
  • Internal: Downgraded poetry to 1.1.4 as there's been a regression with importlib-metadata in 1.1.5 not yet fixed

1.13.0 - 2021-03-23

Added

  • Data Classes: New S3 Object Lambda event

Fixed

  • Docs: Lambda Layer SAM template reference example

1.12.0 - 2021-03-17

Added

  • Parameters: New force_fetch param to always fetch the latest and bypass cache, if available
  • Data Classes: New AppSync Lambda Resolver event covering both Direct Lambda Resolver and Amplify GraphQL Transformer Resolver @function
  • Data Classes: New AppSync scalar utilities to easily compose Lambda Resolvers with date utils, uuid, etc.
  • Logger: Support for Correlation ID both in inject_lambda_context decorator and set_correlation_id method
  • Logger: Include new exception_name key to help customers easily enumerate exceptions across all functions

Fixed

  • Tracer: Type hint on return instance that made PyCharm no longer recognize autocompletion
  • Idempotency: Error handling for missing idempotency key and save_in_progress errors

1.11.0 - 2021-03-05

Fixed

  • Tracer: Lazy loads X-Ray SDK to increase perf by 75% for those not instantiating Tracer
  • Metrics: Optimize validation and serialization to increase perf by nearly 50% for large operations (<1ms)

Added

  • Dataclass: Add new Amazon Connect contact flow event
  • Idempotency: New Idempotency utility
  • Docs: Add example on how to integrate Batch utility with Sentry.io
  • Internal: Added performance SLA tests for high level imports and Metrics validation/serialization

1.10.5 - 2021-02-17

No changes. Bumped version to trigger new pipeline build for layer publishing.

1.10.4 - 2021-02-17

Fixed

  • Docs: Fix anchor tags to be lower case
  • Docs: Correct the docs location for the labeller

1.10.3 - 2021-02-04

Added

  • Docs: Migrated from Gatsby to MKdocs documentation system
  • Docs: Included Getting started and Advanced sections in Core utilities, including additional examples

Fixed

  • Tracer: Disabled batching segments as X-Ray SDK does not flush traces upon reaching limits
  • Parser: Model type is now compliant with mypy

1.10.2 - 2021-02-04

Fixed

  • Utilities: Correctly handle and list multiple exceptions in SQS batch processing utility.
  • *Docs:: Fix typos on AppConfig docstring import, and SnsModel typo in parser.
  • Utilities: typing_extensions package is now only installed in Python < 3.8

1.10.1 - 2021-01-19

Fixed

  • Utilities: Added SnsSqsEnvelope in parser to dynamically adjust model mismatch when customers use SNS + SQS instead of SNS + Lambda, since we've discovered three payload keys are slightly different.

1.10.0 - 2021-01-18

Added

  • Utilities: Added support for AppConfig in Parameters utility
  • Logger: Added support for extra parameter to add additional root fields when logging messages
  • Logger: Added support to Pytest Live Log feat. via feature toggle POWERTOOLS_LOG_DEDUPLICATION_DISABLED
  • Tracer: Added support to disable auto-capturing response and exception as metadata
  • Utilities: Added support to handle custom string/integer formats in JSON Schema in Validator utility
  • Install: Added new Lambda Layer with all extra dependencies installed, available in Serverless Application Repository (SAR)

Fixed

  • Docs: Added missing SNS parser model
  • Docs: Added new environment variables for toggling features in Logger and Tracer: POWERTOOLS_LOG_DEDUPLICATION_DISABLED, POWERTOOLS_TRACER_CAPTURE_RESPONSE, POWERTOOLS_TRACER_CAPTURE_ERROR
  • Docs: Fixed incorrect import for Cognito data classes in Event Sources utility

1.9.1 - 2020-12-21

Fixed

  • Logger: Bugfix to prevent parent loggers with the same name being configured more than once

Added

  • Docs: Add clarification to Tracer docs for how capture_method decorator can cause function responses to be read and serialized.
  • Utilities: Added equality to ease testing Event source data classes
  • Package: Added py.typed for initial work needed for PEP 561 compliance

1.9.0 - 2020-12-04

Added

  • Utilities: Added Kinesis, S3, CloudWatch Logs, Application Load Balancer, and SES support in Parser
  • Docs: Sidebar menu are now always expanded

Fixed

  • Docs: Broken link to GitHub to homepage

1.8.0 - 2020-11-20

Added

  • Utilities: Added support for new EventBridge Replay field in Parser and Event source data classes
  • Utilities: Added SNS support in Parser
  • Utilities: Added API Gateway HTTP API data class support for new IAM and Lambda authorizer in Event source data classes
  • Docs: Add new FAQ section for Logger on how to enable debug logging for boto3
  • Docs: Add explicit minimal set of permissions required to use Layers provided by Serverless Application Repository (SAR)

Fixed

  • Docs: Fix typo in Dataclasses example for SES when fetching common email headers

1.7.0 - 2020-10-26

Added

  • Utilities: Add new Parser utility to provide parsing and deep data validation using Pydantic Models
  • Utilities: Add case insensitive header lookup, and Cognito custom auth triggers to Event source data classes

Fixed

  • Logger: keeps Lambda root logger handler, and add log filter instead to prevent child log records duplication
  • Docs: Improve wording on adding log keys conditionally

1.6.1 - 2020-09-23

Fixed

  • Utilities: Fix issue with boolean values in DynamoDB stream event data class.

1.6.0 - 2020-09-22

Added

  • Metrics: Support adding multiple metric values to a single metric name
  • Utilities: Add new Validator utility to validate inbound events and responses using JSON Schema
  • Utilities: Add new Event source data classes utility to easily describe event schema of popular event sources
  • Docs: Add new Testing your code section to both Logger and Metrics page, and content width is now wider
  • Tracer: Support for automatically disable Tracer when running a Chalice app

Fixed

  • Docs: Improve wording on log sampling feature in Logger, and removed duplicate content on main page
  • Utilities: Remove DeleteMessageBatch API call when there are no messages to delete

1.5.0 - 2020-09-04

Added

  • Logger: Add xray_trace_id to log output to improve integration with CloudWatch Service Lens
  • Logger: Allow reordering of logged output
  • Utilities: Add new SQS batch processing utility to handle partial failures in processing message batches
  • Utilities: Add typing utility providing static type for lambda context object
  • Utilities: Add transform=auto in parameters utility to deserialize parameter values based on the key name

Fixed

  • Logger: The value of json_default formatter is no longer written to logs

1.4.0 - 2020-08-25

Added

  • All: Official Lambda Layer via Serverless Application Repository
  • Tracer: capture_method and capture_lambda_handler now support capture_response=False parameter to prevent Tracer to capture response as metadata to allow customers running Tracer with sensitive workloads

Fixed

  • Metrics: Cold start metric is now completely separate from application metrics dimensions, making it easier and cheaper to visualize.
    • This is a breaking change if you were graphing/alerting on both application metrics with the same name to compensate this previous malfunctioning
    • Marked as bugfix as this is the intended behaviour since the beginning, as you shouldn't have the same application metric with different dimensions
  • Utilities: SSMProvider within Parameters utility now have decrypt and recursive parameters correctly defined to support autocompletion

Added

  • Tracer: capture_lambda_handler and capture_method decorators now support capture_response parameter to not include function's response as part of tracing metadata

1.3.1 - 2020-08-22

Fixed

  • Tracer: capture_method decorator did not properly handle nested context managers

1.3.0 - 2020-08-21

Added

  • Utilities: Add new parameters utility to retrieve a single or multiple parameters from SSM Parameter Store, Secrets Manager, DynamoDB, or your very own

1.2.0 - 2020-08-20

Added

  • Tracer: capture_method decorator now supports generator functions (including context managers)

1.1.3 - 2020-08-18

Fixed

  • Logger: Logs emitted twice, structured and unstructured, due to Lambda configuring the root handler

1.1.2 - 2020-08-16

Fixed

  • Docs: Clarify confusion on Tracer reuse and auto_patch=False statement
  • Logger: Autocomplete for log statements in PyCharm

1.1.1 - 2020-08-14

Fixed

  • Logger: Regression on Logger level not accepting int i.e. Logger(level=logging.INFO)

1.1.0 - 2020-08-14

Added

  • Logger: Support for logger inheritance with child parameter

Fixed

  • Logger: Log level is now case insensitive via params and env var

1.0.2 - 2020-07-16

Fixed

  • Tracer: Correct AWS X-Ray SDK dependency to support 2.5.0 and higher

1.0.1 - 2020-07-06

Fixed

  • Logger: Fix a bug with inject_lambda_context causing existing Logger keys to be overridden if structure_logs was called before

1.0.0 - 2020-06-18

Added

  • Metrics: add_metadata method to add any metric metadata you'd like to ease finding metric related data via CloudWatch Logs
  • Set status as General Availability

0.11.0 - 2020-06-08

Added

  • Imports can now be made from top level of module, e.g.: from aws_lambda_powertools import Logger, Metrics, Tracer

Fixed

  • Metrics: Fix a bug with Metrics causing an exception to be thrown when logging metrics if dimensions were not explicitly added.

Changed

  • Metrics: No longer throws exception by default in case no metrics are emitted when using the log_metrics decorator.

0.10.0 - 2020-06-08

Added

  • Metrics: capture_cold_start_metric parameter added to log_metrics decorator
  • Metrics: Optional namespace and service parameters added to Metrics constructor to more closely resemble other core utils

Changed

  • Metrics: Default dimension is now created based on service parameter or POWERTOOLS_SERVICE_NAME env var

Deprecated

  • Metrics: add_namespace method deprecated in favor of using namespace parameter to Metrics constructor or POWERTOOLS_METRICS_NAMESPACE env var

0.9.5 - 2020-06-02

Fixed

  • Metrics: Coerce non-string dimension values to string
  • Logger: Correct cold_start, function_memory_size values from string to bool and int respectively

0.9.4 - 2020-05-29

Fixed

  • Metrics: Fix issue where metrics were not correctly flushed, and cleared on every invocation

0.9.3 - 2020-05-16

Fixed

  • Tracer: Fix Runtime Error for nested sync due to incorrect loop usage

0.9.2 - 2020-05-14

Fixed

  • Tracer: Import aiohttp lazily so it's not a hard dependency

0.9.0 - 2020-05-12

Added

  • Tracer: Support for async functions in Tracer via capture_method decorator
  • Tracer: Support for aiohttp via aiohttp_trace_config trace config
  • Tracer: Support for patching specific modules via patch_modules param
  • Tracer: Document escape hatch mechanisms via tracer.provider

0.8.1 - 2020-05-1

Fixed

  • Metrics: Fix metric unit casting logic if one passes plain string (value or key)
  • Metrics:: Fix MetricUnit enum values for
    • BytesPerSecond
    • KilobytesPerSecond
    • MegabytesPerSecond
    • GigabytesPerSecond
    • TerabytesPerSecond
    • BitsPerSecond
    • KilobitsPerSecond
    • MegabitsPerSecond
    • GigabitsPerSecond
    • TerabitsPerSecond
    • CountPerSecond

0.8.0 - 2020-04-24

Added

  • Logger: Introduced Logger class for structured logging as a replacement for logger_setup
  • Logger: Introduced Logger.inject_lambda_context decorator as a replacement for logger_inject_lambda_context

Removed

  • Logger: Raise DeprecationWarning exception for both logger_setup, logger_inject_lambda_context

0.7.0 - 2020-04-20

Added

  • Middleware factory: Introduced Middleware Factory to build your own middleware via lambda_handler_decorator

Fixed

  • Metrics: Fixed metrics dimensions not being included correctly in EMF

0.6.3 - 2020-04-09

Fixed

  • Logger: Fix log_metrics decorator logic not calling the decorated function, and exception handling

0.6.1 - 2020-04-08

Added

  • Metrics: Introduces Metrics middleware to utilise CloudWatch Embedded Metric Format

Deprecated

  • Metrics: Added deprecation warning for log_metrics

0.5.0 - 2020-02-20

Added

0.1.0 - 2019-11-15

Added

  • Public beta release

Last update: 2021-02-12
Back to top