From 8e06f0e420165548e36b745a44168d5766680b28 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 25 Jul 2023 14:39:50 +0200 Subject: [PATCH 01/12] fix(parameters): make cache aware of single vs multiple calls Signed-off-by: heitorlessa --- aws_lambda_powertools/utilities/parameters/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws_lambda_powertools/utilities/parameters/base.py b/aws_lambda_powertools/utilities/parameters/base.py index 2317ebc82d9..4ee6caa6c2f 100644 --- a/aws_lambda_powertools/utilities/parameters/base.py +++ b/aws_lambda_powertools/utilities/parameters/base.py @@ -28,7 +28,7 @@ from aws_lambda_powertools.shared import constants, user_agent from aws_lambda_powertools.shared.functions import resolve_max_age -from aws_lambda_powertools.utilities.parameters.types import TransformOptions +from aws_lambda_powertools.utilities.parameters.types import RecursiveOptions, TransformOptions from .exceptions import GetParameterError, TransformParameterError From eb7f20c724a259e03dae460e808d53eb3c5c8fc6 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 25 Jul 2023 15:16:51 +0200 Subject: [PATCH 02/12] chore: cleanup, add test for single and nested Signed-off-by: heitorlessa --- aws_lambda_powertools/utilities/parameters/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws_lambda_powertools/utilities/parameters/base.py b/aws_lambda_powertools/utilities/parameters/base.py index 4ee6caa6c2f..2317ebc82d9 100644 --- a/aws_lambda_powertools/utilities/parameters/base.py +++ b/aws_lambda_powertools/utilities/parameters/base.py @@ -28,7 +28,7 @@ from aws_lambda_powertools.shared import constants, user_agent from aws_lambda_powertools.shared.functions import resolve_max_age -from aws_lambda_powertools.utilities.parameters.types import RecursiveOptions, TransformOptions +from aws_lambda_powertools.utilities.parameters.types import TransformOptions from .exceptions import GetParameterError, TransformParameterError From 8e79668797a424475eefe736571e53fcf973d9e1 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Fri, 5 Apr 2024 17:46:07 +0200 Subject: [PATCH 03/12] chore(ci): add first centralized reusable workflow --- .github/workflows/on_schedule_monthly_roadmap_reminder.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/on_schedule_monthly_roadmap_reminder.yml b/.github/workflows/on_schedule_monthly_roadmap_reminder.yml index bc1bcf78a98..6a47fedd34d 100644 --- a/.github/workflows/on_schedule_monthly_roadmap_reminder.yml +++ b/.github/workflows/on_schedule_monthly_roadmap_reminder.yml @@ -16,5 +16,3 @@ jobs: uses: aws-powertools/actions/.github/workflows/monthly_roadmap_reminder.yml@fd4575466e5c2ac10703ac16f5aa9fb8890f532a with: token: ${{ github.token }} - - From 5ca4472d3673a761f23f3d1dd2ff265e52fde161 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 08:35:19 +0200 Subject: [PATCH 04/12] docs(roadmap): move bedrock to launched Signed-off-by: heitorlessa --- docs/roadmap.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index 6395bc344de..781f0de6af7 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -10,19 +10,6 @@ Our public roadmap outlines the high level direction we are working towards. We Security and operational excellence take precedence above all else. This means bug fixing, stability, customer's support, and internal compliance may delay one or more key areas below. -### Amazon Bedrock Agent Event Handler - -Based on [customers](https://github.com/aws-powertools/powertools-lambda-python#connect){target="_blank"} at re:Invent 2023, we will add a new Event Handler resolver to improve authoring and maintenance of Amazon Bedrock Agents. - -**Major updates** - -* [x] [Event Source Data Classes support](https://github.com/aws-powertools/powertools-lambda-python/pull/3262) -* [x] [Pydantic model _(Parser)_ support](https://github.com/aws-powertools/powertools-lambda-python/pull/3286) -* [x] [MVP Event Handler](https://github.com/aws-powertools/powertools-lambda-python/pull/3285) -* [ ] [New feature documentation](https://github.com/aws-powertools/powertools-lambda-python/pull/3602) -* [ ] Video to walkthrough use cases for anyone new to LLM Agents -* [ ] Launch amplifier (_e.g., What's New, Blog post_) - ### Setting Parameters and Secrets As of today, the [Parameters](./utilities/parameters.md){target="_blank"} feature is used to retrieve data, not to create or update existing parameters. Based on community feedback, we plan to enhance Parameters to allow set operations. @@ -209,6 +196,19 @@ A: For existing features, you can directly comment on issues. For anything else, ## Launched +### Amazon Bedrock Agent Event Handler + +Based on [customers](https://github.com/aws-powertools/powertools-lambda-python#connect){target="_blank"} at re:Invent 2023, we will add a new Event Handler resolver to improve authoring and maintenance of Amazon Bedrock Agents. + +**Major updates** + +* [x] [Event Source Data Classes support](https://github.com/aws-powertools/powertools-lambda-python/pull/3262) +* [x] [Pydantic model _(Parser)_ support](https://github.com/aws-powertools/powertools-lambda-python/pull/3286) +* [x] [MVP Event Handler](https://github.com/aws-powertools/powertools-lambda-python/pull/3285) +* [x] [New feature documentation](https://github.com/aws-powertools/powertools-lambda-python/pull/3602) +* [x] [Video to walkthrough](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/bedrock_agents/#video-walkthrough) use cases for anyone new to LLM Agents +* [ ] Launch amplifier (_e.g., What's New, Blog post_) + ### Sensitive Data Masking > [Docs](./utilities/data_masking.md) From bf5e10ab47e0a23b2813f5ea48a1aad5f929cb4c Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 08:36:45 +0200 Subject: [PATCH 05/12] docs(roadmap): moved parameter/secrets setting to launched Signed-off-by: heitorlessa --- docs/roadmap.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index 781f0de6af7..ebe74e25c0c 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -10,15 +10,6 @@ Our public roadmap outlines the high level direction we are working towards. We Security and operational excellence take precedence above all else. This means bug fixing, stability, customer's support, and internal compliance may delay one or more key areas below. -### Setting Parameters and Secrets - -As of today, the [Parameters](./utilities/parameters.md){target="_blank"} feature is used to retrieve data, not to create or update existing parameters. Based on community feedback, we plan to enhance Parameters to allow set operations. - -**Major updates** - -* [x] [RFC](https://github.com/aws-powertools/powertools-lambda-python/issues/3040) -* [ ] [MVP](https://github.com/aws-powertools/powertools-lambda-python/pull/2858) - ### Observability providers We want to extend Tracer, Metrics, and Logger to support any [AWS Lambda certified observability partner](https://go.aws/3HtU6CZ){target="_blank"}, along with OpenTelemetry. @@ -196,6 +187,17 @@ A: For existing features, you can directly comment on issues. For anything else, ## Launched +### Setting Parameters and Secrets + +> [Docs](./utilities/parameters.md#setting-parameters) + +As of today, the [Parameters](./utilities/parameters.md){target="_blank"} feature is used to retrieve data, not to create or update existing parameters. Based on community feedback, we plan to enhance Parameters to allow set operations. + +**Major updates** + +* [x] [RFC](https://github.com/aws-powertools/powertools-lambda-python/issues/3040) +* [x] [MVP](https://github.com/aws-powertools/powertools-lambda-python/pull/2858) + ### Amazon Bedrock Agent Event Handler Based on [customers](https://github.com/aws-powertools/powertools-lambda-python#connect){target="_blank"} at re:Invent 2023, we will add a new Event Handler resolver to improve authoring and maintenance of Amazon Bedrock Agents. From 8f8c7724c902da8872a9f5b1eabd1788963c3dcc Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 08:37:20 +0200 Subject: [PATCH 06/12] docs(roadmap): add bedrock docs link Signed-off-by: heitorlessa --- docs/roadmap.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/roadmap.md b/docs/roadmap.md index ebe74e25c0c..fd3f17a9dfa 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -200,6 +200,8 @@ As of today, the [Parameters](./utilities/parameters.md){target="_blank"} featur ### Amazon Bedrock Agent Event Handler +> [Docs](./core/event_handler/bedrock_agents.md) + Based on [customers](https://github.com/aws-powertools/powertools-lambda-python#connect){target="_blank"} at re:Invent 2023, we will add a new Event Handler resolver to improve authoring and maintenance of Amazon Bedrock Agents. **Major updates** From dc9231a9673eb9f843c9b8033445a8a14479fb0e Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 08:39:28 +0200 Subject: [PATCH 07/12] docs(roadmap): moved govcloud up top as it's imminent Signed-off-by: heitorlessa --- docs/roadmap.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index fd3f17a9dfa..e597274611a 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -25,6 +25,21 @@ At launch, we will support Datadog since it's [most requested observability prov * [ ] [Extend Tracer to add support for any Provider](https://github.com/aws-powertools/powertools-lambda-python/issues/2030) * [ ] Investigate alternative solution to OpenTelemetry cold start performance +### Lambda Layer in GovCloud + +We want to investigate security and scaling requirements for these special regions, so they're in sync for every release. + +!!! note "Help us prioritize it by reaching out to your AWS representatives or [via email](mailto:aws-powertools-maintainers@amazon.com)." + +**Major updates** + +* [x] Gather agencies and customers name to prioritize it +* [x] Investigate security requirements for special regions +* [x] Create additional infrastructure for special regions +* [x] AppSec review +* [x] Update CDK Layer construct to include regions +* [ ] Distribution sign-off + ### Revamp Event Handler Event Handler provides lightweight routing for both [**REST**: Amazon API Gateway, Amazon Elastic Load Balancer and AWS Lambda Function URL](./core/event_handler/api_gateway.md), and [**GraphQL**: AWS AppSync](./core/event_handler/appsync.md). @@ -83,21 +98,6 @@ We want to make this easier by extending certain utilities to accept a `metrics` * [ ] RFC to outline metrics for Event Handler (_e.g., validation errors_ ) * [ ] RFC to outline metrics for Idempotency (_e.g., cache hit_) -### Lambda Layer in GovCloud and China region - -We want to investigate security and scaling requirements for these special regions, so they're in sync for every release. - -!!! note "Help us prioritize it by reaching out to your AWS representatives or [via email](mailto:aws-powertools-maintainers@amazon.com)." - -**Major updates** - -* [x] Gather agencies and customers name to prioritize it -* [x] Investigate security requirements for special regions -* [x] Create additional infrastructure for special regions -* [ ] AppSec review -* [ ] Distribution sign-off -* [ ] Update CDK Layer construct to include regions - ### V3 We are in the process of planning the roadmap for v3. As always, [our approach](./versioning.md){target="_blank"} includes providing sufficient advance notice, a comprehensive upgrade guide, and minimizing breaking changes to facilitate a smooth transition (e.g., it took ~7 months from v2 to surpass v1 downloads). From 8946123ace218f67abdb0b8cb957b84d69995661 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 08:44:28 +0200 Subject: [PATCH 08/12] docs(roadmap): update sigv4 links, observability provider tracer PR Signed-off-by: heitorlessa --- docs/roadmap.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index e597274611a..8fc1370f0f6 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -22,7 +22,7 @@ At launch, we will support Datadog since it's [most requested observability prov * [x] [Document how customers can use any provider with Logger](https://docs.powertools.aws.dev/lambda/python/latest/core/logger/#observability-providers) * [x] [Extend Metrics to add support for any Provider](https://github.com/aws-powertools/powertools-lambda-python/pull/2194) -* [ ] [Extend Tracer to add support for any Provider](https://github.com/aws-powertools/powertools-lambda-python/issues/2030) +* [ ] [Extend Tracer to add support for any Provider](https://github.com/aws-powertools/powertools-lambda-python/pull/2342#issuecomment-2061734362) * [ ] Investigate alternative solution to OpenTelemetry cold start performance ### Lambda Layer in GovCloud @@ -56,6 +56,17 @@ Based on customers feedback, we want to provide [middleware authoring support](h * [x] [MVP for OpenAPI and SwaggerUI](https://github.com/aws-powertools/powertools-lambda-python/pull/3109) * [ ] [MVP for AppSync Batch invoke and partial failure support](https://github.com/aws-powertools/powertools-lambda-python/pull/1998) +### Authentication (SigV4) + +[During customers interview](https://github.com/aws-powertools/powertools-lambda-python#connect){target="_blank"}, we hear that signing requests using [AWS SigV4](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html){target="_blank"} could be easier. + +Since JWT is a close second, this new utility would cover higher level functions to sign and verify requests more easily. + +**Major updates** + +* [x] [Issue to outline challenges](https://github.com/aws-powertools/powertools-lambda-python/issues/2493), alternative solutions and desired experience +* [ ] [MVP for AWS SigV4](https://github.com/aws-powertools/powertools-lambda-python/pull/2435) + ### Office hours We heard from [customers](https://github.com/aws-powertools/powertools-lambda-python#connect){target="_blank"} that Powertools for AWS Lambda and its community can move faster than they are able to catch up. While documentation and release notes take these into account, they notice they don't always know advanced tricks, or what other customers tend to do in similar situations. @@ -72,17 +83,6 @@ Timezones being tricky, we plan to experiment with an afternoon slot in Central * [ ] Invite Discord community * [ ] Update roadmap page with Discord event -### Authentication (SigV4) - -[During customers interview](https://github.com/aws-powertools/powertools-lambda-python#connect){target="_blank"}, we hear that signing requests using [AWS SigV4](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html){target="_blank"} could be easier. - -Since JWT is a close second, this new utility would cover higher level functions to sign and verify requests more easily. - -**Major updates** - -* [ ] RFC to outline challenges, alternative solutions and desired experience -* [ ] [MVP for AWS SigV4](https://github.com/aws-powertools/powertools-lambda-python/pull/2435) - ### Enhanced operational metrics [Through customers interview](https://github.com/aws-powertools/powertools-lambda-python#connect){target="_blank"}, [Discord](https://discord.gg/B8zZKbbyET){target="_blank" rel="nofollow"}, and [1:1 customer enablement](https://github.com/aws-powertools/powertools-lambda-python#connect){target="_blank"}, we noticed customers often create the same set of custom operational metrics. From b3de8e09f6594b5645bab418e740fa6c1faa2763 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 08:45:42 +0200 Subject: [PATCH 09/12] docs(roadmap): move v3 up top due to pydantic v1 EOL Signed-off-by: heitorlessa --- docs/roadmap.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index 8fc1370f0f6..fd53ebdc0a0 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -40,6 +40,26 @@ We want to investigate security and scaling requirements for these special regio * [x] Update CDK Layer construct to include regions * [ ] Distribution sign-off +### V3 + +We are in the process of planning the roadmap for v3. As always, [our approach](./versioning.md){target="_blank"} includes providing sufficient advance notice, a comprehensive upgrade guide, and minimizing breaking changes to facilitate a smooth transition (e.g., it took ~7 months from v2 to surpass v1 downloads). + +For example, these are on our mind but not settled yet until we have a public tracker to discuss what these means in detail. + +* **Parser**: Drop Pydantic v1 +* **Parser**: Deserialize Amazon DynamoDB data types automatically (like Event Source Data Classes) +* **Parameters**: Increase default `max_age` for `get_secret` +* **Event Source Data Classes**: Return sane defaults for any property that has `Optional[]` returns +* **Upgrade tool**: Consider building a CST (Concrete Syntax Tree) tool to ease certain upgrade actions like `pyupgrade` and `django-upgrade` +* **Batch**: Stop at first error for Amazon DynamoDB Streams and Amazon Kinesis Data Streams (e.g., `stop_on_failure=True`) + +**Major updates** + +* [ ] Create an issue to track breaking changes we consider making +* [ ] Create a v3 branch to allow early experimentation +* [ ] Create workflows to allow pre-releases +* [ ] Create a mechanism to keep ideas for breaking change somewhere regardless of v3 + ### Revamp Event Handler Event Handler provides lightweight routing for both [**REST**: Amazon API Gateway, Amazon Elastic Load Balancer and AWS Lambda Function URL](./core/event_handler/api_gateway.md), and [**GraphQL**: AWS AppSync](./core/event_handler/appsync.md). @@ -98,26 +118,6 @@ We want to make this easier by extending certain utilities to accept a `metrics` * [ ] RFC to outline metrics for Event Handler (_e.g., validation errors_ ) * [ ] RFC to outline metrics for Idempotency (_e.g., cache hit_) -### V3 - -We are in the process of planning the roadmap for v3. As always, [our approach](./versioning.md){target="_blank"} includes providing sufficient advance notice, a comprehensive upgrade guide, and minimizing breaking changes to facilitate a smooth transition (e.g., it took ~7 months from v2 to surpass v1 downloads). - -For example, these are on our mind but not settled yet until we have a public tracker to discuss what these means in detail. - -* **Parser**: Drop Pydantic v1 -* **Parser**: Deserialize Amazon DynamoDB data types automatically (like Event Source Data Classes) -* **Parameters**: Increase default `max_age` for `get_secret` -* **Event Source Data Classes**: Return sane defaults for any property that has `Optional[]` returns -* **Upgrade tool**: Consider building a CST (Concrete Syntax Tree) tool to ease certain upgrade actions like `pyupgrade` and `django-upgrade` -* **Batch**: Stop at first error for Amazon DynamoDB Streams and Amazon Kinesis Data Streams (e.g., `stop_on_failure=True`) - -**Major updates** - -* [ ] Create an issue to track breaking changes we consider making -* [ ] Create a v3 branch to allow early experimentation -* [ ] Create workflows to allow pre-releases -* [ ] Create a mechanism to keep ideas for breaking change somewhere regardless of v3 - ## Roadmap status definition
From 6cf54e45bdc6e8b84ad391d75a90175f21a43114 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 08:51:04 +0200 Subject: [PATCH 10/12] docs(roadmap): add final tasks for govcloud Signed-off-by: heitorlessa --- docs/roadmap.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index fd53ebdc0a0..599e15a2424 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -38,7 +38,9 @@ We want to investigate security and scaling requirements for these special regio * [x] Create additional infrastructure for special regions * [x] AppSec review * [x] Update CDK Layer construct to include regions -* [ ] Distribution sign-off +* [x] Distribution sign-off +* [ ] Distribute latest version +* [ ] Update Layer section with new AWS Accounts ### V3 From 9482972ad3cc5b250be95ec6112c940a9e8beaba Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 09:37:43 +0200 Subject: [PATCH 11/12] docs(roadmap): add discord and how customers can help Signed-off-by: heitorlessa --- docs/roadmap.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index 599e15a2424..038ab9d89c6 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -1,6 +1,5 @@ - - -## Overview + +# Overview Our public roadmap outlines the high level direction we are working towards. We update this document when our priorities change: security and stability are our top priority. @@ -10,6 +9,10 @@ Our public roadmap outlines the high level direction we are working towards. We Security and operational excellence take precedence above all else. This means bug fixing, stability, customer's support, and internal compliance may delay one or more key areas below. +**Missing something or want us to prioritize an existing area?** + +You can help us prioritize by [upvoting existing feature requests](https://github.com/aws-powertools/powertools-lambda-python/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Afeature-request), leaving a comment on what use cases it could unblock for you, and by joining our discussions on Discord. + ### Observability providers We want to extend Tracer, Metrics, and Logger to support any [AWS Lambda certified observability partner](https://go.aws/3HtU6CZ){target="_blank"}, along with OpenTelemetry. From d3bdf5dca75da89b839302fbd664aab965ed7c68 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 10:05:10 +0200 Subject: [PATCH 12/12] docs: remove CST as we won't have the bandwidth Signed-off-by: heitorlessa --- docs/roadmap.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index 038ab9d89c6..3eb7921bbc5 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -55,7 +55,6 @@ For example, these are on our mind but not settled yet until we have a public tr * **Parser**: Deserialize Amazon DynamoDB data types automatically (like Event Source Data Classes) * **Parameters**: Increase default `max_age` for `get_secret` * **Event Source Data Classes**: Return sane defaults for any property that has `Optional[]` returns -* **Upgrade tool**: Consider building a CST (Concrete Syntax Tree) tool to ease certain upgrade actions like `pyupgrade` and `django-upgrade` * **Batch**: Stop at first error for Amazon DynamoDB Streams and Amazon Kinesis Data Streams (e.g., `stop_on_failure=True`) **Major updates**