You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by "Akanksha-kedia (via GitHub)" <gi...@apache.org> on 2026/02/06 10:26:30 UTC

[PR] GENAI=NO TLNSDD-371 Complete Vault integration for Apache Pinot [pinot]

Akanksha-kedia opened a new pull request, #17651:
URL: https://github.com/apache/pinot/pull/17651

   This commit implements comprehensive Vault integration for secure token management across all Pinot components (Controller, Broker, Server, Minion).
   
   Key Features:
   - Vault-based authentication with automatic token refresh
   - AuthProviderFactory for centralized auth provider creation
   - Comprehensive error handling and logging
   - Thread-safe token caching with configurable TTL
   - Support for multiple Vault authentication methods (AppRole, Token)
   
   Components Added:
   - VaultAuth: Core Vault authentication logic
   - VaultConfig: Configuration management for Vault settings
   - VaultResponse: Response parsing and validation
   - VaultStartupManager: Singleton initialization manager
   - VaultTokenAuthProvider: Auth provider implementation
   - VaultTokenCache: Thread-safe token caching
   - VaultUtil: Utility methods for Vault operations
   - AuthProviderFactory: Factory pattern for auth providers
   
   Enhancements:
   - Updated AuthProviderUtils with Vault support
   - Enhanced StaticTokenAuthProvider with null checks
   - Integrated Vault initialization in all component starters
   - Added HttpSegmentFetcher auth support
   
   Testing:
   - AuthProviderFactoryTest: 390 lines of comprehensive tests
   - VaultTokenAuthProviderTest: 214 lines of provider tests
   - VaultUtilTest: 69 lines of utility tests
   
   Security:
   - Fixed security vulnerabilities
   - Removed debug/development tags
   - Proper secret handling and token lifecycle management
   
   PR Title
   Distribute Service Tokens Across Pinot Components with Static and Vault‑Based Auth Providers
   
   ✅ PR Description
   This change introduces a clear and explicit service‑token distribution model for Apache Pinot components (Controller, Broker, Server, Minion) and documents it visually and configurationally.
   
   🔐 Service Token Distribution
   All Pinot components now support service‑level authentication tokens that are independent of user authentication mechanisms (Basic, ZK, LDAP).
   
   For simplicity and clarity:
   
   Admin credentials are reused as service tokens
   In production deployments, service credentials must be separated from admin users
   ✅ Supported Auth Provider Modes (Final)
   The following parameter is introduced and treated as authoritative plain text:
   
   
   
   auth.provider.type = static | null | vault
   
   
   This parameter is not optional, not experimental, and not open for discussion.
   
   🧩 Behavior by Mode
   1️⃣ auth.provider.type=static
   Service tokens are configured manually in component config files
   No external dependency
   Example:
   
   
   # Enable the controller to fetch segments using a service token
   controller.segment.fetcher.auth.token=Basic YWRtaW46dmVyeXNlY3JldA
   
   Basic  + base64encode(admin:verysecret)
   ✅ Tokens must NOT be surrounded by quotes
   ✅ Restart affected components for changes to take effect
   
   2️⃣ auth.provider.type=vault
   Controller, Broker, Server, and Minion:
   Authenticate to Vault at startup
   Fetch credentials (username/password)
   Generate a Basic Auth service token
   Cache the token in memory
   No Vault calls at runtime
   Example configuration:
   


-- 
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: commits-unsubscribe@pinot.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


Re: [PR] Vault integration for Apache Pinot [pinot]

Posted by "Akanksha-kedia (via GitHub)" <gi...@apache.org>.
Akanksha-kedia commented on PR #17651:
URL: https://github.com/apache/pinot/pull/17651#issuecomment-4160089933

   @xiangfu0 please review and if its fine den i ll fix the pipeline issues


-- 
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: commits-unsubscribe@pinot.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


Re: [PR] Vault integration for Apache Pinot [pinot]

Posted by "Akanksha-kedia (via GitHub)" <gi...@apache.org>.
Akanksha-kedia commented on PR #17651:
URL: https://github.com/apache/pinot/pull/17651#issuecomment-4661366826

   @xiangfu0 @Jackie-Jiang — this PR adds HashiCorp Vault integration for dynamic secret management in Pinot. Would appreciate a review on the approach before focusing on test coverage.


-- 
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: commits-unsubscribe@pinot.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


Re: [PR] Vault integration for Apache Pinot [pinot]

Posted by "Akanksha-kedia (via GitHub)" <gi...@apache.org>.
Akanksha-kedia commented on PR #17651:
URL: https://github.com/apache/pinot/pull/17651#issuecomment-5087035621

   cc @Jackie-Jiang @xiangfu0 @snleee — would appreciate a review on this Vault integration PR when you get a chance. Happy to address any feedback or discuss the approach.


-- 
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: commits-unsubscribe@pinot.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


Re: [PR] GENAI=NO TLNSDD-371 Complete Vault integration for Apache Pinot [pinot]

Posted by "Akanksha-kedia (via GitHub)" <gi...@apache.org>.
Akanksha-kedia commented on PR #17651:
URL: https://github.com/apache/pinot/pull/17651#issuecomment-3859493804

   @xiangfu0 @Jackie-Jiang please review and give input for this. and wat more we can do around this


-- 
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: commits-unsubscribe@pinot.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


Re: [PR] Vault integration for Apache Pinot [pinot]

Posted by "Akanksha-kedia (via GitHub)" <gi...@apache.org>.
Akanksha-kedia commented on PR #17651:
URL: https://github.com/apache/pinot/pull/17651#issuecomment-4889840308

   Hi @Jackie-Jiang @xiangfu0 — this PR adds Vault integration for Apache Pinot, enabling dynamic secret injection (DB credentials, TLS certs, API keys) at runtime via HashiCorp Vault. All CI checks are green. Would appreciate a review!


-- 
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: commits-unsubscribe@pinot.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


Re: [PR] GENAI=NO TLNSDD-371 Complete Vault integration for Apache Pinot [pinot]

Posted by "Akanksha-kedia (via GitHub)" <gi...@apache.org>.
Akanksha-kedia commented on PR #17651:
URL: https://github.com/apache/pinot/pull/17651#issuecomment-3859484087

   auth.provider.type=null
   No service authentication headers are added
   Intended only for local development or unsecured environments


-- 
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: commits-unsubscribe@pinot.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


Re: [PR] Vault integration for Apache Pinot [pinot]

Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #17651:
URL: https://github.com/apache/pinot/pull/17651#issuecomment-3861558307

   ### :x: 2 Tests Failed:
   | Tests completed | Failed | Passed | Skipped |
   |---|---|---|---|
   | 8884 | 2 | 8882 | 13 |
   <details><summary>View the full list of 2 :snowflake: flaky test(s)</summary>
   
   > <pre><code class="language-python">org.apache.pinot.core.operator.transform.function.GreaterThanTransformFunctionTest::testBinaryOperatorTransformFunction</code></pre>
   > **Flake rate in main:** 89.80% (Passed 10 times, Failed 88 times)
   > <details><summary>Stack Traces | 0.614s run time</summary>
   > 
   > > <pre><code class="language-python">expected [false] but found [true]</code></pre>
   > 
   > </details>
   
   
   > <pre><code class="language-python">org.apache.pinot.core.operator.transform.function.GreaterThanTransformFunctionTest::testBinaryOperatorTransformFunctionNoDict</code></pre>
   > **Flake rate in main:** 89.80% (Passed 10 times, Failed 88 times)
   > <details><summary>Stack Traces | 0.024s run time</summary>
   > 
   > > <pre><code class="language-python">expected [false] but found [true]</code></pre>
   > 
   > </details>
   
   </details>
   
   To view more test analytics, go to the [Test Analytics Dashboard](https://app.codecov.io/gh/apache/pinot/tests/Akanksha-kedia%3Afeature%2Fvault_opensource)
   <sub>📋 Got 3 mins? [Take this short survey](https://forms.gle/22i53Qa1CySZjA6c7) to help us improve Test Analytics.</sub>


-- 
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: commits-unsubscribe@pinot.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org