Class: RailsAgents::SchemaController

Inherits:
ApplicationController show all
Defined in:
app/controllers/rails_agents/schema_controller.rb

Instance Method Summary collapse

Instance Method Details

#showObject

GET /agents/schema — table list for Knowledge → Rails database connector



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/controllers/rails_agents/schema_controller.rb', line 6

def show
  databases = configured_databases
  tables = active_record_tables
  tables.concat(mongoid_collections) if tables.empty? || databases.any? { |db| db[:adapter] == "mongoid" }
  primary = databases.find { |db| db[:name] == "primary" } || databases.first

  # Keep install-time discovery fresh whenever schema is inspected from /agents.
  begin
    RailsAgents::DatabaseDiscovery.discover!(live: true)
  rescue StandardError
    nil
  end

  render json: {
    ok: true,
    tables: tables,
    adapter: primary&.dig(:adapter),
    databases: databases,
    config_files: detected_config_files,
    capability: RailsAgents::DatabaseDiscovery.load
  }
rescue StandardError => e
  render json: { ok: false, error: e.message, tables: [] }, status: :unprocessable_entity
end