Skip to content

Comments

MINIFICPP-2644 Add proxy controller service support for GCP processors#2112

Open
lordgamez wants to merge 1 commit intoapache:MINIFICPP-2644_aws_azurefrom
lordgamez:MINIFICPP-2644_gcp
Open

MINIFICPP-2644 Add proxy controller service support for GCP processors#2112
lordgamez wants to merge 1 commit intoapache:MINIFICPP-2644_aws_azurefrom
lordgamez:MINIFICPP-2644_gcp

Conversation

@lordgamez
Copy link
Contributor

https://issues.apache.org/jira/browse/MINIFICPP-2644

Depends on https://issues.apache.org/jira/browse/MINIFICPP-2644


Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

For all changes:

  • Is there a JIRA ticket associated with this PR? Is it referenced
    in the commit message?

  • Does your PR title start with MINIFICPP-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

  • Has your PR been rebased against the latest commit within the target branch (typically main)?

  • Is your initial contribution a single, squashed commit?

For code changes:

  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE file?
  • If applicable, have you updated the NOTICE file?

For documentation related changes:

  • Have you ensured that format looks appropriate for the output in which it is rendered?

Note:

Please ensure that once the PR is submitted, you check GitHub Actions CI results for build issues and submit an update to your PR as soon as possible.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds proxy controller service support to GCP processors (PutGCSObject, FetchGCSObject, ListGCSBucket, and DeleteGCSObject). The implementation follows the same pattern used in AWS and Azure processors by adding a "Proxy Configuration Service" property that accepts a ProxyConfigurationServiceInterface controller service.

Changes:

  • Added proxy configuration support to the base GCSProcessor class
  • Added integration tests for proxy functionality using HTTP and HTTPS proxy types
  • Updated processor documentation to include the new proxy configuration property
  • Improved container deployment logic to prevent redeployment of already-deployed containers

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
extensions/gcp/processors/GCSProcessor.h Added ProxyConfigurationService property definition and proxy_ member variable to support proxy configuration
extensions/gcp/processors/GCSProcessor.cpp Implemented proxy configuration parsing in onSchedule() and proxy application in getClient()
extensions/gcp/tests/features/google_cloud_storage.feature Added integration test scenarios for PutGCSObject, FetchGCSObject, ListGCSBucket, and DeleteGCSObject with HTTP and HTTPS proxy support; changed "When the MiNiFi instance starts up" to "When all instances start up" for consistency
PROCESSORS.md Updated documentation for DeleteGCSObject, FetchGCSObject, ListGCSBucket, and PutGCSObject to include the new Proxy Configuration Service property
behave_framework/src/minifi_test_framework/containers/container.py Added is_deployed() method and check to prevent redeployment of already-deployed containers

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

#include "google/cloud/storage/client.h"
#include "google/cloud/storage/retry_policy.h"
#include "minifi-cpp/controllers/ProxyConfigurationServiceInterface.h"
#include "controllers/ProxyConfiguration.h"
Copy link

Copilot AI Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The include "controllers/ProxyConfiguration.h" is not needed in this header file. The header only uses google::cloud::ProxyConfig (line 79), not minifi::controllers::ProxyConfiguration. This include should be removed to reduce unnecessary dependencies and improve compilation times.

Suggested change
#include "controllers/ProxyConfiguration.h"

Copilot uses AI. Check for mistakes.
Comment on lines +59 to +60
.withDescription("Specifies the Proxy Configuration Controller Service to proxy network requests. When used, "
"this will override any values specified for Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties.")
Copy link

Copilot AI Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The description for the Proxy Configuration Service property mentions overriding "Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties," but GCP processors do not have these individual proxy properties. Unlike AWS processors which support both individual proxy properties and a proxy configuration service, GCP processors only support the proxy configuration service. Consider updating the description to remove the reference to individual proxy properties, or simply state: "Specifies the Proxy Configuration Controller Service to proxy network requests."

Suggested change
.withDescription("Specifies the Proxy Configuration Controller Service to proxy network requests. When used, "
"this will override any values specified for Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties.")
.withDescription("Specifies the Proxy Configuration Controller Service to proxy network requests.")

Copilot uses AI. Check for mistakes.
| **GCP Credentials Provider Service** | | | The Controller Service used to obtain Google Cloud Platform credentials. Should be the name of a GCPCredentialsControllerService. |
| **Number of retries** | 6 | | How many retry attempts should be made before routing to the failure relationship. |
| Endpoint Override URL | | | Overrides the default Google Cloud Storage endpoints<br/>**Supports Expression Language: true** |
| Proxy Configuration Service | | | Specifies the Proxy Configuration Controller Service to proxy network requests. When used, this will override any values specified for Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties. |
Copy link

Copilot AI Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The description for the Proxy Configuration Service property mentions overriding "Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties," but GCP processors do not have these individual proxy properties. Unlike AWS processors which support both individual proxy properties and a proxy configuration service, GCP processors only support the proxy configuration service. The description should be updated to remove the reference to non-existent properties, or simply state: "Specifies the Proxy Configuration Controller Service to proxy network requests."

Suggested change
| Proxy Configuration Service | | | Specifies the Proxy Configuration Controller Service to proxy network requests. When used, this will override any values specified for Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties. |
| Proxy Configuration Service | | | Specifies the Proxy Configuration Controller Service to proxy network requests. |

Copilot uses AI. Check for mistakes.
| **GCP Credentials Provider Service** | | | The Controller Service used to obtain Google Cloud Platform credentials. Should be the name of a GCPCredentialsControllerService. |
| **Number of retries** | 6 | | How many retry attempts should be made before routing to the failure relationship. |
| Endpoint Override URL | | | Overrides the default Google Cloud Storage endpoints<br/>**Supports Expression Language: true** |
| Proxy Configuration Service | | | Specifies the Proxy Configuration Controller Service to proxy network requests. When used, this will override any values specified for Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties. |
Copy link

Copilot AI Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The description for the Proxy Configuration Service property mentions overriding "Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties," but GCP processors do not have these individual proxy properties. Unlike AWS processors which support both individual proxy properties and a proxy configuration service, GCP processors only support the proxy configuration service. The description should be updated to remove the reference to non-existent properties, or simply state: "Specifies the Proxy Configuration Controller Service to proxy network requests."

Suggested change
| Proxy Configuration Service | | | Specifies the Proxy Configuration Controller Service to proxy network requests. When used, this will override any values specified for Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties. |
| Proxy Configuration Service | | | Specifies the Proxy Configuration Controller Service to proxy network requests. |

Copilot uses AI. Check for mistakes.
| **GCP Credentials Provider Service** | | | The Controller Service used to obtain Google Cloud Platform credentials. Should be the name of a GCPCredentialsControllerService. |
| **Number of retries** | 6 | | How many retry attempts should be made before routing to the failure relationship. |
| Endpoint Override URL | | | Overrides the default Google Cloud Storage endpoints<br/>**Supports Expression Language: true** |
| Proxy Configuration Service | | | Specifies the Proxy Configuration Controller Service to proxy network requests. When used, this will override any values specified for Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties. |
Copy link

Copilot AI Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The description for the Proxy Configuration Service property mentions overriding "Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties," but GCP processors do not have these individual proxy properties. Unlike AWS processors which support both individual proxy properties and a proxy configuration service, GCP processors only support the proxy configuration service. The description should be updated to remove the reference to non-existent properties, or simply state: "Specifies the Proxy Configuration Controller Service to proxy network requests."

Suggested change
| Proxy Configuration Service | | | Specifies the Proxy Configuration Controller Service to proxy network requests. When used, this will override any values specified for Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties. |
| Proxy Configuration Service | | | Specifies the Proxy Configuration Controller Service to proxy network requests. |

Copilot uses AI. Check for mistakes.
| **GCP Credentials Provider Service** | | | The Controller Service used to obtain Google Cloud Platform credentials. Should be the name of a GCPCredentialsControllerService. |
| **Number of retries** | 6 | | How many retry attempts should be made before routing to the failure relationship. |
| Endpoint Override URL | | | Overrides the default Google Cloud Storage endpoints<br/>**Supports Expression Language: true** |
| Proxy Configuration Service | | | Specifies the Proxy Configuration Controller Service to proxy network requests. When used, this will override any values specified for Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties. |
Copy link

Copilot AI Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The description for the Proxy Configuration Service property mentions overriding "Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties," but GCP processors do not have these individual proxy properties. Unlike AWS processors which support both individual proxy properties and a proxy configuration service, GCP processors only support the proxy configuration service. The description should be updated to remove the reference to non-existent properties, or simply state: "Specifies the Proxy Configuration Controller Service to proxy network requests."

Suggested change
| Proxy Configuration Service | | | Specifies the Proxy Configuration Controller Service to proxy network requests. When used, this will override any values specified for Proxy Host, Proxy Port, Proxy Username, and Proxy Password properties. |
| Proxy Configuration Service | | | Specifies the Proxy Configuration Controller Service to proxy network requests. |

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant