rails-pg-extras 4.7.0 → 4.8.1
Sign up to get free protection for your applications and to get access to all the features.
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
|