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 diff --git a/docs/roadmap.md b/docs/roadmap.md index 05942052ca..052a7b3e4e 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -1,46 +1,36 @@ -## 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 +[![Join our Discord](https://dcbadge.vercel.app/api/server/B8zZKbbyET)](https://discord.gg/B8zZKbbyET){target="_blank"} -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. +### Event Handler REST -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"}. - -### 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"}. +- [ ] [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)_ ### Improve operational excellence @@ -113,4 +103,44 @@ 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 + +### 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/) + +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 + +### 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"}.