From c7bc4d5f7a0c2e9f1dd5a0497f8dad22de766bd2 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 08:56:26 +0200 Subject: [PATCH 01/11] docs(roadmap): move v2 to launched Signed-off-by: heitorlessa --- docs/roadmap.md | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index 05942052ca..bcb34fcb1b 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -30,18 +30,6 @@ Over the next quarter, we are considering implementing one or more of the follow If any of these utilities are important to you, please let us know by upvoting the issue, leaving a comment under the RFCs, or by joining the discussion in our [Discord community](https://discord.gg/B8zZKbbyET){target="_blank"}. -### Version 2 release - -Over the past year, we have gathered a number of feature requests and improvements that we want to implement but that are not backwards compatible with the current API surface. We are going to release our next major version (v2) by the end of 2023, which will include some of these changes: - -- [x] **ES Modules support ([#521](https://github.com/aws-powertools/powertools-lambda-typescript/issues/521))** - Thanks to the work of the community we have been able to validate the feasibility of dual support for CommonJS and ES Modules. We are currently working on a plan to implement this. -- [x] **TypeScript 5.x support ([#1375](https://github.com/aws-powertools/powertools-lambda-typescript/issues/1375))** - This new version of TypeScript brings breaking changes to the experimental decorators API, which we use in our core utilities. We need to investigate the impact of this change and how to best support it. -- [x] **Support for 3rd party observability providers ([#1500](https://github.com/aws-powertools/powertools-lambda-typescript/issues/1500))** - Many of our customers would like to use Powertools for AWS to send logs, traces, and metrics to providers other than Amazon CloudWatch. At the moment we are investigating the feasibility of this for the Logger utility, while the Python version of Powertools for AWS Lambda is considering this also for Tracer and Metrics. - -You can find the full list of changes in the [v2 RFC](https://github.com/aws-powertools/powertools-lambda-typescript/issues/1714) and follow the progress in the [v2 milestone](https://github.com/aws-powertools/powertools-lambda-typescript/milestone/12). - -Just like for the feature parity, if you have any feedback or would like to contribute to the discussion, please leave a comment in the RFC or join the discussion in our [Discord community](https://discord.gg/B8zZKbbyET){target="_blank"}. - ### Improve operational excellence We continue to work on increasing operational excellence to remove as much undifferentiated heavy lifting for maintainers, so that we can focus on delivering features that help you. @@ -113,4 +101,21 @@ A: Because job zero is security and operational stability, we can't provide spec **Q: How can I provide feedback or ask for more information?** -A: For existing features, you can directly comment on issues. For anything else, please open an issue. \ No newline at end of file +A: For existing features, you can directly comment on issues. For anything else, please open an issue. + +## Launched + +### Version 2 release + +> [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/upgrade/) + +Over the past year, we have gathered a number of feature requests and improvements that we want to implement but that are not backwards compatible with the current API surface. We are going to release our next major version (v2) by the end of 2023, which will include some of these changes: + +- [x] **ES Modules support ([#521](https://github.com/aws-powertools/powertools-lambda-typescript/issues/521))** - Thanks to the work of the community we have been able to validate the feasibility of dual support for CommonJS and ES Modules. We are currently working on a plan to implement this. +- [x] **TypeScript 5.x support ([#1375](https://github.com/aws-powertools/powertools-lambda-typescript/issues/1375))** - This new version of TypeScript brings breaking changes to the experimental decorators API, which we use in our core utilities. We need to investigate the impact of this change and how to best support it. +- [x] **Support for 3rd party observability providers ([#1500](https://github.com/aws-powertools/powertools-lambda-typescript/issues/1500))** - Many of our customers would like to use Powertools for AWS to send logs, traces, and metrics to providers other than Amazon CloudWatch. At the moment we are investigating the feasibility of this for the Logger utility, while the Python version of Powertools for AWS Lambda is considering this also for Tracer and Metrics. + +You can find the full list of changes in the [v2 RFC](https://github.com/aws-powertools/powertools-lambda-typescript/issues/1714) and follow the progress in the [v2 milestone](https://github.com/aws-powertools/powertools-lambda-typescript/milestone/12). + +Just like for the feature parity, if you have any feedback or would like to contribute to the discussion, please leave a comment in the RFC or join the discussion in our [Discord community](https://discord.gg/B8zZKbbyET){target="_blank"}. + From dfe132eaffbcd88fc2c2917e13186f8eb158ef2b Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 08:59:12 +0200 Subject: [PATCH 02/11] docs(roadmap): split up feature parity; add parameters to launched Signed-off-by: heitorlessa --- docs/roadmap.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/roadmap.md b/docs/roadmap.md index bcb34fcb1b..4d641c739c 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -105,6 +105,20 @@ A: For existing features, you can directly comment on issues. For anything else, ## Launched +### Parameters + +> [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/parameters/) + +Feature parity on Parameters feature + +- [x] Support for SSM Parameter Store +- [x] Support for Secrets Manager +- [x] Support for DynamoDB +- [x] Support for AppConfig +- [x] Support for Bring Your Own provider +- [x] Support for AWS SDK v3 escape hatch +- [x] Docs + ### Version 2 release > [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/upgrade/) From a870772e70efc416734bbf23193705e3fc403c6a Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 09:00:59 +0200 Subject: [PATCH 03/11] docs(roadmap): split up feature parity; add idempotency launched Signed-off-by: heitorlessa --- docs/roadmap.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/roadmap.md b/docs/roadmap.md index 4d641c739c..97a5896d84 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -105,6 +105,19 @@ A: For existing features, you can directly comment on issues. For anything else, ## Launched +### Idempotency + +> [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/idempotency/) + +Feature parity on Idempotency feature + +- [x] Support for Lambda handler idempotency (simple functions) +- [x] Support for any JS/TS function idempotency (complex functions) +- [x] Support for Lambda Timeouts +- [x] Support for JMESPath +- [x] Support for Bring Your Own provider +- [x] Docs + ### Parameters > [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/parameters/) From 504a808742b1225a137a0638191ddd069f9a2875 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 09:03:09 +0200 Subject: [PATCH 04/11] docs(roadmap): split up feature parity; add batch processing to launched Signed-off-by: heitorlessa --- docs/roadmap.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/roadmap.md b/docs/roadmap.md index 97a5896d84..3d8937ad18 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -132,6 +132,20 @@ Feature parity on Parameters feature - [x] Support for AWS SDK v3 escape hatch - [x] Docs +### Batch processing + +> [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/batch/) + +- [x] Support for standard SQS Queues +- [x] Support for FIFO SQS Queues +- [x] Support for Kinesis Streams +- [x] Support for DynamoDB Streams +- [x] Support for async processing +- [x] Support for sync (I/O blocking) processing +- [x] Support for Bring Your Own batch processor +- [x] Support for Lambda Context injection +- [x] Docs + ### Version 2 release > [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/upgrade/) From 3b9f066a9b77eb3d476a44b8baa99c8eb33522b6 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 09:06:22 +0200 Subject: [PATCH 05/11] docs(roadmap): split up feature parity; add parser to launched Signed-off-by: heitorlessa --- docs/roadmap.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index 3d8937ad18..d470c7a18e 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -105,6 +105,18 @@ A: For existing features, you can directly comment on issues. For anything else, ## Launched +### Parser (Zod) + +> [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/parser/) + +Feature parity on Parser feature + +- [x] Support for defining your own Zod schema +- [x] Support for popular Lambda Event Sources as built-in schemas +- [x] Support for envelope (wrapping before schema validation) +- [x] Support for user-defined envelopes +- [x] Docs + ### Idempotency > [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/idempotency/) @@ -159,4 +171,3 @@ Over the past year, we have gathered a number of feature requests and improvemen You can find the full list of changes in the [v2 RFC](https://github.com/aws-powertools/powertools-lambda-typescript/issues/1714) and follow the progress in the [v2 milestone](https://github.com/aws-powertools/powertools-lambda-typescript/milestone/12). Just like for the feature parity, if you have any feedback or would like to contribute to the discussion, please leave a comment in the RFC or join the discussion in our [Discord community](https://discord.gg/B8zZKbbyET){target="_blank"}. - From 3984efd6531248c069d017a903048d69535f8e1f Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 09:09:15 +0200 Subject: [PATCH 06/11] docs(roadmap): split up feature parity; add jmespath functions to launched Signed-off-by: heitorlessa --- docs/roadmap.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/roadmap.md b/docs/roadmap.md index d470c7a18e..e011fc5e1a 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -105,6 +105,19 @@ A: For existing features, you can directly comment on issues. For anything else, ## Launched +### JMESPath Functions + +> [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/jmespath/) + +Feature parity on JMESPath Powertools Functions feature + +- [x] Support for extracting data +- [x] Support for envelopes (unwrap before data extraction) +- [x] Support for built-in `powertools_json` JMESPath function +- [x] Support for built-in `powertools_base64` JMESPath function +- [x] Support for built-in `powertools_base64_gzip` JMESPath function +- [x] Support for Bring Your Own JMESPath function + ### Parser (Zod) > [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/parser/) From 67c90411f7f2b93d49510546daf74fa0a3ce038e Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 09:15:34 +0200 Subject: [PATCH 07/11] docs(roadmap): split up feature parity; add event handler rest Signed-off-by: heitorlessa --- docs/roadmap.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/roadmap.md b/docs/roadmap.md index e011fc5e1a..32dd9bfce0 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -30,6 +30,25 @@ Over the next quarter, we are considering implementing one or more of the follow If any of these utilities are important to you, please let us know by upvoting the issue, leaving a comment under the RFCs, or by joining the discussion in our [Discord community](https://discord.gg/B8zZKbbyET){target="_blank"}. +### Event Handler REST + +- [ ] [RFC to discuss initial thoughts and feasibility for TS/JS ecosystem](https://github.com/aws-powertools/powertools-lambda-typescript/issues/413) +- [ ] Explore pros & cons of whether to build atop lean frameworks (e.g., Hono) or from scratch +- [ ] Support for API Gateway REST API resolver +- [ ] Support for API Gateway HTTP API resolver +- [ ] Support for Lambda Function URL resolver +- [ ] Support for Application Load Balancer resolver +- [ ] Support for VPC Lattice resolver +- [ ] Support for Data Validation _(e.g., `Zod`)_ +- [ ] Support for OpenAPI generation +- [ ] Support for Middlewares +- [ ] Support for Compression +- [ ] Support for Binary responses +- [ ] Support for custom serializer +- [ ] Support for injecting request details _(consider not doing globals like Python legacy)_ +- [ ] Support for Router _(multi-file routes)_ +- [ ] Docs + ### Improve operational excellence We continue to work on increasing operational excellence to remove as much undifferentiated heavy lifting for maintainers, so that we can focus on delivering features that help you. From d8d34f1e9c637e7e267b674f666b9cc331a21c5d Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 09:38:10 +0200 Subject: [PATCH 08/11] docs(roadmap): remove themes, sync structure with Python Signed-off-by: heitorlessa --- docs/roadmap.md | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index 32dd9bfce0..0c21b8125c 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -1,34 +1,18 @@ -## Overview +# Overview -Our public roadmap outlines the high level direction we are working towards, namely [Themes](#themes). We update this document when our priorities change: security and stability is our top priority. +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. !!! info "For most up-to-date information, see our [board of activities](https://github.com/orgs/aws-powertools/projects/7/views/3?query=is%3Aopen+sort%3Aupdated-desc){target="_blank"}." -## Themes +## Key areas -Operational Excellence is priority number 1. This means bug fixing, stability, security, customer's support, and governance will take precedence above all else. +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. -**What are themes?** +**Missing something or want us to prioritize an existing area?** -They are key activities maintainers are focusing on. These are updated periodically and you can find the latest [under Themes in our GitHub Milestones](https://github.com/aws-powertools/powertools-lambda-typescript/milestones){target="_blank"}. +You can help us prioritize by [upvoting existing feature requests](https://github.com/aws-powertools/powertools-lambda-typescript/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc++label%3Atype%2Ffeature-request+), leaving a comment on what use cases it could unblock for you, and by joining our discussions on Discord. -### Feature Parity - -We want to close the gap between this version of Powertools for AWS Lambda and the [Python version](https://github.com/aws-powertools/powertools-lambda-python). This means that in the fullness of time, we want to have the same or equivalent features in both versions. - -In 2023 we have released three the utilities, first as public betas and then as generally available: - -- [x] [Parameters](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/parameters/) -- [x] [Idempotency](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/idempotency/) -- [x] [Batch Processing](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/batch/) - -Over the next quarter, we are considering implementing one or more of the following utilities (in no particular order): - -- [ ] Parser (Status: [RFC Finalized](https://github.com/aws-powertools/powertools-lambda-typescript/issues/1334) - Implementation: [In Progress](https://github.com/aws-powertools/powertools-lambda-typescript/milestone/15)) -- [ ] Validation (Status: [RFC In Progress](https://github.com/aws-powertools/powertools-lambda-typescript/issues/508)) -- [ ] Event Handler (Status: [RFC In Progress](https://github.com/aws-powertools/powertools-lambda-typescript/issues/413)) - -If any of these utilities are important to you, please let us know by upvoting the issue, leaving a comment under the RFCs, or by joining the discussion in our [Discord community](https://discord.gg/B8zZKbbyET){target="_blank"}. +[![Join our Discord](https://dcbadge.vercel.app/api/server/B8zZKbbyET)](https://discord.gg/B8zZKbbyET){target="_blank"} ### Event Handler REST From 052212d31a6bac1eb8619901f7dc669529487c66 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Tue, 23 Apr 2024 09:50:54 +0200 Subject: [PATCH 09/11] chore(ci): add roadmap scope as semantic --- .github/semantic.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/semantic.yml b/.github/semantic.yml index 26af1db418..3a2142bfc3 100644 --- a/.github/semantic.yml +++ b/.github/semantic.yml @@ -32,6 +32,7 @@ scopes: - maintenance - deps - deps-dev + - roadmap # Always validate the PR title # and ignore the commits to lower the entry bar for contribution From b9e1f5aeef91d03405e54d2fe13e8cb37ca8e800 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Wed, 24 Apr 2024 09:26:40 +0200 Subject: [PATCH 10/11] docs(roadmap): remove last year launches --- docs/roadmap.md | 41 ----------------------------------------- 1 file changed, 41 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index 0c21b8125c..d70fdfae12 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -133,47 +133,6 @@ Feature parity on Parser feature - [x] Support for user-defined envelopes - [x] Docs -### Idempotency - -> [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/idempotency/) - -Feature parity on Idempotency feature - -- [x] Support for Lambda handler idempotency (simple functions) -- [x] Support for any JS/TS function idempotency (complex functions) -- [x] Support for Lambda Timeouts -- [x] Support for JMESPath -- [x] Support for Bring Your Own provider -- [x] Docs - -### Parameters - -> [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/parameters/) - -Feature parity on Parameters feature - -- [x] Support for SSM Parameter Store -- [x] Support for Secrets Manager -- [x] Support for DynamoDB -- [x] Support for AppConfig -- [x] Support for Bring Your Own provider -- [x] Support for AWS SDK v3 escape hatch -- [x] Docs - -### Batch processing - -> [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/batch/) - -- [x] Support for standard SQS Queues -- [x] Support for FIFO SQS Queues -- [x] Support for Kinesis Streams -- [x] Support for DynamoDB Streams -- [x] Support for async processing -- [x] Support for sync (I/O blocking) processing -- [x] Support for Bring Your Own batch processor -- [x] Support for Lambda Context injection -- [x] Docs - ### Version 2 release > [Docs](https://docs.powertools.aws.dev/lambda/typescript/latest/upgrade/) From 6409aea03f4d8b7b8a915ead787ca3055e14d73c Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Wed, 24 Apr 2024 09:28:49 +0200 Subject: [PATCH 11/11] docs(roadmap): address alex's comment on removing 'docs' item --- docs/roadmap.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index d70fdfae12..052a7b3e4e 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -31,7 +31,6 @@ You can help us prioritize by [upvoting existing feature requests](https://githu - [ ] Support for custom serializer - [ ] Support for injecting request details _(consider not doing globals like Python legacy)_ - [ ] Support for Router _(multi-file routes)_ -- [ ] Docs ### Improve operational excellence @@ -131,7 +130,6 @@ Feature parity on Parser feature - [x] Support for popular Lambda Event Sources as built-in schemas - [x] Support for envelope (wrapping before schema validation) - [x] Support for user-defined envelopes -- [x] Docs ### Version 2 release