From e6ad5f5aebd4937bbac7a975c1b32db415ca20bd Mon Sep 17 00:00:00 2001
From: Jonas Larsen <jlarsen@gitlab.com>
Date: Wed, 5 Mar 2025 13:38:05 +0100
Subject: [PATCH] Add feature flag

---
 .../event_forward/event_forward_controller.rb     |  8 ++++++--
 .../wip/collect_product_usage_events.yml          |  9 +++++++++
 .../event_forward_controller_spec.rb              | 15 +++++++++++++++
 3 files changed, 30 insertions(+), 2 deletions(-)
 create mode 100644 config/feature_flags/wip/collect_product_usage_events.yml

diff --git a/app/controllers/event_forward/event_forward_controller.rb b/app/controllers/event_forward/event_forward_controller.rb
index 886a84048de1..26a166fc33b2 100644
--- a/app/controllers/event_forward/event_forward_controller.rb
+++ b/app/controllers/event_forward/event_forward_controller.rb
@@ -3,9 +3,13 @@
 module EventForward
   class EventForwardController < BaseActionController
     def forward
-      process_events
+      if ::Feature.enabled?('collect_product_usage_events', :instance)
+        process_events
 
-      head :ok
+        head :ok
+      else
+        head :not_found
+      end
     end
 
     private
diff --git a/config/feature_flags/wip/collect_product_usage_events.yml b/config/feature_flags/wip/collect_product_usage_events.yml
new file mode 100644
index 000000000000..2aef56e479d7
--- /dev/null
+++ b/config/feature_flags/wip/collect_product_usage_events.yml
@@ -0,0 +1,9 @@
+---
+name: collect_product_usage_events
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/510317
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/182916
+rollout_issue_url:
+milestone: '17.10'
+group: group::analytics instrumentation
+type: wip
+default_enabled: false
diff --git a/spec/requests/event_forward/event_forward_controller_spec.rb b/spec/requests/event_forward/event_forward_controller_spec.rb
index 203c2a885473..b00cf1c75e11 100644
--- a/spec/requests/event_forward/event_forward_controller_spec.rb
+++ b/spec/requests/event_forward/event_forward_controller_spec.rb
@@ -19,6 +19,7 @@
     allow(tracker).to receive(:emit_event_payload)
     allow(EventForward::Logger).to receive(:build).and_return(logger)
     allow(logger).to receive(:info)
+    stub_feature_flags(collect_product_usage_events: true)
   end
 
   describe 'POST #forward' do
@@ -44,5 +45,19 @@
       expect(response).to have_gitlab_http_status(:ok)
       expect(response.body).to be_empty
     end
+
+    context 'when feature flag is disabled' do
+      before do
+        stub_feature_flags(collect_product_usage_events: false)
+      end
+
+      it 'returns 404 and do not call tracker' do
+        expect(tracker).not_to receive(:emit_event_payload)
+
+        request
+
+        expect(response).to have_gitlab_http_status(:not_found)
+      end
+    end
   end
 end
-- 
GitLab