Skip to content

feat(gcp): add parameter manager support#1808

Merged
toddbaert merged 18 commits into
open-feature:mainfrom
mahpatil:feat/gcp-parameter-manager
Jun 15, 2026
Merged

feat(gcp): add parameter manager support#1808
toddbaert merged 18 commits into
open-feature:mainfrom
mahpatil:feat/gcp-parameter-manager

Conversation

@mahpatil

@mahpatil mahpatil commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

This PR

Adds a GCP Parameter Manager support to the GCP Provider that reads feature flags from GCP Parameter Manager config.
Includes updates to sample application under samples/gcp/ with setup/teardown script
Package: providers/gcp
Class: GcpParameterManagerProvider
Supports all OpenFeature flag types via structured or plain-text secret values
Configurable poll interval and GCP project settings

Related Issues

Fixes GCP services covered under #1420

Notes

This builds on top of the previous PR that added support for GCP Secret manager.

Follow-up Tasks

How to test

  • Unit tests for GcpParameterManagerProvider
  • Integration test (GcpParameterManagerProviderIntegrationTest) requires a real GCP project — set GCP_PROJECT_ID env var to run
  • Sample app: follow samples/gcp/README.md to run end-to-end

@mahpatil mahpatil requested a review from a team as a code owner June 5, 2026 18:21

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request introduces support for Google Cloud Parameter Manager by refactoring the existing GCP provider into a shared AbstractGcpProvider base class and adding the new GcpParameterManagerProvider. It also updates the sample applications, setup/teardown scripts, and tests to support both Secret Manager and Parameter Manager backends. Feedback on these changes highlights several issues: locationId in GcpProviderOptions needs a default value of "global" to prevent null pointer exceptions; the Parameter Manager setup script contains broken update and versioning logic; redundant log statements should be cleaned up; synchronizing on this during blocking network calls creates a performance bottleneck; and the teardown script's deletion chaining is risky and should be decoupled.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread samples/gcp/setup.sh
Comment thread samples/gcp/teardown.sh
@mahpatil mahpatil changed the title Feat/gcp parameter manager feat/gcp parameter manager Jun 6, 2026
@mahpatil mahpatil changed the title feat/gcp parameter manager feat(gcp): parameter manager Jun 6, 2026
@mahpatil mahpatil changed the title feat(gcp): parameter manager feat(gcp): add parameter manager support Jun 6, 2026
@mahpatil

mahpatil commented Jun 6, 2026

Copy link
Copy Markdown
Contributor Author

@toddbaert @aepfli this now adds parameter manager support to gcp provider.

@toddbaert

toddbaert commented Jun 9, 2026

Copy link
Copy Markdown
Member

Approving; pushed a small fixup to revert the manual version bumps (release-please owns those) and wire samples/gcp/pom.xml into the release-please config so the sample's dep version bumps automatically.

Also opened 2 recommendations... this one in particular I'd really like to see done before release (unless I'm missing something).

Once this is merged, I can merge the pending "release please" PR, which will release the package.

@mahpatil

Copy link
Copy Markdown
Contributor Author

toddbaert

thank you @toddbaert ive incorporated all comments

mahpatil and others added 16 commits June 15, 2026 08:45
Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
1. add location id to options as gcp params require location
2. fixed parameter manager classes to use common gcp classes post refactor

Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
… of creating new versoin2. locationId default to prevent null pointers3. update references to stale GcpParameterManagerOptions

Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
…of this ffor performance reasons

Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Mahesh Patil <17205424+mahpatil@users.noreply.github.com>
Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
mahpatil added 2 commits June 15, 2026 08:45
Make FlagCache final and move construction to the constructor so the lock
object in fetchWithCache is stable. Guard initialize() with AtomicBoolean
to throw GeneralError on double-init, matching repo convention. Fix
GcpProviderOptions error message prefix and add double-init test.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
Signed-off-by: Mahesh Patil <maheshfinity@gmail.com>
@toddbaert toddbaert force-pushed the feat/gcp-parameter-manager branch from 0797766 to ac82334 Compare June 15, 2026 12:45
@toddbaert

Copy link
Copy Markdown
Member

Thanks @mahpatil . Will merge and release.

@toddbaert toddbaert merged commit f3df150 into open-feature:main Jun 15, 2026
5 checks passed
@mahpatil mahpatil deleted the feat/gcp-parameter-manager branch June 15, 2026 13:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants