Sha256: 61ce61e76d31764cb6bd9c4a317d32e6115a82428ab3cd1958e04ce253bbf16a

Contents?: true

Size: 1.46 KB

Versions: 4

Compression:

Stored size: 1.46 KB

Contents

# frozen_string_literal: true

require_relative 'appsec/configuration'
require_relative 'appsec/extensions'
require_relative 'appsec/scope'
require_relative 'appsec/ext'
require_relative 'appsec/utils'

module Datadog
  # Namespace for Datadog AppSec instrumentation
  module AppSec
    class << self
      def enabled?
        Datadog.configuration.appsec.enabled
      end

      def active_scope
        Datadog::AppSec::Scope.active_scope
      end

      def processor
        appsec_component = components.appsec

        appsec_component.processor if appsec_component
      end

      def reconfigure(ruleset:, actions:, telemetry:)
        appsec_component = components.appsec

        return unless appsec_component

        appsec_component.reconfigure(ruleset: ruleset, actions: actions, telemetry: telemetry)
      end

      def reconfigure_lock(&block)
        appsec_component = components.appsec

        return unless appsec_component

        appsec_component.reconfigure_lock(&block)
      end

      private

      def components
        Datadog.send(:components)
      end
    end

    # Expose AppSec to global shared objects
    Extensions.activate!
  end
end

# Integrations
require_relative 'appsec/contrib/rack/integration'
require_relative 'appsec/contrib/sinatra/integration'
require_relative 'appsec/contrib/rails/integration'
require_relative 'appsec/contrib/devise/integration'
require_relative 'appsec/contrib/graphql/integration'

require_relative 'appsec/autoload'

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
datadog-2.7.1 lib/datadog/appsec.rb
datadog-2.7.0 lib/datadog/appsec.rb
datadog-2.6.0 lib/datadog/appsec.rb
datadog-2.5.0 lib/datadog/appsec.rb