Hi Bryce, Thanks for contacting the NiFi developer list and presenting the potential contribution.
In addition to the helpful summary of the standard contribution process, it is worth highlighting some particular points on the Processors you described. As an extensible framework, NiFi supports a wide variety of use cases. The goal of community-maintained extensions is to provide well-supported components for common scenarios. From that perspective, some Processors and Controller Services may not be the best fit for community maintenance because they do not have general applicability. As technologies change, this can be a moving target. All that to say, describing the possibilities in an email like this is a great way to evaluate community applicability. Regarding JWT Token Validation, NIFI-7475 [1] proposed Processors to sign and verify JSON Web Tokens, but the pull request was never merged. Part of the reason is that JWT validation is generally focused on web service integration, and having a secure implementation requires careful attention to several details. Although this could be usable in the context of a custom flow with HandleHttpRequest and HandleHttpResponse Processors, it may not be the best fit for a community-maintained Processor. Regarding the OpenAPI Specification Processor, some aspects of that Processor sound similar to the ValidateJson Processor as far as evaluating compliance with a defined JSON Schema. The OpenAPI Specification is more specific to HTTP operations of course, but there may be some overlapping concerns. This might be a case where publishing the Processors in a separate GitHub repository would be a better next step. That would provide some opportunity for community review and use. Regards, David Handermann [1] https://issues.apache.org/jira/browse/NIFI-7475 On Thu, Jun 15, 2023 at 3:38 AM Nandor Soma Abonyi <[email protected]> wrote: > Dear Bryce, > > Thank you for reaching out and expressing your interest in contributing to > Apache NiFi! We greatly appreciate > your effort and enthusiasm to share your code with the community. We > welcome contributions from developers > like you who help enhance the capabilities of our project. > > To ensure a smooth process for submitting your code changes, we have a few > guidelines in place. Firstly, > please open a Jira ticket to provide a description of the changes you have > made and the motivation behind them. > This ticket will serve as a central point for discussions and feedback on > your contribution. > In order to open a Jira ticket, you will need assistance from a Project > Management Committee (PMC) member who > can grant you Jira contributor access. You can reach out to any PMC > member, who will be happy to assist you. > > Furthermore, we encourage you to submit a GitHub pull request (PR) for > your code changes. While there are > plenty of guides available on the internet on how to open a GitHub pull > request, you may find it useful to > refer to our own contributor guide located at: > https://cwiki.apache.org/confluence/display/NIFI/Contributor+Guide > This guide provides detailed instructions and best practices for > submitting a pull request to Apache NiFi's GitHub repository. > > Once your pull request is submitted, our community of developers will > review your code, provide feedback, > and work with you to ensure the quality and compatibility of your > contribution. Collaboration and iteration are > key aspects of our open-source development process, and we appreciate your > willingness to engage in this manner. > > If you have any questions or need further assistance, please don't > hesitate to ask. > > Thank you again for your willingness to contribute. > > Best regards, > Nandor Soma Abonyi > > > > On 2023. Jun 15., at 4:03, <[email protected]> <[email protected]> > wrote: > > > > Hi Nifi Dev Team > > > > > > > > I am new to the open source community and not really a developer, but > have > > developed 2 Nifi Customs processors to improve its support for APIs and > API > > Security. Looking for some help from more experienced Nifi contributors > to > > review the code, and if appropriate contribute it to the base product. > The > > processors are. > > > > > > > > 1. OAuth 2.0 JWT Token Validation Processor. Uses the RSA 256 Public > > Key to validate the JWT signature then can optionally validate the Issuer > > and Client ID, and if the Token is valid, extract claims into FlowFile > > attributes based on a list provided to the processor. The full JWT > decoded > > claim (JSON) is also added as an attribute. If the token has expired or > is > > invalid, details of the error are available in attributes for error > > handling. > > 2. OAS 3.0 API Validation Processor. Accepts the Swagger API URL (OAS > > JSON) to validate the HTTP Request against the API definition. If valid, > it > > will extract an URI Parms and URL Query Parms to FlowFile Attributes, as > > well as the specific API interface operationId, which can then be use by > the > > RouteOnAttribute processor to pass each API interface to separate flow > for > > processing. If the request is invalid, details of the error are > available in > > attributes for error handling. > > > > > > > > I am happy to provide the code and usage examples to anyone that would > like > > to validate the code and submit is for inclusion into the core Nifi > product; > > Thanks. > > > > > > > > Kind Regards > > > > > > > > Bryce Macdonald > > > > > > > > > > > >
