This is an automated email from the ASF dual-hosted git repository.

somandal pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new ec2eb3cc005 [audit] Extend audit logging support to broker REST APIs 
(#16823)
ec2eb3cc005 is described below

commit ec2eb3cc00587772e54e8d1f4fc29c68425cc9ec
Author: Suvodeep Pyne <[email protected]>
AuthorDate: Wed Sep 17 19:55:07 2025 -0700

    [audit] Extend audit logging support to broker REST APIs (#16823)
    
    * [audit] Extend audit logging support to broker
    
    * [audit] Refactor cluster config change handling to use dedicated handler
---
 .../pinot/broker/broker/BrokerAdminApiApplication.java      |  2 ++
 .../apache/pinot/broker/broker/helix/BaseBrokerStarter.java | 13 +++++++++++++
 2 files changed, 15 insertions(+)

diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java
index 64e6cb837b3..874ec1aff5e 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java
@@ -35,6 +35,7 @@ import org.apache.helix.HelixManager;
 import org.apache.pinot.broker.queryquota.QueryQuotaManager;
 import org.apache.pinot.broker.requesthandler.BrokerRequestHandler;
 import org.apache.pinot.broker.routing.BrokerRoutingManager;
+import org.apache.pinot.common.audit.AuditLogFilter;
 import org.apache.pinot.common.cursors.AbstractResponseStore;
 import org.apache.pinot.common.http.PoolingHttpClientConnectionManagerHelper;
 import org.apache.pinot.common.metrics.BrokerMetrics;
@@ -131,6 +132,7 @@ public class BrokerAdminApiApplication extends 
ResourceConfig {
     register(SwaggerApiListingResource.class);
     register(SwaggerSerializers.class);
     register(AuthenticationFilter.class);
+    register(AuditLogFilter.class);
   }
 
   public void start(List<ListenerConfig> listenerConfigs) {
diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
index 408805c5ebb..e4572288513 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
@@ -56,6 +56,8 @@ import 
org.apache.pinot.broker.requesthandler.SingleConnectionBrokerRequestHandl
 import org.apache.pinot.broker.requesthandler.TimeSeriesRequestHandler;
 import org.apache.pinot.broker.routing.BrokerRoutingManager;
 import org.apache.pinot.common.Utils;
+import org.apache.pinot.common.audit.AuditServiceBinder;
+import org.apache.pinot.common.config.DefaultClusterConfigChangeHandler;
 import org.apache.pinot.common.config.NettyConfig;
 import org.apache.pinot.common.config.TlsConfig;
 import org.apache.pinot.common.config.provider.TableCache;
@@ -129,6 +131,12 @@ public abstract class BaseBrokerStarter implements 
ServiceStartable {
   private volatile boolean _isStarting = false;
   private volatile boolean _isShuttingDown = false;
 
+  // Dedicated handler for listening to cluster config changes
+  protected final DefaultClusterConfigChangeHandler 
_defaultClusterConfigChangeHandler =
+      new DefaultClusterConfigChangeHandler();
+
+  // TODO To be removed in favor of _defaultClusterConfigChangeHandler to 
manage config related changes.
+  //      Please use this only if you are reliant specifically on the 
ClusterChangeMediator infra.
   protected final List<ClusterChangeHandler> _clusterConfigChangeHandlers = 
new ArrayList<>();
   protected final List<ClusterChangeHandler> _idealStateChangeHandlers = new 
ArrayList<>();
   protected final List<ClusterChangeHandler> _externalViewChangeHandlers = new 
ArrayList<>();
@@ -440,6 +448,10 @@ public abstract class BaseBrokerStarter implements 
ServiceStartable {
     } else {
       _sqlQueryExecutor = new SqlQueryExecutor(_spectatorHelixManager);
     }
+
+    LOGGER.info("Wiring up cluster config change handler with helix");
+    
_spectatorHelixManager.addClusterfigChangeListener(_defaultClusterConfigChangeHandler);
+
     LOGGER.info("Starting broker admin application on: {}", 
ListenerConfigUtil.toString(_listenerConfigs));
     _brokerAdminApplication = createBrokerAdminApp();
     _brokerAdminApplication.start(_listenerConfigs);
@@ -763,6 +775,7 @@ public abstract class BaseBrokerStarter implements 
ServiceStartable {
         new BrokerAdminApiApplication(_routingManager, _brokerRequestHandler, 
_brokerMetrics, _brokerConf,
             _sqlQueryExecutor, _serverRoutingStatsManager, 
_accessControlFactory, _spectatorHelixManager,
             _queryQuotaManager, _responseStore);
+    brokerAdminApiApplication.register(new 
AuditServiceBinder(_defaultClusterConfigChangeHandler, getServiceRole()));
     registerExtraComponents(brokerAdminApiApplication);
     return brokerAdminApiApplication;
   }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to