Comments (4)
@leandrodamascena I think i didnt explain myself well. I totally agree with the local approach. I meant that the CLI that i built works with current implementation of the event handler. Going forward an offline variation is preferred like you wrote.
I think this CLI should have the ability to download OpenAPI, as you wrote, but my opinion is that the core features should be something more offline to allow for more functionality with fewer restrictions.
What do you think about writing down some ideas in this direction and after that thinking about a PoC to validate?
from powertools-lambda-python.
Hey @ran-isenberg! Thanks for kicking off this RFC – it's a great starting point to outline the requirements for this CLI.
After reading the code, I saw you've built a sort of "downloader" for an existing OpenAPI schema deployed in AWS via Cloudformation. While I see potential use cases for this implementation, I think it's important to consider some drawbacks that must be reviewed.
-
One of the key features of this CLI could be the ability to generate a unique OpenAPI schema from one or multiple directories containing Lambda functions. How can we cover this?
-
Customers may not use Cloudformation to deploy their resources in AWS and it's a potential limitation.
-
Customers may prefer not to deploy the generated OpenAPI file directly to AWS. Instead, they may wish to create a local OpenAPI file from multiple Lambda functions and then upload it to their organization's dev portal, for example. This approach provides flexibility for teams to collaborate, document and establish contracts between applications across the organization.
-
Customers might run into issues deploying resources on AWS, like making endpoints public (or private) without authentication. Do we need to think about adding authentication when this client downloads an OpenAPI spec from a given URL? And what kind of authentication?
Taking these points into account, it might be a good idea to reconsider our approach to building this CLI. Perhaps we should place more emphasis on local generation, rather than assuming that the file has already been deployed to AWS.
Please let me know what do you think.
BTW, I'll be adding the help-wanted
and need-feedback
tags to gather additional ideas from others as well.
Thank you!
from powertools-lambda-python.
@leandrodamascena I think i didnt explain myself well.
I totally agree with the local approach. I meant that the CLI that i built works with current implementation of the event handler.
Going forward an offline variation is preferred like you wrote.
from powertools-lambda-python.
We have implemented an offline OpenAPI generator CLI internally so i know it can be done.
What kind of ideas? i thought i already did that :)
"Create a CLI that I can run locally on my service in the shell that generates the OpenAPI doc. It will need to init the event handler and it's all uses in the different lambda handlers and then generate the document and save it to a destination folder in a JSON format."
what did you have in mind?
from powertools-lambda-python.
Related Issues (20)
- Bug: payload validation is skipped when item is returned via `ReturnValuesOnConditionCheckFailure` HOT 11
- Docs: remove leftover announcement banner HOT 2
- [I Made This]: reinvent session & code with Heitor HOT 3
- Docs: Fix feature flags documentation HOT 4
- Bug: Swagger generated UI has JSON format invalid URL HOT 4
- [I Made This]: Serverless API Documentation with Powertools for AWS HOT 1
- Feature request:Provide event handler for Lexv2 lambda integration HOT 1
- Bug: idempotency logic should first validate the payload and then cache HOT 2
- Bug: Event Handler Data Validation `KeyError: 'multiValueHeaders'` regression when running locally HOT 3
- Docs: Improve install section with minimal dependencies first HOT 2
- Static typing: missing @overload to ensure return type is a str when default_value is set HOT 3
- Bug: RequestValidationError handling behavior should not be affected if we add exception handler for Exception HOT 7
- Feature request: Function to retrieve mutli-value query string parameters HOT 2
- Feature request: Add event object sent from Cloudwatch Alarms HOT 7
- Bug: CORS headers not appending to API Gateway REST API responses HOT 7
- Bug: Importing AWSEncryptionSDKProvider in the AWSLambdaPowertoolsPythonV2 layer results in ModuleNotFoundError: No module named '_cffi_backend' HOT 6
- Maintenance: Create a Powertools Lambda layer for each Python version HOT 1
- RFC: Canonical Wide Log utility for emitting a single log entry per lambda execution or processed transaction (batch) HOT 2
- Bug: SQSMessageAttributes __getitem__ has a different type to items() values HOT 6
- Bug: Mongo ObjectIds not serializing out of the box HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from powertools-lambda-python.