Module: DecisionAgent

Defined in:
lib/decision_agent.rb,
lib/decision_agent/agent.rb,
lib/decision_agent/errors.rb,
lib/decision_agent/context.rb,
lib/decision_agent/version.rb,
lib/decision_agent/decision.rb,
lib/decision_agent/auth/role.rb,
lib/decision_agent/auth/user.rb,
lib/decision_agent/dmn/cache.rb,
lib/decision_agent/dmn/model.rb,
lib/decision_agent/dmn/errors.rb,
lib/decision_agent/dmn/parser.rb,
lib/decision_agent/evaluation.rb,
lib/decision_agent/simulation.rb,
lib/decision_agent/web/server.rb,
lib/decision_agent/dmn/adapter.rb,
lib/decision_agent/dmn/testing.rb,
lib/decision_agent/auth/session.rb,
lib/decision_agent/dmn/exporter.rb,
lib/decision_agent/dmn/importer.rb,
lib/decision_agent/scoring/base.rb,
lib/decision_agent/audit/adapter.rb,
lib/decision_agent/dmn/validator.rb,
lib/decision_agent/replay/replay.rb,
lib/decision_agent/dmn/feel/types.rb,
lib/decision_agent/dmn/versioning.rb,
lib/decision_agent/dmn/visualizer.rb,
lib/decision_agent/web/dmn_editor.rb,
lib/decision_agent/auth/permission.rb,
lib/decision_agent/dmn/feel/parser.rb,
lib/decision_agent/dsl/rule_parser.rb,
lib/decision_agent/evaluators/base.rb,
lib/decision_agent/auth/rbac_config.rb,
lib/decision_agent/web/rack_helpers.rb,
lib/decision_agent/auth/rbac_adapter.rb,
lib/decision_agent/dmn/decision_tree.rb,
lib/decision_agent/scoring/consensus.rb,
lib/decision_agent/scoring/threshold.rb,
lib/decision_agent/simulation/errors.rb,
lib/decision_agent/ab_testing/ab_test.rb,
lib/decision_agent/audit/null_adapter.rb,
lib/decision_agent/auth/authenticator.rb,
lib/decision_agent/dmn/decision_graph.rb,
lib/decision_agent/dmn/feel/evaluator.rb,
lib/decision_agent/dmn/feel/functions.rb,
lib/decision_agent/dsl/operators/base.rb,
lib/decision_agent/scoring/max_weight.rb,
lib/decision_agent/versioning/adapter.rb,
lib/decision_agent/audit/logger_adapter.rb,
lib/decision_agent/auth/session_manager.rb,
lib/decision_agent/dmn/feel/transformer.rb,
lib/decision_agent/dsl/schema_validator.rb,
lib/decision_agent/evaluation_validator.rb,
lib/decision_agent/testing/test_scenario.rb,
lib/decision_agent/dmn/feel/simple_parser.rb,
lib/decision_agent/auth/permission_checker.rb,
lib/decision_agent/dsl/condition_evaluator.rb,
lib/decision_agent/auth/access_audit_logger.rb,
lib/decision_agent/dsl/helpers/date_helpers.rb,
lib/decision_agent/evaluators/dmn_evaluator.rb,
lib/decision_agent/monitoring/alert_manager.rb,
lib/decision_agent/scoring/weighted_average.rb,
lib/decision_agent/simulation/replay_engine.rb,
lib/decision_agent/web/rack_request_helpers.rb,
lib/decision_agent/auth/password_reset_token.rb,
lib/decision_agent/dsl/helpers/cache_helpers.rb,
lib/decision_agent/explainability/rule_trace.rb,
lib/decision_agent/testing/batch_test_runner.rb,
lib/decision_agent/ab_testing/ab_test_manager.rb,
lib/decision_agent/ab_testing/storage/adapter.rb,
lib/decision_agent/monitoring/monitored_agent.rb,
lib/decision_agent/simulation/impact_analyzer.rb,
lib/decision_agent/simulation/scenario_engine.rb,
lib/decision_agent/versioning/version_manager.rb,
lib/decision_agent/web/dmn_editor/xml_builder.rb,
lib/decision_agent/ab_testing/ab_testing_agent.rb,
lib/decision_agent/auth/password_reset_manager.rb,
lib/decision_agent/dsl/helpers/utility_helpers.rb,
lib/decision_agent/evaluators/static_evaluator.rb,
lib/decision_agent/monitoring/dashboard_server.rb,
lib/decision_agent/simulation/scenario_library.rb,
lib/decision_agent/simulation/what_if_analyzer.rb,
lib/decision_agent/testing/batch_test_importer.rb,
lib/decision_agent/dsl/helpers/template_helpers.rb,
lib/decision_agent/dsl/operators/rate_operators.rb,
lib/decision_agent/monitoring/metrics_collector.rb,
lib/decision_agent/web/dmn_editor/serialization.rb,
lib/decision_agent/ab_testing/ab_test_assignment.rb,
lib/decision_agent/simulation/shadow_test_engine.rb,
lib/decision_agent/dsl/helpers/comparison_helpers.rb,
lib/decision_agent/dsl/helpers/geospatial_helpers.rb,
lib/decision_agent/dsl/operators/string_operators.rb,
lib/decision_agent/evaluators/json_rule_evaluator.rb,
lib/decision_agent/explainability/condition_trace.rb,
lib/decision_agent/explainability/trace_collector.rb,
lib/decision_agent/monitoring/prometheus_exporter.rb,
lib/decision_agent/testing/test_coverage_analyzer.rb,
lib/decision_agent/testing/test_result_comparator.rb,
lib/decision_agent/web/middleware/auth_middleware.rb,
lib/decision_agent/dsl/operators/numeric_operators.rb,
lib/decision_agent/monitoring/storage/base_adapter.rb,
lib/decision_agent/versioning/activerecord_adapter.rb,
lib/decision_agent/versioning/file_storage_adapter.rb,
lib/decision_agent/dsl/operators/duration_operators.rb,
lib/decision_agent/simulation/monte_carlo_simulator.rb,
lib/decision_agent/ab_testing/storage/memory_adapter.rb,
lib/decision_agent/dsl/operators/date_time_operators.rb,
lib/decision_agent/dsl/operators/financial_operators.rb,
lib/decision_agent/dsl/operators/string_aggregations.rb,
lib/decision_agent/monitoring/storage/memory_adapter.rb,
lib/decision_agent/dsl/operators/collection_operators.rb,
lib/decision_agent/dsl/operators/geospatial_operators.rb,
lib/decision_agent/dsl/operators/mathematical_operators.rb,
lib/decision_agent/explainability/explainability_result.rb,
lib/decision_agent/web/middleware/permission_middleware.rb,
lib/generators/decision_agent/install/install_generator.rb,
lib/decision_agent/dsl/helpers/parameter_parsing_helpers.rb,
lib/decision_agent/dsl/operators/moving_window_operators.rb,
lib/decision_agent/dsl/operators/statistical_aggregations.rb,
lib/decision_agent/dsl/operators/time_component_operators.rb,
lib/decision_agent/ab_testing/storage/activerecord_adapter.rb,
lib/decision_agent/dsl/helpers/operator_evaluation_helpers.rb,
lib/decision_agent/dsl/operators/date_arithmetic_operators.rb,
lib/decision_agent/monitoring/storage/activerecord_adapter.rb,
lib/decision_agent/dsl/operators/basic_comparison_operators.rb,
lib/generators/decision_agent/monitoring_migration/monitoring_migration_generator.rb,
lib/generators/decision_agent/versioning_migration/versioning_migration_generator.rb

Defined Under Namespace

Modules: ABTesting, Audit, Auth, Dmn, Dsl, Evaluators, Explainability, Generators, Monitoring, Replay, Scoring, Simulation, Testing, Versioning, Web Classes: Agent, AuthenticationError, BatchTestError, Context, Decision, Error, Evaluation, EvaluationValidator, ImportError, InvalidAuditAdapterError, InvalidConfidenceError, InvalidConfigurationError, InvalidEvaluatorError, InvalidRuleDslError, InvalidScoringStrategyError, InvalidTestDataError, InvalidWeightError, NoEvaluationsError, NotFoundError, PermissionDeniedError, ReplayMismatchError, ValidationError

Constant Summary collapse

ConfigurationError =

Alias for backward compatibility and clearer naming

InvalidConfigurationError
VERSION =

Semantic version: MAJOR.MINOR.PATCH MAJOR: Incremented for incompatible API changes MINOR: Incremented for backward-compatible functionality additions PATCH: Incremented for backward-compatible bug fixes

"1.2.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.permission_checkerObject

Get the configured permission checker Thread-safe: uses double-checked locking for lazy initialization fallback



106
107
108
109
110
111
112
# File 'lib/decision_agent.rb', line 106

def permission_checker
  return @permission_checker if @permission_checker

  @permission_checker_mutex.synchronize do
    @permission_checker ||= Auth::PermissionChecker.new(adapter: @rbac_config.adapter)
  end
end

.rbac_configObject (readonly)

Returns the value of attribute rbac_config.



81
82
83
# File 'lib/decision_agent.rb', line 81

def rbac_config
  @rbac_config
end

Class Method Details

.configure_rbac(adapter_type = nil, **options) {|RbacConfig| ... } ⇒ Object

Configure RBAC adapter

Examples:

DecisionAgent.configure_rbac(:devise_cancan, ability_class: Ability)
DecisionAgent.configure_rbac(:custom) do |config|
  config.adapter = MyCustomAdapter.new
end

Yields:

  • (RbacConfig)

    Configuration block



93
94
95
96
97
98
99
100
101
102
# File 'lib/decision_agent.rb', line 93

def configure_rbac(adapter_type = nil, **options)
  if block_given?
    yield @rbac_config
  elsif adapter_type
    @rbac_config.use(adapter_type, **options)
  end
  # Initialize permission checker at configuration time (thread-safe write-once pattern)
  @permission_checker = Auth::PermissionChecker.new(adapter: @rbac_config.adapter)
  @rbac_config
end