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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: acfc146396c33697f24aa0e96d251c77fd94e2a5d10a8154dcff9df02a981ac8
|
4
|
+
data.tar.gz: 5290474635b58a4e35afd3c075726b24e75a6194acd691e5b90b5b3289f2b5f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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 => :
|
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: :
|
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: :
|
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: :
|
24
|
+
task index_info: :environment do
|
35
25
|
RailsPgExtras.index_info
|
36
26
|
end
|
37
27
|
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.
|
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-
|
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.
|
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.
|
26
|
+
version: 4.8.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rails
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|