ankane / blazer Goto Github PK
View Code? Open in Web Editor NEWBusiness intelligence made simple
License: MIT License
Business intelligence made simple
License: MIT License
I've recently upgraded to blazer 1.0.3; previously I was on version 0.0.7.
I first ran into an issue where I couldn't save any new queries because we don't have a User class... I fixed that with the following addition to blazer.yml
:
user_clas: nil
Now, I can save new queries but I'm getting an error when I'm trying to view the default home page which lists all of the queries. Here's a snippet of the error message:
NameError in Blazer::Queries#home
Showing /Users/crystal/.rvm/gems/ruby-2.2.0/gems/blazer-1.0.3/app/views/blazer/queries/_index.html.erb where line #1 raised:
uninitialized constant Blazer::Query::nil
end
raise NameError.new("uninitialized constant #{candidates.first}", candidates.first)
end
end
Trace of template inclusion: /Users/crystal/.rvm/gems/ruby-2.2.0/gems/blazer-1.0.3/app/views/blazer/queries/home.html.erb
Rails.root: /Users/crystal/workspace/mvln/reporter2
Application Trace | Framework Trace | Full Trace
activerecord (4.2.4) lib/active_record/inheritance.rb:158:in `compute_type'
activerecord (4.2.4) lib/active_record/reflection.rb:271:in `compute_class'
activerecord (4.2.4) lib/active_record/reflection.rb:267:in `klass'
activerecord (4.2.4) lib/active_record/associations/association.rb:118:in `klass'
activerecord (4.2.4) lib/active_record/associations/preloader.rb:158:in `block in grouped_records'
activerecord (4.2.4) lib/active_record/associations/preloader.rb:154:in `each'
activerecord (4.2.4) lib/active_record/associations/preloader.rb:154:in `grouped_records'
activerecord (4.2.4) lib/active_record/associations/preloader.rb:143:in `preloaders_for_one'
activerecord (4.2.4) lib/active_record/associations/preloader.rb:115:in `preloaders_on'
activerecord (4.2.4) lib/active_record/associations/preloader.rb:103:in `block in preload'
activerecord (4.2.4) lib/active_record/associations/preloader.rb:102:in `each'
Any thoughts of what's going on here? I haven't worked with Ruby/Rails much so if there's some expectation on how to set up Users for the tool, I've missed it (I haven't seen any details about it in the README). Getting users set up is a secondary concern though... first we just want to get the homepage backup and running. Thanks!
The chart preview screen is working, but after saving and trying to load the charts I get this JS error and the chart doesn't load:
If the SQL query is put in single quotes (eg: 'select created_at, count(*) from user_tickets GROUP BY YEAR(created_at), MONTH(created_at)'
) it fixes this error (but messes up the preview page since it tries to execute the quotes).
The blazer demo is helpful and seems to use smart columns and variables. Any reason for not including the blazer.yml
file from the demo in this README? Even if these features are trivial to figure out after a few minutes it is still helpful to have an example.
I want know if this project can be an alternative to Pentaho/Qlikview
Why queries with functions or conditions like that:
SELECT
CASE WHEN 1 > 2 THEN 'a1' ELSE 'a2' END AS a,
CONCAT('a', 3) AS b
FROM dual
render like that:
a b
-------
0.0 0.0
?
On production, i updated data_source url in env variable but Blazer still uses old one, and redeploy does not help, checking this variable in rails console shown that the variable was updated in rails environment, more of that Blazer.settings.dig('data_sources', 'main', 'url')
shows new url, but when i try to connect to db it still uses the old one
After I save a simple query and then try to view it, it doesn't show any data. Instead it displayes 'loading...'.
Reason is a breaking js error:
Uncaught SyntaxError: Unexpected identifier
Then on that line I see:
$.post("/tt-queries/queries/run?subaccount=experience", {statement:select * from users limit 1,query_id:1}, function (data) {
Seems like the statement is missing quotes.
We're using rails 4.0.13.
First off, thanks for a great library
One thing that I think would be useful would be to preview any materialized views in /queries/new in the Preview Tables drop down.
I'm not sure off the top of my head if all SQL databases support Materialized Views (we use Postgres) but for the ones that do, I think would be useful. If this is something you would be interested in having in this library, I'd be happy to help out with it anyway I can or create a PR and any suggestions on how you would go about it or at least a starting point would be appreciate.
Thanks again!
In our app, the User model isn't named User, so you get an error when trying to create a query.
I use nginx on my server, When I add blazer into my gemfile and execute 'bundle' command and then restart my 'nginx' Server , I got error in my passenger log file and my website doesn't work anymore
my nginx error log file is:
[ 2016-05-08 12:18:21.3869 6103/7ff65c471700 age/Cor/App/Implementation.cpp:304 ]: Could not spawn process for application /home/deploy/www/tagisland: An e$
Error ID: 2dbc4b07
Error details saved to: /tmp/passenger-error-vf2NHV.html
Message from application: Unknown key: :required. Valid keys are: :class_name, :class, :foreign_key, :validate, :autosave, :remote, :dependent, :primary_$
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activesupport-4.1.2/lib/active_support/core_ext/hash/keys.rb:71:in `block in assert_valid_key$
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activesupport-4.1.2/lib/active_support/core_ext/hash/keys.rb:69:in `each_key'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activesupport-4.1.2/lib/active_support/core_ext/hash/keys.rb:69:in `assert_valid_keys'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activerecord-4.1.2/lib/active_record/associations/builder/association.rb:81:in `validate_opti$
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activerecord-4.1.2/lib/active_record/associations/builder/association.rb:61:in `initialize'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activerecord-4.1.2/lib/active_record/associations/builder/association.rb:46:in `new'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activerecord-4.1.2/lib/active_record/associations/builder/association.rb:46:in `create_builde$
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activerecord-4.1.2/lib/active_record/associations/builder/association.rb:35:in `build'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activerecord-4.1.2/lib/active_record/associations.rb:1433:in `belongs_to'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/blazer-1.3.2/app/models/blazer/audit.rb:3:in `<class:Audit>'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/blazer-1.3.2/app/models/blazer/audit.rb:2:in `<module:Blazer>'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/blazer-1.3.2/app/models/blazer/audit.rb:1:in `<top (required)>'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:247:in `require'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:247:in `block in require'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:232:in `load_dependency'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:247:in `require'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:348:in `require_or_load'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:307:in `depend_on'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:225:in `require_dependency'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/engine.rb:468:in `block (2 levels) in eager_load!'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/engine.rb:467:in `each'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/engine.rb:467:in `block in eager_load!'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/engine.rb:465:in `each'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/engine.rb:465:in `each'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/engine.rb:465:in `eager_load!'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/engine.rb:346:in `eager_load!'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/application/finisher.rb:58:in `each'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/application/finisher.rb:58:in `block in <module:Finisher>'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/initializable.rb:30:in `instance_exec'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/initializable.rb:30:in `run'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/initializable.rb:55:in `block in run_initializers'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/2.2.0/tsort.rb:226:in `block in tsort_each'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/2.2.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/2.2.0/tsort.rb:429:in `each_strongly_connected_component_from'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/2.2.0/tsort.rb:347:in `block in each_strongly_connected_component'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/2.2.0/tsort.rb:345:in `each'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/2.2.0/tsort.rb:345:in `call'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/2.2.0/tsort.rb:345:in `each_strongly_connected_component'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/2.2.0/tsort.rb:224:in `tsort_each'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/2.2.0/tsort.rb:203:in `tsort_each'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/initializable.rb:54:in `run_initializers'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/railties-4.1.2/lib/rails/application.rb:300:in `initialize!'
/home/deploy/www/tagisland/config/environment.rb:7:in `<top (required)>'
config.ru:3:in `require'
config.ru:3:in `block in <main>'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rack-1.5.5/lib/rack/builder.rb:55:in `instance_eval'
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/rack-1.5.5/lib/rack/builder.rb:55:in `initialize'
config.ru:1:in `new'
config.ru:1:in `<main>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:110:in `eval'
/usr/share/passenger/helper-scripts/rack-preloader.rb:110:in `preload_app'
/usr/share/passenger/helper-scripts/rack-preloader.rb:156:in `<module:App>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>'
PLEASE HELP ME
Now that queries auto-submit when a value from a variable dropdown is changed, queries don't seem to run if one of those values is left unselected. Previously, unselected values were used to indicate that those values should be NULL.
From my understanding of the current views, it seems like I can only create bar charts if the type for the column is a string? Is there a reason this couldn't work for integers or other numbers?
I'm currently using Postgres' to_char()
functions, which seem to work OK. Was this the intention?
If not, I could look into making a PR. Otherwise, I think a bit of documentation in the README would be good. I'd really appreciate a table of Column Types vs Graph Types.
Thanks for the awesome work though! π
What are your thoughts on extracting the various navs (Dashboards#show and Queries#show) into partials so that they can be more easily overridden by a parent application. This is something that I've been wanting to be able to do and it appears that others do as well (#49).
Currently if we override the layout in Blazer::BaseController
, these navs still sit on top of whatever navigation was introduced by the parent application's layout file.
The install process is looking for the blazer.yml file before it exists: /lib/blazer.rb:26
Repro: Run rails g blazer:install
without the config/blazer.yml file
/Users/dj/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/blazer-1.0.1/lib/blazer.rb:26:in `read': No such file or directory - /Users/dj/Code/getfixed/config/blazer.yml (Errno::ENOENT)
from /Users/dj/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/blazer-1.0.1/lib/blazer.rb:26:in `settings'
Easy work around, but not ideal so thought you guys should know. Project looks cool btw!
Right now the audit user is only stored if current_user is defined within the ApplicationController. It would be ideal to configure the method that returns the user object for use with auditing (especially given that you can configure the user model in the association definitions).
Hi I have blazer running locally, but in production despite adding blazer.yml into my Capistrano linked files folder is still BLAZER_DATABASE_URL required
i already have this in my yml file
ENV["BLAZER_DATABASE_URL"] = "postgres://att_tra: att_tra@localhost/att_tra_production"
whats missing
For API only app, I get the error above. The culprit is this:
protect_from_forgery with: :exception
In https://github.com/ankane/blazer/blob/master/app/controllers/blazer/base_controller.rb#L6
Why is blazer overwriting the default protect_from_forgery from the ApplicationController. Doesn't seem like it should be the case. I reopened and removed the line and everything is working. Happy to submit a PR if this makes sense.
PS absolutely love Blazer, saves us a lot of headache.
For 2.0
async: true
option - requires a centralized cache store, so shouldn't make defaultBefore 2.0
Possibly
verify_archive
branch)Have a simple 2 column date+numeric query and the chart div just stays "loading" but the table data looks fine.
Some kind of config I'm missing for chartkick or Chart.js ? There are no errors in the Chrome Console or in the rails log file
Relevant files to my setup: https://gist.github.com/coreymartella/765736733fae949a42d3b02852ce4836
Thanks!
I am trying ot use blazer in prod, but I have this error as when trying to create a new query:
Started GET "/admin/reports/queries/new" for 192.168.99.1 at 2016-10-14 16:48:28 +0000
Processing by Blazer::QueriesController#new as HTML
Rendering /usr/local/bundle/gems/blazer-1.7.0views/layouts/blazer/application.html.erb
Rendering /usr/local/bundle/gems/blazer-1.7.0views/blazer/queries/new.html.erb within layouts/blazer/application
Rendered /usr/local/bundle/gems/blazer-1.7.0views/blazer/queries/_form.html.erb (12.5ms)
Rendered /usr/local/bundle/gems/blazer-1.7.0views/blazer/queries/new.html.erb within layouts/blazer/application (13.2ms)
Rendered /usr/local/bundle/gems/blazer-1.7.0views/layouts/blazer/application.html.erb (13.6ms)
Completed 500 Internal Server Error in 16ms (ActiveRecord: 0.0ms)
ActionView::Template::Error (Empty url):
15: <div class="pull-left" style="margin-top: 6px;">
16: <%= link_to "Back", :back %>
17: </div>
18: <%= f.select :data_source, Blazer.data_sources.values.map { |ds| [ds.name, ds.id] }, {}, class: ("hide" if Blazer.data_sources.size == 1), style: "width: 140px;" %>
19: <div id="tables" style="display: inline-block; width: 250px; margin-right: 10px;" class="hide">
20: <%= render partial: "tables" %>
21: </div>
blazer (1.7.0) lib/blazer/data_source.rb:16:in `initialize'
blazer (1.7.0) lib/blazer.rb:73:in `new'
blazer (1.7.0) lib/blazer.rb:73:in `block in data_sources'
Creating dashboards works, so DB access seems right, looks liek the link_to is failling somehow
Hi, I'm trying to install blazer to try it out. I'm running into a few weird issues where Blazer is colliding with my main app.
My core question is: Is Blazer supposed to be mounted as an entire separate app, similar to Sidekiq's web interface? Or is Blazer supposed to inherit code (controller, routes) from my main app?
Environment:
I followed the README very directly...
rails g blazer:install
mount Blazer::Engine, at: "blazer"
in config/routes.rbThe first problem I run into is this error when loading /blazer:
You must activate the Authlogic::Session::Base.controller with a
controller object before creating objects
My main app uses the authlogic gem. The traceback for this error leads to a method in app/controllers/application_controller.rb (my main application controller). Blazer::BaseController
subclasses ApplicationController
, and it's using my main app's ApplicationController
. Is this intentional?
When I comment out the offending authentication function in ApplicationController
, the /blazer path loads, but all URL generation on the page fails and none of the links work (i.e. can't a new dashboard). The log says:
DEPRECATION WARNING: You are trying to generate the URL for a named route called "new_query"
but no such route was found. In the future, this will result in an `ActionController::UrlGenerationError`
exception.` `rake routes` shows the routes like this:
rake routes
shows:
(my apps routes, where there is no new_query route)
Routes for Blazer::Engine:
run_queries POST /queries/run(.:format) blazer/queries#run
refresh_query POST /queries/:id/refresh(.:format) blazer/queries#refresh
tables_queries GET /queries/tables(.:format) blazer/queries#tables
new_query GET /queries/new(.:format) blazer/queries#new
...
Somehow, it seems like Blazer is again, when looking for routes, looking in the routes for my app, not the Blazer Engine routes. From reading about Rails Engines, it seems like the intention is for none of Blazer's code to use my ApplicationController or routes, but that's not happening.
It's too bad, I wish I could get this working to test. I'm happy to do some extra work around here if you guide me on where to look. Thanks for the time you spend working on this gem, it looks awesome, I hope I can get it working somehow.
If i add smart variables to blazer configuration i get this error.
This is the partial stack trace of the error
Blazer::Query Load (0.3ms) SELECT "blazer_queries".* FROM "blazer_queries" WHERE "blazer_queries"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
(0.2ms) BEGIN
(0.2ms) SELECT id, title FROM posts ORDER BY title ASC /*blazer*/
(0.2ms) ROLLBACK
Rendering vendor/bundle/gems/blazer-1.4.0/app/views/blazer/queries/show.html.erb within layouts/blazer/application
Rendered vendor/bundle/gems/blazer-1.4.0/app/views/blazer/_nav.html.erb (1.1ms)
Rendered vendor/bundle/gems/blazer-1.4.0/app/views/blazer/queries/show.html.erb within layouts/blazer/application (11.4ms)
Completed 500 Internal Server Error in 23ms (ActiveRecord: 0.8ms)
ArgumentError - Attempting to generate a URL from non-sanitized request parameters! An attacker can inject malicious data into the generated URL, such as changing the host. Whitelist and sanitize passed parameters to be secure.:
actionpack (5.0.0.beta4) lib/action_dispatch/routing/url_for.rb:176:in `url_for'
actionview (5.0.0.beta4) lib/action_view/routing_url_for.rb:96:in `url_for'
blazer (1.4.0) app/views/blazer/queries/show.html.erb:55:in `_vendor_bundle_gems_blazer_______app_views_blazer_queries_show_html_erb___1963724263189473542_70206828597120'
...
Could you help me?
The following is probably due to me not knowing Rails and not doing something obvious, but if I create a new blank Rails project with only Blaze as per readme, Blaze ostensibly works, but after I save any query, going to the index page crashes with:
NameError in Blazer::Queries#index
Showing /Library/Ruby/Gems/2.0.0/gems/blazer-0.0.5/app/views/blazer/queries/index.html.erb where line #17 raised:
uninitialized constant Blazer::Query::User
This is on a completely vanilla install and happens regardless of being run in production or development or what I set for the db connection (which works fine).
Environment:
Rails version 4.2.1
Ruby version 2.0.0-p481 (universal.x86_64-darwin13)
RubyGems version 2.0.14
Rack version 1.6.1
JavaScript Runtime JavaScriptCore
Middleware
Rack::Sendfile
ActionDispatch::Static
Rack::Lock
#<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x007ff76b71a218>
Rack::Runtime
Rack::MethodOverride
ActionDispatch::RequestId
Rails::Rack::Logger
ActionDispatch::ShowExceptions
WebConsole::Middleware
ActionDispatch::DebugExceptions
ActionDispatch::RemoteIp
ActionDispatch::Reloader
ActionDispatch::Callbacks
ActiveRecord::Migration::CheckPending
ActiveRecord::ConnectionAdapters::ConnectionManagement
ActiveRecord::QueryCache
ActionDispatch::Cookies
ActionDispatch::Session::CookieStore
ActionDispatch::Flash
ActionDispatch::ParamsParser
Rack::Head
Rack::ConditionalGet
Rack::ETag
Application root /Users/sb/******************************
Environment development
Database adapter sqlite3
Database schema version 20150511195721
(have also tested on an Ubuntu AWS instance with same results)
Full stacktrace:
Application Trace | Framework Trace | Full Trace
activerecord (4.2.1) lib/active_record/inheritance.rb:158:in `compute_type'
activerecord (4.2.1) lib/active_record/reflection.rb:271:in `compute_class'
activerecord (4.2.1) lib/active_record/reflection.rb:267:in `klass'
activerecord (4.2.1) lib/active_record/associations/association.rb:118:in `klass'
activerecord (4.2.1) lib/active_record/associations/preloader.rb:158:in `block in grouped_records'
activerecord (4.2.1) lib/active_record/associations/preloader.rb:154:in `each'
activerecord (4.2.1) lib/active_record/associations/preloader.rb:154:in `grouped_records'
activerecord (4.2.1) lib/active_record/associations/preloader.rb:143:in `preloaders_for_one'
activerecord (4.2.1) lib/active_record/associations/preloader.rb:115:in `preloaders_on'
activerecord (4.2.1) lib/active_record/associations/preloader.rb:103:in `block in preload'
activerecord (4.2.1) lib/active_record/associations/preloader.rb:102:in `each'
activerecord (4.2.1) lib/active_record/associations/preloader.rb:102:in `flat_map'
activerecord (4.2.1) lib/active_record/associations/preloader.rb:102:in `preload'
activerecord (4.2.1) lib/active_record/relation.rb:644:in `block in exec_queries'
activerecord (4.2.1) lib/active_record/relation.rb:643:in `each'
activerecord (4.2.1) lib/active_record/relation.rb:643:in `exec_queries'
activerecord (4.2.1) lib/active_record/relation.rb:514:in `load'
activerecord (4.2.1) lib/active_record/relation.rb:243:in `to_a'
activerecord (4.2.1) lib/active_record/relation/delegation.rb:46:in `each'
blazer (0.0.5) app/views/blazer/queries/index.html.erb:17:in `___ibrary__uby__ems_______gems_blazer_______app_views_blazer_queries_index_html_erb__2193773787389831153_70190750348020'
actionview (4.2.1) lib/action_view/template.rb:145:in `block in render'
activesupport (4.2.1) lib/active_support/notifications.rb:166:in `instrument'
actionview (4.2.1) lib/action_view/template.rb:333:in `instrument'
actionview (4.2.1) lib/action_view/template.rb:143:in `render'
actionview (4.2.1) lib/action_view/renderer/template_renderer.rb:54:in `block (2 levels) in render_template'
actionview (4.2.1) lib/action_view/renderer/abstract_renderer.rb:39:in `block in instrument'
activesupport (4.2.1) lib/active_support/notifications.rb:164:in `block in instrument'
activesupport (4.2.1) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.2.1) lib/active_support/notifications.rb:164:in `instrument'
actionview (4.2.1) lib/action_view/renderer/abstract_renderer.rb:39:in `instrument'
actionview (4.2.1) lib/action_view/renderer/template_renderer.rb:53:in `block in render_template'
actionview (4.2.1) lib/action_view/renderer/template_renderer.rb:61:in `render_with_layout'
actionview (4.2.1) lib/action_view/renderer/template_renderer.rb:52:in `render_template'
actionview (4.2.1) lib/action_view/renderer/template_renderer.rb:14:in `render'
actionview (4.2.1) lib/action_view/renderer/renderer.rb:42:in `render_template'
actionview (4.2.1) lib/action_view/renderer/renderer.rb:23:in `render'
actionview (4.2.1) lib/action_view/rendering.rb:100:in `_render_template'
actionpack (4.2.1) lib/action_controller/metal/streaming.rb:217:in `_render_template'
actionview (4.2.1) lib/action_view/rendering.rb:83:in `render_to_body'
actionpack (4.2.1) lib/action_controller/metal/rendering.rb:32:in `render_to_body'
actionpack (4.2.1) lib/action_controller/metal/renderers.rb:37:in `render_to_body'
actionpack (4.2.1) lib/abstract_controller/rendering.rb:25:in `render'
actionpack (4.2.1) lib/action_controller/metal/rendering.rb:16:in `render'
actionpack (4.2.1) lib/action_controller/metal/instrumentation.rb:44:in `block (2 levels) in render'
activesupport (4.2.1) lib/active_support/core_ext/benchmark.rb:12:in `block in ms'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/benchmark.rb:296:in `realtime'
activesupport (4.2.1) lib/active_support/core_ext/benchmark.rb:12:in `ms'
actionpack (4.2.1) lib/action_controller/metal/instrumentation.rb:44:in `block in render'
actionpack (4.2.1) lib/action_controller/metal/instrumentation.rb:87:in `cleanup_view_runtime'
activerecord (4.2.1) lib/active_record/railties/controller_runtime.rb:25:in `cleanup_view_runtime'
actionpack (4.2.1) lib/action_controller/metal/instrumentation.rb:43:in `render'
actionpack (4.2.1) lib/action_controller/metal/implicit_render.rb:10:in `default_render'
actionpack (4.2.1) lib/action_controller/metal/implicit_render.rb:5:in `send_action'
actionpack (4.2.1) lib/abstract_controller/base.rb:198:in `process_action'
actionpack (4.2.1) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.2.1) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (4.2.1) lib/active_support/callbacks.rb:117:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:117:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
activesupport (4.2.1) lib/active_support/callbacks.rb:505:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:505:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:92:in `_run_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:776:in `_run_process_action_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.1) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (4.2.1) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.2.1) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
activesupport (4.2.1) lib/active_support/notifications.rb:164:in `block in instrument'
activesupport (4.2.1) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.2.1) lib/active_support/notifications.rb:164:in `instrument'
actionpack (4.2.1) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.2.1) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.2.1) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.2.1) lib/abstract_controller/base.rb:137:in `process'
actionview (4.2.1) lib/action_view/rendering.rb:30:in `process'
actionpack (4.2.1) lib/action_controller/metal.rb:196:in `dispatch'
actionpack (4.2.1) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.2.1) lib/action_controller/metal.rb:237:in `block in action'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:74:in `call'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:74:in `dispatch'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:43:in `serve'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:43:in `block in serve'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:30:in `each'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:30:in `serve'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:819:in `call'
railties (4.2.1) lib/rails/engine.rb:518:in `call'
railties (4.2.1) lib/rails/railtie.rb:194:in `public_send'
railties (4.2.1) lib/rails/railtie.rb:194:in `method_missing'
actionpack (4.2.1) lib/action_dispatch/routing/mapper.rb:51:in `serve'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:43:in `block in serve'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:30:in `each'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:30:in `serve'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:819:in `call'
rack (1.6.1) lib/rack/etag.rb:24:in `call'
rack (1.6.1) lib/rack/conditionalget.rb:25:in `call'
rack (1.6.1) lib/rack/head.rb:13:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/flash.rb:260:in `call'
rack (1.6.1) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.6.1) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/cookies.rb:560:in `call'
activerecord (4.2.1) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:649:in `call'
activerecord (4.2.1) lib/active_record/migration.rb:378:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.2.1) lib/active_support/callbacks.rb:88:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:88:in `_run_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:776:in `_run_call_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.1) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/reloader.rb:73:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
web-console (2.1.2) lib/web_console/middleware.rb:37:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.2.1) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.2.1) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.2.1) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.2.1) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.2.1) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.2.1) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.6.1) lib/rack/methodoverride.rb:22:in `call'
rack (1.6.1) lib/rack/runtime.rb:18:in `call'
activesupport (4.2.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
rack (1.6.1) lib/rack/lock.rb:17:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/static.rb:113:in `call'
rack (1.6.1) lib/rack/sendfile.rb:113:in `call'
railties (4.2.1) lib/rails/engine.rb:518:in `call'
railties (4.2.1) lib/rails/application.rb:164:in `call'
rack (1.6.1) lib/rack/lock.rb:17:in `call'
rack (1.6.1) lib/rack/content_length.rb:15:in `call'
rack (1.6.1) lib/rack/handler/webrick.rb:89:in `service'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'
We currently use PeriscopeData so I love the direction this project is taking. The only thing holding me back from introducing Blazer to a broader group is that we use Vertica instead of Redshift as our data warehouse. Are there any plans to add support for Vertica?
I get this error while deploying on production (unicorn) works fine in development (webrix).
Tried setting the BLAZER_DATABASE_URL environment through profile file as well as environment.rb
NameError: uninitialized constant Blazer::YAML
/var/www/dashboard/shared/bundle/ruby/2.2.0/gems/blazer-1.0.4/lib/blazer.rb:30:in settings' /var/www/dashboard/shared/bundle/ruby/2.2.0/gems/blazer-1.0.4/lib/blazer/engine.rb:9:in
block in class:Engine'
/var/www/dashboard/shared/bundle/ruby/2.2.0/gems/railties-4.2.2/lib/rails/initializable.rb:30:in instance_exec' /var/www/dashboard/shared/bundle/ruby/2.2.0/gems/railties-4.2.2/lib/rails/initializable.rb:30:in
run'
/var/www/dashboard/shared/bundle/ruby/2.2.0/gems/railties-4.2.2/lib/rails/initializable.rb:55:in block in run_initializers' /var/www/dashboard/shared/bundle/ruby/2.2.0/gems/railties-4.2.2/lib/rails/initializable.rb:54:in
run_initializers'
/var/www/dashboard/shared/bundle/ruby/2.2.0/gems/railties-4.2.2/lib/rails/application.rb:352:in initialize!' /var/www/dashboard/releases/20151215121328/config/environment.rb:5:in
<top (required)>'
/var/www/dashboard/shared/bundle/ruby/2.2.0/gems/railties-4.2.2/lib/rails/application.rb:328:in require' /var/www/dashboard/shared/bundle/ruby/2.2.0/gems/railties-4.2.2/lib/rails/application.rb:328:in
require_environment!'
/var/www/dashboard/shared/bundle/ruby/2.2.0/gems/railties-4.2.2/lib/rails/application.rb:457:in block in run_tasks_blocks' /var/www/dashboard/shared/bundle/ruby/2.2.0/gems/sprockets-rails-2.3.2/lib/sprockets/rails/task.rb:64:in
block (2 levels) in define'
Tasks: TOP => environment
(See full trace by running task with --trace)
This one comes from Heroku's "Dataclips" feature.
I'd like to optionally be able to designate a dashboard / query as 'public' which would allow the page to be visited even if there's a before_filter
active. This would make sharing some analysis easy, without needing to give users full admin access.
Bonus points that'd be cool:
A way to view the schema from within the query editor would be great.
Cmd+L is a popular browser keyboard shortcut to move focus to the URL bar. Currently blazer hijacks this to help you navigate to a specific line. Perhaps we could use an alternate keyboard shortcut like Ctrl+g (like Sublime) for this?
Done
First off, awesome project, thanks!
Using the blazer example app on heroku - https://blazerme.herokuapp.com/queries/new
If we wanted to find a movie with the word 'yao' in the title, we can do
SELECT * FROM movies
WHERE title ~ 'yao';
Works and returns the movie with the title "Shanghai Triad (Yao a yao yao dao waipo qiao) (1995)"
But if we use a regex to find 'yao yao ' in the title using a bound (http://www.postgresql.org/docs/current/static/functions-matching.html)
SELECT * FROM movies
WHERE title ~ '(yao ){2}';
We should get the same result as above but instead we get "Canβt preview queries with variables...yet!" message
I think that the extract_vars
method in the base_controller is looking for any left curly brace (https://github.com/ankane/blazer/blob/master/app/controllers/blazer/base_controller.rb#L46)
Not really sure the best way to deal with that. Our hack was just add some code that ignores smart variables in a line if they come after a the tilde but we'd like to be able to use smart variables everywhere. What about maybe using double instead of single curly braces so extract_vars
method can know it's supposed to be a smart variable? Or whatever other suggestions you all might have
Thanks again!
Autocomplete tables and columns in the query editor. Ace.js provides this functionality, but it gets in the way more than it helps. Something as smooth as Sublime Text would be great.
Just upgraded to Blazer 1.3.3 from 1.1. Some queries are no longer showing on the main page even though they exist. Also just made a new query it doesn't show up either. Everything shows up in the /queries json though.
Hi, I just figured that blazer is overriding devise gem in my app. Everything works fine in development but in production here is the error when I clicked on the login button undefined method 'session_path'
and when I click on the signup button, I get undefined method 'registration_path' error
.
After installing and uninstalling blazer gem, I figured out that was the reason. How do I solve this.
Previously, I had set up Blazer with a single MySQL data source. I had several smart variables set up and working. Here's an excerpt:
smart_variables:
company_id: "SELECT id, name FROM companies ORDER BY name ASC"
product_id: "SELECT id, name FROM products ORDER BY name ASC"
team_id: "SELECT id, name FROM teams ORDER BY name ASC"
However, once I added an additional data source (this time an MS SQL database), the existing MySQL smart variables no longer displayed as select
boxes. I only get input
s now.
Oddly enough, smart variables that pull from tables in the MS SQL database appear to be working.
I think the issue may stem from conflicting table names in the MySQL and MS SQL databases, eg. both database might have a products
table, and the smart variable doesn't know which database to pull from. However, attempting to modify my blazer queries to include use mysqldatabase
haven't fixed the issue. Thanks!
I noticed that the async mode is bound to sucker_punch and not documented.
Does it work? Any reason a PR refactoring to use active job instead of suckerpunch directly might not be a good idea? We use sidekiq in our environment and would like to avoid adding another library.
Currently I can search "You" to get my queries. however, i think it might make more sense to get them by searching "me".
I would like to get some advice to fix my problem.
The dropdown under the query textarea on the edit query
view is never populated, nor can I execute any queries. Every query results in:
relation "table_name" does not exist LINE 1: select * from table_name; /*blazer*/ ^ :
select * from table_name; /*blazer*/
Example query which fails using Blazer, but works when executed in psql:
select * from products;
select * from "public"."products";
I created a blazer
role, tried with the admin user, ... and am basically out of options.
Thank you.
I have seen an example of queries in a dashboard here: https://blazerme.herokuapp.com/dashboards/1-movielens.
But I don't know how to go about this.
Btw: this is a very useful reporting tool.
Hi, I am running blazer BI and all queries are running except when i want to pull user accounts data i get an internal server error
here is the log
Blazer::Check Load (0.3ms) SELECT "blazer_checks".* FROM "blazer_checks" WHERE "blazer_checks"."query_id" = $1 [["query_id", 17]]
Rendered /home/jmunyi/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/blazer-1.1.0/app/views/blazer/queries/run.html.erb (4.3ms)
Completed 500 Internal Server Error in 416ms (ActiveRecord: 259.7ms)
ActionView::Template::Error (invalid address):
98: <% end %>
99:
100: <% unless v.nil? %>
101: <% if v == "" %>
102: <div class="text-muted">empty string</div>
103: <% elsif @linked_columns[k] %>
104: <%= link_to blazer_format_value(k, v), @linked_columns[k].gsub("{value}", u(v.to_s)), target: "_blank" %>
the query is a very basic ans simple one
SELECT * FROM users WHERE team_id = {team_id}
any ideas
Hey, the doc does mention SQLite but can you please provide an example?
I just want to use blazer on a .sqlite3 file which is not my rails database ; is it possible?
I've specified the from address in blazer.yml. When checks are run and they fail, the email generated is from a mailing list according to gmail.
The problem I am trying to solve is why other people in my organization are getting these emails that are addressed to me and me only. Some of these people are in the catchall email group, but not all.
The from is an alias for me. My email address it the to.
If you need any more information, please let me know. I've never seen this before and I don't really know where to check.
EDIT: Logs if this helps.
I, [2016-05-02T12:00:10.327543 #14867] INFO -- : [ActiveJob] [ActionMailer::DeliveryJob] [6bf0317e-1e84-42fc-a32c-2b36e576ec83] Performing ActionMailer::DeliveryJob from Inline(mailers) with arguments: "Blazer::CheckMailer", "failing_checks", "deliver_now", "[email protected]", [#<Blazer::Check id: 1, query_id: 3, state: "failing", emails: "[email protected]", created_at: "2016-04-30 18:53:25", updated_at: "2016-04-30 20:17:01">, #<Blazer::Check id: 2, query_id: 5, state: "failing", emails: "[email protected]", created_at: "2016-05-01 21:06:35", updated_at: "2016-05-01 21:06:37">]
I, [2016-05-02T12:00:10.376703 #14878] INFO -- : [blazer check] query=Users Without Passwords state=failing rows=16 error=
I, [2016-05-02T12:00:10.383712 #14878] INFO -- : [blazer check] query=Users who should be Supply Side state=failing rows=26 error=
I, [2016-05-02T12:00:10.394852 #14867] INFO -- : [ActiveJob] [ActionMailer::DeliveryJob] [6bf0317e-1e84-42fc-a32c-2b36e576ec83] Rendered /home/deploy/OppSites/shared/bundle/ruby/2.2.0/gems/blazer-1.2.1/app/views/blazer/check_mailer/failing_checks.html.erb (24.7ms)
I, [2016-05-02T12:00:11.719367 #14867] INFO -- : [ActiveJob] [ActionMailer::DeliveryJob] [6bf0317e-1e84-42fc-a32c-2b36e576ec83]
Sent mail to [email protected] (1046.1ms)
I, [2016-05-02T12:00:11.719796 #14867] INFO -- : [ActiveJob] [ActionMailer::DeliveryJob] [6bf0317e-1e84-42fc-a32c-2b36e576ec83] Performed ActionMailer::DeliveryJob from Inline(mailers) in 1391.67ms
I, [2016-05-02T12:00:11.721661 #14867] INFO -- : [ActiveJob] Enqueued ActionMailer::DeliveryJob (Job ID: 6bf0317e-1e84-42fc-a32c-2b36e576ec83) to Inline(mailers) with arguments: "Blazer::CheckMailer", "failing_checks", "deliver_now", "[email protected]", [#<Blazer::Check id: 1, query_id: 3, state: "failing", emails: "[email protected]", created_at: "2016-04-30 18:53:25", updated_at: "2016-04-30 20:17:01">, #<Blazer::Check id: 2, query_id: 5, state: "failing", emails: "[email protected]", created_at: "2016-05-01 21:06:35", updated_at: "2016-05-01 21:06:37">]
Dummy question...
The docs recommend making the database user a read-only user. How can the app save queries if the database user is read only?
I have a column gender with values (NULL, 1, 2) - 1 is Male, 2 is Female, and NULL is Unknown and I want the string versions outputted. In blazer.yml I've tried making many gender smart variables but they all just show blank, 1, or 2 - none will show the string. below are some examples - instead of IN (1) etc I tried = 1 nothing works.
gender: "SELECT gender, (CASE WHEN {value} IN (1) THEN 'Male'
WHEN {value} IN (2) THEN 'Female'
ELSE 'Unknown'
END)"
gender_id: "SELECT (CASE WHEN {value} IN (1) THEN 'Male'
WHEN {value} IN (2) THEN 'Female'
ELSE 'Unknown'
END)"
gender_id: "(CASE WHEN {value} IN (1) THEN 'Male'
WHEN {value} IN (2) THEN 'Female'
ELSE 'Unknown'
END)"
Anyone seen this before? I searched through all issues and couldn't find anything.
ActionView::Template::Error (undefined method
back_url' for #Blazer::QueriesController:0x007fa96c1efd08):`
Not sure what's causing it. I might just fork the gem and take that <%= link_to "Back", :back %>
out.
I have been unable to sign up and login in my app's production after installing blazer gem.
Here was the process I followed to install blazer:
1. add gem 'blazer' to Gemfile
2. bundle installed
3. ran rails g blazer:install
4. rake db:migrate
5.heroku run rake db:migrate
6. add BLAZER_DATABASE_URL: "postgres://user:password@hostname:5432/database" in my application.yml file
7. add BLAZER_USERNAME: "andrew" and BLAZER_PASSWORD: = "secret" in my application.yml file
Here is the screenshot of the error log (basicaly, Device's session_path
could not be found)
Hi,
I have implemented the reporting tool and everything so far is almost running fine, but i am wondering how to add a menu which can lead users back to the main app without having to manually edit the browser link or using the back button
Since chart.js supports axes, would you be interested in something that either:
I might try to hack an initial pass on this, since I'm using blazer for some images for a thesis and have been asked to redo all the charts.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.