Skip to content

Commit a42da25

Browse files
authored
Merge pull request #4931 from DataDog/appsec-enable-endpoint-collection-by-default
Enable Endpoint Collection feature by default
2 parents ebd7acc + 8f44c50 commit a42da25

File tree

4 files changed

+17
-3
lines changed

4 files changed

+17
-3
lines changed

lib/datadog/appsec/configuration/settings.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ def self.add_settings!(base)
357357
option :enabled do |o|
358358
o.type :bool, nilable: true
359359
o.env 'DD_API_SECURITY_ENDPOINT_COLLECTION_ENABLED'
360-
o.default false
360+
o.default true
361361
end
362362
end
363363

lib/datadog/appsec/contrib/rails/patcher.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,13 @@ def report_routes_via_telemetry(routes)
152152

153153
return unless Datadog.configuration.appsec.api_security.endpoint_collection.enabled
154154

155-
GUARD_ROUTES_REPORTING_ONCE_PER_APP[self].run do
155+
GUARD_ROUTES_REPORTING_ONCE_PER_APP[::Rails.application].run do
156156
AppSec.telemetry.app_endpoints_loaded(
157157
APISecurity::EndpointCollection::RailsRoutesSerializer.new(routes).to_enum
158158
)
159159
end
160+
rescue => e
161+
AppSec.telemetry.report(e, description: 'failed to report application endpoints')
160162
end
161163

162164
def setup_security

spec/datadog/appsec/configuration/settings_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1023,7 +1023,7 @@ def patcher
10231023
ClimateControl.modify('DD_API_SECURITY_ENDPOINT_COLLECTION_ENABLED' => nil) { example.run }
10241024
end
10251025

1026-
it { expect(settings.appsec.api_security.endpoint_collection.enabled).to eq(false) }
1026+
it { expect(settings.appsec.api_security.endpoint_collection.enabled).to eq(true) }
10271027
end
10281028

10291029
context 'when DD_API_SECURITY_ENDPOINT_COLLECTION_ENABLED is set to true' do

spec/datadog/appsec/integration/contrib/rails/endpoint_collection_spec.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,18 @@ def initialize(files, dirs = {}, &block)
145145
Datadog::AppSec::APISecurity::Sampler.reset!
146146
end
147147

148+
before(:each) do
149+
# reset guard that only allows routes to be reported once
150+
Datadog::AppSec::Contrib::Rails::Patcher::GUARD_ROUTES_REPORTING_ONCE_PER_APP[Rails.application]
151+
.instance_variable_set(:@ran_once, false)
152+
end
153+
154+
it 'rescues exceptions' do
155+
expect(Datadog::AppSec.telemetry).to receive(:app_endpoints_loaded).and_raise(StandardError)
156+
157+
ActiveSupport.run_load_hooks(:after_routes_loaded, Rails.application)
158+
end
159+
148160
it 'reports routes via telemetry' do
149161
ActiveSupport.run_load_hooks(:after_routes_loaded, Rails.application)
150162

0 commit comments

Comments
 (0)