|
%!s(int64=9) %!d(string=hai) anos | |
---|---|---|
app | %!s(int64=9) %!d(string=hai) anos | |
config | %!s(int64=9) %!d(string=hai) anos | |
lib | %!s(int64=9) %!d(string=hai) anos | |
.gitignore | %!s(int64=10) %!d(string=hai) anos | |
CHANGELOG.md | %!s(int64=9) %!d(string=hai) anos | |
Gemfile | %!s(int64=10) %!d(string=hai) anos | |
LICENSE.txt | %!s(int64=10) %!d(string=hai) anos | |
README.md | %!s(int64=9) %!d(string=hai) anos | |
Rakefile | %!s(int64=10) %!d(string=hai) anos | |
blazer.gemspec | %!s(int64=10) %!d(string=hai) anos |
Share data effortlessly with your team
Blazer eliminates the need for many admin pages
Play around with the demo - data from MovieLens
Works with PostgreSQL and MySQL
:tangerine: Battle-tested at Instacart
Add this line to your application’s Gemfile:
gem 'blazer'
Run:
rails g blazer:install
rake db:migrate
And mount the dashboard in your config/routes.rb
:
mount Blazer::Engine, at: "blazer"
For production, specify your database:
ENV["BLAZER_DATABASE_URL"] = "postgres://user:password@hostname:5432/database_name"
It is highly, highly recommended to use a read only user. Keep reading to see how to create one.
Create a user with read only permissions:
BEGIN;
CREATE ROLE blazer LOGIN PASSWORD 'secret123';
GRANT CONNECT ON DATABASE database_name TO blazer;
GRANT USAGE ON SCHEMA public TO blazer;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO blazer;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO blazer;
COMMIT;
It is recommended to protect sensitive information with views. Documentation coming soon.
Create a user with read only permissions:
GRANT SELECT, SHOW VIEW ON database_name.* TO blazer@’127.0.0.1′ IDENTIFIED BY ‘secret123‘;
FLUSH PRIVILEGES;
It is recommended to protect sensitive information with views. Documentation coming soon.
Don’t forget to protect the dashboard in production.
Set the following variables in your environment or an initializer.
ENV["BLAZER_USERNAME"] = "andrew"
ENV["BLAZER_PASSWORD"] = "secret"
authenticate :user, lambda { |user| user.admin? } do
mount Blazer::Engine, at: "blazer"
end
Set up checks to run every hour.
rake blazer:run_checks
Be sure to set a host in config/environments/production.rb
for emails to work.
config.action_mailer.default_url_options = {host: "blazerme.herokuapp.com"}
We also recommend setting up failing checks to be sent once a day.
rake blazer:send_failing_checks
Change time zone
Blazer.time_zone = "Pacific Time (US & Canada)"
Change timeout PostgreSQL only
Blazer.timeout = 10 # defaults to 15
Turn off audits
Blazer.audit = false
Custom user class
Blazer.user_class = "Admin"
Customize user name
Blazer.user_name = :first_name
Blazer will automatically generate charts based on the types of the columns returned in your query
If there are at least 2 columns and the first is a timestamp and all other columns are numeric, a line chart will be generated
If there are 2 columns and the first column is a string and the second column is a numeric, a pie chart will be generated
Add a migration for checks
rails g migration create_blazer_checks
with
create_table :blazer_checks do |t|
t.references :blazer_query
t.string :state
t.text :emails
t.timestamps
end
View the changelog
Blazer uses a number of awesome, open source projects.
Everyone is encouraged to help improve this project. Here are a few ways you can help: