blazer 3.4.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 (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +23 -27
  4. data/app/assets/javascripts/blazer/Sortable.js +826 -1162
  5. data/app/assets/javascripts/blazer/ace/ace.js +15775 -13360
  6. data/app/assets/javascripts/blazer/ace/ext-language_tools.js +1411 -668
  7. data/app/assets/javascripts/blazer/ace/mode-sql.js +12 -6
  8. data/app/assets/javascripts/blazer/ace/theme-twilight.js +3 -3
  9. data/app/assets/javascripts/blazer/application.js +94 -52
  10. data/app/assets/javascripts/blazer/chart.umd.js +6 -6
  11. data/app/assets/javascripts/blazer/daterangepicker.js +193 -199
  12. data/app/assets/javascripts/blazer/highlight.min.js +235 -373
  13. data/app/assets/javascripts/blazer/moment-timezone-with-data.js +116 -82
  14. data/app/assets/javascripts/blazer/moment.js +368 -365
  15. data/app/assets/javascripts/blazer/queries.js +68 -58
  16. data/app/assets/javascripts/blazer/routes.js +11 -11
  17. data/app/assets/javascripts/blazer/tablesort.js +42 -0
  18. data/app/assets/javascripts/blazer/tom-select.base.js +4175 -0
  19. data/app/assets/stylesheets/blazer/application.css +114 -5
  20. data/app/assets/stylesheets/blazer/tom-select.css +502 -0
  21. data/app/controllers/blazer/base_controller.rb +1 -1
  22. data/app/controllers/blazer/checks_controller.rb +5 -2
  23. data/app/controllers/blazer/queries_controller.rb +3 -1
  24. data/app/helpers/blazer/base_helper.rb +1 -1
  25. data/app/models/blazer/check.rb +35 -57
  26. data/app/views/blazer/_nav.html.erb +1 -1
  27. data/app/views/blazer/_variables.html.erb +57 -42
  28. data/app/views/blazer/checks/_form.html.erb +20 -16
  29. data/app/views/blazer/checks/index.html.erb +17 -20
  30. data/app/views/blazer/dashboards/_form.html.erb +63 -48
  31. data/app/views/blazer/dashboards/show.html.erb +23 -16
  32. data/app/views/blazer/queries/_caching.html.erb +1 -1
  33. data/app/views/blazer/queries/_chart.html.erb +8 -0
  34. data/app/views/blazer/queries/_form.html.erb +153 -180
  35. data/app/views/blazer/queries/_map.html.erb +8 -0
  36. data/app/views/blazer/queries/docs.html.erb +6 -6
  37. data/app/views/blazer/queries/edit.html.erb +1 -0
  38. data/app/views/blazer/queries/home.html.erb +101 -102
  39. data/app/views/blazer/queries/new.html.erb +1 -0
  40. data/app/views/blazer/queries/run.html.erb +23 -34
  41. data/app/views/blazer/queries/schema.html.erb +20 -20
  42. data/app/views/blazer/queries/show.html.erb +19 -12
  43. data/app/views/blazer/uploads/index.html.erb +10 -10
  44. data/app/views/layouts/blazer/application.html.erb +3 -3
  45. data/lib/blazer/adapters/athena_adapter.rb +12 -6
  46. data/lib/blazer/adapters/clickhouse_adapter.rb +136 -0
  47. data/lib/blazer/adapters/druid_adapter.rb +0 -2
  48. data/lib/blazer/adapters/snowflake2_adapter.rb +198 -0
  49. data/lib/blazer/adapters/soda_adapter.rb +0 -2
  50. data/lib/blazer/adapters/sql_adapter.rb +4 -0
  51. data/lib/blazer/adapters.rb +2 -0
  52. data/lib/blazer/check_types.rb +20 -0
  53. data/lib/blazer/email_notifier.rb +49 -0
  54. data/lib/blazer/result.rb +15 -0
  55. data/lib/blazer/slack_notifier.rb +39 -7
  56. data/lib/blazer/version.rb +1 -1
  57. data/lib/blazer.rb +32 -26
  58. data/lib/generators/blazer/templates/config.yml.tt +0 -2
  59. data/licenses/LICENSE-chart.js.txt +1 -1
  60. metadata +12 -31
  61. data/app/assets/javascripts/blazer/bootstrap.js +0 -2580
  62. data/app/assets/javascripts/blazer/jquery.js +0 -10872
  63. data/app/assets/javascripts/blazer/jquery.stickytableheaders.js +0 -325
  64. data/app/assets/javascripts/blazer/rails-ujs.js +0 -746
  65. data/app/assets/javascripts/blazer/selectize.js +0 -3891
  66. data/app/assets/javascripts/blazer/stupidtable-custom-settings.js +0 -13
  67. data/app/assets/javascripts/blazer/stupidtable.js +0 -281
  68. data/app/assets/javascripts/blazer/vue.global.prod.js +0 -1
  69. data/app/assets/stylesheets/blazer/selectize.css +0 -403
  70. data/licenses/LICENSE-jquery.txt +0 -20
  71. data/licenses/LICENSE-rails-ujs.txt +0 -20
  72. data/licenses/LICENSE-stickytableheaders.txt +0 -20
  73. data/licenses/LICENSE-stupidtable.txt +0 -19
  74. data/licenses/LICENSE-vue.txt +0 -21
  75. /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: 717cf6259ae43cc9f32cdba44075ae8d32bb76897a523d732337d7803ae408e2
4
- data.tar.gz: b9acca30cc99232f081f11481c107fbdb50b3b33927b4d36342dc2e993d28304
3
+ metadata.gz: ec2b494fc5ea15a06d18125d5c9d9173ee84adedb30016f935225904b31dbd65
4
+ data.tar.gz: a6ea63deaff42cce760843f2171ef125e946b5a1f68f14f49ed2051b94f4d4d1
5
5
  SHA512:
6
- metadata.gz: 9980122da968eae04e713274b18703b128da6c3d0c928a4661289970fe0b6e6e1ea01eac4080c67ab8e0b2eb9d6167f8fae0b2416202a5eef3f021828425adef
7
- data.tar.gz: ae4d1efc051458f6b3d9626ecee5414ebcc0bd39749d4518a834332348c5c914da4c6c7bc68328a95af070eddc323251fd9c0f1371cb53ebded19d5184ae08e8
6
+ metadata.gz: a777e72613329d828de10a17d6e43f2edeaf0ac9c84cc757372b19f8f63586c67866801e215aa67507a34c06b41c0e53c1c7316a5472d3a390addbec0c4259be
7
+ data.tar.gz: 43621f36af5f8069184ace5f0519c051de42fa5b367353614c34a3344203984221909aeb4f36852247e8ac909c2f03e7d9269cca493c669b0dcaef254b741946
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
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
+
1
9
  ## 3.4.0 (2026-04-20)
2
10
 
3
11
  - Dropped support for Ruby < 3.3 and Rails < 7.2
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).
@@ -1038,7 +1034,7 @@ View the [changelog](https://github.com/ankane/blazer/blob/master/CHANGELOG.md)
1038
1034
 
1039
1035
  ## Thanks
1040
1036
 
1041
- 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).
1042
1038
 
1043
1039
  Demo data from [MovieLens](https://grouplens.org/datasets/movielens/).
1044
1040