Module: RailsMcp::Database::ColumnPolicy

Defined in:
lib/rails_mcp/database/column_policy.rb

Overview

Single source of truth for which columns are visible for a given AR class. Applies schema_file allowlist, default_fields auto-include, and denied_columns in that order.

Class Method Summary collapse

Class Method Details

.allowed_for(klass) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/rails_mcp/database/column_policy.rb', line 9

def self.allowed_for(klass)
  schema = RailsMcp.schema_config
  cols = if schema
           auto = RailsMcp.configuration.default_fields.map(&:to_s) & klass.column_names
           (schema.allowed_columns(klass.name) + auto).uniq
         else
           klass.column_names
         end
  cols.reject { |col| RailsMcp.configuration.column_denied?(col) }
end