diff --git a/config/initializers/rack/attack.rb b/config/initializers/rack/attack.rb index 9219c96e4..f965c80bf 100644 --- a/config/initializers/rack/attack.rb +++ b/config/initializers/rack/attack.rb @@ -21,6 +21,7 @@ class Rack::Attack return if request.env["HTTP_FASTLY_CLIENT_IP"].blank? if request.path.starts_with?("/api/") && (request.put? || request.post? || request.delete?) + Honeycomb.add_field("user_api_key", request.env["HTTP_API_KEY"]) track_and_return_ip(request.env["HTTP_FASTLY_CLIENT_IP"]) end end diff --git a/spec/initializers/rack/attack_spec.rb b/spec/initializers/rack/attack_spec.rb index 6c9358789..6f4bb6ce0 100644 --- a/spec/initializers/rack/attack_spec.rb +++ b/spec/initializers/rack/attack_spec.rb @@ -64,6 +64,8 @@ describe Rack::Attack, type: :request, throttle: true do expect(new_api_response).not_to eq(429) expect(Honeycomb).to have_received(:add_field).with("fastly_client_ip", "5.6.7.8").exactly(3).times expect(Honeycomb).to have_received(:add_field).with("fastly_client_ip", "1.1.1.1").exactly(2).times + expect(Honeycomb).to have_received(:add_field).with("user_api_key", api_secret.secret).exactly(2).times + expect(Honeycomb).to have_received(:add_field).with("user_api_key", another_api_secret.secret) end end end