rails-pg-extras 4.7.0 → 4.8.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80408a2c9f3f8e75d77405d2c702221ed8344e85a3fb1484d2563009ce8923c1
4
- data.tar.gz: 9888e136dfe03dd8566f2d1a3a15703003d2d9faeddd5fac3c756728108bcb86
3
+ metadata.gz: acfc146396c33697f24aa0e96d251c77fd94e2a5d10a8154dcff9df02a981ac8
4
+ data.tar.gz: 5290474635b58a4e35afd3c075726b24e75a6194acd691e5b90b5b3289f2b5f1
5
5
  SHA512:
6
- metadata.gz: 253d40f9bf6f6c0b717b581baba483e6068351651e6706177b4ffefaa41fc892dea9a0072af7632e01d071db85eb9d1376ba072ea61782d3aedf5ece90140e4d
7
- data.tar.gz: '019b8421a159330e4a0ecb88104dd5ba004516dc83efd88cb4496ed4da896941a789725d5737109c16ab64bb10e87da23f223690cb7215507632c880acef1c1d'
6
+ metadata.gz: 3db2562f135d7b904239f5481d5050f1404062b679fa9dc1399379bea58f66c981d7adadee8d5af34ff4e5c0ffc10f6cd1de2c3fab03923083c45fa11d24785b
7
+ data.tar.gz: 91b734c2c9bc9e6678d50def9cc4603e5444f35b16ec90514e14644954fa1d8d8e4b014c287dc2beb2cb9edfc3cadd29f517ad3f4fd42a37872304b91c5c553b
data/README.md CHANGED
@@ -119,7 +119,7 @@ You can enable UI using a Rails engine by adding the following code in `config/r
119
119
  mount RailsPgExtras::Web::Engine, at: 'pg_extras'
120
120
  ```
121
121
 
122
- You can enable HTTP basic auth by specifying `RAILS_PG_EXTRAS_USER` and `RAILS_PG_EXTRAS_PASSWORD` variables.
122
+ You can enable HTTP basic auth by specifying `RAILS_PG_EXTRAS_USER` and `RAILS_PG_EXTRAS_PASSWORD` variables. Authentication is mandatory unless you specify `RAILS_PG_EXTRAS_PUBLIC_DASHBOARD=true`.
123
123
 
124
124
  You can configure available web actions in `config/initializers/rails_pg_extras.rb`:
125
125
 
@@ -286,14 +286,14 @@ RailsPgExtras.locks
286
286
 
287
287
  $ rake pg_extras:locks
288
288
 
289
- procpid | relname | transactionid | granted | query_snippet | mode | age
290
- ---------+---------+---------------+---------+-----------------------+-------------------------------------
291
- 31776 | | | t | <IDLE> in transaction | ExclusiveLock | 00:19:29.837898
292
- 31776 | | 1294 | t | <IDLE> in transaction | RowExclusiveLock | 00:19:29.837898
293
- 31912 | | | t | select * from hello; | ExclusiveLock | 00:19:17.94259
294
- 3443 | | | t | +| ExclusiveLock | 00:00:00
295
- | | | | select +| |
296
- | | | | pg_stat_activi | |
289
+ procpid | relname | transactionid | granted | query_snippet | mode | age | application |
290
+ ---------+---------+---------------+---------+-----------------------+------------------------------------------------------
291
+ 31776 | | | t | <IDLE> in transaction | ExclusiveLock | 00:19:29.837898 | bin/rails
292
+ 31776 | | 1294 | t | <IDLE> in transaction | RowExclusiveLock | 00:19:29.837898 | bin/rails
293
+ 31912 | | | t | select * from hello; | ExclusiveLock | 00:19:17.94259 | bin/rails
294
+ 3443 | | | t | +| ExclusiveLock | 00:00:00 | bin/sidekiq
295
+ | | | | select +| | |
296
+ | | | | pg_stat_activi | | |
297
297
  (4 rows)
298
298
  ```
299
299
 
@@ -3,6 +3,7 @@ require "rails_pg_extras/version"
3
3
 
4
4
  module RailsPgExtras::Web
5
5
  class ApplicationController < ActionController::Base
6
+ before_action :validate_credentials!
6
7
  layout "rails_pg_extras/web/application"
7
8
 
8
9
  REQUIRED_EXTENSIONS = {
@@ -14,7 +15,13 @@ module RailsPgExtras::Web
14
15
  ACTIONS = %i[kill_all pg_stat_statements_reset add_extensions]
15
16
 
16
17
  if ENV['RAILS_PG_EXTRAS_USER'].present? && ENV['RAILS_PG_EXTRAS_PASSWORD'].present?
17
- http_basic_authenticate_with name: ENV['RAILS_PG_EXTRAS_USER'], password: ENV['RAILS_PG_EXTRAS_PASSWORD']
18
+ http_basic_authenticate_with name: ENV.fetch('RAILS_PG_EXTRAS_USER'), password: ENV.fetch('RAILS_PG_EXTRAS_PASSWORD')
19
+ end
20
+
21
+ def validate_credentials!
22
+ if (ENV['RAILS_PG_EXTRAS_USER'].blank? || ENV['RAILS_PG_EXTRAS_PASSWORD'].blank?) && ENV["RAILS_PG_EXTRAS_PUBLIC_DASHBOARD"] != "true"
23
+ raise "Missing credentials for rails-pg-extras dashboard! If you want to enable public dashboard please set RAILS_PG_EXTRAS_PUBLIC_DASHBOARD=true"
24
+ end
18
25
  end
19
26
  end
20
27
  end
@@ -3,35 +3,25 @@
3
3
  require 'rails-pg-extras'
4
4
 
5
5
  namespace :pg_extras do
6
- task :establish_connection do
7
- if ENV['DATABASE_URL'].present?
8
- ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'])
9
- else
10
- db_config_file = File.read('config/database.yml')
11
- db_config = YAML::load(ERB.new(db_config_file).result, aliases: true)
12
- ActiveRecord::Base.establish_connection(db_config[Rails.env])
13
- end
14
- end
15
-
16
6
  RailsPgExtras::QUERIES.each do |query_name|
17
7
  desc RubyPgExtras.description_for(query_name: query_name)
18
- task query_name.to_sym => :establish_connection do
8
+ task query_name.to_sym => :environment do
19
9
  RailsPgExtras.public_send(query_name)
20
10
  end
21
11
  end
22
12
 
23
13
  desc "Generate a PostgreSQL healthcheck report"
24
- task diagnose: :establish_connection do
14
+ task diagnose: :environment do
25
15
  RailsPgExtras.diagnose
26
16
  end
27
17
 
28
18
  desc "Display tables metadata metrics"
29
- task table_info: :establish_connection do
19
+ task table_info: :environment do
30
20
  RailsPgExtras.table_info
31
21
  end
32
22
 
33
23
  desc "Display indexes metadata metrics"
34
- task index_info: :establish_connection do
24
+ task index_info: :environment do
35
25
  RailsPgExtras.index_info
36
26
  end
37
27
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsPgExtras
4
- VERSION = "4.7.0"
4
+ VERSION = "4.8.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-pg-extras
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.7.0
4
+ version: 4.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - pawurb
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-12 00:00:00.000000000 Z
11
+ date: 2022-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-pg-extras
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 4.7.0
19
+ version: 4.8.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 4.7.0
26
+ version: 4.8.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rails
29
29
  requirement: !ruby/object:Gem::Requirement