blazer 2.6.1 → 2.6.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/README.md +6 -5
- data/app/assets/javascripts/blazer/queries.js +12 -1
- data/app/controllers/blazer/queries_controller.rb +1 -0
- data/app/views/blazer/dashboards/show.html.erb +3 -1
- data/app/views/blazer/queries/show.html.erb +1 -1
- data/lib/blazer/adapters/sql_adapter.rb +9 -2
- data/lib/blazer/data_source.rb +1 -1
- data/lib/blazer/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b32d2190afc8df872db60250651c97eae9d202d0b23042a4b853169edbc2d458
|
4
|
+
data.tar.gz: 64cb17476627ce2108e2aaf9619648e4a743774983c29bcb7478a3b4500f4617
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d6eb64793a84ba433e6a68caaa5419dbcbb3f80ae842854b486f552459e77b434bc7d43bacf1d97175fea1857c74e66b440f7de55cc1e591133740f47ea84f18
|
7
|
+
data.tar.gz: 0723a52bb56f41d3526d66799f19a6fa82b91cd51aa3a35b5bede9523012bc0cee291db1f6e71eb74657c8e595ac0dc1b3f20febb1687121c35830456b924c2a
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
## 2.6.4 (2022-05-24)
|
2
|
+
|
3
|
+
- Fixed error with caching
|
4
|
+
|
5
|
+
## 2.6.3 (2022-05-11)
|
6
|
+
|
7
|
+
- Fixed error with canceling queries
|
8
|
+
|
9
|
+
## 2.6.2 (2022-05-06)
|
10
|
+
|
11
|
+
- Fixed error with Postgres when prepared statements are disabled with Rails < 6.1
|
12
|
+
|
1
13
|
## 2.6.1 (2022-04-21)
|
2
14
|
|
3
15
|
- Added `region` setting to Amazon Athena
|
data/README.md
CHANGED
@@ -150,8 +150,8 @@ Create a user with read-only permissions:
|
|
150
150
|
|
151
151
|
```sql
|
152
152
|
BEGIN;
|
153
|
-
CREATE ROLE blazer LOGIN PASSWORD '
|
154
|
-
GRANT CONNECT ON DATABASE
|
153
|
+
CREATE ROLE blazer LOGIN PASSWORD 'secret';
|
154
|
+
GRANT CONNECT ON DATABASE dbname TO blazer;
|
155
155
|
GRANT USAGE ON SCHEMA public TO blazer;
|
156
156
|
GRANT SELECT ON ALL TABLES IN SCHEMA public TO blazer;
|
157
157
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO blazer;
|
@@ -163,7 +163,8 @@ COMMIT;
|
|
163
163
|
Create a user with read-only permissions:
|
164
164
|
|
165
165
|
```sql
|
166
|
-
|
166
|
+
CREATE USER 'blazer'@'127.0.0.1' IDENTIFIED BY 'secret';
|
167
|
+
GRANT SELECT, SHOW VIEW ON dbname.* TO 'blazer'@'127.0.0.1';
|
167
168
|
FLUSH PRIVILEGES;
|
168
169
|
```
|
169
170
|
|
@@ -171,8 +172,8 @@ FLUSH PRIVILEGES;
|
|
171
172
|
|
172
173
|
Create a user with read-only permissions:
|
173
174
|
|
174
|
-
```
|
175
|
-
db.createUser({user: "blazer", pwd: "
|
175
|
+
```javascript
|
176
|
+
db.createUser({user: "blazer", pwd: "secret", roles: ["read"]})
|
176
177
|
```
|
177
178
|
|
178
179
|
Also, make sure authorization is enabled when you start the server.
|
@@ -3,6 +3,9 @@ var runningQueries = []
|
|
3
3
|
var maxQueries = 3
|
4
4
|
|
5
5
|
function runQuery(data, success, error) {
|
6
|
+
if (!data.data_source) {
|
7
|
+
throw new Error("Data source is required to cancel queries")
|
8
|
+
}
|
6
9
|
data.run_id = uuid()
|
7
10
|
var query = {
|
8
11
|
data: data,
|
@@ -50,7 +53,11 @@ function runQueryHelper(query) {
|
|
50
53
|
queryComplete(query)
|
51
54
|
}
|
52
55
|
}).fail( function(jqXHR, textStatus, errorThrown) {
|
53
|
-
|
56
|
+
// check jqXHR.status instead of query.canceled
|
57
|
+
// so it works for page navigation with Firefox and Safari
|
58
|
+
if (jqXHR.status === 0) {
|
59
|
+
cancelServerQuery(query)
|
60
|
+
} else {
|
54
61
|
var message = (typeof errorThrown === "string") ? errorThrown : errorThrown.message
|
55
62
|
if (!message) {
|
56
63
|
message = "An error occurred"
|
@@ -83,6 +90,8 @@ function cancelAllQueries() {
|
|
83
90
|
}
|
84
91
|
}
|
85
92
|
|
93
|
+
// needed for Chrome
|
94
|
+
// queries are canceled before unload with Firefox and Safari
|
86
95
|
$(window).on("unload", cancelAllQueries)
|
87
96
|
|
88
97
|
function cancelQuery(query) {
|
@@ -90,7 +99,9 @@ function cancelQuery(query) {
|
|
90
99
|
if (query.xhr) {
|
91
100
|
query.xhr.abort()
|
92
101
|
}
|
102
|
+
}
|
93
103
|
|
104
|
+
function cancelServerQuery(query) {
|
94
105
|
// tell server
|
95
106
|
var path = Routes.cancel_queries_path()
|
96
107
|
var data = {run_id: query.run_id, data_source: query.data_source}
|
@@ -92,6 +92,7 @@ module Blazer
|
|
92
92
|
@cohort_analysis = @statement.cohort_analysis?
|
93
93
|
|
94
94
|
# fallback for now for users with open tabs
|
95
|
+
# TODO remove fallback in future version
|
95
96
|
@var_params = request.request_parameters["variables"] || request.request_parameters
|
96
97
|
@success = process_vars(@statement, @var_params)
|
97
98
|
@only_chart = params[:only_chart]
|
@@ -39,7 +39,9 @@
|
|
39
39
|
</div>
|
40
40
|
</div>
|
41
41
|
<script>
|
42
|
-
|
42
|
+
<% data = {statement: query.statement, query_id: query.id, data_source: query.data_source, variables: variable_params(query), only_chart: true} %>
|
43
|
+
<% data.merge!(cohort_period: params[:cohort_period]) if params[:cohort_period] %>
|
44
|
+
<%= blazer_js_var "data", data %>
|
43
45
|
|
44
46
|
runQuery(data, function (data) {
|
45
47
|
$("#chart-<%= i %>").html(data)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% blazer_title @query.name %>
|
2
2
|
|
3
3
|
<% if @success %>
|
4
|
-
<% run_data = {statement: @query.statement, query_id: @query.id, variables: variable_params(@query)} %>
|
4
|
+
<% run_data = {statement: @query.statement, query_id: @query.id, data_source: @query.data_source, variables: variable_params(@query)} %>
|
5
5
|
<% run_data.merge!(forecast: "t") if params[:forecast] %>
|
6
6
|
<% run_data.merge!(cohort_period: params[:cohort_period]) if params[:cohort_period] %>
|
7
7
|
<% run_data.transform_keys!(&:to_s) if Rails::VERSION::STRING.to_f == 5.0 %>
|
@@ -191,9 +191,12 @@ module Blazer
|
|
191
191
|
|
192
192
|
# Redshift adapter silently ignores binds
|
193
193
|
def parameter_binding
|
194
|
-
if postgresql? ||
|
194
|
+
if postgresql? && (ActiveRecord::VERSION::STRING.to_f >= 6.1 || prepared_statements?)
|
195
|
+
# Active Record < 6.1 silently ignores binds with Postgres when prepared statements are disabled
|
195
196
|
:numeric
|
196
|
-
elsif
|
197
|
+
elsif sqlite?
|
198
|
+
:numeric
|
199
|
+
elsif mysql? && prepared_statements?
|
197
200
|
# Active Record silently ignores binds with MySQL when prepared statements are disabled
|
198
201
|
:positional
|
199
202
|
elsif sqlserver?
|
@@ -309,6 +312,10 @@ module Blazer
|
|
309
312
|
end
|
310
313
|
end
|
311
314
|
end
|
315
|
+
|
316
|
+
def prepared_statements?
|
317
|
+
connection_model.connection.prepared_statements
|
318
|
+
end
|
312
319
|
end
|
313
320
|
end
|
314
321
|
end
|
data/lib/blazer/data_source.rb
CHANGED
@@ -145,7 +145,7 @@ module Blazer
|
|
145
145
|
end
|
146
146
|
|
147
147
|
def statement_cache_key(statement)
|
148
|
-
cache_key(["statement", id, Digest::MD5.hexdigest(statement.bind_statement.to_s.gsub("\r\n", "\n") + statement.bind_values.
|
148
|
+
cache_key(["statement", id, Digest::MD5.hexdigest(statement.bind_statement.to_s.gsub("\r\n", "\n") + statement.bind_values.to_json)])
|
149
149
|
end
|
150
150
|
|
151
151
|
def run_cache_key(run_id)
|
data/lib/blazer/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blazer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|