strongdm 6.2.1 → 6.3.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.
- checksums.yaml +4 -4
- data/.git/ORIG_HEAD +1 -1
- data/.git/index +0 -0
- data/.git/logs/HEAD +3 -3
- data/.git/logs/refs/heads/master +2 -2
- data/.git/logs/refs/remotes/origin/HEAD +1 -1
- data/.git/objects/pack/{pack-9c15c03926d0fe38935c66657f11971674d15cb4.idx → pack-937ee306e3b4fe54045c0d7b71751845270470b4.idx} +0 -0
- data/.git/objects/pack/{pack-9c15c03926d0fe38935c66657f11971674d15cb4.pack → pack-937ee306e3b4fe54045c0d7b71751845270470b4.pack} +0 -0
- data/.git/packed-refs +3 -2
- data/.git/refs/heads/master +1 -1
- data/lib/grpc/options_pb.rb +1 -0
- data/lib/grpc/plumbing.rb +123 -0
- data/lib/grpc/secret_store_healths_pb.rb +72 -0
- data/lib/grpc/secret_store_healths_services_pb.rb +44 -0
- data/lib/models/porcelain.rb +88 -0
- data/lib/strongdm.rb +7 -1
- data/lib/svc.rb +85 -0
- data/lib/version +1 -1
- data/lib/version.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 526ac91fc752ec31eadddb747f4fd3288e0606ac07036913e0040b2789f59260
|
|
4
|
+
data.tar.gz: 6848e19adbe420ab7dc09d5aa1e53677fe6fb3012ebce67b968c41b35a6e274a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7efe1e6bba5e718bd6b6cf78370c9931f8aa42da305b160c6c0c0714960f90209ba815e6637be0e62ed7c5c8a099cf07a7609454068aa1fc5689dc9fa357a0b5
|
|
7
|
+
data.tar.gz: 3c08acf70d911a4816dc454279e6a03031dba21a5d521e5ccfcb4383270460afdb58bf8899226cd5dc8caca1c8fe837f4e356925cb08aaae0261af81be285285
|
data/.git/ORIG_HEAD
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
f4af6ebad8174f8e5aeec63536db9290597a3982
|
data/.git/index
CHANGED
|
Binary file
|
data/.git/logs/HEAD
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
0000000000000000000000000000000000000000 f4af6ebad8174f8e5aeec63536db9290597a3982 sdmrelease <support@strongdm.com> 1706204253 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
2
|
+
f4af6ebad8174f8e5aeec63536db9290597a3982 f4af6ebad8174f8e5aeec63536db9290597a3982 sdmrelease <support@strongdm.com> 1706204253 +0000 checkout: moving from master to master
|
|
3
|
+
f4af6ebad8174f8e5aeec63536db9290597a3982 59ba0e6392d2e7f5f4c053e663766157c9a9b149 sdmrelease <support@strongdm.com> 1706204253 +0000 merge origin/development: Fast-forward
|
data/.git/logs/refs/heads/master
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
2
|
-
|
|
1
|
+
0000000000000000000000000000000000000000 f4af6ebad8174f8e5aeec63536db9290597a3982 sdmrelease <support@strongdm.com> 1706204253 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
2
|
+
f4af6ebad8174f8e5aeec63536db9290597a3982 59ba0e6392d2e7f5f4c053e663766157c9a9b149 sdmrelease <support@strongdm.com> 1706204253 +0000 merge origin/development: Fast-forward
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
1
|
+
0000000000000000000000000000000000000000 f4af6ebad8174f8e5aeec63536db9290597a3982 sdmrelease <support@strongdm.com> 1706204253 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
Binary file
|
|
Binary file
|
data/.git/packed-refs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# pack-refs with: peeled fully-peeled sorted
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
59ba0e6392d2e7f5f4c053e663766157c9a9b149 refs/remotes/origin/development
|
|
3
|
+
f4af6ebad8174f8e5aeec63536db9290597a3982 refs/remotes/origin/master
|
|
4
4
|
2e4fe8087177ddea9b3991ca499f758384839c89 refs/tags/untagged-84fd83a4484c785cce63
|
|
5
5
|
04f604866214fab4d5663b5171a3e596331577bd refs/tags/v0.9.4
|
|
6
6
|
6f9a7b75b345c65fb554884907b7060680c807b7 refs/tags/v0.9.5
|
|
@@ -92,3 +92,4 @@ b724d5bc9ad45c3fbfa394653415d4b7a97ae071 refs/tags/v6.0.0
|
|
|
92
92
|
da1cd910d138b56624af0d2fa2d92d8acec5edca refs/tags/v6.0.1
|
|
93
93
|
296fd9e80fd98a5dd3dcaaccde49e33ea5578967 refs/tags/v6.1.0
|
|
94
94
|
d8f6c24d93d0cf5e48ccc7bf7a5ead950a7b0614 refs/tags/v6.2.0
|
|
95
|
+
f4af6ebad8174f8e5aeec63536db9290597a3982 refs/tags/v6.2.1
|
data/.git/refs/heads/master
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
59ba0e6392d2e7f5f4c053e663766157c9a9b149
|
data/lib/grpc/options_pb.rb
CHANGED
|
@@ -35,6 +35,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
|
35
35
|
optional :method, :string, 1941300
|
|
36
36
|
optional :url, :string, 1941301
|
|
37
37
|
optional :deprecation_date, :string, 1941302
|
|
38
|
+
repeated :targets, :string, 1941401
|
|
38
39
|
end
|
|
39
40
|
add_message "v1.MessageOptions" do
|
|
40
41
|
optional :porcelain, :bool, 1941301
|
data/lib/grpc/plumbing.rb
CHANGED
|
@@ -55,6 +55,7 @@ require_relative "./role_resources_pb"
|
|
|
55
55
|
require_relative "./role_resources_history_pb"
|
|
56
56
|
require_relative "./roles_pb"
|
|
57
57
|
require_relative "./roles_history_pb"
|
|
58
|
+
require_relative "./secret_store_healths_pb"
|
|
58
59
|
require_relative "./secret_store_types_pb"
|
|
59
60
|
require_relative "./secret_stores_pb"
|
|
60
61
|
require_relative "./secret_stores_history_pb"
|
|
@@ -9622,6 +9623,128 @@ module SDM
|
|
|
9622
9623
|
end
|
|
9623
9624
|
items
|
|
9624
9625
|
end
|
|
9626
|
+
def self.convert_secret_store_health_to_porcelain(plumbing)
|
|
9627
|
+
if plumbing == nil
|
|
9628
|
+
return nil
|
|
9629
|
+
end
|
|
9630
|
+
porcelain = SecretStoreHealth.new()
|
|
9631
|
+
porcelain.changed_at = convert_timestamp_to_porcelain(plumbing.changed_at)
|
|
9632
|
+
porcelain.checked_at = convert_timestamp_to_porcelain(plumbing.checked_at)
|
|
9633
|
+
porcelain.error = (plumbing.error)
|
|
9634
|
+
porcelain.flags = (plumbing.flags)
|
|
9635
|
+
porcelain.node_id = (plumbing.node_id)
|
|
9636
|
+
porcelain.reachability = (plumbing.reachability)
|
|
9637
|
+
porcelain.secret_store_id = (plumbing.secret_store_id)
|
|
9638
|
+
porcelain.status = (plumbing.status)
|
|
9639
|
+
porcelain
|
|
9640
|
+
end
|
|
9641
|
+
|
|
9642
|
+
def self.convert_secret_store_health_to_plumbing(porcelain)
|
|
9643
|
+
if porcelain == nil
|
|
9644
|
+
return nil
|
|
9645
|
+
end
|
|
9646
|
+
plumbing = V1::SecretStoreHealth.new()
|
|
9647
|
+
plumbing.changed_at = convert_timestamp_to_plumbing(porcelain.changed_at)
|
|
9648
|
+
plumbing.checked_at = convert_timestamp_to_plumbing(porcelain.checked_at)
|
|
9649
|
+
plumbing.error = (porcelain.error)
|
|
9650
|
+
plumbing.flags += (porcelain.flags)
|
|
9651
|
+
plumbing.node_id = (porcelain.node_id)
|
|
9652
|
+
plumbing.reachability = (porcelain.reachability)
|
|
9653
|
+
plumbing.secret_store_id = (porcelain.secret_store_id)
|
|
9654
|
+
plumbing.status = (porcelain.status)
|
|
9655
|
+
plumbing
|
|
9656
|
+
end
|
|
9657
|
+
def self.convert_repeated_secret_store_health_to_plumbing(porcelains)
|
|
9658
|
+
items = Array.new
|
|
9659
|
+
porcelains.each do |porcelain|
|
|
9660
|
+
plumbing = convert_secret_store_health_to_plumbing(porcelain)
|
|
9661
|
+
items.append(plumbing)
|
|
9662
|
+
end
|
|
9663
|
+
items
|
|
9664
|
+
end
|
|
9665
|
+
|
|
9666
|
+
def self.convert_repeated_secret_store_health_to_porcelain(plumbings)
|
|
9667
|
+
items = Array.new
|
|
9668
|
+
plumbings.each do |plumbing|
|
|
9669
|
+
porcelain = convert_secret_store_health_to_porcelain(plumbing)
|
|
9670
|
+
items.append(porcelain)
|
|
9671
|
+
end
|
|
9672
|
+
items
|
|
9673
|
+
end
|
|
9674
|
+
def self.convert_secret_store_health_list_response_to_porcelain(plumbing)
|
|
9675
|
+
if plumbing == nil
|
|
9676
|
+
return nil
|
|
9677
|
+
end
|
|
9678
|
+
porcelain = SecretStoreHealthListResponse.new()
|
|
9679
|
+
porcelain.meta = convert_list_response_metadata_to_porcelain(plumbing.meta)
|
|
9680
|
+
porcelain.rate_limit = convert_rate_limit_metadata_to_porcelain(plumbing.rate_limit)
|
|
9681
|
+
porcelain.secret_store_healths = convert_repeated_secret_store_health_to_porcelain(plumbing.secret_store_healths)
|
|
9682
|
+
porcelain
|
|
9683
|
+
end
|
|
9684
|
+
|
|
9685
|
+
def self.convert_secret_store_health_list_response_to_plumbing(porcelain)
|
|
9686
|
+
if porcelain == nil
|
|
9687
|
+
return nil
|
|
9688
|
+
end
|
|
9689
|
+
plumbing = V1::SecretStoreHealthListResponse.new()
|
|
9690
|
+
plumbing.meta = convert_list_response_metadata_to_plumbing(porcelain.meta)
|
|
9691
|
+
plumbing.rate_limit = convert_rate_limit_metadata_to_plumbing(porcelain.rate_limit)
|
|
9692
|
+
plumbing.secret_store_healths += convert_repeated_secret_store_health_to_plumbing(porcelain.secret_store_healths)
|
|
9693
|
+
plumbing
|
|
9694
|
+
end
|
|
9695
|
+
def self.convert_repeated_secret_store_health_list_response_to_plumbing(porcelains)
|
|
9696
|
+
items = Array.new
|
|
9697
|
+
porcelains.each do |porcelain|
|
|
9698
|
+
plumbing = convert_secret_store_health_list_response_to_plumbing(porcelain)
|
|
9699
|
+
items.append(plumbing)
|
|
9700
|
+
end
|
|
9701
|
+
items
|
|
9702
|
+
end
|
|
9703
|
+
|
|
9704
|
+
def self.convert_repeated_secret_store_health_list_response_to_porcelain(plumbings)
|
|
9705
|
+
items = Array.new
|
|
9706
|
+
plumbings.each do |plumbing|
|
|
9707
|
+
porcelain = convert_secret_store_health_list_response_to_porcelain(plumbing)
|
|
9708
|
+
items.append(porcelain)
|
|
9709
|
+
end
|
|
9710
|
+
items
|
|
9711
|
+
end
|
|
9712
|
+
def self.convert_secret_store_healthcheck_response_to_porcelain(plumbing)
|
|
9713
|
+
if plumbing == nil
|
|
9714
|
+
return nil
|
|
9715
|
+
end
|
|
9716
|
+
porcelain = SecretStoreHealthcheckResponse.new()
|
|
9717
|
+
porcelain.meta = convert_create_response_metadata_to_porcelain(plumbing.meta)
|
|
9718
|
+
porcelain.rate_limit = convert_rate_limit_metadata_to_porcelain(plumbing.rate_limit)
|
|
9719
|
+
porcelain
|
|
9720
|
+
end
|
|
9721
|
+
|
|
9722
|
+
def self.convert_secret_store_healthcheck_response_to_plumbing(porcelain)
|
|
9723
|
+
if porcelain == nil
|
|
9724
|
+
return nil
|
|
9725
|
+
end
|
|
9726
|
+
plumbing = V1::SecretStoreHealthcheckResponse.new()
|
|
9727
|
+
plumbing.meta = convert_create_response_metadata_to_plumbing(porcelain.meta)
|
|
9728
|
+
plumbing.rate_limit = convert_rate_limit_metadata_to_plumbing(porcelain.rate_limit)
|
|
9729
|
+
plumbing
|
|
9730
|
+
end
|
|
9731
|
+
def self.convert_repeated_secret_store_healthcheck_response_to_plumbing(porcelains)
|
|
9732
|
+
items = Array.new
|
|
9733
|
+
porcelains.each do |porcelain|
|
|
9734
|
+
plumbing = convert_secret_store_healthcheck_response_to_plumbing(porcelain)
|
|
9735
|
+
items.append(plumbing)
|
|
9736
|
+
end
|
|
9737
|
+
items
|
|
9738
|
+
end
|
|
9739
|
+
|
|
9740
|
+
def self.convert_repeated_secret_store_healthcheck_response_to_porcelain(plumbings)
|
|
9741
|
+
items = Array.new
|
|
9742
|
+
plumbings.each do |plumbing|
|
|
9743
|
+
porcelain = convert_secret_store_healthcheck_response_to_porcelain(plumbing)
|
|
9744
|
+
items.append(porcelain)
|
|
9745
|
+
end
|
|
9746
|
+
items
|
|
9747
|
+
end
|
|
9625
9748
|
def self.convert_secret_store_history_to_porcelain(plumbing)
|
|
9626
9749
|
if plumbing == nil
|
|
9627
9750
|
return nil
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Copyright 2020 StrongDM Inc
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
#
|
|
15
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
16
|
+
# source: secret_store_healths.proto
|
|
17
|
+
|
|
18
|
+
require "google/protobuf"
|
|
19
|
+
|
|
20
|
+
require "options_pb"
|
|
21
|
+
require "google/protobuf/timestamp_pb"
|
|
22
|
+
require "spec_pb"
|
|
23
|
+
|
|
24
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
25
|
+
add_file("secret_store_healths.proto", :syntax => :proto3) do
|
|
26
|
+
add_message "v1.SecretStoreHealthListRequest" do
|
|
27
|
+
optional :meta, :message, 1, "v1.ListRequestMetadata"
|
|
28
|
+
optional :filter, :string, 2
|
|
29
|
+
end
|
|
30
|
+
add_message "v1.SecretStoreHealthListResponse" do
|
|
31
|
+
optional :meta, :message, 1, "v1.ListResponseMetadata"
|
|
32
|
+
repeated :secret_store_healths, :message, 2, "v1.SecretStoreHealth"
|
|
33
|
+
optional :rate_limit, :message, 3, "v1.RateLimitMetadata"
|
|
34
|
+
end
|
|
35
|
+
add_message "v1.SecretStoreHealthCheckRequest" do
|
|
36
|
+
optional :meta, :message, 1, "v1.CreateRequestMetadata"
|
|
37
|
+
optional :secret_store_id, :string, 2
|
|
38
|
+
end
|
|
39
|
+
add_message "v1.SecretStoreHealthcheckRequest" do
|
|
40
|
+
optional :meta, :message, 1, "v1.CreateRequestMetadata"
|
|
41
|
+
optional :secret_store_id, :string, 2
|
|
42
|
+
end
|
|
43
|
+
add_message "v1.SecretStoreHealthCheckResponse" do
|
|
44
|
+
optional :meta, :message, 1, "v1.CreateResponseMetadata"
|
|
45
|
+
optional :rate_limit, :message, 2, "v1.RateLimitMetadata"
|
|
46
|
+
end
|
|
47
|
+
add_message "v1.SecretStoreHealthcheckResponse" do
|
|
48
|
+
optional :meta, :message, 1, "v1.CreateResponseMetadata"
|
|
49
|
+
optional :rate_limit, :message, 2, "v1.RateLimitMetadata"
|
|
50
|
+
end
|
|
51
|
+
add_message "v1.SecretStoreHealth" do
|
|
52
|
+
optional :secret_store_id, :string, 1
|
|
53
|
+
optional :node_id, :string, 2
|
|
54
|
+
optional :status, :string, 4
|
|
55
|
+
optional :changed_at, :message, 6, "google.protobuf.Timestamp"
|
|
56
|
+
optional :checked_at, :message, 7, "google.protobuf.Timestamp"
|
|
57
|
+
optional :error, :string, 8
|
|
58
|
+
optional :reachability, :string, 9
|
|
59
|
+
repeated :flags, :string, 10
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
module V1
|
|
65
|
+
SecretStoreHealthListRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.SecretStoreHealthListRequest").msgclass
|
|
66
|
+
SecretStoreHealthListResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.SecretStoreHealthListResponse").msgclass
|
|
67
|
+
SecretStoreHealthCheckRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.SecretStoreHealthCheckRequest").msgclass
|
|
68
|
+
SecretStoreHealthcheckRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.SecretStoreHealthcheckRequest").msgclass
|
|
69
|
+
SecretStoreHealthCheckResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.SecretStoreHealthCheckResponse").msgclass
|
|
70
|
+
SecretStoreHealthcheckResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.SecretStoreHealthcheckResponse").msgclass
|
|
71
|
+
SecretStoreHealth = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.SecretStoreHealth").msgclass
|
|
72
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Copyright 2020 StrongDM Inc
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
#
|
|
15
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
16
|
+
# Source: secret_store_healths.proto for package 'v1'
|
|
17
|
+
|
|
18
|
+
require "grpc"
|
|
19
|
+
require "secret_store_healths_pb"
|
|
20
|
+
|
|
21
|
+
module V1
|
|
22
|
+
module SecretStoreHealths
|
|
23
|
+
# SecretStoreHealths exposes health states for secret stores.
|
|
24
|
+
class Service
|
|
25
|
+
include ::GRPC::GenericService
|
|
26
|
+
|
|
27
|
+
self.marshal_class_method = :encode
|
|
28
|
+
self.unmarshal_class_method = :decode
|
|
29
|
+
self.service_name = "v1.SecretStoreHealths"
|
|
30
|
+
|
|
31
|
+
# List reports the health status of node to secret store pairs.
|
|
32
|
+
rpc :List, ::V1::SecretStoreHealthListRequest, ::V1::SecretStoreHealthListResponse
|
|
33
|
+
# Check pushes a healthcheck request for a secret store
|
|
34
|
+
# Deprecated: use Healthcheck instead
|
|
35
|
+
rpc :Check, ::V1::SecretStoreHealthCheckRequest, ::V1::SecretStoreHealthCheckResponse
|
|
36
|
+
# Healthcheck triggers a remote healthcheck request for a secret store. It may take minutes
|
|
37
|
+
# to propagate across a large network of Nodes. The call will return immediately, and the
|
|
38
|
+
# updated health of the Secret Store can be retrieved via List.
|
|
39
|
+
rpc :Healthcheck, ::V1::SecretStoreHealthcheckRequest, ::V1::SecretStoreHealthcheckResponse
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
Stub = Service.rpc_stub_class
|
|
43
|
+
end
|
|
44
|
+
end
|
data/lib/models/porcelain.rb
CHANGED
|
@@ -9076,6 +9076,94 @@ module SDM
|
|
|
9076
9076
|
end
|
|
9077
9077
|
end
|
|
9078
9078
|
|
|
9079
|
+
# SecretStoreHealth denotes a secret store's health status. Note a secret store is not
|
|
9080
|
+
# healthy in terms of a simple boolean, but rather healthy with respect to a particular node
|
|
9081
|
+
# or set of nodes.
|
|
9082
|
+
class SecretStoreHealth
|
|
9083
|
+
# The time when the status last changed
|
|
9084
|
+
attr_accessor :changed_at
|
|
9085
|
+
# The time when the status was last checked by the node
|
|
9086
|
+
attr_accessor :checked_at
|
|
9087
|
+
# The error associated with this health check, if it occurred after reachability checks succeeded.
|
|
9088
|
+
attr_accessor :error
|
|
9089
|
+
# Any specific status or error flags associated with this health check.
|
|
9090
|
+
attr_accessor :flags
|
|
9091
|
+
# Associated node id for this health
|
|
9092
|
+
attr_accessor :node_id
|
|
9093
|
+
# The error associated with this health check, if it occurred during reachability checks.
|
|
9094
|
+
attr_accessor :reachability
|
|
9095
|
+
# Associated secret store for this health
|
|
9096
|
+
attr_accessor :secret_store_id
|
|
9097
|
+
# The status of the link between the node and secret store
|
|
9098
|
+
attr_accessor :status
|
|
9099
|
+
|
|
9100
|
+
def initialize(
|
|
9101
|
+
changed_at: nil,
|
|
9102
|
+
checked_at: nil,
|
|
9103
|
+
error: nil,
|
|
9104
|
+
flags: nil,
|
|
9105
|
+
node_id: nil,
|
|
9106
|
+
reachability: nil,
|
|
9107
|
+
secret_store_id: nil,
|
|
9108
|
+
status: nil
|
|
9109
|
+
)
|
|
9110
|
+
@changed_at = changed_at == nil ? nil : changed_at
|
|
9111
|
+
@checked_at = checked_at == nil ? nil : checked_at
|
|
9112
|
+
@error = error == nil ? "" : error
|
|
9113
|
+
@flags = flags == nil ? [] : flags
|
|
9114
|
+
@node_id = node_id == nil ? "" : node_id
|
|
9115
|
+
@reachability = reachability == nil ? "" : reachability
|
|
9116
|
+
@secret_store_id = secret_store_id == nil ? "" : secret_store_id
|
|
9117
|
+
@status = status == nil ? "" : status
|
|
9118
|
+
end
|
|
9119
|
+
|
|
9120
|
+
def to_json(options = {})
|
|
9121
|
+
hash = {}
|
|
9122
|
+
self.instance_variables.each do |var|
|
|
9123
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
9124
|
+
end
|
|
9125
|
+
hash.to_json
|
|
9126
|
+
end
|
|
9127
|
+
end
|
|
9128
|
+
|
|
9129
|
+
class SecretStoreHealthListResponse
|
|
9130
|
+
# Rate limit information.
|
|
9131
|
+
attr_accessor :rate_limit
|
|
9132
|
+
|
|
9133
|
+
def initialize(
|
|
9134
|
+
rate_limit: nil
|
|
9135
|
+
)
|
|
9136
|
+
@rate_limit = rate_limit == nil ? nil : rate_limit
|
|
9137
|
+
end
|
|
9138
|
+
|
|
9139
|
+
def to_json(options = {})
|
|
9140
|
+
hash = {}
|
|
9141
|
+
self.instance_variables.each do |var|
|
|
9142
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
9143
|
+
end
|
|
9144
|
+
hash.to_json
|
|
9145
|
+
end
|
|
9146
|
+
end
|
|
9147
|
+
|
|
9148
|
+
class SecretStoreHealthcheckResponse
|
|
9149
|
+
# Rate limit information.
|
|
9150
|
+
attr_accessor :rate_limit
|
|
9151
|
+
|
|
9152
|
+
def initialize(
|
|
9153
|
+
rate_limit: nil
|
|
9154
|
+
)
|
|
9155
|
+
@rate_limit = rate_limit == nil ? nil : rate_limit
|
|
9156
|
+
end
|
|
9157
|
+
|
|
9158
|
+
def to_json(options = {})
|
|
9159
|
+
hash = {}
|
|
9160
|
+
self.instance_variables.each do |var|
|
|
9161
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
9162
|
+
end
|
|
9163
|
+
hash.to_json
|
|
9164
|
+
end
|
|
9165
|
+
end
|
|
9166
|
+
|
|
9079
9167
|
# SecretStoreHistory records the state of a SecretStore at a given point in time,
|
|
9080
9168
|
# where every change (create, update and delete) to a SecretStore produces an
|
|
9081
9169
|
# SecretStoreHistory record.
|
data/lib/strongdm.rb
CHANGED
|
@@ -29,7 +29,7 @@ module SDM #:nodoc:
|
|
|
29
29
|
DEFAULT_BASE_RETRY_DELAY = 0.0030 # 30 ms
|
|
30
30
|
DEFAULT_MAX_RETRY_DELAY = 300 # 300 seconds
|
|
31
31
|
API_VERSION = "2021-08-23"
|
|
32
|
-
USER_AGENT = "strongdm-sdk-ruby/6.
|
|
32
|
+
USER_AGENT = "strongdm-sdk-ruby/6.3.0"
|
|
33
33
|
private_constant :DEFAULT_MAX_RETRIES, :DEFAULT_BASE_RETRY_DELAY, :DEFAULT_MAX_RETRY_DELAY, :API_VERSION, :USER_AGENT
|
|
34
34
|
|
|
35
35
|
# Creates a new strongDM API client.
|
|
@@ -88,6 +88,7 @@ module SDM #:nodoc:
|
|
|
88
88
|
@role_resources_history = RoleResourcesHistory.new(@channel, self)
|
|
89
89
|
@roles = Roles.new(@channel, self)
|
|
90
90
|
@roles_history = RolesHistory.new(@channel, self)
|
|
91
|
+
@secret_store_healths = SecretStoreHealths.new(@channel, self)
|
|
91
92
|
@secret_stores = SecretStores.new(@channel, self)
|
|
92
93
|
@secret_stores_history = SecretStoresHistory.new(@channel, self)
|
|
93
94
|
@workflow_approvers = WorkflowApprovers.new(@channel, self)
|
|
@@ -336,6 +337,10 @@ module SDM #:nodoc:
|
|
|
336
337
|
#
|
|
337
338
|
# See {RolesHistory}.
|
|
338
339
|
attr_reader :roles_history
|
|
340
|
+
# SecretStoreHealths exposes health states for secret stores.
|
|
341
|
+
#
|
|
342
|
+
# See {SecretStoreHealths}.
|
|
343
|
+
attr_reader :secret_store_healths
|
|
339
344
|
# SecretStores are servers where resource secrets (passwords, keys) are stored.
|
|
340
345
|
#
|
|
341
346
|
# See {SecretStores}.
|
|
@@ -421,6 +426,7 @@ module SDM #:nodoc:
|
|
|
421
426
|
@role_resources_history = RoleResourcesHistory.new(@channel, self)
|
|
422
427
|
@roles = Roles.new(@channel, self)
|
|
423
428
|
@roles_history = RolesHistory.new(@channel, self)
|
|
429
|
+
@secret_store_healths = SecretStoreHealths.new(@channel, self)
|
|
424
430
|
@secret_stores = SecretStores.new(@channel, self)
|
|
425
431
|
@secret_stores_history = SecretStoresHistory.new(@channel, self)
|
|
426
432
|
@workflow_approvers = WorkflowApprovers.new(@channel, self)
|
data/lib/svc.rb
CHANGED
|
@@ -3667,6 +3667,91 @@ module SDM #:nodoc:
|
|
|
3667
3667
|
end
|
|
3668
3668
|
end
|
|
3669
3669
|
|
|
3670
|
+
# SecretStoreHealths exposes health states for secret stores.
|
|
3671
|
+
#
|
|
3672
|
+
# See {SecretStoreHealth}.
|
|
3673
|
+
class SecretStoreHealths
|
|
3674
|
+
extend Gem::Deprecate
|
|
3675
|
+
|
|
3676
|
+
def initialize(channel, parent)
|
|
3677
|
+
begin
|
|
3678
|
+
@stub = V1::SecretStoreHealths::Stub.new(nil, nil, channel_override: channel)
|
|
3679
|
+
rescue => exception
|
|
3680
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
|
3681
|
+
end
|
|
3682
|
+
@parent = parent
|
|
3683
|
+
end
|
|
3684
|
+
|
|
3685
|
+
# List reports the health status of node to secret store pairs.
|
|
3686
|
+
def list(
|
|
3687
|
+
filter,
|
|
3688
|
+
*args,
|
|
3689
|
+
deadline: nil
|
|
3690
|
+
)
|
|
3691
|
+
req = V1::SecretStoreHealthListRequest.new()
|
|
3692
|
+
req.meta = V1::ListRequestMetadata.new()
|
|
3693
|
+
if @parent.page_limit > 0
|
|
3694
|
+
req.meta.limit = @parent.page_limit
|
|
3695
|
+
end
|
|
3696
|
+
if not @parent.snapshot_time.nil?
|
|
3697
|
+
req.meta.snapshot_at = @parent.snapshot_time
|
|
3698
|
+
end
|
|
3699
|
+
|
|
3700
|
+
req.filter = Plumbing::quote_filter_args(filter, *args)
|
|
3701
|
+
resp = Enumerator::Generator.new { |g|
|
|
3702
|
+
tries = 0
|
|
3703
|
+
loop do
|
|
3704
|
+
begin
|
|
3705
|
+
plumbing_response = @stub.list(req, metadata: @parent.get_metadata("SecretStoreHealths.List", req), deadline: deadline)
|
|
3706
|
+
rescue => exception
|
|
3707
|
+
if (@parent.shouldRetry(tries, exception))
|
|
3708
|
+
tries + +@parent.jitterSleep(tries)
|
|
3709
|
+
next
|
|
3710
|
+
end
|
|
3711
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
|
3712
|
+
end
|
|
3713
|
+
tries = 0
|
|
3714
|
+
plumbing_response.secret_store_healths.each do |plumbing_item|
|
|
3715
|
+
g.yield Plumbing::convert_secret_store_health_to_porcelain(plumbing_item)
|
|
3716
|
+
end
|
|
3717
|
+
break if plumbing_response.meta.next_cursor == ""
|
|
3718
|
+
req.meta.cursor = plumbing_response.meta.next_cursor
|
|
3719
|
+
end
|
|
3720
|
+
}
|
|
3721
|
+
resp
|
|
3722
|
+
end
|
|
3723
|
+
|
|
3724
|
+
# Healthcheck triggers a remote healthcheck request for a secret store. It may take minutes
|
|
3725
|
+
# to propagate across a large network of Nodes. The call will return immediately, and the
|
|
3726
|
+
# updated health of the Secret Store can be retrieved via List.
|
|
3727
|
+
def healthcheck(
|
|
3728
|
+
secret_store_id,
|
|
3729
|
+
deadline: nil
|
|
3730
|
+
)
|
|
3731
|
+
req = V1::SecretStoreHealthcheckRequest.new()
|
|
3732
|
+
|
|
3733
|
+
req.secret_store_id = (secret_store_id)
|
|
3734
|
+
tries = 0
|
|
3735
|
+
plumbing_response = nil
|
|
3736
|
+
loop do
|
|
3737
|
+
begin
|
|
3738
|
+
plumbing_response = @stub.healthcheck(req, metadata: @parent.get_metadata("SecretStoreHealths.Healthcheck", req), deadline: deadline)
|
|
3739
|
+
rescue => exception
|
|
3740
|
+
if (@parent.shouldRetry(tries, exception))
|
|
3741
|
+
tries + +@parent.jitterSleep(tries)
|
|
3742
|
+
next
|
|
3743
|
+
end
|
|
3744
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
|
3745
|
+
end
|
|
3746
|
+
break
|
|
3747
|
+
end
|
|
3748
|
+
|
|
3749
|
+
resp = SecretStoreHealthcheckResponse.new()
|
|
3750
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
|
3751
|
+
resp
|
|
3752
|
+
end
|
|
3753
|
+
end
|
|
3754
|
+
|
|
3670
3755
|
# SecretStores are servers where resource secrets (passwords, keys) are stored.
|
|
3671
3756
|
#
|
|
3672
3757
|
# See:
|
data/lib/version
CHANGED
data/lib/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: strongdm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 6.
|
|
4
|
+
version: 6.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- strongDM Team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-01-
|
|
11
|
+
date: 2024-01-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: grpc
|
|
@@ -81,8 +81,8 @@ files:
|
|
|
81
81
|
- "./.git/logs/HEAD"
|
|
82
82
|
- "./.git/logs/refs/heads/master"
|
|
83
83
|
- "./.git/logs/refs/remotes/origin/HEAD"
|
|
84
|
-
- "./.git/objects/pack/pack-
|
|
85
|
-
- "./.git/objects/pack/pack-
|
|
84
|
+
- "./.git/objects/pack/pack-937ee306e3b4fe54045c0d7b71751845270470b4.idx"
|
|
85
|
+
- "./.git/objects/pack/pack-937ee306e3b4fe54045c0d7b71751845270470b4.pack"
|
|
86
86
|
- "./.git/packed-refs"
|
|
87
87
|
- "./.git/refs/heads/master"
|
|
88
88
|
- "./.git/refs/remotes/origin/HEAD"
|
|
@@ -161,6 +161,8 @@ files:
|
|
|
161
161
|
- "./lib/grpc/roles_history_services_pb.rb"
|
|
162
162
|
- "./lib/grpc/roles_pb.rb"
|
|
163
163
|
- "./lib/grpc/roles_services_pb.rb"
|
|
164
|
+
- "./lib/grpc/secret_store_healths_pb.rb"
|
|
165
|
+
- "./lib/grpc/secret_store_healths_services_pb.rb"
|
|
164
166
|
- "./lib/grpc/secret_store_types_pb.rb"
|
|
165
167
|
- "./lib/grpc/secret_stores_history_pb.rb"
|
|
166
168
|
- "./lib/grpc/secret_stores_history_services_pb.rb"
|