strongdm 1.0.12 → 1.0.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/SDM/AKS.html +21 -3
- data/doc/SDM/AKSBasicAuth.html +21 -3
- data/doc/SDM/AKSServiceAccount.html +21 -3
- data/doc/SDM/{DB2.html → AWS.html} +46 -46
- data/doc/SDM/AWSStore.html +283 -0
- data/doc/SDM/AccessRuleCreateResponse.html +267 -0
- data/doc/SDM/AccessRuleDeleteResponse.html +249 -0
- data/doc/SDM/AccessRuleUpdateResponse.html +267 -0
- data/doc/SDM/AccountAttachment.html +2 -2
- data/doc/SDM/AccountAttachmentCreateResponse.html +2 -2
- data/doc/SDM/AccountAttachmentDeleteResponse.html +2 -2
- data/doc/SDM/AccountAttachmentGetResponse.html +2 -2
- data/doc/SDM/AccountCreateResponse.html +2 -2
- data/doc/SDM/AccountDeleteResponse.html +2 -2
- data/doc/SDM/AccountGetResponse.html +2 -2
- data/doc/SDM/AccountGrant.html +2 -2
- data/doc/SDM/AccountGrantCreateResponse.html +2 -2
- data/doc/SDM/AccountGrantDeleteResponse.html +2 -2
- data/doc/SDM/AccountGrantGetResponse.html +2 -2
- data/doc/SDM/AccountUpdateResponse.html +2 -2
- data/doc/SDM/AmazonEKS.html +39 -3
- data/doc/SDM/AmazonES.html +57 -3
- data/doc/SDM/Athena.html +57 -3
- data/doc/SDM/AuroraMysql.html +21 -3
- data/doc/SDM/AuroraPostgres.html +21 -3
- data/doc/SDM/BigQuery.html +21 -3
- data/doc/SDM/Cassandra.html +21 -3
- data/doc/SDM/Citus.html +21 -3
- data/doc/SDM/Client.html +37 -6
- data/doc/SDM/Clustrix.html +21 -3
- data/doc/SDM/Cockroach.html +21 -3
- data/doc/SDM/ControlPanel.html +236 -0
- data/doc/SDM/ControlPanelGetSSHCAPublicKeyResponse.html +267 -0
- data/doc/SDM/DB2LUW.html +21 -3
- data/doc/SDM/DB2i.html +21 -3
- data/doc/SDM/Druid.html +21 -3
- data/doc/SDM/DynamoDB.html +57 -3
- data/doc/SDM/Elastic.html +21 -3
- data/doc/SDM/ElasticacheRedis.html +21 -3
- data/doc/SDM/Gateway.html +2 -2
- data/doc/SDM/GoogleGKE.html +21 -3
- data/doc/SDM/Greenplum.html +21 -3
- data/doc/SDM/HTTPAuth.html +21 -3
- data/doc/SDM/HTTPBasicAuth.html +21 -3
- data/doc/SDM/HTTPNoAuth.html +21 -3
- data/doc/SDM/Kubernetes.html +21 -3
- data/doc/SDM/KubernetesBasicAuth.html +21 -3
- data/doc/SDM/KubernetesServiceAccount.html +21 -3
- data/doc/SDM/Maria.html +21 -3
- data/doc/SDM/Memcached.html +21 -3
- data/doc/SDM/Memsql.html +21 -3
- data/doc/SDM/MongoHost.html +21 -3
- data/doc/SDM/MongoLegacyHost.html +21 -3
- data/doc/SDM/MongoLegacyReplicaset.html +21 -3
- data/doc/SDM/MongoReplicaSet.html +21 -3
- data/doc/SDM/Mysql.html +21 -3
- data/doc/SDM/NodeCreateResponse.html +2 -2
- data/doc/SDM/NodeDeleteResponse.html +2 -2
- data/doc/SDM/NodeGetResponse.html +2 -2
- data/doc/SDM/NodeUpdateResponse.html +2 -2
- data/doc/SDM/Nodes.html +6 -6
- data/doc/SDM/Oracle.html +21 -3
- data/doc/SDM/Plumbing.html +3126 -1160
- data/doc/SDM/Postgres.html +21 -3
- data/doc/SDM/Presto.html +21 -3
- data/doc/SDM/RDP.html +21 -3
- data/doc/SDM/Redis.html +21 -3
- data/doc/SDM/Redshift.html +21 -3
- data/doc/SDM/Relay.html +2 -2
- data/doc/SDM/ResourceCreateResponse.html +2 -2
- data/doc/SDM/ResourceDeleteResponse.html +2 -2
- data/doc/SDM/ResourceGetResponse.html +2 -2
- data/doc/SDM/ResourceUpdateResponse.html +2 -2
- data/doc/SDM/Resources.html +74 -6
- data/doc/SDM/Role.html +2 -2
- data/doc/SDM/RoleAttachment.html +2 -2
- data/doc/SDM/RoleAttachmentCreateResponse.html +2 -2
- data/doc/SDM/RoleAttachmentDeleteResponse.html +2 -2
- data/doc/SDM/RoleAttachmentGetResponse.html +2 -2
- data/doc/SDM/RoleAttachments.html +5 -5
- data/doc/SDM/RoleCreateResponse.html +2 -2
- data/doc/SDM/RoleDeleteResponse.html +2 -2
- data/doc/SDM/RoleGetResponse.html +2 -2
- data/doc/SDM/RoleGrant.html +2 -2
- data/doc/SDM/RoleGrantCreateResponse.html +2 -2
- data/doc/SDM/RoleGrantDeleteResponse.html +2 -2
- data/doc/SDM/RoleGrantGetResponse.html +2 -2
- data/doc/SDM/RoleGrants.html +5 -5
- data/doc/SDM/RoleUpdateResponse.html +2 -2
- data/doc/SDM/Roles.html +6 -6
- data/doc/SDM/SQLServer.html +21 -3
- data/doc/SDM/SSH.html +21 -3
- data/doc/SDM/SSHCert.html +21 -3
- data/doc/SDM/SecretStore.html +303 -0
- data/doc/SDM/SecretStoreCreateResponse.html +267 -0
- data/doc/SDM/SecretStoreDeleteResponse.html +249 -0
- data/doc/SDM/SecretStoreGetResponse.html +267 -0
- data/doc/SDM/SecretStoreUpdateResponse.html +267 -0
- data/doc/SDM/SecretStores.html +492 -0
- data/doc/SDM/Service.html +2 -2
- data/doc/SDM/Snowflake.html +21 -3
- data/doc/SDM/Sybase.html +21 -3
- data/doc/SDM/SybaseIQ.html +21 -3
- data/doc/SDM/Tag.html +247 -0
- data/doc/SDM/Teradata.html +21 -3
- data/doc/SDM/User.html +2 -2
- data/doc/SDM/VaultTLSStore.html +337 -0
- data/doc/SDM/VaultTokenStore.html +283 -0
- data/doc/V1.html +325 -0
- data/doc/V1/AccessRules.html +113 -0
- data/doc/V1/AccessRules/Service.html +119 -0
- data/doc/V1/Audits.html +113 -0
- data/doc/V1/Audits/Service.html +119 -0
- data/doc/V1/BuildsPrivate.html +113 -0
- data/doc/V1/BuildsPrivate/Service.html +119 -0
- data/doc/V1/ControlPanel.html +113 -0
- data/doc/V1/ControlPanel/Service.html +119 -0
- data/doc/V1/DemoProvisioningRequests.html +113 -0
- data/doc/V1/DemoProvisioningRequests/Service.html +119 -0
- data/doc/V1/SecretStoreHealths.html +113 -0
- data/doc/V1/SecretStoreHealths/Service.html +119 -0
- data/doc/V1/SecretStores.html +113 -0
- data/doc/V1/SecretStores/Service.html +119 -0
- data/doc/created.rid +52 -35
- data/doc/index.html +52 -0
- data/doc/js/navigation.js.gz +0 -0
- data/doc/js/search_index.js +1 -1
- data/doc/js/search_index.js.gz +0 -0
- data/doc/js/searcher.js.gz +0 -0
- data/doc/lib/version.html +1 -1
- data/doc/table_of_contents.html +989 -494
- data/lib/grpc/account_attachments_pb.rb +0 -2
- data/lib/grpc/account_attachments_services_pb.rb +4 -4
- data/lib/grpc/account_grants_pb.rb +0 -2
- data/lib/grpc/account_grants_services_pb.rb +4 -4
- data/lib/grpc/accounts_pb.rb +0 -2
- data/lib/grpc/accounts_services_pb.rb +5 -5
- data/lib/grpc/control_panel_pb.rb +38 -0
- data/lib/grpc/control_panel_services_pb.rb +37 -0
- data/lib/grpc/demo_provisioning_requests_pb.rb +93 -0
- data/lib/grpc/demo_provisioning_requests_services_pb.rb +49 -0
- data/lib/grpc/drivers_pb.rb +69 -1
- data/lib/grpc/nodes_pb.rb +0 -2
- data/lib/grpc/nodes_services_pb.rb +5 -5
- data/lib/grpc/options_pb.rb +18 -0
- data/lib/grpc/plumbing.rb +571 -1
- data/lib/grpc/resources_pb.rb +12 -1
- data/lib/grpc/resources_services_pb.rb +7 -5
- data/lib/grpc/role_attachments_pb.rb +0 -2
- data/lib/grpc/role_attachments_services_pb.rb +4 -4
- data/lib/grpc/role_grants_pb.rb +0 -2
- data/lib/grpc/role_grants_services_pb.rb +4 -4
- data/lib/grpc/roles_pb.rb +0 -2
- data/lib/grpc/roles_services_pb.rb +5 -5
- data/lib/grpc/secret_store_types_pb.rb +60 -0
- data/lib/grpc/secret_stores_pb.rb +84 -0
- data/lib/grpc/secret_stores_services_pb.rb +44 -0
- data/lib/grpc/spec_pb.rb +6 -0
- data/lib/grpc/tags_pb.rb +5 -0
- data/lib/models/porcelain.rb +736 -3
- data/lib/strongdm.rb +11 -2
- data/lib/svc.rb +254 -0
- data/lib/version +1 -1
- data/lib/version.rb +1 -1
- metadata +39 -4
- data/lib/grpc/protoc-gen-swagger/options/annotations_pb.rb +0 -15
data/lib/strongdm.rb
CHANGED
@@ -29,19 +29,24 @@ module SDM
|
|
29
29
|
class Client
|
30
30
|
# Creates a new strongDM API client.
|
31
31
|
def initialize(api_access_key, api_secret_key, host: "api.strongdm.com:443", insecure: false)
|
32
|
-
|
33
|
-
|
32
|
+
raise TypeError, "client access key must be a string" unless api_access_key.kind_of?(String)
|
33
|
+
raise TypeError, "client secret key must be a string" unless api_secret_key.kind_of?(String)
|
34
|
+
raise TypeError, "client host must be a string" unless host.kind_of?(String)
|
35
|
+
@api_access_key = api_access_key.strip
|
36
|
+
@api_secret_key = Base64.strict_decode64(api_secret_key.strip)
|
34
37
|
@max_retries = DEFAULT_MAX_RETRIES
|
35
38
|
@base_retry_delay = DEFAULT_BASE_RETRY_DELAY
|
36
39
|
@max_retry_delay = DEFAULT_MAX_RETRY_DELAY
|
37
40
|
@account_attachments = AccountAttachments.new(host, insecure, self)
|
38
41
|
@account_grants = AccountGrants.new(host, insecure, self)
|
39
42
|
@accounts = Accounts.new(host, insecure, self)
|
43
|
+
@control_panel = ControlPanel.new(host, insecure, self)
|
40
44
|
@nodes = Nodes.new(host, insecure, self)
|
41
45
|
@resources = Resources.new(host, insecure, self)
|
42
46
|
@role_attachments = RoleAttachments.new(host, insecure, self)
|
43
47
|
@role_grants = RoleGrants.new(host, insecure, self)
|
44
48
|
@roles = Roles.new(host, insecure, self)
|
49
|
+
@secret_stores = SecretStores.new(host, insecure, self)
|
45
50
|
@_test_options = Hash.new
|
46
51
|
end
|
47
52
|
|
@@ -98,6 +103,8 @@ module SDM
|
|
98
103
|
# 1. **Users:** humans who are authenticated through username and password or SSO.
|
99
104
|
# 2. **Service Accounts:** machines that are authenticated using a service token.
|
100
105
|
attr_reader :accounts
|
106
|
+
# ControlPanel contains all administrative controls.
|
107
|
+
attr_reader :control_panel
|
101
108
|
# Nodes make up the strongDM network, and allow your users to connect securely to your resources. There are two types of nodes:
|
102
109
|
# - **Gateways** are the entry points into network. They listen for connection from the strongDM client, and provide access to databases and servers.
|
103
110
|
# - **Relays** are used to extend the strongDM network into segmented subnets. They provide access to databases and servers but do not listen for incoming connections.
|
@@ -120,6 +127,8 @@ module SDM
|
|
120
127
|
# grant access to the combined resources associated with a set of child roles.
|
121
128
|
# Each user can be a member of one Role or composite role.
|
122
129
|
attr_reader :roles
|
130
|
+
# SecretStores are servers where resource secrets (passwords, keys) are stored.
|
131
|
+
attr_reader :secret_stores
|
123
132
|
attr_reader :_test_options
|
124
133
|
end
|
125
134
|
end
|
data/lib/svc.rb
CHANGED
@@ -486,6 +486,51 @@ module SDM
|
|
486
486
|
end
|
487
487
|
end
|
488
488
|
|
489
|
+
# ControlPanel contains all administrative controls.
|
490
|
+
class ControlPanel
|
491
|
+
def initialize(host, insecure, parent)
|
492
|
+
begin
|
493
|
+
if insecure
|
494
|
+
@stub = V1::ControlPanel::Stub.new(host, :this_channel_is_insecure)
|
495
|
+
else
|
496
|
+
cred = GRPC::Core::ChannelCredentials.new()
|
497
|
+
@stub = V1::ControlPanel::Stub.new(host, cred)
|
498
|
+
end
|
499
|
+
rescue => exception
|
500
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
501
|
+
end
|
502
|
+
@parent = parent
|
503
|
+
end
|
504
|
+
|
505
|
+
# GetSSHCAPublicKey retrieves the SSH CA public key.
|
506
|
+
def get_sshca_public_key(
|
507
|
+
deadline: nil
|
508
|
+
)
|
509
|
+
req = V1::ControlPanelGetSSHCAPublicKeyRequest.new()
|
510
|
+
|
511
|
+
tries = 0
|
512
|
+
plumbing_response = nil
|
513
|
+
loop do
|
514
|
+
begin
|
515
|
+
plumbing_response = @stub.get_sshca_public_key(req, metadata: @parent.get_metadata("ControlPanel.GetSSHCAPublicKey", req), deadline: deadline)
|
516
|
+
rescue => exception
|
517
|
+
if (@parent.shouldRetry(tries, exception))
|
518
|
+
tries + +@parent.jitterSleep(tries)
|
519
|
+
next
|
520
|
+
end
|
521
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
522
|
+
end
|
523
|
+
break
|
524
|
+
end
|
525
|
+
|
526
|
+
resp = ControlPanelGetSSHCAPublicKeyResponse.new()
|
527
|
+
resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
|
528
|
+
resp.public_key = (plumbing_response.public_key)
|
529
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
530
|
+
resp
|
531
|
+
end
|
532
|
+
end
|
533
|
+
|
489
534
|
# Nodes make up the strongDM network, and allow your users to connect securely to your resources. There are two types of nodes:
|
490
535
|
# - **Gateways** are the entry points into network. They listen for connection from the strongDM client, and provide access to databases and servers.
|
491
536
|
# - **Relays** are used to extend the strongDM network into segmented subnets. They provide access to databases and servers but do not listen for incoming connections.
|
@@ -677,6 +722,43 @@ module SDM
|
|
677
722
|
@parent = parent
|
678
723
|
end
|
679
724
|
|
725
|
+
# EnumerateTags gets a list of the filter matching tags.
|
726
|
+
def enumerate_tags(
|
727
|
+
filter,
|
728
|
+
*args,
|
729
|
+
deadline: nil
|
730
|
+
)
|
731
|
+
req = V1::EnumerateTagsRequest.new()
|
732
|
+
req.meta = V1::ListRequestMetadata.new()
|
733
|
+
page_size_option = @parent._test_options["PageSize"]
|
734
|
+
if page_size_option.is_a? Integer
|
735
|
+
req.meta.limit = page_size_option
|
736
|
+
end
|
737
|
+
|
738
|
+
req.filter = Plumbing::quote_filter_args(filter, *args)
|
739
|
+
resp = Enumerator::Generator.new { |g|
|
740
|
+
tries = 0
|
741
|
+
loop do
|
742
|
+
begin
|
743
|
+
plumbing_response = @stub.enumerate_tags(req, metadata: @parent.get_metadata("Resources.EnumerateTags", req), deadline: deadline)
|
744
|
+
rescue => exception
|
745
|
+
if (@parent.shouldRetry(tries, exception))
|
746
|
+
tries + +@parent.jitterSleep(tries)
|
747
|
+
next
|
748
|
+
end
|
749
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
750
|
+
end
|
751
|
+
tries = 0
|
752
|
+
plumbing_response.matches.each do |plumbing_item|
|
753
|
+
g.yield Plumbing::convert_tag_to_porcelain(plumbing_item)
|
754
|
+
end
|
755
|
+
break if plumbing_response.meta.next_cursor == ""
|
756
|
+
req.meta.cursor = plumbing_response.meta.next_cursor
|
757
|
+
end
|
758
|
+
}
|
759
|
+
resp
|
760
|
+
end
|
761
|
+
|
680
762
|
# Create registers a new Resource.
|
681
763
|
def create(
|
682
764
|
resource,
|
@@ -1302,4 +1384,176 @@ module SDM
|
|
1302
1384
|
resp
|
1303
1385
|
end
|
1304
1386
|
end
|
1387
|
+
|
1388
|
+
# SecretStores are servers where resource secrets (passwords, keys) are stored.
|
1389
|
+
class SecretStores
|
1390
|
+
def initialize(host, insecure, parent)
|
1391
|
+
begin
|
1392
|
+
if insecure
|
1393
|
+
@stub = V1::SecretStores::Stub.new(host, :this_channel_is_insecure)
|
1394
|
+
else
|
1395
|
+
cred = GRPC::Core::ChannelCredentials.new()
|
1396
|
+
@stub = V1::SecretStores::Stub.new(host, cred)
|
1397
|
+
end
|
1398
|
+
rescue => exception
|
1399
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
1400
|
+
end
|
1401
|
+
@parent = parent
|
1402
|
+
end
|
1403
|
+
|
1404
|
+
def create(
|
1405
|
+
secret_store,
|
1406
|
+
deadline: nil
|
1407
|
+
)
|
1408
|
+
req = V1::SecretStoreCreateRequest.new()
|
1409
|
+
|
1410
|
+
req.secret_store = Plumbing::convert_secret_store_to_plumbing(secret_store)
|
1411
|
+
tries = 0
|
1412
|
+
plumbing_response = nil
|
1413
|
+
loop do
|
1414
|
+
begin
|
1415
|
+
plumbing_response = @stub.create(req, metadata: @parent.get_metadata("SecretStores.Create", req), deadline: deadline)
|
1416
|
+
rescue => exception
|
1417
|
+
if (@parent.shouldRetry(tries, exception))
|
1418
|
+
tries + +@parent.jitterSleep(tries)
|
1419
|
+
next
|
1420
|
+
end
|
1421
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
1422
|
+
end
|
1423
|
+
break
|
1424
|
+
end
|
1425
|
+
|
1426
|
+
resp = SecretStoreCreateResponse.new()
|
1427
|
+
resp.meta = Plumbing::convert_create_response_metadata_to_porcelain(plumbing_response.meta)
|
1428
|
+
resp.secret_store = Plumbing::convert_secret_store_to_porcelain(plumbing_response.secret_store)
|
1429
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
1430
|
+
resp
|
1431
|
+
end
|
1432
|
+
|
1433
|
+
# Get reads one SecretStore by ID.
|
1434
|
+
def get(
|
1435
|
+
id,
|
1436
|
+
deadline: nil
|
1437
|
+
)
|
1438
|
+
req = V1::SecretStoreGetRequest.new()
|
1439
|
+
|
1440
|
+
req.id = (id)
|
1441
|
+
tries = 0
|
1442
|
+
plumbing_response = nil
|
1443
|
+
loop do
|
1444
|
+
begin
|
1445
|
+
plumbing_response = @stub.get(req, metadata: @parent.get_metadata("SecretStores.Get", req), deadline: deadline)
|
1446
|
+
rescue => exception
|
1447
|
+
if (@parent.shouldRetry(tries, exception))
|
1448
|
+
tries + +@parent.jitterSleep(tries)
|
1449
|
+
next
|
1450
|
+
end
|
1451
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
1452
|
+
end
|
1453
|
+
break
|
1454
|
+
end
|
1455
|
+
|
1456
|
+
resp = SecretStoreGetResponse.new()
|
1457
|
+
resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
|
1458
|
+
resp.secret_store = Plumbing::convert_secret_store_to_porcelain(plumbing_response.secret_store)
|
1459
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
1460
|
+
resp
|
1461
|
+
end
|
1462
|
+
|
1463
|
+
# Update patches a SecretStore by ID.
|
1464
|
+
def update(
|
1465
|
+
secret_store,
|
1466
|
+
deadline: nil
|
1467
|
+
)
|
1468
|
+
req = V1::SecretStoreUpdateRequest.new()
|
1469
|
+
|
1470
|
+
req.secret_store = Plumbing::convert_secret_store_to_plumbing(secret_store)
|
1471
|
+
tries = 0
|
1472
|
+
plumbing_response = nil
|
1473
|
+
loop do
|
1474
|
+
begin
|
1475
|
+
plumbing_response = @stub.update(req, metadata: @parent.get_metadata("SecretStores.Update", req), deadline: deadline)
|
1476
|
+
rescue => exception
|
1477
|
+
if (@parent.shouldRetry(tries, exception))
|
1478
|
+
tries + +@parent.jitterSleep(tries)
|
1479
|
+
next
|
1480
|
+
end
|
1481
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
1482
|
+
end
|
1483
|
+
break
|
1484
|
+
end
|
1485
|
+
|
1486
|
+
resp = SecretStoreUpdateResponse.new()
|
1487
|
+
resp.meta = Plumbing::convert_update_response_metadata_to_porcelain(plumbing_response.meta)
|
1488
|
+
resp.secret_store = Plumbing::convert_secret_store_to_porcelain(plumbing_response.secret_store)
|
1489
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
1490
|
+
resp
|
1491
|
+
end
|
1492
|
+
|
1493
|
+
# Delete removes a SecretStore by ID.
|
1494
|
+
def delete(
|
1495
|
+
id,
|
1496
|
+
deadline: nil
|
1497
|
+
)
|
1498
|
+
req = V1::SecretStoreDeleteRequest.new()
|
1499
|
+
|
1500
|
+
req.id = (id)
|
1501
|
+
tries = 0
|
1502
|
+
plumbing_response = nil
|
1503
|
+
loop do
|
1504
|
+
begin
|
1505
|
+
plumbing_response = @stub.delete(req, metadata: @parent.get_metadata("SecretStores.Delete", req), deadline: deadline)
|
1506
|
+
rescue => exception
|
1507
|
+
if (@parent.shouldRetry(tries, exception))
|
1508
|
+
tries + +@parent.jitterSleep(tries)
|
1509
|
+
next
|
1510
|
+
end
|
1511
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
1512
|
+
end
|
1513
|
+
break
|
1514
|
+
end
|
1515
|
+
|
1516
|
+
resp = SecretStoreDeleteResponse.new()
|
1517
|
+
resp.meta = Plumbing::convert_delete_response_metadata_to_porcelain(plumbing_response.meta)
|
1518
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
1519
|
+
resp
|
1520
|
+
end
|
1521
|
+
|
1522
|
+
# List gets a list of SecretStores matching a given set of criteria.
|
1523
|
+
def list(
|
1524
|
+
filter,
|
1525
|
+
*args,
|
1526
|
+
deadline: nil
|
1527
|
+
)
|
1528
|
+
req = V1::SecretStoreListRequest.new()
|
1529
|
+
req.meta = V1::ListRequestMetadata.new()
|
1530
|
+
page_size_option = @parent._test_options["PageSize"]
|
1531
|
+
if page_size_option.is_a? Integer
|
1532
|
+
req.meta.limit = page_size_option
|
1533
|
+
end
|
1534
|
+
|
1535
|
+
req.filter = Plumbing::quote_filter_args(filter, *args)
|
1536
|
+
resp = Enumerator::Generator.new { |g|
|
1537
|
+
tries = 0
|
1538
|
+
loop do
|
1539
|
+
begin
|
1540
|
+
plumbing_response = @stub.list(req, metadata: @parent.get_metadata("SecretStores.List", req), deadline: deadline)
|
1541
|
+
rescue => exception
|
1542
|
+
if (@parent.shouldRetry(tries, exception))
|
1543
|
+
tries + +@parent.jitterSleep(tries)
|
1544
|
+
next
|
1545
|
+
end
|
1546
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
1547
|
+
end
|
1548
|
+
tries = 0
|
1549
|
+
plumbing_response.secret_stores.each do |plumbing_item|
|
1550
|
+
g.yield Plumbing::convert_secret_store_to_porcelain(plumbing_item)
|
1551
|
+
end
|
1552
|
+
break if plumbing_response.meta.next_cursor == ""
|
1553
|
+
req.meta.cursor = plumbing_response.meta.next_cursor
|
1554
|
+
end
|
1555
|
+
}
|
1556
|
+
resp
|
1557
|
+
end
|
1558
|
+
end
|
1305
1559
|
end
|
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: 1.0.
|
4
|
+
version: 1.0.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- strongDM Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: grpc
|
@@ -88,6 +88,11 @@ files:
|
|
88
88
|
- doc/SDM/AKS.html
|
89
89
|
- doc/SDM/AKSBasicAuth.html
|
90
90
|
- doc/SDM/AKSServiceAccount.html
|
91
|
+
- doc/SDM/AWS.html
|
92
|
+
- doc/SDM/AWSStore.html
|
93
|
+
- doc/SDM/AccessRuleCreateResponse.html
|
94
|
+
- doc/SDM/AccessRuleDeleteResponse.html
|
95
|
+
- doc/SDM/AccessRuleUpdateResponse.html
|
91
96
|
- doc/SDM/AccountAttachment.html
|
92
97
|
- doc/SDM/AccountAttachmentCreateOptions.html
|
93
98
|
- doc/SDM/AccountAttachmentCreateResponse.html
|
@@ -118,8 +123,9 @@ files:
|
|
118
123
|
- doc/SDM/Client.html
|
119
124
|
- doc/SDM/Clustrix.html
|
120
125
|
- doc/SDM/Cockroach.html
|
126
|
+
- doc/SDM/ControlPanel.html
|
127
|
+
- doc/SDM/ControlPanelGetSSHCAPublicKeyResponse.html
|
121
128
|
- doc/SDM/CreateResponseMetadata.html
|
122
|
-
- doc/SDM/DB2.html
|
123
129
|
- doc/SDM/DB2LUW.html
|
124
130
|
- doc/SDM/DB2i.html
|
125
131
|
- doc/SDM/DeadlineExceededError.html
|
@@ -189,20 +195,39 @@ files:
|
|
189
195
|
- doc/SDM/SQLServer.html
|
190
196
|
- doc/SDM/SSH.html
|
191
197
|
- doc/SDM/SSHCert.html
|
198
|
+
- doc/SDM/SecretStore.html
|
199
|
+
- doc/SDM/SecretStoreCreateResponse.html
|
200
|
+
- doc/SDM/SecretStoreDeleteResponse.html
|
201
|
+
- doc/SDM/SecretStoreGetResponse.html
|
202
|
+
- doc/SDM/SecretStoreUpdateResponse.html
|
203
|
+
- doc/SDM/SecretStores.html
|
192
204
|
- doc/SDM/Service.html
|
193
205
|
- doc/SDM/Snowflake.html
|
194
206
|
- doc/SDM/Sybase.html
|
195
207
|
- doc/SDM/SybaseIQ.html
|
208
|
+
- doc/SDM/Tag.html
|
196
209
|
- doc/SDM/Teradata.html
|
197
210
|
- doc/SDM/UpdateResponseMetadata.html
|
198
211
|
- doc/SDM/User.html
|
212
|
+
- doc/SDM/VaultTLSStore.html
|
213
|
+
- doc/SDM/VaultTokenStore.html
|
199
214
|
- doc/V1.html
|
215
|
+
- doc/V1/AccessRules.html
|
216
|
+
- doc/V1/AccessRules/Service.html
|
200
217
|
- doc/V1/AccountAttachments.html
|
201
218
|
- doc/V1/AccountAttachments/Service.html
|
202
219
|
- doc/V1/AccountGrants.html
|
203
220
|
- doc/V1/AccountGrants/Service.html
|
204
221
|
- doc/V1/Accounts.html
|
205
222
|
- doc/V1/Accounts/Service.html
|
223
|
+
- doc/V1/Audits.html
|
224
|
+
- doc/V1/Audits/Service.html
|
225
|
+
- doc/V1/BuildsPrivate.html
|
226
|
+
- doc/V1/BuildsPrivate/Service.html
|
227
|
+
- doc/V1/ControlPanel.html
|
228
|
+
- doc/V1/ControlPanel/Service.html
|
229
|
+
- doc/V1/DemoProvisioningRequests.html
|
230
|
+
- doc/V1/DemoProvisioningRequests/Service.html
|
206
231
|
- doc/V1/Nodes.html
|
207
232
|
- doc/V1/Nodes/Service.html
|
208
233
|
- doc/V1/Resources.html
|
@@ -213,6 +238,10 @@ files:
|
|
213
238
|
- doc/V1/RoleGrants/Service.html
|
214
239
|
- doc/V1/Roles.html
|
215
240
|
- doc/V1/Roles/Service.html
|
241
|
+
- doc/V1/SecretStoreHealths.html
|
242
|
+
- doc/V1/SecretStoreHealths/Service.html
|
243
|
+
- doc/V1/SecretStores.html
|
244
|
+
- doc/V1/SecretStores/Service.html
|
216
245
|
- doc/V1/Tags.html
|
217
246
|
- doc/created.rid
|
218
247
|
- doc/css/fonts.css
|
@@ -275,12 +304,15 @@ files:
|
|
275
304
|
- lib/grpc/account_grants_services_pb.rb
|
276
305
|
- lib/grpc/accounts_pb.rb
|
277
306
|
- lib/grpc/accounts_services_pb.rb
|
307
|
+
- lib/grpc/control_panel_pb.rb
|
308
|
+
- lib/grpc/control_panel_services_pb.rb
|
309
|
+
- lib/grpc/demo_provisioning_requests_pb.rb
|
310
|
+
- lib/grpc/demo_provisioning_requests_services_pb.rb
|
278
311
|
- lib/grpc/drivers_pb.rb
|
279
312
|
- lib/grpc/nodes_pb.rb
|
280
313
|
- lib/grpc/nodes_services_pb.rb
|
281
314
|
- lib/grpc/options_pb.rb
|
282
315
|
- lib/grpc/plumbing.rb
|
283
|
-
- lib/grpc/protoc-gen-swagger/options/annotations_pb.rb
|
284
316
|
- lib/grpc/resources_pb.rb
|
285
317
|
- lib/grpc/resources_services_pb.rb
|
286
318
|
- lib/grpc/role_attachments_pb.rb
|
@@ -289,6 +321,9 @@ files:
|
|
289
321
|
- lib/grpc/role_grants_services_pb.rb
|
290
322
|
- lib/grpc/roles_pb.rb
|
291
323
|
- lib/grpc/roles_services_pb.rb
|
324
|
+
- lib/grpc/secret_store_types_pb.rb
|
325
|
+
- lib/grpc/secret_stores_pb.rb
|
326
|
+
- lib/grpc/secret_stores_services_pb.rb
|
292
327
|
- lib/grpc/spec_pb.rb
|
293
328
|
- lib/grpc/tags_pb.rb
|
294
329
|
- lib/models/porcelain.rb
|
@@ -1,15 +0,0 @@
|
|
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
|
-
# this file is intentionally left empty
|