exceptionfactory opened a new pull request, #11090: URL: https://github.com/apache/nifi/pull/11090
# Summary [NIFI-15775](https://issues.apache.org/jira/browse/NIFI-15775) Refactors existing Snowflake Snowpipe Ingest components to remove the dependency on the [snowflake-ingest-sdk](https://central.sonatype.com/artifact/net.snowflake/snowflake-ingest-sdk), implementing direct integration with the [Snowpipe REST API](https://docs.snowflake.com/en/user-guide/data-load-snowpipe-rest-apis) using the Java [HttpClient](https://docs.oracle.com/en/java/javase/21/docs/api/java.net.http/java/net/http/HttpClient.html). With [planned future deprecation](https://docs.snowflake.com/en/user-guide/snowpipe-streaming/snowpipe-streaming-classic-deprecation) of Snowpipe Streaming Classic Architecture, removal of the `snowflake-ingest-sdk` avoids future maintenance issues and provides a clear scope of integration using Snowflake Snowpipe loading from Stages. The refactored implementation keeps the existing `SnowflakeIngestManagerProviderService` Controller Service interface and implementation, avoiding the need for property migration. Changes include removing existing interface methods and adding new methods that follow the pattern of the Snowpipe REST API [insertFiles](https://docs.snowflake.com/en/user-guide/data-load-snowpipe-rest-apis#endpoint-insertfiles) and [insertReport](https://docs.snowflake.com/en/user-guide/data-load-snowpipe-rest-apis#endpoint-insertreport) methods, preserving existing functionality in the `StartSnowflakeIngest` and `GetSnowflakeIngestStatus` Processors. New implementation classes include the `SnowflakeIngestClient` to implement HTTP methods, and an Authorization Provider responsible for creating and signing JSON Web Tokens using an RSA Private Key. New unit tests exercise these HTTP requests using the OkHttp MockWebServer. # Tracking Please complete the following tracking steps prior to pull request creation. ### Issue Tracking - [X] [Apache NiFi Jira](https://issues.apache.org/jira/browse/NIFI) issue created ### Pull Request Tracking - [X] Pull Request title starts with Apache NiFi Jira issue number, such as `NIFI-00000` - [X] Pull Request commit message starts with Apache NiFi Jira issue number, as such `NIFI-00000` - [X] Pull request contains [commits signed](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits) with a registered key indicating `Verified` status ### Pull Request Formatting - [X] Pull Request based on current revision of the `main` branch - [X] Pull Request refers to a feature branch with one commit containing changes # Verification Please indicate the verification steps performed prior to pull request creation. ### Build - [X] Build completed using `./mvnw clean install -P contrib-check` - [X] JDK 21 - [ ] JDK 25 ### Licensing - [ ] New dependencies are compatible with the [Apache License 2.0](https://apache.org/licenses/LICENSE-2.0) according to the [License Policy](https://www.apache.org/legal/resolved.html) - [ ] New dependencies are documented in applicable `LICENSE` and `NOTICE` files ### Documentation - [ ] Documentation formatting appears as expected in rendered files -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
