Module: Aidp::Security

Defined in:
lib/aidp/errors.rb,
lib/aidp/security.rb,
lib/aidp/security/secrets_proxy.rb,
lib/aidp/security/trifecta_state.rb,
lib/aidp/security/secrets_registry.rb,
lib/aidp/security/work_loop_adapter.rb,
lib/aidp/security/watch_mode_handler.rb,
lib/aidp/security/rule_of_two_enforcer.rb

Overview

Convenience aliases in Security module for backward compatibility

Defined Under Namespace

Classes: FrozenStateError, RuleOfTwoEnforcer, SecretsProxy, SecretsRegistry, TrifectaState, WatchModeHandler, WorkLoopAdapter

Constant Summary collapse

PolicyViolation =
Aidp::Errors::PolicyViolation
SecretsProxyError =
Aidp::Errors::SecretsProxyError
UnregisteredSecretError =
Aidp::Errors::UnregisteredSecretError
TokenExpiredError =
Aidp::Errors::TokenExpiredError

Class Method Summary collapse

Class Method Details

.enabled?(project_dir = Dir.pwd) ⇒ Boolean

Check if security features are enabled

Returns:

  • (Boolean)


48
49
50
51
52
53
# File 'lib/aidp/security.rb', line 48

def enabled?(project_dir = Dir.pwd)
  config = Aidp::Config.load(project_dir)
  security_config = config[:security] || config["security"] || {}
  rule_of_two_config = security_config[:rule_of_two] || security_config["rule_of_two"] || {}
  rule_of_two_config[:enabled] != false # Default to enabled
end

.enforcerObject

Get the global enforcer instance



26
27
28
# File 'lib/aidp/security.rb', line 26

def enforcer
  @enforcer ||= RuleOfTwoEnforcer.new
end

.reset!Object

Reset all security state (primarily for testing)



41
42
43
44
45
# File 'lib/aidp/security.rb', line 41

def reset!
  @enforcer = nil
  @secrets_registry = nil
  @secrets_proxy = nil
end

.secrets_proxyObject

Get the global secrets proxy



36
37
38
# File 'lib/aidp/security.rb', line 36

def secrets_proxy
  @secrets_proxy ||= SecretsProxy.new(registry: secrets_registry)
end

.secrets_registryObject

Get the global secrets registry



31
32
33
# File 'lib/aidp/security.rb', line 31

def secrets_registry
  @secrets_registry ||= SecretsRegistry.new
end