Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: aws-powertools/powertools-lambda-python
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.33.1
Choose a base ref
...
head repository: aws-powertools/powertools-lambda-python
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.34.0
Choose a head ref

Commits on Feb 9, 2024

  1. chore(ci): bump version to 2.33.1 (#3746)

    Co-authored-by: Powertools for AWS Lambda (Python) bot <aws-lambda-powertools-feedback@amazon.com>
    github-actions[bot] and Powertools for AWS Lambda (Python) bot authored Feb 9, 2024
    Copy the full SHA
    45abe7b View commit details
  2. chore(ci): layer docs update (#3747)

    Co-authored-by: Powertools for AWS Lambda (Python) bot <aws-lambda-powertools-feedback@amazon.com>
    Co-authored-by: Heitor Lessa <lessa@amazon.com>
    3 people authored Feb 9, 2024
    Copy the full SHA
    c06a361 View commit details

Commits on Feb 12, 2024

  1. chore(deps-dev): bump cfn-lint from 0.85.0 to 0.85.1 (#3749)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 12, 2024
    Copy the full SHA
    68bb468 View commit details
  2. chore(deps-dev): bump sentry-sdk from 1.40.2 to 1.40.3 (#3750)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 12, 2024
    Copy the full SHA
    d738be2 View commit details

Commits on Feb 13, 2024

  1. chore(deps-dev): bump mkdocs-material from 9.5.8 to 9.5.9 (#3759)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 13, 2024
    Copy the full SHA
    d074c52 View commit details
  2. chore(deps-dev): bump aws-cdk from 2.126.0 to 2.127.0 (#3761)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Heitor Lessa <lessa@amazon.com>
    dependabot[bot] and heitorlessa authored Feb 13, 2024
    Copy the full SHA
    2faf99f View commit details
  3. chore(deps-dev): bump aws-cdk-lib from 2.126.0 to 2.127.0 (#3758)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Heitor Lessa <lessa@amazon.com>
    dependabot[bot] and heitorlessa authored Feb 13, 2024
    Copy the full SHA
    93b4ac6 View commit details
  4. feat(feature_flags): add intersect actions for conditions (#3692)

    Code and docs
    
    Co-authored-by: Leandro Damascena <lcdama@amazon.pt>
    Co-authored-by: Simon Thulbourn <sthulb@users.noreply.github.com>
    3 people authored Feb 13, 2024
    Copy the full SHA
    f4f9021 View commit details

Commits on Feb 14, 2024

  1. Copy the full SHA
    ea47f53 View commit details
  2. docs(roadmap): latest roadmap update; use new grid to de-clutter home…

    …page (#3755)
    
    * fix(parameters): make cache aware of single vs multiple calls
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * chore: cleanup, add test for single and nested
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * docs: key areas over themes; add launch/drop sections
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * docs: add links to launched event handler feat
    
    * docs: add last office hours items
    
    * docs: link sigv4 mvp until RFC is complete
    
    * docs: update feedback email
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * docs: update govcloud items
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * docs: link versioning process
    
    * docs: add bedrock
    
    * docs: add py3.7 area
    
    * docs: update wording on why an item was dropped
    
    * docs: add parameters set area
    
    * docs: remove python 3.7 banner
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * docs: enable code tab deep linking
    
    * docs: draft grids
    
    * docs: cleanup grids; fix warnings
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * docs: cleanup support us sections
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * docs: cleanup install
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * docs: major cleanup for layer sections
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * chore: fixed Simon's feedback on bot email
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    ---------
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    heitorlessa authored Feb 14, 2024
    Copy the full SHA
    3cce66e View commit details

Commits on Feb 15, 2024

  1. chore(deps-dev): bump the boto-typing group with 1 update (#3757)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 15, 2024
    Copy the full SHA
    ac4d4d8 View commit details
  2. chore(deps): bump actions/dependency-review-action from 4.0.0 to 4.1.0 (

    #3771)
    
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 15, 2024
    Copy the full SHA
    2858929 View commit details
  3. chore(deps): bump the layer-balancer group in /layer/scripts/layer-ba…

    …lancer with 3 updates (#3764)
    
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 15, 2024
    Copy the full SHA
    4dd4a2f View commit details
  4. chore(deps): bump squidfunk/mkdocs-material from 6a72238 to `62d366…

    …8` in /docs (#3756)
    
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 15, 2024
    Copy the full SHA
    a2ba47e View commit details
  5. chore(deps-dev): bump sentry-sdk from 1.40.3 to 1.40.4 (#3765)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Heitor Lessa <lessa@amazon.com>
    dependabot[bot] and heitorlessa authored Feb 15, 2024
    Copy the full SHA
    af0a55e View commit details
  6. chore(ci): changelog rebuild (#3772)

    Co-authored-by: Powertools for AWS Lambda (Python) bot <151832416+aws-powertools-bot@users.noreply.github.com>
    Co-authored-by: Heitor Lessa <lessa@amazon.com>
    3 people authored Feb 15, 2024
    Copy the full SHA
    dab2aee View commit details
  7. chore(deps-dev): bump pytest-asyncio from 0.21.1 to 0.23.5 (#3773)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 15, 2024
    Copy the full SHA
    e46e32e View commit details
  8. fix(event-handler): handle aliased parameters e.g., Query(alias="cate…

    …goryType") (#3766)
    
    * fix(event-handler): correctly handle aliased parameters
    
    * fix(parameters): make cache aware of single vs multiple calls
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * chore: cleanup, add test for single and nested
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * chore: no-op exception suppress
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * fix: use local event, not global to prevent race condition
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    
    * Revert "chore: no-op exception suppress"
    
    This reverts commit f79dffc.
    
    ---------
    
    Signed-off-by: heitorlessa <lessa@amazon.co.uk>
    Co-authored-by: Heitor Lessa <lessa@amazon.com>
    Co-authored-by: heitorlessa <lessa@amazon.co.uk>
    3 people authored Feb 15, 2024
    Copy the full SHA
    f31ea17 View commit details
  9. Copy the full SHA
    884d251 View commit details

Commits on Feb 16, 2024

  1. Copy the full SHA
    cc69e54 View commit details
  2. Copy the full SHA
    d957228 View commit details

Commits on Feb 19, 2024

  1. refactor(feature-flags): add intersection tests; structure refinement (

    …#3775)
    
    Co-authored-by: Ruben Fonseca <fonseka@gmail.com>
    heitorlessa and rubenfonseca authored Feb 19, 2024
    Copy the full SHA
    b266979 View commit details
  2. Copy the full SHA
    72b1fba View commit details
  3. chore(deps-dev): bump cfn-lint from 0.85.1 to 0.85.2 (#3786)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 19, 2024
    Copy the full SHA
    f8bb6d4 View commit details
  4. chore(deps): bump the layer-balancer group in /layer/scripts/layer-ba…

    …lancer with 1 update (#3784)
    
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 19, 2024
    Copy the full SHA
    493a1ca View commit details
  5. chore(deps-dev): bump aws-cdk from 2.127.0 to 2.128.0 (#3776)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Heitor Lessa <lessa@amazon.com>
    dependabot[bot] and heitorlessa authored Feb 19, 2024
    Copy the full SHA
    4a6602a View commit details
  6. docs(feature_flags): fix incorrect line markers and envelope name (#3792

    )
    
    Co-authored-by: Ran Isenberg <ran.isenberg@ranthebuilder.cloud>
    ran-isenberg and Ran Isenberg authored Feb 19, 2024
    Copy the full SHA
    48f705f View commit details
  7. chore(deps-dev): bump the boto-typing group with 2 updates (#3797)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 19, 2024
    Copy the full SHA
    25859fb View commit details
  8. chore(deps-dev): bump aws-cdk-lib from 2.127.0 to 2.128.0 (#3777)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 19, 2024
    Copy the full SHA
    212b37f View commit details
  9. chore(ci): changelog rebuild (#3794)

    Co-authored-by: Powertools for AWS Lambda (Python) bot <151832416+aws-powertools-bot@users.noreply.github.com>
    Co-authored-by: Heitor Lessa <lessa@amazon.com>
    3 people authored Feb 19, 2024
    Copy the full SHA
    f8098e2 View commit details
  10. docs(we-made-this): add reinvent 2023 session (#3790)

    Co-authored-by: Ran Isenberg <ran.isenberg@ranthebuilder.cloud>
    ran-isenberg and Ran Isenberg authored Feb 19, 2024
    Copy the full SHA
    770f023 View commit details
  11. Copy the full SHA
    36905b5 View commit details
  12. chore(deps-dev): bump sentry-sdk from 1.40.4 to 1.40.5 (#3805)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 19, 2024
    Copy the full SHA
    c83c1f5 View commit details
  13. chore(deps-dev): bump mkdocs-material from 9.5.9 to 9.5.10 (#3803)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 19, 2024
    Copy the full SHA
    7d19a29 View commit details
  14. chore(deps): bump squidfunk/mkdocs-material from 62d3668 to `43b898…

    …a` in /docs (#3801)
    
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 19, 2024
    Copy the full SHA
    7c19e4b View commit details
  15. chore(deps-dev): bump types-redis from 4.6.0.20240106 to 4.6.0.202402…

    …18 (#3804)
    
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 19, 2024
    Copy the full SHA
    ff0f0de View commit details
  16. chore(deps): bump actions/dependency-review-action from 4.1.0 to 4.1.2 (

    #3800)
    
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 19, 2024
    Copy the full SHA
    c135cec View commit details

Commits on Feb 20, 2024

  1. Copy the full SHA
    6695932 View commit details
  2. docs(we-made-this): add swagger post (#3799)

    Co-authored-by: Ran Isenberg <ran.isenberg@ranthebuilder.cloud>
    ran-isenberg and Ran Isenberg authored Feb 20, 2024
    Copy the full SHA
    66358cb View commit details
  3. chore(ci): changelog rebuild (#3806)

    Co-authored-by: Powertools for AWS Lambda (Python) bot <151832416+aws-powertools-bot@users.noreply.github.com>
    github-actions[bot] and aws-powertools-bot authored Feb 20, 2024
    Copy the full SHA
    3a54750 View commit details
  4. Copy the full SHA
    539cb78 View commit details

Commits on Feb 21, 2024

  1. chore(deps): bump the layer-balancer group in /layer/scripts/layer-ba…

    …lancer with 2 updates (#3814)
    
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 21, 2024
    Copy the full SHA
    31d830b View commit details
  2. chore(deps): bump actions/dependency-review-action from 4.1.2 to 4.1.3 (

    #3813)
    
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 21, 2024
    Copy the full SHA
    8498666 View commit details
  3. chore(deps-dev): bump pytest from 8.0.0 to 8.0.1 (#3812)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 21, 2024
    Copy the full SHA
    6830176 View commit details
  4. chore(deps-dev): bump coverage from 7.4.1 to 7.4.2 (#3811)

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 21, 2024
    Copy the full SHA
    4d5310d View commit details
  5. Copy the full SHA
    1f02a63 View commit details
Showing with 2,167 additions and 1,160 deletions.
  1. +1 −1 .github/actions/create-pr/action.yml
  2. +1 −1 .github/workflows/dependency-review.yml
  3. +4 −3 .github/workflows/publish_v2_layer.yml
  4. +1 −1 .github/workflows/release.yml
  5. +2 −3 .github/workflows/reusable_deploy_v2_layer_stack.yml
  6. +71 −12 CHANGELOG.md
  7. +2 −4 README.md
  8. +7 −1 aws_lambda_powertools/event_handler/api_gateway.py
  9. +13 −10 aws_lambda_powertools/event_handler/middlewares/openapi_validation.py
  10. +1 −1 aws_lambda_powertools/shared/version.py
  11. +2 −2 aws_lambda_powertools/utilities/data_classes/alb_event.py
  12. +2 −12 aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py
  13. +0 −4 aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py
  14. +8 −6 aws_lambda_powertools/utilities/data_classes/common.py
  15. +12 −14 aws_lambda_powertools/utilities/data_classes/vpc_lattice.py
  16. +1 −0 aws_lambda_powertools/utilities/feature_flags/__init__.py
  17. +65 −0 aws_lambda_powertools/utilities/feature_flags/comparators.py
  18. +126 −23 aws_lambda_powertools/utilities/feature_flags/feature_flags.py
  19. +168 −107 aws_lambda_powertools/utilities/feature_flags/schema.py
  20. +1 −1 docs/Dockerfile
  21. +601 −540 docs/index.md
  22. +0 −5 docs/overrides/main.html
  23. +117 −73 docs/roadmap.md
  24. +1 −1 docs/tutorial/index.md
  25. +7 −4 docs/utilities/feature_flags.md
  26. +22 −1 docs/we_made_this.md
  27. +2 −2 examples/feature_flags/src/extracting_envelope.py
  28. +1 −1 examples/logger/sam/template.yaml
  29. +1 −1 examples/metrics/sam/template.yaml
  30. +1 −1 examples/tracer/sam/template.yaml
  31. +15 −15 layer/scripts/layer-balancer/go.mod
  32. +30 −30 layer/scripts/layer-balancer/go.sum
  33. +7 −2 mkdocs.yml
  34. +4 −4 package-lock.json
  35. +1 −1 package.json
  36. +94 −94 poetry.lock
  37. +9 −9 pyproject.toml
  38. +8 −8 ruff.toml
  39. +17 −0 tests/e2e/idempotency/handlers/payload_tampering_validation_handler.py
  40. +1 −0 tests/e2e/idempotency/infrastructure.py
  41. +34 −1 tests/e2e/idempotency/test_idempotency_dynamodb.py
  42. +32 −0 tests/functional/event_handler/conftest.py
  43. +27 −0 tests/functional/event_handler/test_openapi_swagger.py
  44. +230 −140 tests/functional/event_handler/test_openapi_validation_middleware.py
  45. +257 −0 tests/functional/feature_flags/test_feature_flags.py
  46. +53 −13 tests/functional/feature_flags/test_schema_validation.py
  47. +76 −8 tests/functional/idempotency/test_idempotency.py
  48. +31 −0 tests/functional/idempotency/utils.py
2 changes: 1 addition & 1 deletion .github/actions/create-pr/action.yml
Original file line number Diff line number Diff line change
@@ -64,7 +64,7 @@ runs:
name: Git client setup and refresh tip
run: |
git config user.name "Powertools for AWS Lambda (Python) bot"
git config user.email "aws-lambda-powertools-feedback@amazon.com"
git config user.email "151832416+aws-powertools-bot@users.noreply.github.com"
git config pull.rebase true
git config remote.origin.url >&-
shell: bash
2 changes: 1 addition & 1 deletion .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
@@ -19,4 +19,4 @@ jobs:
- name: 'Checkout Repository'
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: 'Dependency Review'
uses: actions/dependency-review-action@4901385134134e04cec5fbe5ddfe3b2c5bd5d976 # v4.0.0
uses: actions/dependency-review-action@9129d7d40b8c12c1ed0f60400d00c92d437adcce # v4.1.3
7 changes: 4 additions & 3 deletions .github/workflows/publish_v2_layer.yml
Original file line number Diff line number Diff line change
@@ -257,11 +257,12 @@ jobs:
integrity_hash: ${{ inputs.source_code_integrity_hash }}
artifact_name: ${{ inputs.source_code_artifact_name }}

- name: Download CDK layer artifact
- name: Download CDK layer artifacts
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2
with:
name: cdk-layer-stack
path: cdk-layer-stack/
path: cdk-layer-stack
pattern: cdk-layer-stack-* # merge all Layer artifacts created per region earlier (reusable_deploy_v2_layer_stack.yml; step "Save Layer ARN artifact")
merge-multiple: true
- name: Replace layer versions in documentation
run: |
ls -la cdk-layer-stack/
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -273,7 +273,7 @@ jobs:
name: Git client setup and refresh tip
run: |
git config user.name "Powertools for AWS Lambda (Python) bot"
git config user.email "aws-lambda-powertools-feedback@amazon.com"
git config user.email "151832416+aws-powertools-bot@users.noreply.github.com"
git config remote.origin.url >&-
- name: Create Git Tag
5 changes: 2 additions & 3 deletions .github/workflows/reusable_deploy_v2_layer_stack.yml
Original file line number Diff line number Diff line change
@@ -193,16 +193,15 @@ jobs:
run: |
mkdir cdk-layer-stack
jq -r -c '.LayerV2Stack.LatestLayerArn' cdk-outputs.json > cdk-layer-stack/${{ matrix.region }}-layer-version.txt
jq -r -c '.LayerV2Stack.LatestLayerArm64Arn' cdk-outputs.json >> cdk-layer-stack/${{ matrix.region }}-layer-version.txt
jq -r -c '.LayerV2Stack.LatestLayerArm64Arn' cdk-outputs.json > cdk-layer-stack/${{ matrix.region }}-layer-version.txt
cat cdk-layer-stack/${{ matrix.region }}-layer-version.txt
- name: Save Layer ARN artifact
if: ${{ inputs.stage == 'PROD' }}
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: cdk-layer-stack
name: cdk-layer-stack-${{ matrix.region }}
path: ./layer/cdk-layer-stack/* # NOTE: upload-artifact does not inherit working-directory setting.
if-no-files-found: error
retention-days: 1
overwrite: true
- name: CDK Deploy Canary
run: npx cdk deploy --app cdk.out --context region=${{ matrix.region }} --parameters DeployStage="${{ inputs.stage }}" --parameters HasARM64Support=${{ matrix.has_arm64_support }} 'CanaryV2Stack' --require-approval never --verbose
83 changes: 71 additions & 12 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -4,37 +4,95 @@
<a name="unreleased"></a>
# Unreleased

## Bug Fixes

* **event-handler:** multi-value query string and validation of scalar parameters ([#3795](https://github.com/aws-powertools/powertools-lambda-python/issues/3795))
* **event-handler:** swagger schema respects api stage ([#3796](https://github.com/aws-powertools/powertools-lambda-python/issues/3796))
* **event-handler:** handle aliased parameters e.g., Query(alias="categoryType") ([#3766](https://github.com/aws-powertools/powertools-lambda-python/issues/3766))

## Code Refactoring

* **feature-flags:** add intersection tests; structure refinement ([#3775](https://github.com/aws-powertools/powertools-lambda-python/issues/3775))

## Documentation

* **feature_flags:** fix incorrect line markers and envelope name ([#3792](https://github.com/aws-powertools/powertools-lambda-python/issues/3792))
* **home:** update layer version to 62 for package version 2.33.1 ([#3778](https://github.com/aws-powertools/powertools-lambda-python/issues/3778))
* **home:** add note about POWERTOOLS_DEV side effects in CloudWatch Logs ([#3770](https://github.com/aws-powertools/powertools-lambda-python/issues/3770))
* **homepage:** discord flat badge style; remove former devax email ([#3768](https://github.com/aws-powertools/powertools-lambda-python/issues/3768))
* **homepage:** remove leftover announcement banner ([#3783](https://github.com/aws-powertools/powertools-lambda-python/issues/3783))
* **roadmap:** latest roadmap update; use new grid to de-clutter homepage ([#3755](https://github.com/aws-powertools/powertools-lambda-python/issues/3755))
* **we-made-this:** add reinvent 2023 session ([#3790](https://github.com/aws-powertools/powertools-lambda-python/issues/3790))

## Features

* **feature_flags:** add intersect actions for conditions ([#3692](https://github.com/aws-powertools/powertools-lambda-python/issues/3692))

## Maintenance

* **deps:** bump the layer-balancer group in /layer/scripts/layer-balancer with 1 update ([#3784](https://github.com/aws-powertools/powertools-lambda-python/issues/3784))
* **deps:** bump actions/dependency-review-action from 4.0.0 to 4.1.0 ([#3771](https://github.com/aws-powertools/powertools-lambda-python/issues/3771))
* **deps:** bump the layer-balancer group in /layer/scripts/layer-balancer with 3 updates ([#3764](https://github.com/aws-powertools/powertools-lambda-python/issues/3764))
* **deps:** bump squidfunk/mkdocs-material from `6a72238` to `62d3668` in /docs ([#3756](https://github.com/aws-powertools/powertools-lambda-python/issues/3756))
* **deps:** bump squidfunk/mkdocs-material from `62d3668` to `43b898a` in /docs ([#3801](https://github.com/aws-powertools/powertools-lambda-python/issues/3801))
* **deps:** bump actions/dependency-review-action from 4.1.0 to 4.1.2 ([#3800](https://github.com/aws-powertools/powertools-lambda-python/issues/3800))
* **deps-dev:** bump cfn-lint from 0.85.1 to 0.85.2 ([#3786](https://github.com/aws-powertools/powertools-lambda-python/issues/3786))
* **deps-dev:** bump pytest-asyncio from 0.21.1 to 0.23.5 ([#3773](https://github.com/aws-powertools/powertools-lambda-python/issues/3773))
* **deps-dev:** bump aws-cdk from 2.127.0 to 2.128.0 ([#3776](https://github.com/aws-powertools/powertools-lambda-python/issues/3776))
* **deps-dev:** bump sentry-sdk from 1.40.3 to 1.40.4 ([#3765](https://github.com/aws-powertools/powertools-lambda-python/issues/3765))
* **deps-dev:** bump the boto-typing group with 2 updates ([#3797](https://github.com/aws-powertools/powertools-lambda-python/issues/3797))
* **deps-dev:** bump aws-cdk-lib from 2.127.0 to 2.128.0 ([#3777](https://github.com/aws-powertools/powertools-lambda-python/issues/3777))
* **deps-dev:** bump mkdocs-material from 9.5.9 to 9.5.10 ([#3803](https://github.com/aws-powertools/powertools-lambda-python/issues/3803))
* **deps-dev:** bump the boto-typing group with 1 update ([#3757](https://github.com/aws-powertools/powertools-lambda-python/issues/3757))
* **deps-dev:** bump aws-cdk-lib from 2.126.0 to 2.127.0 ([#3758](https://github.com/aws-powertools/powertools-lambda-python/issues/3758))
* **deps-dev:** bump aws-cdk from 2.126.0 to 2.127.0 ([#3761](https://github.com/aws-powertools/powertools-lambda-python/issues/3761))
* **deps-dev:** bump mkdocs-material from 9.5.8 to 9.5.9 ([#3759](https://github.com/aws-powertools/powertools-lambda-python/issues/3759))
* **deps-dev:** bump sentry-sdk from 1.40.2 to 1.40.3 ([#3750](https://github.com/aws-powertools/powertools-lambda-python/issues/3750))
* **deps-dev:** bump cfn-lint from 0.85.0 to 0.85.1 ([#3749](https://github.com/aws-powertools/powertools-lambda-python/issues/3749))
* **deps-dev:** bump types-redis from 4.6.0.20240106 to 4.6.0.20240218 ([#3804](https://github.com/aws-powertools/powertools-lambda-python/issues/3804))
* **deps-dev:** bump sentry-sdk from 1.40.4 to 1.40.5 ([#3805](https://github.com/aws-powertools/powertools-lambda-python/issues/3805))


<a name="v2.33.1"></a>
## [v2.33.1] - 2024-02-09
## Bug Fixes

* **typing:** make Response headers covariant ([#3745](https://github.com/aws-powertools/powertools-lambda-python/issues/3745))

## Documentation

* Add nathan hanks post community ([#3727](https://github.com/aws-powertools/powertools-lambda-python/issues/3727))

## Maintenance

* version bump
* **ci:** drop support for Python 3.7 ([#3638](https://github.com/aws-powertools/powertools-lambda-python/issues/3638))
* **ci:** enable Redis e2e tests ([#3718](https://github.com/aws-powertools/powertools-lambda-python/issues/3718))
* **deps:** bump actions/download-artifact from 3.0.2 to 4.1.1 ([#3612](https://github.com/aws-powertools/powertools-lambda-python/issues/3612))
* **deps:** bump actions/setup-node from 4.0.1 to 4.0.2 ([#3737](https://github.com/aws-powertools/powertools-lambda-python/issues/3737))
* **deps:** bump squidfunk/mkdocs-material from `e0d6c67` to `6a72238` in /docs ([#3735](https://github.com/aws-powertools/powertools-lambda-python/issues/3735))
* **deps:** bump actions/dependency-review-action from 3.1.5 to 4.0.0 ([#3646](https://github.com/aws-powertools/powertools-lambda-python/issues/3646))
* **deps:** bump actions/download-artifact from 4.1.1 to 4.1.2 ([#3725](https://github.com/aws-powertools/powertools-lambda-python/issues/3725))
* **deps:** bump release-drafter/release-drafter from 5.25.0 to 6.0.0 ([#3699](https://github.com/aws-powertools/powertools-lambda-python/issues/3699))
* **deps:** revert aws-cdk-lib as a runtime dep ([#3730](https://github.com/aws-powertools/powertools-lambda-python/issues/3730))
* **deps:** bump actions/download-artifact from 4.1.1 to 4.1.2 ([#3725](https://github.com/aws-powertools/powertools-lambda-python/issues/3725))
* **deps:** bump squidfunk/mkdocs-material from `a4a2029` to `e0d6c67` in /docs ([#3708](https://github.com/aws-powertools/powertools-lambda-python/issues/3708))
* **deps:** bump actions/upload-artifact from 3.1.3 to 4.3.1 ([#3714](https://github.com/aws-powertools/powertools-lambda-python/issues/3714))
* **deps:** bump squidfunk/mkdocs-material from `e0d6c67` to `6a72238` in /docs ([#3735](https://github.com/aws-powertools/powertools-lambda-python/issues/3735))
* **deps:** bump actions/setup-node from 4.0.1 to 4.0.2 ([#3737](https://github.com/aws-powertools/powertools-lambda-python/issues/3737))
* **deps:** bump codecov/codecov-action from 3.1.6 to 4.0.1 ([#3700](https://github.com/aws-powertools/powertools-lambda-python/issues/3700))
* **deps-dev:** bump mypy from 1.4.1 to 1.8.0 ([#3710](https://github.com/aws-powertools/powertools-lambda-python/issues/3710))
* **deps:** bump actions/download-artifact from 3.0.2 to 4.1.1 ([#3612](https://github.com/aws-powertools/powertools-lambda-python/issues/3612))
* **deps:** revert aws-cdk-lib as a runtime dep ([#3730](https://github.com/aws-powertools/powertools-lambda-python/issues/3730))
* **deps:** bump actions/upload-artifact from 3.1.3 to 4.3.1 ([#3714](https://github.com/aws-powertools/powertools-lambda-python/issues/3714))
* **deps-dev:** bump cfn-lint from 0.83.8 to 0.85.0 ([#3724](https://github.com/aws-powertools/powertools-lambda-python/issues/3724))
* **deps-dev:** bump httpx from 0.24.1 to 0.26.0 ([#3712](https://github.com/aws-powertools/powertools-lambda-python/issues/3712))
* **deps-dev:** bump pytest from 7.4.4 to 8.0.0 ([#3711](https://github.com/aws-powertools/powertools-lambda-python/issues/3711))
* **deps-dev:** bump sentry-sdk from 1.40.1 to 1.40.2 ([#3740](https://github.com/aws-powertools/powertools-lambda-python/issues/3740))
* **deps-dev:** bump coverage from 7.2.7 to 7.4.1 ([#3713](https://github.com/aws-powertools/powertools-lambda-python/issues/3713))
* **deps-dev:** bump the boto-typing group with 7 updates ([#3709](https://github.com/aws-powertools/powertools-lambda-python/issues/3709))
* **deps-dev:** bump pytest from 7.4.4 to 8.0.0 ([#3711](https://github.com/aws-powertools/powertools-lambda-python/issues/3711))
* **deps-dev:** bump types-python-dateutil from 2.8.19.14 to 2.8.19.20240106 ([#3720](https://github.com/aws-powertools/powertools-lambda-python/issues/3720))
* **deps-dev:** bump cfn-lint from 0.83.8 to 0.85.0 ([#3724](https://github.com/aws-powertools/powertools-lambda-python/issues/3724))
* **deps-dev:** bump mypy from 1.4.1 to 1.8.0 ([#3710](https://github.com/aws-powertools/powertools-lambda-python/issues/3710))
* **deps-dev:** bump ruff from 0.2.0 to 0.2.1 ([#3742](https://github.com/aws-powertools/powertools-lambda-python/issues/3742))
* **deps-dev:** bump isort from 5.11.5 to 5.13.2 ([#3723](https://github.com/aws-powertools/powertools-lambda-python/issues/3723))
* **deps-dev:** bump sentry-sdk from 1.40.1 to 1.40.2 ([#3740](https://github.com/aws-powertools/powertools-lambda-python/issues/3740))
* **deps-dev:** bump pytest-socket from 0.6.0 to 0.7.0 ([#3721](https://github.com/aws-powertools/powertools-lambda-python/issues/3721))
* **deps-dev:** bump ruff from 0.1.15 to 0.2.0 ([#3702](https://github.com/aws-powertools/powertools-lambda-python/issues/3702))
* **deps-dev:** bump aws-cdk from 2.125.0 to 2.126.0 ([#3701](https://github.com/aws-powertools/powertools-lambda-python/issues/3701))
* **deps-dev:** bump hvac from 1.2.1 to 2.1.0 ([#3738](https://github.com/aws-powertools/powertools-lambda-python/issues/3738))
* **deps-dev:** bump black from 23.12.1 to 24.1.1 ([#3739](https://github.com/aws-powertools/powertools-lambda-python/issues/3739))
* **deps-dev:** bump ruff from 0.2.0 to 0.2.1 ([#3742](https://github.com/aws-powertools/powertools-lambda-python/issues/3742))


<a name="v2.33.0"></a>
@@ -4343,7 +4401,8 @@
* Merge pull request [#5](https://github.com/aws-powertools/powertools-lambda-python/issues/5) from jfuss/feat/python38


[Unreleased]: https://github.com/aws-powertools/powertools-lambda-python/compare/v2.33.0...HEAD
[Unreleased]: https://github.com/aws-powertools/powertools-lambda-python/compare/v2.33.1...HEAD
[v2.33.1]: https://github.com/aws-powertools/powertools-lambda-python/compare/v2.33.0...v2.33.1
[v2.33.0]: https://github.com/aws-powertools/powertools-lambda-python/compare/v2.32.0...v2.33.0
[v2.32.0]: https://github.com/aws-powertools/powertools-lambda-python/compare/v2.31.0...v2.32.0
[v2.31.0]: https://github.com/aws-powertools/powertools-lambda-python/compare/v2.30.2...v2.31.0
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -3,16 +3,14 @@

[![Build](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/quality_check.yml/badge.svg)](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/python_build.yml)
[![codecov.io](https://codecov.io/github/aws-powertools/powertools-lambda-python/branch/develop/graphs/badge.svg)](https://app.codecov.io/gh/aws-powertools/powertools-lambda-python)
![PythonSupport](https://img.shields.io/static/v1?label=python&message=%203.8|%203.9|%203.10|%203.11|%203.12&color=blue?style=flat-square&logo=python) ![PyPI version](https://badge.fury.io/py/aws-lambda-powertools.svg) ![PyPi monthly downloads](https://img.shields.io/pypi/dm/aws-lambda-powertools) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python/badge)](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python) [![Join our Discord](https://dcbadge.vercel.app/api/server/B8zZKbbyET)](https://discord.gg/B8zZKbbyET)
![PythonSupport](https://img.shields.io/static/v1?label=python&message=%203.8|%203.9|%203.10|%203.11|%203.12&color=blue?style=flat-square&logo=python) ![PyPI version](https://badge.fury.io/py/aws-lambda-powertools.svg) ![PyPi monthly downloads](https://img.shields.io/pypi/dm/aws-lambda-powertools) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python/badge)](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python) [![Join our Discord](https://dcbadge.vercel.app/api/server/B8zZKbbyET?style=flat-square)](https://discord.gg/B8zZKbbyET)

Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless [best practices and increase developer velocity](https://docs.powertools.aws.dev/lambda/python/latest/#features).

> Also available in [Java](https://github.com/aws-powertools/powertools-lambda-java), [Typescript](https://github.com/aws-powertools/powertools-lambda-typescript), and [.NET](https://github.com/aws-powertools/powertools-lambda-dotnet).
**[📜Documentation](https://docs.powertools.aws.dev/lambda/python/)** | **[🐍PyPi](https://pypi.org/project/aws-lambda-powertools/)** | **[Roadmap](https://docs.powertools.aws.dev/lambda/python/latest/roadmap/)** | **[Detailed blog post](https://aws.amazon.com/blogs/opensource/simplifying-serverless-best-practices-with-lambda-powertools/)**

> **An AWS Developer Acceleration (DevAx) initiative by Specialist Solution Architects | <aws-devax-open-source@amazon.com>**
![hero-image](https://user-images.githubusercontent.com/3340292/198254617-d0fdb672-86a6-4988-8a40-adf437135e0a.png)

## Features
@@ -83,7 +81,7 @@ This helps us understand who uses Powertools for AWS Lambda (Python) in a non-in
## Connect

* **Powertools for AWS Lambda on Discord**: `#python` - **[Invite link](https://discord.gg/B8zZKbbyET)**
* **Email**: <aws-lambda-powertools-feedback@amazon.com>
* **Email**: <aws-powertools-maintainers@amazon.com>

## Security disclosures

8 changes: 7 additions & 1 deletion aws_lambda_powertools/event_handler/api_gateway.py
Original file line number Diff line number Diff line change
@@ -1692,7 +1692,13 @@ def swagger_handler():
body=escaped_spec,
)

body = generate_swagger_html(escaped_spec, path, swagger_js, swagger_css, swagger_base_url)
body = generate_swagger_html(
escaped_spec,
f"{base_path}{path}",
swagger_js,
swagger_css,
swagger_base_url,
)

return Response(
status_code=200,
Original file line number Diff line number Diff line change
@@ -368,7 +368,10 @@ def _get_embed_body(
return received_body, field_alias_omitted


def _normalize_multi_query_string_with_param(query_string: Optional[Dict[str, str]], params: Sequence[ModelField]):
def _normalize_multi_query_string_with_param(
query_string: Dict[str, List[str]],
params: Sequence[ModelField],
) -> Dict[str, Any]:
"""
Extract and normalize resolved_query_string_parameters
@@ -383,15 +386,15 @@ def _normalize_multi_query_string_with_param(query_string: Optional[Dict[str, st
-------
A dictionary containing the processed multi_query_string_parameters.
"""
if query_string:
for param in filter(is_scalar_field, params):
try:
# if the target parameter is a scalar, we keep the first value of the query string
# regardless if there are more in the payload
query_string[param.name] = query_string[param.name][0]
except KeyError:
pass
return query_string
resolved_query_string: Dict[str, Any] = query_string
for param in filter(is_scalar_field, params):
try:
# if the target parameter is a scalar, we keep the first value of the query string
# regardless if there are more in the payload
resolved_query_string[param.alias] = query_string[param.alias][0]
except KeyError:
pass
return resolved_query_string


def _normalize_multi_header_values_with_param(headers: Optional[Dict[str, str]], params: Sequence[ModelField]):
2 changes: 1 addition & 1 deletion aws_lambda_powertools/shared/version.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
"""Exposes version constant to avoid circular dependencies."""

VERSION = "2.33.0"
VERSION = "2.34.0"
Loading