diff --git a/ee/lib/cloud_connector.rb b/ee/lib/cloud_connector.rb index 29a2d57b11ad94f06505a3e37772de8131629ba1..5bd60d7a9abcd4bbdf793dc7224848dc8ac4b123 100644 --- a/ee/lib/cloud_connector.rb +++ b/ee/lib/cloud_connector.rb @@ -15,7 +15,8 @@ def headers(user) 'x-gitlab-host-name' => Gitlab.config.gitlab.host, 'x-gitlab-instance-id' => Gitlab::GlobalAnonymousId.instance_id, 'x-gitlab-realm' => ::CloudConnector.gitlab_realm, - 'x-gitlab-version' => Gitlab.version_info.to_s + 'x-gitlab-version' => Gitlab.version_info.to_s, + 'x-gitlab-unique-instance-id' => Gitlab::GlobalAnonymousId.instance_uuid }.tap do |result| result['x-gitlab-global-user-id'] = Gitlab::GlobalAnonymousId.user_id(user) if user result['x-gitlab-user-id'] = user.id.to_s if user diff --git a/ee/spec/lib/cloud_connector_spec.rb b/ee/spec/lib/cloud_connector_spec.rb index 2df6ef2c22d69403fc7530d3aee58a2346c696b2..ef1c90596cc7d2432ebade15f60ae4a4bee9077d 100644 --- a/ee/spec/lib/cloud_connector_spec.rb +++ b/ee/spec/lib/cloud_connector_spec.rb @@ -21,7 +21,8 @@ 'x-gitlab-host-name' => Gitlab.config.gitlab.host, 'x-gitlab-instance-id' => an_instance_of(String), 'x-gitlab-realm' => ::CloudConnector::GITLAB_REALM_SELF_MANAGED, - 'x-gitlab-version' => Gitlab.version_info.to_s + 'x-gitlab-version' => Gitlab.version_info.to_s, + 'x-gitlab-unique-instance-id' => an_instance_of(String) } end diff --git a/ee/spec/lib/gitlab/ai_gateway_spec.rb b/ee/spec/lib/gitlab/ai_gateway_spec.rb index bc2d9e39e1f7746ab487c3f8b737df4255cf59af..e6f6d097e2f8b3d075433f7ff516a6a49e05ad69 100644 --- a/ee/spec/lib/gitlab/ai_gateway_spec.rb +++ b/ee/spec/lib/gitlab/ai_gateway_spec.rb @@ -199,6 +199,7 @@ 'x-gitlab-instance-id' => 'ABCDEF', 'x-gitlab-global-user-id' => '123ABC', 'x-gitlab-user-id' => '123', + 'x-gitlab-unique-instance-id' => 'ABCDEFGHI', 'x-gitlab-realm' => 'self-managed', 'x-gitlab-bersion' => '17.1.0', 'x-gitlab-feature-enabled-by-namespace-ids' => namespace_ids.join(',') diff --git a/ee/spec/lib/gitlab/duo_workflow/client_spec.rb b/ee/spec/lib/gitlab/duo_workflow/client_spec.rb index b01e4c3bb76315953a9b0b922a721b675de9b4eb..de0a26a6e1b8bad91907e564bf6314472585deb7 100644 --- a/ee/spec/lib/gitlab/duo_workflow/client_spec.rb +++ b/ee/spec/lib/gitlab/duo_workflow/client_spec.rb @@ -80,6 +80,7 @@ 'x-gitlab-user-id' => user.id.to_s, 'x-gitlab-host-name' => 'localhost', 'x-gitlab-instance-id' => 'uuid-not-set', + 'x-gitlab-unique-instance-id' => Gitlab::GlobalAnonymousId.instance_uuid, 'x-gitlab-realm' => 'self-managed', 'x-gitlab-version' => Gitlab.version_info.to_s, 'x-gitlab-enabled-instance-verbose-ai-logs' => 'true', @@ -105,6 +106,7 @@ 'x-gitlab-user-id' => user.id.to_s, 'x-gitlab-host-name' => 'localhost', 'x-gitlab-instance-id' => 'uuid-not-set', + 'x-gitlab-unique-instance-id' => Gitlab::GlobalAnonymousId.instance_uuid, 'x-gitlab-realm' => 'self-managed', 'x-gitlab-version' => Gitlab.version_info.to_s, 'x-gitlab-enabled-instance-verbose-ai-logs' => 'true', diff --git a/ee/spec/requests/api/code_suggestions_spec.rb b/ee/spec/requests/api/code_suggestions_spec.rb index 3524a01cc5eacb8c7b926c1ce2d72731f47787e5..876b6ad9f98b415d990f92ba04137d3e0f36dcd9 100644 --- a/ee/spec/requests/api/code_suggestions_spec.rb +++ b/ee/spec/requests/api/code_suggestions_spec.rb @@ -2,6 +2,7 @@ require 'spec_helper' +# rubocop:disable RSpec/MultipleMemoizedHelpers -- We need extra helpers to define headers RSpec.describe API::CodeSuggestions, feature_category: :code_suggestions do include WorkhorseHelpers include GitlabSubscriptions::SaasSetAssignmentHelpers @@ -26,6 +27,7 @@ let(:access_code_suggestions) { true } let(:is_saas) { true } let(:global_instance_id) { 'instance-ABC' } + let(:global_unique_instance_id) { 'instance-ABCDEF' } let(:global_user_id) { 'user-ABC' } let(:gitlab_realm) { 'saas' } let(:unit_primitive_name) { :complete_code } @@ -52,6 +54,7 @@ allow(Gitlab::GlobalAnonymousId).to receive(:user_id).and_return(global_user_id) allow(Gitlab::GlobalAnonymousId).to receive(:instance_id).and_return(global_instance_id) + allow(Gitlab::GlobalAnonymousId).to receive(:instance_uuid).and_return(global_unique_instance_id) allow(::CloudConnector::AvailableServices).to receive(:find_by_name).with(unit_primitive_name).and_return(service) allow(service).to receive_messages( @@ -322,6 +325,7 @@ def request expect(params['Header']).to include( 'X-Gitlab-Authentication-Type' => ['oidc'], 'x-gitlab-instance-id' => [global_instance_id], + 'x-gitlab-unique-instance-id' => [global_unique_instance_id], 'x-gitlab-global-user-id' => [global_user_id], 'x-gitlab-user-id' => [current_user.id.to_s], 'x-gitlab-host-name' => [Gitlab.config.gitlab.host], @@ -400,6 +404,7 @@ def request expect(params['Header']).to include( 'X-Gitlab-Authentication-Type' => ['oidc'], 'x-gitlab-instance-id' => [global_instance_id], + 'x-gitlab-unique-instance-id' => [global_unique_instance_id], 'x-gitlab-global-user-id' => [global_user_id], 'x-gitlab-user-id' => [current_user.id.to_s], 'x-gitlab-host-name' => [Gitlab.config.gitlab.host], @@ -452,6 +457,7 @@ def request 'x-gitlab-feature-enabled-by-namespace-ids' => [""], 'Content-Type' => ['application/json'], 'x-gitlab-instance-id' => [global_instance_id], + 'x-gitlab-unique-instance-id' => [global_unique_instance_id], 'x-gitlab-global-user-id' => [global_user_id], 'x-gitlab-user-id' => [current_user.id.to_s], 'x-gitlab-host-name' => [Gitlab.config.gitlab.host], @@ -1237,6 +1243,7 @@ def get_user(session): 'x-gitlab-global-user-id' => global_user_id, 'x-gitlab-user-id' => current_user.id.to_s, 'x-gitlab-instance-id' => global_instance_id, + 'x-gitlab-unique-instance-id' => global_unique_instance_id, 'x-gitlab-host-name' => Gitlab.config.gitlab.host, 'x-gitlab-realm' => gitlab_realm, 'x-gitlab-version' => Gitlab.version_info.to_s, @@ -1590,3 +1597,4 @@ def request end end end +# rubocop:enable RSpec/MultipleMemoizedHelpers diff --git a/ee/spec/requests/api/internal/ai/x_ray/scan_spec.rb b/ee/spec/requests/api/internal/ai/x_ray/scan_spec.rb index 1ce9e2fe33d694c943c47e62719f03eecab91306..0ff53f870d8bebdc7889db666b2c12f00e5c0a42 100644 --- a/ee/spec/requests/api/internal/ai/x_ray/scan_spec.rb +++ b/ee/spec/requests/api/internal/ai/x_ray/scan_spec.rb @@ -13,6 +13,7 @@ let(:ai_gateway_token) { 'ai gateway token' } let(:instance_uuid) { "uuid-not-set" } + let(:unique_instance_uuid) { "uuid-not-set" } let(:gitlab_team_member) { false } let(:global_user_id) { "user-id" } let(:hostname) { "localhost" } @@ -22,6 +23,7 @@ before do allow(Gitlab::GlobalAnonymousId).to receive(:user_id).and_return(global_user_id) allow(Gitlab::GlobalAnonymousId).to receive(:instance_id).and_return(instance_uuid) + allow(Gitlab::GlobalAnonymousId).to receive(:instance_uuid).and_return(unique_instance_uuid) allow(Gitlab::CloudConnector::DataModel::UnitPrimitive).to receive(:find_by_name) .with(:complete_code) .and_return(build(:cloud_connector_unit_primitive, :complete_code)) @@ -48,6 +50,7 @@ "Content-Type" => ["application/json"], "x-gitlab-host-name" => [hostname], "x-gitlab-instance-id" => [instance_uuid], + "x-gitlab-unique-instance-id" => [unique_instance_uuid], "X-Gitlab-Is-Team-Member" => [gitlab_team_member.to_s], "x-gitlab-realm" => [gitlab_realm], "x-gitlab-global-user-id" => [global_user_id],