strongdm 1.0.8 → 1.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -1
- data/doc/README_md.html +2 -0
- data/doc/SDM/AKS.html +21 -57
- data/doc/SDM/AKSBasicAuth.html +21 -3
- data/doc/SDM/AKSServiceAccount.html +21 -3
- 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 +1 -1
- data/doc/SDM/AccountAttachments.html +1 -1
- data/doc/SDM/Accounts.html +8 -8
- data/doc/SDM/AmazonEKS.html +21 -21
- data/doc/SDM/AmazonES.html +21 -3
- data/doc/SDM/Athena.html +21 -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 +39 -11
- 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 +21 -3
- data/doc/SDM/Elastic.html +21 -3
- data/doc/SDM/ElasticacheRedis.html +21 -3
- data/doc/SDM/Gateway.html +3 -3
- data/doc/SDM/GoogleGKE.html +13 -31
- 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 -57
- 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 +10 -10
- data/doc/SDM/Oracle.html +21 -3
- data/doc/SDM/Plumbing.html +2582 -994
- 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 +3 -3
- 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 +6 -6
- data/doc/SDM/Role.html +3 -3
- 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/Snowflake.html +21 -3
- data/doc/SDM/Sybase.html +21 -3
- data/doc/SDM/SybaseIQ.html +21 -3
- data/doc/SDM/Teradata.html +21 -3
- data/doc/SDM/{DB2.html → VaultTLSStore.html} +34 -88
- data/doc/SDM/VaultTokenStore.html +283 -0
- data/doc/V1.html +195 -0
- data/doc/V1/AccessRules.html +113 -0
- data/doc/V1/AccessRules/Service.html +119 -0
- data/doc/V1/AccountAttachments/Service.html +1 -1
- data/doc/V1/Accounts/Service.html +2 -2
- data/doc/V1/Audits.html +113 -0
- data/doc/V1/Audits/Service.html +119 -0
- data/doc/V1/ControlPanel.html +113 -0
- data/doc/V1/ControlPanel/Service.html +119 -0
- data/doc/V1/Nodes/Service.html +4 -4
- 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 +44 -35
- data/doc/index.html +40 -0
- data/doc/js/search_index.js +1 -1
- data/doc/js/search_index.js.gz +0 -0
- data/doc/lib/version.html +1 -1
- data/doc/strongdm_gemspec.html +0 -8
- data/doc/table_of_contents.html +697 -297
- data/examples/Gemfile +3 -0
- data/{lib/grpc/protoc-gen-swagger/options/annotations_pb.rb → examples/listUsers.rb} +7 -1
- data/lib/grpc/access_rules_pb.rb +115 -0
- data/lib/grpc/access_rules_services_pb.rb +50 -0
- data/lib/grpc/account_attachments_pb.rb +0 -2
- data/lib/grpc/account_attachments_services_pb.rb +1 -1
- data/lib/grpc/account_grants_pb.rb +0 -2
- data/lib/grpc/accounts_pb.rb +0 -2
- data/lib/grpc/accounts_services_pb.rb +3 -4
- data/lib/grpc/audits_pb.rb +40 -0
- data/lib/grpc/audits_services_pb.rb +37 -0
- data/lib/grpc/control_panel_pb.rb +38 -0
- data/lib/grpc/control_panel_services_pb.rb +37 -0
- data/lib/grpc/drivers_pb.rb +48 -10
- data/lib/grpc/nodes_pb.rb +0 -2
- data/lib/grpc/nodes_services_pb.rb +3 -4
- data/lib/grpc/options_pb.rb +18 -0
- data/lib/grpc/plumbing.rb +464 -19
- data/lib/grpc/resources_pb.rb +0 -1
- data/lib/grpc/role_attachments_pb.rb +0 -2
- data/lib/grpc/role_grants_pb.rb +0 -2
- data/lib/grpc/roles_pb.rb +0 -2
- data/lib/grpc/secret_store_healths_pb.rb +59 -0
- data/lib/grpc/secret_store_healths_services_pb.rb +39 -0
- data/lib/grpc/secret_stores_pb.rb +116 -0
- data/lib/grpc/secret_stores_services_pb.rb +44 -0
- data/lib/models/porcelain.rb +595 -60
- data/lib/strongdm.rb +13 -9
- data/lib/svc.rb +224 -9
- data/lib/version +1 -1
- data/lib/version.rb +1 -1
- data/strongdm.gemspec +1 -1
- metadata +52 -19
data/lib/strongdm.rb
CHANGED
@@ -37,11 +37,13 @@ module SDM
|
|
37
37
|
@account_attachments = AccountAttachments.new(host, insecure, self)
|
38
38
|
@account_grants = AccountGrants.new(host, insecure, self)
|
39
39
|
@accounts = Accounts.new(host, insecure, self)
|
40
|
+
@control_panel = ControlPanel.new(host, insecure, self)
|
40
41
|
@nodes = Nodes.new(host, insecure, self)
|
41
42
|
@resources = Resources.new(host, insecure, self)
|
42
43
|
@role_attachments = RoleAttachments.new(host, insecure, self)
|
43
44
|
@role_grants = RoleGrants.new(host, insecure, self)
|
44
45
|
@roles = Roles.new(host, insecure, self)
|
46
|
+
@secret_stores = SecretStores.new(host, insecure, self)
|
45
47
|
@_test_options = Hash.new
|
46
48
|
end
|
47
49
|
|
@@ -90,19 +92,19 @@ module SDM
|
|
90
92
|
|
91
93
|
# API authentication token (read-only).
|
92
94
|
attr_reader :api_access_key
|
93
|
-
# AccountAttachments assign an account to a role.
|
95
|
+
# AccountAttachments assign an account to a role or composite role.
|
94
96
|
attr_reader :account_attachments
|
95
97
|
# AccountGrants assign a resource directly to an account, giving the account the permission to connect to that resource.
|
96
98
|
attr_reader :account_grants
|
97
|
-
# Accounts are users that have access to strongDM.
|
98
|
-
#
|
99
|
-
#
|
100
|
-
# 2. **Service users:** machines that are authneticated using a service token
|
99
|
+
# Accounts are users that have access to strongDM. There are two types of accounts:
|
100
|
+
# 1. **Users:** humans who are authenticated through username and password or SSO.
|
101
|
+
# 2. **Service Accounts:** machines that are authenticated using a service token.
|
101
102
|
attr_reader :accounts
|
102
|
-
#
|
103
|
-
|
104
|
-
#
|
105
|
-
#
|
103
|
+
# ControlPanel contains all administrative controls.
|
104
|
+
attr_reader :control_panel
|
105
|
+
# Nodes make up the strongDM network, and allow your users to connect securely to your resources. There are two types of nodes:
|
106
|
+
# - **Gateways** are the entry points into network. They listen for connection from the strongDM client, and provide access to databases and servers.
|
107
|
+
# - **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.
|
106
108
|
attr_reader :nodes
|
107
109
|
|
108
110
|
attr_reader :resources
|
@@ -122,6 +124,8 @@ module SDM
|
|
122
124
|
# grant access to the combined resources associated with a set of child roles.
|
123
125
|
# Each user can be a member of one Role or composite role.
|
124
126
|
attr_reader :roles
|
127
|
+
# SecretStores are servers where resource secrets (passwords, keys) are stored.
|
128
|
+
attr_reader :secret_stores
|
125
129
|
attr_reader :_test_options
|
126
130
|
end
|
127
131
|
end
|
data/lib/svc.rb
CHANGED
@@ -24,7 +24,7 @@ Dir[File.join(__dir__, "grpc", "*.rb")].each { |file| require file }
|
|
24
24
|
Dir[File.join(__dir__, "models", "*.rb")].each { |file| require file }
|
25
25
|
|
26
26
|
module SDM
|
27
|
-
# AccountAttachments assign an account to a role.
|
27
|
+
# AccountAttachments assign an account to a role or composite role.
|
28
28
|
class AccountAttachments
|
29
29
|
def initialize(host, insecure, parent)
|
30
30
|
begin
|
@@ -310,10 +310,9 @@ module SDM
|
|
310
310
|
end
|
311
311
|
end
|
312
312
|
|
313
|
-
# Accounts are users that have access to strongDM.
|
314
|
-
#
|
315
|
-
#
|
316
|
-
# 2. **Service users:** machines that are authneticated using a service token
|
313
|
+
# Accounts are users that have access to strongDM. There are two types of accounts:
|
314
|
+
# 1. **Users:** humans who are authenticated through username and password or SSO.
|
315
|
+
# 2. **Service Accounts:** machines that are authenticated using a service token.
|
317
316
|
class Accounts
|
318
317
|
def initialize(host, insecure, parent)
|
319
318
|
begin
|
@@ -487,10 +486,54 @@ module SDM
|
|
487
486
|
end
|
488
487
|
end
|
489
488
|
|
490
|
-
#
|
491
|
-
|
492
|
-
|
493
|
-
|
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
|
+
|
534
|
+
# Nodes make up the strongDM network, and allow your users to connect securely to your resources. There are two types of nodes:
|
535
|
+
# - **Gateways** are the entry points into network. They listen for connection from the strongDM client, and provide access to databases and servers.
|
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.
|
494
537
|
class Nodes
|
495
538
|
def initialize(host, insecure, parent)
|
496
539
|
begin
|
@@ -1304,4 +1347,176 @@ module SDM
|
|
1304
1347
|
resp
|
1305
1348
|
end
|
1306
1349
|
end
|
1350
|
+
|
1351
|
+
# SecretStores are servers where resource secrets (passwords, keys) are stored.
|
1352
|
+
class SecretStores
|
1353
|
+
def initialize(host, insecure, parent)
|
1354
|
+
begin
|
1355
|
+
if insecure
|
1356
|
+
@stub = V1::SecretStores::Stub.new(host, :this_channel_is_insecure)
|
1357
|
+
else
|
1358
|
+
cred = GRPC::Core::ChannelCredentials.new()
|
1359
|
+
@stub = V1::SecretStores::Stub.new(host, cred)
|
1360
|
+
end
|
1361
|
+
rescue => exception
|
1362
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
1363
|
+
end
|
1364
|
+
@parent = parent
|
1365
|
+
end
|
1366
|
+
|
1367
|
+
def create(
|
1368
|
+
secret_store,
|
1369
|
+
deadline: nil
|
1370
|
+
)
|
1371
|
+
req = V1::SecretStoreCreateRequest.new()
|
1372
|
+
|
1373
|
+
req.secret_store = Plumbing::convert_secret_store_to_plumbing(secret_store)
|
1374
|
+
tries = 0
|
1375
|
+
plumbing_response = nil
|
1376
|
+
loop do
|
1377
|
+
begin
|
1378
|
+
plumbing_response = @stub.create(req, metadata: @parent.get_metadata("SecretStores.Create", req), deadline: deadline)
|
1379
|
+
rescue => exception
|
1380
|
+
if (@parent.shouldRetry(tries, exception))
|
1381
|
+
tries + +@parent.jitterSleep(tries)
|
1382
|
+
next
|
1383
|
+
end
|
1384
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
1385
|
+
end
|
1386
|
+
break
|
1387
|
+
end
|
1388
|
+
|
1389
|
+
resp = SecretStoreCreateResponse.new()
|
1390
|
+
resp.meta = Plumbing::convert_create_response_metadata_to_porcelain(plumbing_response.meta)
|
1391
|
+
resp.secret_store = Plumbing::convert_secret_store_to_porcelain(plumbing_response.secret_store)
|
1392
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
1393
|
+
resp
|
1394
|
+
end
|
1395
|
+
|
1396
|
+
# Get reads one SecretStore by ID.
|
1397
|
+
def get(
|
1398
|
+
id,
|
1399
|
+
deadline: nil
|
1400
|
+
)
|
1401
|
+
req = V1::SecretStoreGetRequest.new()
|
1402
|
+
|
1403
|
+
req.id = (id)
|
1404
|
+
tries = 0
|
1405
|
+
plumbing_response = nil
|
1406
|
+
loop do
|
1407
|
+
begin
|
1408
|
+
plumbing_response = @stub.get(req, metadata: @parent.get_metadata("SecretStores.Get", req), deadline: deadline)
|
1409
|
+
rescue => exception
|
1410
|
+
if (@parent.shouldRetry(tries, exception))
|
1411
|
+
tries + +@parent.jitterSleep(tries)
|
1412
|
+
next
|
1413
|
+
end
|
1414
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
1415
|
+
end
|
1416
|
+
break
|
1417
|
+
end
|
1418
|
+
|
1419
|
+
resp = SecretStoreGetResponse.new()
|
1420
|
+
resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
|
1421
|
+
resp.secret_store = Plumbing::convert_secret_store_to_porcelain(plumbing_response.secret_store)
|
1422
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
1423
|
+
resp
|
1424
|
+
end
|
1425
|
+
|
1426
|
+
# Update patches a SecretStore by ID.
|
1427
|
+
def update(
|
1428
|
+
secret_store,
|
1429
|
+
deadline: nil
|
1430
|
+
)
|
1431
|
+
req = V1::SecretStoreUpdateRequest.new()
|
1432
|
+
|
1433
|
+
req.secret_store = Plumbing::convert_secret_store_to_plumbing(secret_store)
|
1434
|
+
tries = 0
|
1435
|
+
plumbing_response = nil
|
1436
|
+
loop do
|
1437
|
+
begin
|
1438
|
+
plumbing_response = @stub.update(req, metadata: @parent.get_metadata("SecretStores.Update", req), deadline: deadline)
|
1439
|
+
rescue => exception
|
1440
|
+
if (@parent.shouldRetry(tries, exception))
|
1441
|
+
tries + +@parent.jitterSleep(tries)
|
1442
|
+
next
|
1443
|
+
end
|
1444
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
1445
|
+
end
|
1446
|
+
break
|
1447
|
+
end
|
1448
|
+
|
1449
|
+
resp = SecretStoreUpdateResponse.new()
|
1450
|
+
resp.meta = Plumbing::convert_update_response_metadata_to_porcelain(plumbing_response.meta)
|
1451
|
+
resp.secret_store = Plumbing::convert_secret_store_to_porcelain(plumbing_response.secret_store)
|
1452
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
1453
|
+
resp
|
1454
|
+
end
|
1455
|
+
|
1456
|
+
# Delete removes a SecretStore by ID.
|
1457
|
+
def delete(
|
1458
|
+
id,
|
1459
|
+
deadline: nil
|
1460
|
+
)
|
1461
|
+
req = V1::SecretStoreDeleteRequest.new()
|
1462
|
+
|
1463
|
+
req.id = (id)
|
1464
|
+
tries = 0
|
1465
|
+
plumbing_response = nil
|
1466
|
+
loop do
|
1467
|
+
begin
|
1468
|
+
plumbing_response = @stub.delete(req, metadata: @parent.get_metadata("SecretStores.Delete", req), deadline: deadline)
|
1469
|
+
rescue => exception
|
1470
|
+
if (@parent.shouldRetry(tries, exception))
|
1471
|
+
tries + +@parent.jitterSleep(tries)
|
1472
|
+
next
|
1473
|
+
end
|
1474
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
1475
|
+
end
|
1476
|
+
break
|
1477
|
+
end
|
1478
|
+
|
1479
|
+
resp = SecretStoreDeleteResponse.new()
|
1480
|
+
resp.meta = Plumbing::convert_delete_response_metadata_to_porcelain(plumbing_response.meta)
|
1481
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
1482
|
+
resp
|
1483
|
+
end
|
1484
|
+
|
1485
|
+
# List gets a list of SecretStores matching a given set of criteria.
|
1486
|
+
def list(
|
1487
|
+
filter,
|
1488
|
+
*args,
|
1489
|
+
deadline: nil
|
1490
|
+
)
|
1491
|
+
req = V1::SecretStoreListRequest.new()
|
1492
|
+
req.meta = V1::ListRequestMetadata.new()
|
1493
|
+
page_size_option = @parent._test_options["PageSize"]
|
1494
|
+
if page_size_option.is_a? Integer
|
1495
|
+
req.meta.limit = page_size_option
|
1496
|
+
end
|
1497
|
+
|
1498
|
+
req.filter = Plumbing::quote_filter_args(filter, *args)
|
1499
|
+
resp = Enumerator::Generator.new { |g|
|
1500
|
+
tries = 0
|
1501
|
+
loop do
|
1502
|
+
begin
|
1503
|
+
plumbing_response = @stub.list(req, metadata: @parent.get_metadata("SecretStores.List", req), deadline: deadline)
|
1504
|
+
rescue => exception
|
1505
|
+
if (@parent.shouldRetry(tries, exception))
|
1506
|
+
tries + +@parent.jitterSleep(tries)
|
1507
|
+
next
|
1508
|
+
end
|
1509
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
1510
|
+
end
|
1511
|
+
tries = 0
|
1512
|
+
plumbing_response.secret_stores.each do |plumbing_item|
|
1513
|
+
g.yield Plumbing::convert_secret_store_to_porcelain(plumbing_item)
|
1514
|
+
end
|
1515
|
+
break if plumbing_response.meta.next_cursor == ""
|
1516
|
+
req.meta.cursor = plumbing_response.meta.next_cursor
|
1517
|
+
end
|
1518
|
+
}
|
1519
|
+
resp
|
1520
|
+
end
|
1521
|
+
end
|
1307
1522
|
end
|
data/lib/version
CHANGED
data/lib/version.rb
CHANGED
data/strongdm.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
8
|
s.authors = ["strongDM Team"]
|
9
9
|
s.email = ["sdk-feedback@strongdm.com"]
|
10
|
-
s.homepage = "
|
10
|
+
s.homepage = "https://github.com/strongdm/strongdm-sdk-ruby"
|
11
11
|
s.summary = "strongDM SDK for the Ruby programming language."
|
12
12
|
s.description = "strongDM Ruby Library for automating interactions with strongDM."
|
13
13
|
s.licenses = ["Apache-2.0"]
|
metadata
CHANGED
@@ -1,73 +1,73 @@
|
|
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.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- strongDM Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: grpc
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.27.0
|
20
|
-
- - "
|
20
|
+
- - "~>"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 1.27.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - "
|
27
|
+
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 1.27.0
|
30
|
-
- - "
|
30
|
+
- - "~>"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 1.27.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: grpc-tools
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: 1.27.0
|
40
|
-
- - "
|
40
|
+
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: 1.27.0
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - "
|
47
|
+
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: 1.27.0
|
50
|
-
- - "
|
50
|
+
- - "~>"
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: 1.27.0
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: openssl
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
|
-
- - "
|
57
|
+
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
59
|
version: 2.1.2
|
60
|
-
- - "
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: 2.1.2
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - "
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: 2.1.2
|
70
|
-
- - "
|
70
|
+
- - "~>"
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: 2.1.2
|
73
73
|
description: strongDM Ruby Library for automating interactions with strongDM.
|
@@ -88,6 +88,10 @@ files:
|
|
88
88
|
- doc/SDM/AKS.html
|
89
89
|
- doc/SDM/AKSBasicAuth.html
|
90
90
|
- doc/SDM/AKSServiceAccount.html
|
91
|
+
- doc/SDM/AWSStore.html
|
92
|
+
- doc/SDM/AccessRuleCreateResponse.html
|
93
|
+
- doc/SDM/AccessRuleDeleteResponse.html
|
94
|
+
- doc/SDM/AccessRuleUpdateResponse.html
|
91
95
|
- doc/SDM/AccountAttachment.html
|
92
96
|
- doc/SDM/AccountAttachmentCreateOptions.html
|
93
97
|
- doc/SDM/AccountAttachmentCreateResponse.html
|
@@ -118,8 +122,9 @@ files:
|
|
118
122
|
- doc/SDM/Client.html
|
119
123
|
- doc/SDM/Clustrix.html
|
120
124
|
- doc/SDM/Cockroach.html
|
125
|
+
- doc/SDM/ControlPanel.html
|
126
|
+
- doc/SDM/ControlPanelGetSSHCAPublicKeyResponse.html
|
121
127
|
- doc/SDM/CreateResponseMetadata.html
|
122
|
-
- doc/SDM/DB2.html
|
123
128
|
- doc/SDM/DB2LUW.html
|
124
129
|
- doc/SDM/DB2i.html
|
125
130
|
- doc/SDM/DeadlineExceededError.html
|
@@ -189,6 +194,12 @@ files:
|
|
189
194
|
- doc/SDM/SQLServer.html
|
190
195
|
- doc/SDM/SSH.html
|
191
196
|
- doc/SDM/SSHCert.html
|
197
|
+
- doc/SDM/SecretStore.html
|
198
|
+
- doc/SDM/SecretStoreCreateResponse.html
|
199
|
+
- doc/SDM/SecretStoreDeleteResponse.html
|
200
|
+
- doc/SDM/SecretStoreGetResponse.html
|
201
|
+
- doc/SDM/SecretStoreUpdateResponse.html
|
202
|
+
- doc/SDM/SecretStores.html
|
192
203
|
- doc/SDM/Service.html
|
193
204
|
- doc/SDM/Snowflake.html
|
194
205
|
- doc/SDM/Sybase.html
|
@@ -196,13 +207,21 @@ files:
|
|
196
207
|
- doc/SDM/Teradata.html
|
197
208
|
- doc/SDM/UpdateResponseMetadata.html
|
198
209
|
- doc/SDM/User.html
|
210
|
+
- doc/SDM/VaultTLSStore.html
|
211
|
+
- doc/SDM/VaultTokenStore.html
|
199
212
|
- doc/V1.html
|
213
|
+
- doc/V1/AccessRules.html
|
214
|
+
- doc/V1/AccessRules/Service.html
|
200
215
|
- doc/V1/AccountAttachments.html
|
201
216
|
- doc/V1/AccountAttachments/Service.html
|
202
217
|
- doc/V1/AccountGrants.html
|
203
218
|
- doc/V1/AccountGrants/Service.html
|
204
219
|
- doc/V1/Accounts.html
|
205
220
|
- doc/V1/Accounts/Service.html
|
221
|
+
- doc/V1/Audits.html
|
222
|
+
- doc/V1/Audits/Service.html
|
223
|
+
- doc/V1/ControlPanel.html
|
224
|
+
- doc/V1/ControlPanel/Service.html
|
206
225
|
- doc/V1/Nodes.html
|
207
226
|
- doc/V1/Nodes/Service.html
|
208
227
|
- doc/V1/Resources.html
|
@@ -213,6 +232,10 @@ files:
|
|
213
232
|
- doc/V1/RoleGrants/Service.html
|
214
233
|
- doc/V1/Roles.html
|
215
234
|
- doc/V1/Roles/Service.html
|
235
|
+
- doc/V1/SecretStoreHealths.html
|
236
|
+
- doc/V1/SecretStoreHealths/Service.html
|
237
|
+
- doc/V1/SecretStores.html
|
238
|
+
- doc/V1/SecretStores/Service.html
|
216
239
|
- doc/V1/Tags.html
|
217
240
|
- doc/created.rid
|
218
241
|
- doc/css/fonts.css
|
@@ -266,19 +289,26 @@ files:
|
|
266
289
|
- doc/lib/version.html
|
267
290
|
- doc/strongdm_gemspec.html
|
268
291
|
- doc/table_of_contents.html
|
292
|
+
- examples/Gemfile
|
293
|
+
- examples/listUsers.rb
|
269
294
|
- lib/errors/errors.rb
|
295
|
+
- lib/grpc/access_rules_pb.rb
|
296
|
+
- lib/grpc/access_rules_services_pb.rb
|
270
297
|
- lib/grpc/account_attachments_pb.rb
|
271
298
|
- lib/grpc/account_attachments_services_pb.rb
|
272
299
|
- lib/grpc/account_grants_pb.rb
|
273
300
|
- lib/grpc/account_grants_services_pb.rb
|
274
301
|
- lib/grpc/accounts_pb.rb
|
275
302
|
- lib/grpc/accounts_services_pb.rb
|
303
|
+
- lib/grpc/audits_pb.rb
|
304
|
+
- lib/grpc/audits_services_pb.rb
|
305
|
+
- lib/grpc/control_panel_pb.rb
|
306
|
+
- lib/grpc/control_panel_services_pb.rb
|
276
307
|
- lib/grpc/drivers_pb.rb
|
277
308
|
- lib/grpc/nodes_pb.rb
|
278
309
|
- lib/grpc/nodes_services_pb.rb
|
279
310
|
- lib/grpc/options_pb.rb
|
280
311
|
- lib/grpc/plumbing.rb
|
281
|
-
- lib/grpc/protoc-gen-swagger/options/annotations_pb.rb
|
282
312
|
- lib/grpc/resources_pb.rb
|
283
313
|
- lib/grpc/resources_services_pb.rb
|
284
314
|
- lib/grpc/role_attachments_pb.rb
|
@@ -287,6 +317,10 @@ files:
|
|
287
317
|
- lib/grpc/role_grants_services_pb.rb
|
288
318
|
- lib/grpc/roles_pb.rb
|
289
319
|
- lib/grpc/roles_services_pb.rb
|
320
|
+
- lib/grpc/secret_store_healths_pb.rb
|
321
|
+
- lib/grpc/secret_store_healths_services_pb.rb
|
322
|
+
- lib/grpc/secret_stores_pb.rb
|
323
|
+
- lib/grpc/secret_stores_services_pb.rb
|
290
324
|
- lib/grpc/spec_pb.rb
|
291
325
|
- lib/grpc/tags_pb.rb
|
292
326
|
- lib/models/porcelain.rb
|
@@ -295,7 +329,7 @@ files:
|
|
295
329
|
- lib/version
|
296
330
|
- lib/version.rb
|
297
331
|
- strongdm.gemspec
|
298
|
-
homepage:
|
332
|
+
homepage: https://github.com/strongdm/strongdm-sdk-ruby
|
299
333
|
licenses:
|
300
334
|
- Apache-2.0
|
301
335
|
metadata: {}
|
@@ -314,8 +348,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
314
348
|
- !ruby/object:Gem::Version
|
315
349
|
version: 1.3.6
|
316
350
|
requirements: []
|
317
|
-
|
318
|
-
rubygems_version: 2.7.6
|
351
|
+
rubygems_version: 3.0.3
|
319
352
|
signing_key:
|
320
353
|
specification_version: 4
|
321
354
|
summary: strongDM SDK for the Ruby programming language.
|