You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by so...@apache.org on 2025/09/18 02:55:13 UTC

(pinot) branch master updated: [audit] Extend audit logging support to broker REST APIs (#16823)

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 <su...@users.noreply.github.com>
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: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org