My opinionated ruby on rails template
at main 69 lines 1.8 kB view raw
1# frozen_string_literal: true 2 3say 'Setting up Blazer for BI dashboard...', :green 4 5gem 'blazer' 6 7after_bundle do 8 say ' Running Blazer install...', :cyan 9 rails_command 'generate blazer:install' 10end 11 12say ' Creating Blazer initializer...', :cyan 13file 'config/initializers/blazer.rb', <<~RUBY 14 # frozen_string_literal: true 15 16 # Blazer configuration is in config/blazer.yml 17 # This file handles additional Ruby-based config 18 19 # Ensure Blazer uses the correct database 20 # Blazer.settings["data_sources"]["main"]["url"] = ENV["DATABASE_URL"] 21RUBY 22 23say ' Creating Blazer config...', :cyan 24file 'config/blazer.yml', <<~YAML, force: true 25 # Blazer configuration 26 # https://github.com/ankane/blazer 27 28 data_sources: 29 main: 30 url: <%= ENV["DATABASE_URL"] %> 31 32 # Statement timeout (in seconds) 33 timeout: 15 34 35 # Caching (requires cache store) 36 cache: 37 mode: slow # or "all" 38 expires_in: 60 # seconds 39 40 # Smart variables (dropdown filters in queries) 41 smart_variables: 42 user_id: "SELECT id, email FROM users ORDER BY email" 43 # state: "SELECT DISTINCT state FROM orders" 44 45 # Linked columns (make values clickable) 46 linked_columns: 47 user_id: "/admin/users/{value}" 48 # order_id: "/admin/orders/{value}" 49 50 # Smart columns (format output) 51 smart_columns: 52 created_at: datetime 53 updated_at: datetime 54 # amount: currency 55 56 # Audit logging 57 audit: true 58 59 # Check queries for anomalies 60 check_schedules: 61 - "1 day" 62 - "1 week" 63 - "1 month" 64YAML 65 66say 'Blazer BI dashboard configured!', :green 67say ' Access at /admin/blazer (admin only)', :cyan 68say ' Run migrations: rails db:migrate', :yellow 69say ' Configure data sources in config/blazer.yml', :cyan