Class: RailsAiContext::Introspectors::SecurityIntrospector

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_ai_context/introspectors/security_introspector.rb

Overview

Inspects Rails security configuration NOT already covered by ‘auth_introspector` (Devise/Pundit/etc). Captures the framework-level controls: CSRF, force_ssl, HSTS, host_authorization, PermissionsPolicy, ContentSecurityPolicy directives, cookie config, browser-version gates. Covers RAILS_NERVOUS_SYSTEM.md §32 (Security layer).

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ SecurityIntrospector

Returns a new instance of SecurityIntrospector.



13
14
15
# File 'lib/rails_ai_context/introspectors/security_introspector.rb', line 13

def initialize(app)
  @app = app
end

Instance Attribute Details

#appObject (readonly)

Returns the value of attribute app.



11
12
13
# File 'lib/rails_ai_context/introspectors/security_introspector.rb', line 11

def app
  @app
end

Instance Method Details

#callObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/rails_ai_context/introspectors/security_introspector.rb', line 17

def call
  {
    force_ssl: !!app.config.force_ssl,
    ssl_options: extract_ssl_options,
    host_authorization: extract_host_authorization,
    content_security_policy: extract_csp,
    permissions_policy: extract_permissions_policy,
    csrf: extract_csrf,
    cookies: extract_cookie_config,
    allow_browser: extract_allow_browser,
    signed_global_id: extract_signed_gid
  }
rescue => e
  $stderr.puts "[rails-ai-context] SecurityIntrospector#call failed: #{e.message}" if ENV["DEBUG"]
  { error: e.message }
end