diff --git a/lib/datadog/appsec/configuration.rb b/lib/datadog/appsec/configuration.rb index 047dcfde2a..c9443a6abc 100644 --- a/lib/datadog/appsec/configuration.rb +++ b/lib/datadog/appsec/configuration.rb @@ -52,6 +52,14 @@ def self.add_settings!(base) o.default false end + # Set by the agentic onboarding solution; no behavior, reported verbatim in + # configuration telemetry only (RFC-1113). + option :agentic_onboarding do |o| + o.type :string + o.env "DD_APPSEC_AGENTIC_ONBOARDING" + o.default "" + end + define_method(:instrument) do |integration_name| if enabled registered_integration = Datadog::AppSec::Contrib::Integration.registry[integration_name] diff --git a/lib/datadog/core/configuration/supported_configurations.rb b/lib/datadog/core/configuration/supported_configurations.rb index 337f3713bd..c1211853b9 100644 --- a/lib/datadog/core/configuration/supported_configurations.rb +++ b/lib/datadog/core/configuration/supported_configurations.rb @@ -24,6 +24,7 @@ module Configuration "DD_API_SECURITY_REQUEST_SAMPLE_RATE", "DD_API_SECURITY_SAMPLE_DELAY", "DD_APM_TRACING_ENABLED", + "DD_APPSEC_AGENTIC_ONBOARDING", "DD_APPSEC_AUTOMATED_USER_EVENTS_TRACKING", "DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODE", "DD_APPSEC_BODY_PARSING_SIZE_LIMIT", diff --git a/spec/datadog/appsec/configuration/settings_spec.rb b/spec/datadog/appsec/configuration/settings_spec.rb index 6f5cadc960..9933702cd4 100644 --- a/spec/datadog/appsec/configuration/settings_spec.rb +++ b/spec/datadog/appsec/configuration/settings_spec.rb @@ -434,6 +434,38 @@ def patcher end end + describe "#agentic_onboarding" do + subject(:agentic_onboarding) { settings.appsec.agentic_onboarding } + + context "when DD_APPSEC_AGENTIC_ONBOARDING" do + around do |example| + ClimateControl.modify("DD_APPSEC_AGENTIC_ONBOARDING" => agentic_onboarding_env) do + example.run + end + end + + context "is not defined" do + let(:agentic_onboarding_env) { nil } + + it { is_expected.to eq("") } + end + + context "is defined" do + let(:agentic_onboarding_env) { "true" } + + it { is_expected.to eq("true") } + end + end + end + + describe "#agentic_onboarding=" do + subject(:set_agentic_onboarding) { settings.appsec.agentic_onboarding = "true" } + + before { set_agentic_onboarding } + + it { expect(settings.appsec.agentic_onboarding).to eq("true") } + end + describe "#obfuscator_key_regex" do subject(:obfuscator_key_regex) { settings.appsec.obfuscator_key_regex } diff --git a/spec/datadog/core/telemetry/event/app_started_spec.rb b/spec/datadog/core/telemetry/event/app_started_spec.rb index fdcd54322d..b1549a96c0 100644 --- a/spec/datadog/core/telemetry/event/app_started_spec.rb +++ b/spec/datadog/core/telemetry/event/app_started_spec.rb @@ -42,6 +42,7 @@ # ['tracing.writer_options.flush_interval', 456], # not reported by default # ['logger.instance', 'MyLogger'], # not reported by default ["DD_APPSEC_ENABLED", false], + ["DD_APPSEC_AGENTIC_ONBOARDING", ""], # ['DD_APPSEC_SCA_ENABLED', false], # not reported by default ["DD_APM_TRACING_ENABLED", true] ].freeze diff --git a/supported-configurations.json b/supported-configurations.json index 0d63544cf3..cb4226a0f5 100644 --- a/supported-configurations.json +++ b/supported-configurations.json @@ -116,6 +116,13 @@ "sensitive": true } ], + "DD_APPSEC_AGENTIC_ONBOARDING": [ + { + "version": "A", + "type": "string", + "default": "" + } + ], "DD_APPSEC_AUTOMATED_USER_EVENTS_TRACKING": [ { "version": "A",