strongdm 6.2.1 → 6.3.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 +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-a7478d78e4c6471c95cbeb49374ac04dffb1510e.idx} +0 -0
- data/.git/objects/pack/{pack-9c15c03926d0fe38935c66657f11971674d15cb4.pack → pack-a7478d78e4c6471c95cbeb49374ac04dffb1510e.pack} +0 -0
- data/.git/packed-refs +4 -2
- data/.git/refs/heads/master +1 -1
- data/lib/grpc/options_pb.rb +1 -0
- data/lib/grpc/plumbing.rb +447 -0
- data/lib/grpc/secret_store_healths_pb.rb +72 -0
- data/lib/grpc/secret_store_healths_services_pb.rb +44 -0
- data/lib/grpc/secret_store_types_pb.rb +72 -0
- data/lib/models/porcelain.rb +376 -0
- data/lib/strongdm.rb +7 -1
- data/lib/svc.rb +91 -0
- data/lib/version +1 -1
- data/lib/version.rb +1 -1
- metadata +6 -4
@@ -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
|
@@ -32,8 +32,14 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
32
32
|
optional :delinea, :message, 2900, "v1.DelineaStore"
|
33
33
|
optional :gcp, :message, 201, "v1.GCPStore"
|
34
34
|
optional :vault_app_role, :message, 4, "v1.VaultAppRoleStore"
|
35
|
+
optional :vault_app_role_cert_ssh, :message, 94, "v1.VaultAppRoleCertSSHStore"
|
36
|
+
optional :vault_app_role_cert_x_509, :message, 95, "v1.VaultAppRoleCertX509Store"
|
35
37
|
optional :vault_tls, :message, 1, "v1.VaultTLSStore"
|
38
|
+
optional :vault_tls_cert_ssh, :message, 92, "v1.VaultTLSCertSSHStore"
|
39
|
+
optional :vault_tls_cert_x_509, :message, 93, "v1.VaultTLSCertX509Store"
|
36
40
|
optional :vault_token, :message, 2, "v1.VaultTokenStore"
|
41
|
+
optional :vault_token_cert_ssh, :message, 90, "v1.VaultTokenCertSSHStore"
|
42
|
+
optional :vault_token_cert_x_509, :message, 91, "v1.VaultTokenCertX509Store"
|
37
43
|
end
|
38
44
|
end
|
39
45
|
add_message "v1.AWSStore" do
|
@@ -86,6 +92,24 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
86
92
|
optional :server_address, :string, 3
|
87
93
|
optional :tags, :message, 8, "v1.Tags"
|
88
94
|
end
|
95
|
+
add_message "v1.VaultAppRoleCertSSHStore" do
|
96
|
+
optional :id, :string, 1
|
97
|
+
optional :name, :string, 2
|
98
|
+
optional :namespace, :string, 5
|
99
|
+
optional :server_address, :string, 3
|
100
|
+
optional :signing_role, :string, 7
|
101
|
+
optional :ssh_mount_point, :string, 6
|
102
|
+
optional :tags, :message, 8, "v1.Tags"
|
103
|
+
end
|
104
|
+
add_message "v1.VaultAppRoleCertX509Store" do
|
105
|
+
optional :id, :string, 1
|
106
|
+
optional :name, :string, 2
|
107
|
+
optional :namespace, :string, 5
|
108
|
+
optional :pki_mount_point, :string, 6
|
109
|
+
optional :server_address, :string, 3
|
110
|
+
optional :signing_role, :string, 7
|
111
|
+
optional :tags, :message, 8, "v1.Tags"
|
112
|
+
end
|
89
113
|
add_message "v1.VaultTLSStore" do
|
90
114
|
optional :id, :string, 1
|
91
115
|
optional :name, :string, 2
|
@@ -96,6 +120,30 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
96
120
|
optional :server_address, :string, 3
|
97
121
|
optional :tags, :message, 7, "v1.Tags"
|
98
122
|
end
|
123
|
+
add_message "v1.VaultTLSCertSSHStore" do
|
124
|
+
optional :id, :string, 1
|
125
|
+
optional :name, :string, 2
|
126
|
+
optional :CA_cert_path, :string, 4
|
127
|
+
optional :client_cert_path, :string, 5
|
128
|
+
optional :client_key_path, :string, 6
|
129
|
+
optional :namespace, :string, 8
|
130
|
+
optional :server_address, :string, 3
|
131
|
+
optional :signing_role, :string, 10
|
132
|
+
optional :ssh_mount_point, :string, 9
|
133
|
+
optional :tags, :message, 7, "v1.Tags"
|
134
|
+
end
|
135
|
+
add_message "v1.VaultTLSCertX509Store" do
|
136
|
+
optional :id, :string, 1
|
137
|
+
optional :name, :string, 2
|
138
|
+
optional :CA_cert_path, :string, 4
|
139
|
+
optional :client_cert_path, :string, 5
|
140
|
+
optional :client_key_path, :string, 6
|
141
|
+
optional :namespace, :string, 8
|
142
|
+
optional :pki_mount_point, :string, 9
|
143
|
+
optional :server_address, :string, 3
|
144
|
+
optional :signing_role, :string, 10
|
145
|
+
optional :tags, :message, 7, "v1.Tags"
|
146
|
+
end
|
99
147
|
add_message "v1.VaultTokenStore" do
|
100
148
|
optional :id, :string, 1
|
101
149
|
optional :name, :string, 2
|
@@ -103,6 +151,24 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
103
151
|
optional :server_address, :string, 3
|
104
152
|
optional :tags, :message, 4, "v1.Tags"
|
105
153
|
end
|
154
|
+
add_message "v1.VaultTokenCertSSHStore" do
|
155
|
+
optional :id, :string, 1
|
156
|
+
optional :name, :string, 2
|
157
|
+
optional :namespace, :string, 5
|
158
|
+
optional :server_address, :string, 3
|
159
|
+
optional :signing_role, :string, 7
|
160
|
+
optional :ssh_mount_point, :string, 6
|
161
|
+
optional :tags, :message, 4, "v1.Tags"
|
162
|
+
end
|
163
|
+
add_message "v1.VaultTokenCertX509Store" do
|
164
|
+
optional :id, :string, 1
|
165
|
+
optional :name, :string, 2
|
166
|
+
optional :namespace, :string, 5
|
167
|
+
optional :pki_mount_point, :string, 6
|
168
|
+
optional :server_address, :string, 3
|
169
|
+
optional :signing_role, :string, 7
|
170
|
+
optional :tags, :message, 4, "v1.Tags"
|
171
|
+
end
|
106
172
|
end
|
107
173
|
end
|
108
174
|
|
@@ -116,6 +182,12 @@ module V1
|
|
116
182
|
DelineaStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.DelineaStore").msgclass
|
117
183
|
GCPStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.GCPStore").msgclass
|
118
184
|
VaultAppRoleStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultAppRoleStore").msgclass
|
185
|
+
VaultAppRoleCertSSHStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultAppRoleCertSSHStore").msgclass
|
186
|
+
VaultAppRoleCertX509Store = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultAppRoleCertX509Store").msgclass
|
119
187
|
VaultTLSStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultTLSStore").msgclass
|
188
|
+
VaultTLSCertSSHStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultTLSCertSSHStore").msgclass
|
189
|
+
VaultTLSCertX509Store = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultTLSCertX509Store").msgclass
|
120
190
|
VaultTokenStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultTokenStore").msgclass
|
191
|
+
VaultTokenCertSSHStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultTokenCertSSHStore").msgclass
|
192
|
+
VaultTokenCertX509Store = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultTokenCertX509Store").msgclass
|
121
193
|
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.
|
@@ -9745,6 +9833,94 @@ module SDM
|
|
9745
9833
|
end
|
9746
9834
|
end
|
9747
9835
|
|
9836
|
+
# VaultAppRoleCertSSHStore is currently unstable, and its API may change, or it may be removed, without a major version bump.
|
9837
|
+
class VaultAppRoleCertSSHStore
|
9838
|
+
# Unique identifier of the SecretStore.
|
9839
|
+
attr_accessor :id
|
9840
|
+
# Unique human-readable name of the SecretStore.
|
9841
|
+
attr_accessor :name
|
9842
|
+
# The namespace to make requests within
|
9843
|
+
attr_accessor :namespace
|
9844
|
+
# The URL of the Vault to target
|
9845
|
+
attr_accessor :server_address
|
9846
|
+
# The signing role to be used for signing certificates
|
9847
|
+
attr_accessor :signing_role
|
9848
|
+
# The mount point of the SSH engine configured with the desired CA
|
9849
|
+
attr_accessor :ssh_mount_point
|
9850
|
+
# Tags is a map of key, value pairs.
|
9851
|
+
attr_accessor :tags
|
9852
|
+
|
9853
|
+
def initialize(
|
9854
|
+
id: nil,
|
9855
|
+
name: nil,
|
9856
|
+
namespace: nil,
|
9857
|
+
server_address: nil,
|
9858
|
+
signing_role: nil,
|
9859
|
+
ssh_mount_point: nil,
|
9860
|
+
tags: nil
|
9861
|
+
)
|
9862
|
+
@id = id == nil ? "" : id
|
9863
|
+
@name = name == nil ? "" : name
|
9864
|
+
@namespace = namespace == nil ? "" : namespace
|
9865
|
+
@server_address = server_address == nil ? "" : server_address
|
9866
|
+
@signing_role = signing_role == nil ? "" : signing_role
|
9867
|
+
@ssh_mount_point = ssh_mount_point == nil ? "" : ssh_mount_point
|
9868
|
+
@tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
|
9869
|
+
end
|
9870
|
+
|
9871
|
+
def to_json(options = {})
|
9872
|
+
hash = {}
|
9873
|
+
self.instance_variables.each do |var|
|
9874
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
9875
|
+
end
|
9876
|
+
hash.to_json
|
9877
|
+
end
|
9878
|
+
end
|
9879
|
+
|
9880
|
+
# VaultAppRoleCertX509Store is currently unstable, and its API may change, or it may be removed, without a major version bump.
|
9881
|
+
class VaultAppRoleCertX509Store
|
9882
|
+
# Unique identifier of the SecretStore.
|
9883
|
+
attr_accessor :id
|
9884
|
+
# Unique human-readable name of the SecretStore.
|
9885
|
+
attr_accessor :name
|
9886
|
+
# The namespace to make requests within
|
9887
|
+
attr_accessor :namespace
|
9888
|
+
# The mount point of the PKI engine configured with the desired CA
|
9889
|
+
attr_accessor :pki_mount_point
|
9890
|
+
# The URL of the Vault to target
|
9891
|
+
attr_accessor :server_address
|
9892
|
+
# The signing role to be used for signing certificates
|
9893
|
+
attr_accessor :signing_role
|
9894
|
+
# Tags is a map of key, value pairs.
|
9895
|
+
attr_accessor :tags
|
9896
|
+
|
9897
|
+
def initialize(
|
9898
|
+
id: nil,
|
9899
|
+
name: nil,
|
9900
|
+
namespace: nil,
|
9901
|
+
pki_mount_point: nil,
|
9902
|
+
server_address: nil,
|
9903
|
+
signing_role: nil,
|
9904
|
+
tags: nil
|
9905
|
+
)
|
9906
|
+
@id = id == nil ? "" : id
|
9907
|
+
@name = name == nil ? "" : name
|
9908
|
+
@namespace = namespace == nil ? "" : namespace
|
9909
|
+
@pki_mount_point = pki_mount_point == nil ? "" : pki_mount_point
|
9910
|
+
@server_address = server_address == nil ? "" : server_address
|
9911
|
+
@signing_role = signing_role == nil ? "" : signing_role
|
9912
|
+
@tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
|
9913
|
+
end
|
9914
|
+
|
9915
|
+
def to_json(options = {})
|
9916
|
+
hash = {}
|
9917
|
+
self.instance_variables.each do |var|
|
9918
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
9919
|
+
end
|
9920
|
+
hash.to_json
|
9921
|
+
end
|
9922
|
+
end
|
9923
|
+
|
9748
9924
|
class VaultAppRoleStore
|
9749
9925
|
# Unique identifier of the SecretStore.
|
9750
9926
|
attr_accessor :id
|
@@ -9780,6 +9956,118 @@ module SDM
|
|
9780
9956
|
end
|
9781
9957
|
end
|
9782
9958
|
|
9959
|
+
# VaultTLSCertSSHStore is currently unstable, and its API may change, or it may be removed, without a major version bump.
|
9960
|
+
class VaultTLSCertSSHStore
|
9961
|
+
# A path to a CA file accessible by a Node
|
9962
|
+
attr_accessor :ca_cert_path
|
9963
|
+
# A path to a client certificate file accessible by a Node
|
9964
|
+
attr_accessor :client_cert_path
|
9965
|
+
# A path to a client key file accessible by a Node
|
9966
|
+
attr_accessor :client_key_path
|
9967
|
+
# Unique identifier of the SecretStore.
|
9968
|
+
attr_accessor :id
|
9969
|
+
# Unique human-readable name of the SecretStore.
|
9970
|
+
attr_accessor :name
|
9971
|
+
# The namespace to make requests within
|
9972
|
+
attr_accessor :namespace
|
9973
|
+
# The URL of the Vault to target
|
9974
|
+
attr_accessor :server_address
|
9975
|
+
# The signing role to be used for signing certificates
|
9976
|
+
attr_accessor :signing_role
|
9977
|
+
# The mount point of the SSH engine configured with the desired CA
|
9978
|
+
attr_accessor :ssh_mount_point
|
9979
|
+
# Tags is a map of key, value pairs.
|
9980
|
+
attr_accessor :tags
|
9981
|
+
|
9982
|
+
def initialize(
|
9983
|
+
ca_cert_path: nil,
|
9984
|
+
client_cert_path: nil,
|
9985
|
+
client_key_path: nil,
|
9986
|
+
id: nil,
|
9987
|
+
name: nil,
|
9988
|
+
namespace: nil,
|
9989
|
+
server_address: nil,
|
9990
|
+
signing_role: nil,
|
9991
|
+
ssh_mount_point: nil,
|
9992
|
+
tags: nil
|
9993
|
+
)
|
9994
|
+
@ca_cert_path = ca_cert_path == nil ? "" : ca_cert_path
|
9995
|
+
@client_cert_path = client_cert_path == nil ? "" : client_cert_path
|
9996
|
+
@client_key_path = client_key_path == nil ? "" : client_key_path
|
9997
|
+
@id = id == nil ? "" : id
|
9998
|
+
@name = name == nil ? "" : name
|
9999
|
+
@namespace = namespace == nil ? "" : namespace
|
10000
|
+
@server_address = server_address == nil ? "" : server_address
|
10001
|
+
@signing_role = signing_role == nil ? "" : signing_role
|
10002
|
+
@ssh_mount_point = ssh_mount_point == nil ? "" : ssh_mount_point
|
10003
|
+
@tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
|
10004
|
+
end
|
10005
|
+
|
10006
|
+
def to_json(options = {})
|
10007
|
+
hash = {}
|
10008
|
+
self.instance_variables.each do |var|
|
10009
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
10010
|
+
end
|
10011
|
+
hash.to_json
|
10012
|
+
end
|
10013
|
+
end
|
10014
|
+
|
10015
|
+
# VaultTLSCertX509Store is currently unstable, and its API may change, or it may be removed, without a major version bump.
|
10016
|
+
class VaultTLSCertX509Store
|
10017
|
+
# A path to a CA file accessible by a Node
|
10018
|
+
attr_accessor :ca_cert_path
|
10019
|
+
# A path to a client certificate file accessible by a Node
|
10020
|
+
attr_accessor :client_cert_path
|
10021
|
+
# A path to a client key file accessible by a Node
|
10022
|
+
attr_accessor :client_key_path
|
10023
|
+
# Unique identifier of the SecretStore.
|
10024
|
+
attr_accessor :id
|
10025
|
+
# Unique human-readable name of the SecretStore.
|
10026
|
+
attr_accessor :name
|
10027
|
+
# The namespace to make requests within
|
10028
|
+
attr_accessor :namespace
|
10029
|
+
# The mount point of the PKI engine configured with the desired CA
|
10030
|
+
attr_accessor :pki_mount_point
|
10031
|
+
# The URL of the Vault to target
|
10032
|
+
attr_accessor :server_address
|
10033
|
+
# The signing role to be used for signing certificates
|
10034
|
+
attr_accessor :signing_role
|
10035
|
+
# Tags is a map of key, value pairs.
|
10036
|
+
attr_accessor :tags
|
10037
|
+
|
10038
|
+
def initialize(
|
10039
|
+
ca_cert_path: nil,
|
10040
|
+
client_cert_path: nil,
|
10041
|
+
client_key_path: nil,
|
10042
|
+
id: nil,
|
10043
|
+
name: nil,
|
10044
|
+
namespace: nil,
|
10045
|
+
pki_mount_point: nil,
|
10046
|
+
server_address: nil,
|
10047
|
+
signing_role: nil,
|
10048
|
+
tags: nil
|
10049
|
+
)
|
10050
|
+
@ca_cert_path = ca_cert_path == nil ? "" : ca_cert_path
|
10051
|
+
@client_cert_path = client_cert_path == nil ? "" : client_cert_path
|
10052
|
+
@client_key_path = client_key_path == nil ? "" : client_key_path
|
10053
|
+
@id = id == nil ? "" : id
|
10054
|
+
@name = name == nil ? "" : name
|
10055
|
+
@namespace = namespace == nil ? "" : namespace
|
10056
|
+
@pki_mount_point = pki_mount_point == nil ? "" : pki_mount_point
|
10057
|
+
@server_address = server_address == nil ? "" : server_address
|
10058
|
+
@signing_role = signing_role == nil ? "" : signing_role
|
10059
|
+
@tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
|
10060
|
+
end
|
10061
|
+
|
10062
|
+
def to_json(options = {})
|
10063
|
+
hash = {}
|
10064
|
+
self.instance_variables.each do |var|
|
10065
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
10066
|
+
end
|
10067
|
+
hash.to_json
|
10068
|
+
end
|
10069
|
+
end
|
10070
|
+
|
9783
10071
|
class VaultTLSStore
|
9784
10072
|
# A path to a CA file accessible by a Node
|
9785
10073
|
attr_accessor :ca_cert_path
|
@@ -9827,6 +10115,94 @@ module SDM
|
|
9827
10115
|
end
|
9828
10116
|
end
|
9829
10117
|
|
10118
|
+
# VaultTokenCertSSHStore is currently unstable, and its API may change, or it may be removed, without a major version bump.
|
10119
|
+
class VaultTokenCertSSHStore
|
10120
|
+
# Unique identifier of the SecretStore.
|
10121
|
+
attr_accessor :id
|
10122
|
+
# Unique human-readable name of the SecretStore.
|
10123
|
+
attr_accessor :name
|
10124
|
+
# The namespace to make requests within
|
10125
|
+
attr_accessor :namespace
|
10126
|
+
# The URL of the Vault to target
|
10127
|
+
attr_accessor :server_address
|
10128
|
+
# The signing role to be used for signing certificates
|
10129
|
+
attr_accessor :signing_role
|
10130
|
+
# The mount point of the SSH engine configured with the desired CA
|
10131
|
+
attr_accessor :ssh_mount_point
|
10132
|
+
# Tags is a map of key, value pairs.
|
10133
|
+
attr_accessor :tags
|
10134
|
+
|
10135
|
+
def initialize(
|
10136
|
+
id: nil,
|
10137
|
+
name: nil,
|
10138
|
+
namespace: nil,
|
10139
|
+
server_address: nil,
|
10140
|
+
signing_role: nil,
|
10141
|
+
ssh_mount_point: nil,
|
10142
|
+
tags: nil
|
10143
|
+
)
|
10144
|
+
@id = id == nil ? "" : id
|
10145
|
+
@name = name == nil ? "" : name
|
10146
|
+
@namespace = namespace == nil ? "" : namespace
|
10147
|
+
@server_address = server_address == nil ? "" : server_address
|
10148
|
+
@signing_role = signing_role == nil ? "" : signing_role
|
10149
|
+
@ssh_mount_point = ssh_mount_point == nil ? "" : ssh_mount_point
|
10150
|
+
@tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
|
10151
|
+
end
|
10152
|
+
|
10153
|
+
def to_json(options = {})
|
10154
|
+
hash = {}
|
10155
|
+
self.instance_variables.each do |var|
|
10156
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
10157
|
+
end
|
10158
|
+
hash.to_json
|
10159
|
+
end
|
10160
|
+
end
|
10161
|
+
|
10162
|
+
# VaultTokenCertX509Store is currently unstable, and its API may change, or it may be removed, without a major version bump.
|
10163
|
+
class VaultTokenCertX509Store
|
10164
|
+
# Unique identifier of the SecretStore.
|
10165
|
+
attr_accessor :id
|
10166
|
+
# Unique human-readable name of the SecretStore.
|
10167
|
+
attr_accessor :name
|
10168
|
+
# The namespace to make requests within
|
10169
|
+
attr_accessor :namespace
|
10170
|
+
# The mount point of the PKI engine configured with the desired CA
|
10171
|
+
attr_accessor :pki_mount_point
|
10172
|
+
# The URL of the Vault to target
|
10173
|
+
attr_accessor :server_address
|
10174
|
+
# The signing role to be used for signing certificates
|
10175
|
+
attr_accessor :signing_role
|
10176
|
+
# Tags is a map of key, value pairs.
|
10177
|
+
attr_accessor :tags
|
10178
|
+
|
10179
|
+
def initialize(
|
10180
|
+
id: nil,
|
10181
|
+
name: nil,
|
10182
|
+
namespace: nil,
|
10183
|
+
pki_mount_point: nil,
|
10184
|
+
server_address: nil,
|
10185
|
+
signing_role: nil,
|
10186
|
+
tags: nil
|
10187
|
+
)
|
10188
|
+
@id = id == nil ? "" : id
|
10189
|
+
@name = name == nil ? "" : name
|
10190
|
+
@namespace = namespace == nil ? "" : namespace
|
10191
|
+
@pki_mount_point = pki_mount_point == nil ? "" : pki_mount_point
|
10192
|
+
@server_address = server_address == nil ? "" : server_address
|
10193
|
+
@signing_role = signing_role == nil ? "" : signing_role
|
10194
|
+
@tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
|
10195
|
+
end
|
10196
|
+
|
10197
|
+
def to_json(options = {})
|
10198
|
+
hash = {}
|
10199
|
+
self.instance_variables.each do |var|
|
10200
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
10201
|
+
end
|
10202
|
+
hash.to_json
|
10203
|
+
end
|
10204
|
+
end
|
10205
|
+
|
9830
10206
|
class VaultTokenStore
|
9831
10207
|
# Unique identifier of the SecretStore.
|
9832
10208
|
attr_accessor :id
|
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.1"
|
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:
|
@@ -3678,8 +3763,14 @@ module SDM #:nodoc:
|
|
3678
3763
|
# {DelineaStore}
|
3679
3764
|
# {GCPStore}
|
3680
3765
|
# {VaultAppRoleStore}
|
3766
|
+
# {VaultAppRoleCertSSHStore}
|
3767
|
+
# {VaultAppRoleCertX509Store}
|
3681
3768
|
# {VaultTLSStore}
|
3769
|
+
# {VaultTLSCertSSHStore}
|
3770
|
+
# {VaultTLSCertX509Store}
|
3682
3771
|
# {VaultTokenStore}
|
3772
|
+
# {VaultTokenCertSSHStore}
|
3773
|
+
# {VaultTokenCertX509Store}
|
3683
3774
|
class SecretStores
|
3684
3775
|
extend Gem::Deprecate
|
3685
3776
|
|