blazer 3.3.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +23 -33
  5. data/app/assets/javascripts/blazer/Sortable.js +826 -1162
  6. data/app/assets/javascripts/blazer/ace/ace.js +15775 -13360
  7. data/app/assets/javascripts/blazer/ace/ext-language_tools.js +1411 -668
  8. data/app/assets/javascripts/blazer/ace/mode-sql.js +12 -6
  9. data/app/assets/javascripts/blazer/ace/theme-twilight.js +3 -3
  10. data/app/assets/javascripts/blazer/application.js +94 -52
  11. data/app/assets/javascripts/blazer/chart.umd.js +6 -6
  12. data/app/assets/javascripts/blazer/daterangepicker.js +193 -199
  13. data/app/assets/javascripts/blazer/highlight.min.js +235 -373
  14. data/app/assets/javascripts/blazer/moment-timezone-with-data.js +116 -82
  15. data/app/assets/javascripts/blazer/moment.js +368 -365
  16. data/app/assets/javascripts/blazer/queries.js +68 -58
  17. data/app/assets/javascripts/blazer/routes.js +11 -11
  18. data/app/assets/javascripts/blazer/tablesort.js +42 -0
  19. data/app/assets/javascripts/blazer/tom-select.base.js +4175 -0
  20. data/app/assets/stylesheets/blazer/application.css +114 -5
  21. data/app/assets/stylesheets/blazer/tom-select.css +502 -0
  22. data/app/controllers/blazer/base_controller.rb +3 -3
  23. data/app/controllers/blazer/checks_controller.rb +5 -2
  24. data/app/controllers/blazer/queries_controller.rb +3 -1
  25. data/app/helpers/blazer/base_helper.rb +1 -1
  26. data/app/models/blazer/check.rb +35 -57
  27. data/app/views/blazer/_nav.html.erb +1 -1
  28. data/app/views/blazer/_variables.html.erb +57 -42
  29. data/app/views/blazer/checks/_form.html.erb +20 -16
  30. data/app/views/blazer/checks/index.html.erb +17 -20
  31. data/app/views/blazer/dashboards/_form.html.erb +63 -48
  32. data/app/views/blazer/dashboards/show.html.erb +23 -16
  33. data/app/views/blazer/queries/_caching.html.erb +1 -1
  34. data/app/views/blazer/queries/_chart.html.erb +8 -0
  35. data/app/views/blazer/queries/_form.html.erb +153 -180
  36. data/app/views/blazer/queries/_map.html.erb +8 -0
  37. data/app/views/blazer/queries/docs.html.erb +6 -6
  38. data/app/views/blazer/queries/edit.html.erb +1 -0
  39. data/app/views/blazer/queries/home.html.erb +101 -102
  40. data/app/views/blazer/queries/new.html.erb +1 -0
  41. data/app/views/blazer/queries/run.html.erb +23 -34
  42. data/app/views/blazer/queries/schema.html.erb +20 -20
  43. data/app/views/blazer/queries/show.html.erb +19 -12
  44. data/app/views/blazer/uploads/index.html.erb +10 -10
  45. data/app/views/layouts/blazer/application.html.erb +3 -3
  46. data/lib/blazer/adapters/athena_adapter.rb +12 -6
  47. data/lib/blazer/adapters/clickhouse_adapter.rb +136 -0
  48. data/lib/blazer/adapters/druid_adapter.rb +0 -2
  49. data/lib/blazer/adapters/snowflake2_adapter.rb +198 -0
  50. data/lib/blazer/adapters/soda_adapter.rb +0 -2
  51. data/lib/blazer/adapters/sql_adapter.rb +5 -1
  52. data/lib/blazer/adapters.rb +2 -0
  53. data/lib/blazer/check_types.rb +20 -0
  54. data/lib/blazer/data_source.rb +1 -1
  55. data/lib/blazer/email_notifier.rb +49 -0
  56. data/lib/blazer/result.rb +15 -0
  57. data/lib/blazer/slack_notifier.rb +39 -7
  58. data/lib/blazer/version.rb +1 -1
  59. data/lib/blazer.rb +32 -26
  60. data/lib/generators/blazer/templates/config.yml.tt +0 -2
  61. data/licenses/LICENSE-chart.js.txt +1 -1
  62. metadata +20 -39
  63. data/app/assets/javascripts/blazer/bootstrap.js +0 -2580
  64. data/app/assets/javascripts/blazer/jquery.js +0 -10872
  65. data/app/assets/javascripts/blazer/jquery.stickytableheaders.js +0 -325
  66. data/app/assets/javascripts/blazer/rails-ujs.js +0 -746
  67. data/app/assets/javascripts/blazer/selectize.js +0 -3891
  68. data/app/assets/javascripts/blazer/stupidtable-custom-settings.js +0 -13
  69. data/app/assets/javascripts/blazer/stupidtable.js +0 -281
  70. data/app/assets/javascripts/blazer/vue.global.prod.js +0 -1
  71. data/app/assets/stylesheets/blazer/selectize.css +0 -403
  72. data/licenses/LICENSE-jquery.txt +0 -20
  73. data/licenses/LICENSE-rails-ujs.txt +0 -20
  74. data/licenses/LICENSE-stickytableheaders.txt +0 -20
  75. data/licenses/LICENSE-stupidtable.txt +0 -19
  76. data/licenses/LICENSE-vue.txt +0 -21
  77. /data/licenses/{LICENSE-selectize.txt → LICENSE-tom-select.txt} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c0195ef0a71f12d25336eeb7e50ddcf7a307480a34c778c884d805cb046068e
4
- data.tar.gz: '068f14c8b5c5df75a8638fd1f6354d9957f56fc3bf855944dadb23ce69aa336a'
3
+ metadata.gz: ec2b494fc5ea15a06d18125d5c9d9173ee84adedb30016f935225904b31dbd65
4
+ data.tar.gz: a6ea63deaff42cce760843f2171ef125e946b5a1f68f14f49ed2051b94f4d4d1
5
5
  SHA512:
6
- metadata.gz: 9fe14dbedbe3705c61339074437c2117d102d03a15050a3caaa9df4b2077937911891b01a1d4afd92ca432330191133a1f8e098d2695d050c00799a918badf82
7
- data.tar.gz: 074d5b2d452d90741a950257fb69b96b01f3e3d0b5ae5570a096d6a23e17d529322018b3d4ebad2ca5793fa77386d41c1472c22fa9a8f272c5026e5ccca4e618
6
+ metadata.gz: a777e72613329d828de10a17d6e43f2edeaf0ac9c84cc757372b19f8f63586c67866801e215aa67507a34c06b41c0e53c1c7316a5472d3a390addbec0c4259be
7
+ data.tar.gz: 43621f36af5f8069184ace5f0519c051de42fa5b367353614c34a3344203984221909aeb4f36852247e8ac909c2f03e7d9269cca493c669b0dcaef254b741946
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## 3.5.0 (2026-07-27)
2
+
3
+ - Fixed stored XSS vulnerability - [more info](https://github.com/ankane/blazer/security/advisories/GHSA-m5f6-4589-m89f)
4
+ - Added materialized views to table preview and schema page for Postgres
5
+ - Added support for ClickHouse
6
+ - Added `catalog` setting for Amazon Athena
7
+ - Improved support for Snowflake
8
+
9
+ ## 3.4.0 (2026-04-20)
10
+
11
+ - Dropped support for Ruby < 3.3 and Rails < 7.2
12
+
1
13
  ## 3.3.0 (2025-04-12)
2
14
 
3
15
  - Fixed error with forecasting with Rails 7.2+
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014-2025 Andrew Kane
1
+ Copyright (c) 2014-2026 Andrew Kane
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -172,7 +172,7 @@ CREATE ROLE blazer LOGIN PASSWORD 'secret';
172
172
  GRANT CONNECT ON DATABASE dbname TO blazer;
173
173
  GRANT USAGE ON SCHEMA public TO blazer;
174
174
  GRANT SELECT ON ALL TABLES IN SCHEMA public TO blazer;
175
- ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO blazer;
175
+ ALTER DEFAULT PRIVILEGES FOR ROLE migrations_role IN SCHEMA public GRANT SELECT ON TABLES TO blazer;
176
176
  COMMIT;
177
177
  ```
178
178
 
@@ -483,7 +483,7 @@ anomaly_checks: anomaly_detection
483
483
 
484
484
  ## Forecasting
485
485
 
486
- Blazer supports for two different forecasting methods. [Example](https://blazer.dokkuapp.com/queries/18-forecast?forecast=t)
486
+ Blazer supports for two different forecasting methods.
487
487
 
488
488
  A forecast link will appear for queries that return 2 columns with types timestamp and numeric.
489
489
 
@@ -575,6 +575,7 @@ data_sources:
575
575
  - [Apache Ignite](#apache-ignite)
576
576
  - [Apache Spark](#apache-spark)
577
577
  - [Cassandra](#cassandra)
578
+ - [ClickHouse](#clickhouse)
578
579
  - [Druid](#druid)
579
580
  - [Elasticsearch](#elasticsearch)
580
581
  - [Google BigQuery](#google-bigquery)
@@ -615,6 +616,7 @@ data_sources:
615
616
  # optional settings
616
617
  output_location: s3://some-bucket/
617
618
  workgroup: primary
619
+ catalog: s3tablescatalog/some-bucket
618
620
  access_key_id: ...
619
621
  secret_access_key: ...
620
622
  region: ...
@@ -730,6 +732,18 @@ data_sources:
730
732
 
731
733
  Use a [read-only role](https://docs.datastax.com/en/cql-oss/3.3/cql/cql_using/useSecurePermission.html).
732
734
 
735
+ ### ClickHouse
736
+
737
+ Set:
738
+
739
+ ```yml
740
+ data_sources:
741
+ my_source:
742
+ adapter: clickhouse
743
+ url: https://user:password@hostname:8443
744
+ database: default
745
+ ```
746
+
733
747
  ### Druid
734
748
 
735
749
  Enable [SQL support](https://druid.apache.org/docs/latest/querying/sql) on the broker and set:
@@ -894,34 +908,16 @@ Use a read-only user. Supports [SOQL](https://developer.salesforce.com/docs/atla
894
908
 
895
909
  ### Snowflake
896
910
 
897
- First, install ODBC. For Homebrew, use:
898
-
899
- ```sh
900
- brew install unixodbc
901
- ```
902
-
903
- For Ubuntu, use:
904
-
905
- ```sh
906
- sudo apt-get install unixodbc-dev
907
- ```
908
-
909
- For Heroku, use the [Apt buildpack](https://github.com/heroku/heroku-buildpack-apt) and create an `Aptfile` with:
910
-
911
- ```text
912
- unixodbc-dev
913
- https://sfc-repo.snowflakecomputing.com/odbc/linux/2.21.5/snowflake-odbc-2.21.5.x86_64.deb
914
- ```
915
-
916
- > This installs the driver at `/app/.apt/usr/lib/snowflake/odbc/lib/libSnowflake.so`
917
-
918
- Then, download the [Snowflake ODBC driver](https://docs.snowflake.com/developer-guide/odbc/odbc-download). Add [odbc_adapter](https://github.com/localytics/odbc_adapter) to your Gemfile and set:
911
+ Set:
919
912
 
920
913
  ```yml
921
914
  data_sources:
922
915
  my_source:
923
- adapter: snowflake
924
- conn_str: Driver=/path/to/libSnowflake.so;uid=user;pwd=password;server=host.snowflakecomputing.com
916
+ adapter: snowflake2
917
+ account_id: ...
918
+ database: ...
919
+ schema: PUBLIC
920
+ access_token: ...
925
921
  ```
926
922
 
927
923
  Use a [read-only role](https://docs.snowflake.com/en/user-guide/security-access-control-configure.html).
@@ -1032,19 +1028,13 @@ If views are stuck with a `Loading...` message, there might be a problem with st
1032
1028
  override_csp: true
1033
1029
  ```
1034
1030
 
1035
- ## Upgrading
1036
-
1037
- ### 3.0
1038
-
1039
- Maps now use Mapbox GL JS v1 instead of Mapbox.js, which affects Mapbox billing.
1040
-
1041
1031
  ## History
1042
1032
 
1043
1033
  View the [changelog](https://github.com/ankane/blazer/blob/master/CHANGELOG.md)
1044
1034
 
1045
1035
  ## Thanks
1046
1036
 
1047
- Blazer uses a number of awesome open source projects, including [Rails](https://github.com/rails/rails/), [Vue.js](https://github.com/vuejs/vue), [jQuery](https://github.com/jquery/jquery), [Bootstrap](https://github.com/twbs/bootstrap), [Selectize](https://github.com/brianreavis/selectize.js), [StickyTableHeaders](https://github.com/jmosbech/StickyTableHeaders), [Stupid jQuery Table Sort](https://github.com/joequery/Stupid-Table-Plugin), and [Date Range Picker](https://github.com/dangrossman/bootstrap-daterangepicker).
1037
+ Blazer uses a number of awesome open source projects, including [Rails](https://github.com/rails/rails), [Bootstrap](https://github.com/twbs/bootstrap), [Ace](https://github.com/ajaxorg/ace), [Chart.js](https://github.com/chartjs/Chart.js), [Moment.js](https://github.com/moment/moment), [Sortable](https://github.com/SortableJS/Sortable), [Tom Select](https://github.com/orchidjs/tom-select), and [Date Range Picker](https://github.com/dangrossman/daterangepicker).
1048
1038
 
1049
1039
  Demo data from [MovieLens](https://grouplens.org/datasets/movielens/).
1050
1040