strongdm 3.17.0 → 3.18.0
Sign up to get free protection for your applications and to get access to all the features.
- 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-b80c1f83bad67d2b8f6fb7851c83c3e84eba1c78.idx → pack-f4db79d8b517a6bbe6b8e46ce03146184bf6e554.idx} +0 -0
- data/.git/objects/pack/{pack-b80c1f83bad67d2b8f6fb7851c83c3e84eba1c78.pack → pack-f4db79d8b517a6bbe6b8e46ce03146184bf6e554.pack} +0 -0
- data/.git/packed-refs +3 -2
- data/.git/refs/heads/master +1 -1
- data/lib/constants.rb +13 -0
- data/lib/grpc/activities_pb.rb +1 -0
- data/lib/grpc/drivers_pb.rb +5 -22
- data/lib/grpc/nodes_pb.rb +7 -0
- data/lib/grpc/plumbing.rb +56 -80
- data/lib/models/porcelain.rb +73 -78
- data/lib/strongdm.rb +1 -1
- data/lib/svc.rb +1 -2
- data/lib/version +1 -1
- data/lib/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b966417999f917f548d43b50133607ab79cb603f20a2b23fb76c1342b1fbfd7
|
4
|
+
data.tar.gz: 284fb54a2e0afa33ed2138be0fc8a6e794b8b19fa1c3c12812baa51c50b8847c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5fe73fce198f106fffee8b15f563af6346fdaaf10cb3ed5a60faa04c720bac54f0e5a322f1c4eeee330cb309be6945bad7941e1205fbcda37738fb79f711b4d3
|
7
|
+
data.tar.gz: adbc374f191a40274c50b4b57dc8fa7f2f9804c33990ad39d3f6fd542898a219e1c7dcba5b14281e9e7de938e465cda898badf6aff39e34ad533edc7019695a3
|
data/.git/ORIG_HEAD
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36
|
data/.git/index
CHANGED
Binary file
|
data/.git/logs/HEAD
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
0000000000000000000000000000000000000000
|
2
|
-
|
3
|
-
|
1
|
+
0000000000000000000000000000000000000000 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 root <root@59bedabef593.(none)> 1688742042 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
2
|
+
7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 root <root@59bedabef593.(none)> 1688742042 +0000 checkout: moving from master to master
|
3
|
+
7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 0d2955c2c2f11a0bd128d6b6a45b5d0c741b9789 root <root@59bedabef593.(none)> 1688742042 +0000 merge origin/development: Fast-forward
|
data/.git/logs/refs/heads/master
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
0000000000000000000000000000000000000000
|
2
|
-
|
1
|
+
0000000000000000000000000000000000000000 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 root <root@59bedabef593.(none)> 1688742042 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
2
|
+
7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 0d2955c2c2f11a0bd128d6b6a45b5d0c741b9789 root <root@59bedabef593.(none)> 1688742042 +0000 merge origin/development: Fast-forward
|
@@ -1 +1 @@
|
|
1
|
-
0000000000000000000000000000000000000000
|
1
|
+
0000000000000000000000000000000000000000 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 root <root@59bedabef593.(none)> 1688742042 +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
|
+
0d2955c2c2f11a0bd128d6b6a45b5d0c741b9789 refs/remotes/origin/development
|
3
|
+
7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 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
|
@@ -50,6 +50,7 @@ f880c51210aa33186d71d9b463ddbd587ef3e4fd refs/tags/v3.12.0
|
|
50
50
|
6cd69f8e98657b0aa1c55786add9519085361ef2 refs/tags/v3.14.2
|
51
51
|
6e8ee132772d2663157a4263aa15ddffeac7486f refs/tags/v3.15.0
|
52
52
|
a469b2d58875fd54ce9a67154bd8feaa73588449 refs/tags/v3.16.0
|
53
|
+
7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 refs/tags/v3.17.0
|
53
54
|
40d185ce8d4f4375411706886f6fbbaa5493bef6 refs/tags/v3.2.0
|
54
55
|
dd6a8a74ad5675831f42e3a820208e96f7361f80 refs/tags/v3.2.1
|
55
56
|
09ee1a3be370a7b5e21709a7857d0f189f23da8b refs/tags/v3.2.2
|
data/.git/refs/heads/master
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
0d2955c2c2f11a0bd128d6b6a45b5d0c741b9789
|
data/lib/constants.rb
CHANGED
@@ -255,6 +255,9 @@ module SDM
|
|
255
255
|
WORKFLOW_DESCRIPTION_UPDATED = "workflow description updated"
|
256
256
|
WORKFLOW_AUTO_GRANT_UPDATED = "workflow auto grant updated"
|
257
257
|
WORKFLOW_REQUIRES_REASON_UPDATED = "workflow requires reason updated"
|
258
|
+
WORKFLOW_ACCESS_RULES_UPDATED = "workflow access rules updated"
|
259
|
+
WORKFLOW_ACCESS_RULES_DELETED = "workflow access rules deleted"
|
260
|
+
WORKFLOW_ACCESS_RULES_CREATED = "workflow access rules created"
|
258
261
|
ORG_VNM_SUBNET_UPDATED = "organization VNM subnet updated"
|
259
262
|
ORG_VNM_RESOURCES_ALLOCATED = "organization resources allocated within VNM subnet"
|
260
263
|
DEPRECATED_ORG_ACTIVATE_DEVICE_APPROVAL = "activate device approval"
|
@@ -265,6 +268,9 @@ module SDM
|
|
265
268
|
TOTP_ENROLLMENT_ADDED = "user enrolled a totp device"
|
266
269
|
TOTP_ENROLLMENT_DELETED = "user reset their totp enrollment"
|
267
270
|
SUSPENDED_USER_ENROLL_ATTEMPT_FROM_THE_UI = "attempt to enroll by a suspended user from the Admin UI"
|
271
|
+
RESOURCE_LOCKED = "user locked a resource"
|
272
|
+
RESOURCE_UNLOCKED = "user unlocked a resource"
|
273
|
+
RESOURCE_FORCE_UNLOCKED = "admin force-unlocked a resource"
|
268
274
|
end
|
269
275
|
|
270
276
|
# Permissions, all permissions that may be granted to an account.
|
@@ -423,4 +429,11 @@ module SDM
|
|
423
429
|
K_8_S_APPLY = "k8s-apply"
|
424
430
|
SSH_PORT_FORWARD = "ssh-portForward"
|
425
431
|
end
|
432
|
+
|
433
|
+
# Providers responsible for device posture enforcement
|
434
|
+
module DevicePostureProvider
|
435
|
+
NONE = ""
|
436
|
+
SENTINEL_ONE = "sentinelone"
|
437
|
+
CROWD_STRIKE = "crowdstrike"
|
438
|
+
end
|
426
439
|
end
|
data/lib/grpc/activities_pb.rb
CHANGED
@@ -48,6 +48,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
48
48
|
repeated :entities, :message, 5, "v1.ActivityEntity"
|
49
49
|
optional :ip_address, :string, 6
|
50
50
|
optional :actor, :message, 7, "v1.ActivityActor"
|
51
|
+
optional :user_agent, :string, 8
|
51
52
|
end
|
52
53
|
add_message "v1.ActivityEntity" do
|
53
54
|
optional :id, :string, 1
|
data/lib/grpc/drivers_pb.rb
CHANGED
@@ -44,8 +44,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
44
44
|
optional :azure_certificate, :message, 2801, "v1.AzureCertificate"
|
45
45
|
optional :azure_mysql, :message, 1107, "v1.AzureMysql"
|
46
46
|
optional :azure_postgres, :message, 1307, "v1.AzurePostgres"
|
47
|
-
optional :
|
48
|
-
optional :azure_postgres_single, :message, 1309, "v1.AzurePostgresSingle"
|
47
|
+
optional :azure_postgres_managed_identity, :message, 1308, "v1.AzurePostgresManagedIdentity"
|
49
48
|
optional :big_query, :message, 200, "v1.BigQuery"
|
50
49
|
optional :cassandra, :message, 300, "v1.Cassandra"
|
51
50
|
optional :citus, :message, 1305, "v1.Citus"
|
@@ -474,24 +473,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
474
473
|
optional :port_override, :int32, 5
|
475
474
|
optional :username, :string, 2
|
476
475
|
end
|
477
|
-
add_message "v1.
|
478
|
-
optional :id, :string, 32768
|
479
|
-
optional :name, :string, 32769
|
480
|
-
optional :healthy, :bool, 32770
|
481
|
-
optional :tags, :message, 32771, "v1.Tags"
|
482
|
-
optional :secret_store_id, :string, 32772
|
483
|
-
optional :egress_filter, :string, 32773
|
484
|
-
optional :bind_interface, :string, 32774
|
485
|
-
optional :subdomain, :string, 32775
|
486
|
-
optional :database, :string, 4
|
487
|
-
optional :hostname, :string, 1
|
488
|
-
optional :override_database, :bool, 7
|
489
|
-
optional :password, :string, 3
|
490
|
-
optional :port, :int32, 6
|
491
|
-
optional :port_override, :int32, 5
|
492
|
-
optional :username, :string, 2
|
493
|
-
end
|
494
|
-
add_message "v1.AzurePostgresSingle" do
|
476
|
+
add_message "v1.AzurePostgresManagedIdentity" do
|
495
477
|
optional :id, :string, 32768
|
496
478
|
optional :name, :string, 32769
|
497
479
|
optional :healthy, :bool, 32770
|
@@ -506,6 +488,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
506
488
|
optional :password, :string, 3
|
507
489
|
optional :port, :int32, 6
|
508
490
|
optional :port_override, :int32, 5
|
491
|
+
optional :use_azure_single_server_usernames, :bool, 10
|
509
492
|
optional :username, :string, 2
|
510
493
|
end
|
511
494
|
add_message "v1.BigQuery" do
|
@@ -1204,6 +1187,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
1204
1187
|
optional :subdomain, :string, 32775
|
1205
1188
|
optional :downgrade_nla_connections, :bool, 6
|
1206
1189
|
optional :hostname, :string, 1
|
1190
|
+
optional :lock_required, :bool, 10
|
1207
1191
|
optional :password, :string, 3
|
1208
1192
|
optional :port, :int32, 5
|
1209
1193
|
optional :port_override, :int32, 4
|
@@ -1517,8 +1501,7 @@ module V1
|
|
1517
1501
|
AzureCertificate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzureCertificate").msgclass
|
1518
1502
|
AzureMysql = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzureMysql").msgclass
|
1519
1503
|
AzurePostgres = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzurePostgres").msgclass
|
1520
|
-
|
1521
|
-
AzurePostgresSingle = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzurePostgresSingle").msgclass
|
1504
|
+
AzurePostgresManagedIdentity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzurePostgresManagedIdentity").msgclass
|
1522
1505
|
BigQuery = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.BigQuery").msgclass
|
1523
1506
|
Cassandra = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Cassandra").msgclass
|
1524
1507
|
Citus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Citus").msgclass
|
data/lib/grpc/nodes_pb.rb
CHANGED
@@ -85,6 +85,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
85
85
|
optional :version, :string, 8
|
86
86
|
optional :uuid, :string, 9
|
87
87
|
optional :connects_to, :string, 10
|
88
|
+
repeated :maintenance_windows, :message, 11, "v1.NodeMaintenanceWindow"
|
88
89
|
end
|
89
90
|
add_message "v1.Gateway" do
|
90
91
|
optional :id, :string, 1
|
@@ -99,6 +100,11 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
99
100
|
optional :version, :string, 10
|
100
101
|
optional :uuid, :string, 11
|
101
102
|
optional :connects_to, :string, 12
|
103
|
+
repeated :maintenance_windows, :message, 13, "v1.NodeMaintenanceWindow"
|
104
|
+
end
|
105
|
+
add_message "v1.NodeMaintenanceWindow" do
|
106
|
+
optional :cron_schedule, :string, 1
|
107
|
+
optional :require_idleness, :bool, 2
|
102
108
|
end
|
103
109
|
end
|
104
110
|
end
|
@@ -117,4 +123,5 @@ module V1
|
|
117
123
|
Node = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Node").msgclass
|
118
124
|
Relay = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Relay").msgclass
|
119
125
|
Gateway = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Gateway").msgclass
|
126
|
+
NodeMaintenanceWindow = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.NodeMaintenanceWindow").msgclass
|
120
127
|
end
|
data/lib/grpc/plumbing.rb
CHANGED
@@ -1439,6 +1439,7 @@ module SDM
|
|
1439
1439
|
porcelain.entities = convert_repeated_activity_entity_to_porcelain(plumbing.entities)
|
1440
1440
|
porcelain.id = (plumbing.id)
|
1441
1441
|
porcelain.ip_address = (plumbing.ip_address)
|
1442
|
+
porcelain.user_agent = (plumbing.user_agent)
|
1442
1443
|
porcelain.verb = (plumbing.verb)
|
1443
1444
|
porcelain
|
1444
1445
|
end
|
@@ -1454,6 +1455,7 @@ module SDM
|
|
1454
1455
|
plumbing.entities += convert_repeated_activity_entity_to_plumbing(porcelain.entities)
|
1455
1456
|
plumbing.id = (porcelain.id)
|
1456
1457
|
plumbing.ip_address = (porcelain.ip_address)
|
1458
|
+
plumbing.user_agent = (porcelain.user_agent)
|
1457
1459
|
plumbing.verb = (porcelain.verb)
|
1458
1460
|
plumbing
|
1459
1461
|
end
|
@@ -2420,73 +2422,11 @@ module SDM
|
|
2420
2422
|
end
|
2421
2423
|
items
|
2422
2424
|
end
|
2423
|
-
def self.
|
2425
|
+
def self.convert_azure_postgres_managed_identity_to_porcelain(plumbing)
|
2424
2426
|
if plumbing == nil
|
2425
2427
|
return nil
|
2426
2428
|
end
|
2427
|
-
porcelain =
|
2428
|
-
porcelain.bind_interface = (plumbing.bind_interface)
|
2429
|
-
porcelain.database = (plumbing.database)
|
2430
|
-
porcelain.egress_filter = (plumbing.egress_filter)
|
2431
|
-
porcelain.healthy = (plumbing.healthy)
|
2432
|
-
porcelain.hostname = (plumbing.hostname)
|
2433
|
-
porcelain.id = (plumbing.id)
|
2434
|
-
porcelain.name = (plumbing.name)
|
2435
|
-
porcelain.override_database = (plumbing.override_database)
|
2436
|
-
porcelain.password = (plumbing.password)
|
2437
|
-
porcelain.port = (plumbing.port)
|
2438
|
-
porcelain.port_override = (plumbing.port_override)
|
2439
|
-
porcelain.secret_store_id = (plumbing.secret_store_id)
|
2440
|
-
porcelain.subdomain = (plumbing.subdomain)
|
2441
|
-
porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
|
2442
|
-
porcelain.username = (plumbing.username)
|
2443
|
-
porcelain
|
2444
|
-
end
|
2445
|
-
|
2446
|
-
def self.convert_azure_postgres_flexible_to_plumbing(porcelain)
|
2447
|
-
if porcelain == nil
|
2448
|
-
return nil
|
2449
|
-
end
|
2450
|
-
plumbing = V1::AzurePostgresFlexible.new()
|
2451
|
-
plumbing.bind_interface = (porcelain.bind_interface)
|
2452
|
-
plumbing.database = (porcelain.database)
|
2453
|
-
plumbing.egress_filter = (porcelain.egress_filter)
|
2454
|
-
plumbing.healthy = (porcelain.healthy)
|
2455
|
-
plumbing.hostname = (porcelain.hostname)
|
2456
|
-
plumbing.id = (porcelain.id)
|
2457
|
-
plumbing.name = (porcelain.name)
|
2458
|
-
plumbing.override_database = (porcelain.override_database)
|
2459
|
-
plumbing.password = (porcelain.password)
|
2460
|
-
plumbing.port = (porcelain.port)
|
2461
|
-
plumbing.port_override = (porcelain.port_override)
|
2462
|
-
plumbing.secret_store_id = (porcelain.secret_store_id)
|
2463
|
-
plumbing.subdomain = (porcelain.subdomain)
|
2464
|
-
plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
|
2465
|
-
plumbing.username = (porcelain.username)
|
2466
|
-
plumbing
|
2467
|
-
end
|
2468
|
-
def self.convert_repeated_azure_postgres_flexible_to_plumbing(porcelains)
|
2469
|
-
items = Array.new
|
2470
|
-
porcelains.each do |porcelain|
|
2471
|
-
plumbing = convert_azure_postgres_flexible_to_plumbing(porcelain)
|
2472
|
-
items.append(plumbing)
|
2473
|
-
end
|
2474
|
-
items
|
2475
|
-
end
|
2476
|
-
|
2477
|
-
def self.convert_repeated_azure_postgres_flexible_to_porcelain(plumbings)
|
2478
|
-
items = Array.new
|
2479
|
-
plumbings.each do |plumbing|
|
2480
|
-
porcelain = convert_azure_postgres_flexible_to_porcelain(plumbing)
|
2481
|
-
items.append(porcelain)
|
2482
|
-
end
|
2483
|
-
items
|
2484
|
-
end
|
2485
|
-
def self.convert_azure_postgres_single_to_porcelain(plumbing)
|
2486
|
-
if plumbing == nil
|
2487
|
-
return nil
|
2488
|
-
end
|
2489
|
-
porcelain = AzurePostgresSingle.new()
|
2429
|
+
porcelain = AzurePostgresManagedIdentity.new()
|
2490
2430
|
porcelain.bind_interface = (plumbing.bind_interface)
|
2491
2431
|
porcelain.database = (plumbing.database)
|
2492
2432
|
porcelain.egress_filter = (plumbing.egress_filter)
|
@@ -2501,15 +2441,16 @@ module SDM
|
|
2501
2441
|
porcelain.secret_store_id = (plumbing.secret_store_id)
|
2502
2442
|
porcelain.subdomain = (plumbing.subdomain)
|
2503
2443
|
porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
|
2444
|
+
porcelain.use_azure_single_server_usernames = (plumbing.use_azure_single_server_usernames)
|
2504
2445
|
porcelain.username = (plumbing.username)
|
2505
2446
|
porcelain
|
2506
2447
|
end
|
2507
2448
|
|
2508
|
-
def self.
|
2449
|
+
def self.convert_azure_postgres_managed_identity_to_plumbing(porcelain)
|
2509
2450
|
if porcelain == nil
|
2510
2451
|
return nil
|
2511
2452
|
end
|
2512
|
-
plumbing = V1::
|
2453
|
+
plumbing = V1::AzurePostgresManagedIdentity.new()
|
2513
2454
|
plumbing.bind_interface = (porcelain.bind_interface)
|
2514
2455
|
plumbing.database = (porcelain.database)
|
2515
2456
|
plumbing.egress_filter = (porcelain.egress_filter)
|
@@ -2524,22 +2465,23 @@ module SDM
|
|
2524
2465
|
plumbing.secret_store_id = (porcelain.secret_store_id)
|
2525
2466
|
plumbing.subdomain = (porcelain.subdomain)
|
2526
2467
|
plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
|
2468
|
+
plumbing.use_azure_single_server_usernames = (porcelain.use_azure_single_server_usernames)
|
2527
2469
|
plumbing.username = (porcelain.username)
|
2528
2470
|
plumbing
|
2529
2471
|
end
|
2530
|
-
def self.
|
2472
|
+
def self.convert_repeated_azure_postgres_managed_identity_to_plumbing(porcelains)
|
2531
2473
|
items = Array.new
|
2532
2474
|
porcelains.each do |porcelain|
|
2533
|
-
plumbing =
|
2475
|
+
plumbing = convert_azure_postgres_managed_identity_to_plumbing(porcelain)
|
2534
2476
|
items.append(plumbing)
|
2535
2477
|
end
|
2536
2478
|
items
|
2537
2479
|
end
|
2538
2480
|
|
2539
|
-
def self.
|
2481
|
+
def self.convert_repeated_azure_postgres_managed_identity_to_porcelain(plumbings)
|
2540
2482
|
items = Array.new
|
2541
2483
|
plumbings.each do |plumbing|
|
2542
|
-
porcelain =
|
2484
|
+
porcelain = convert_azure_postgres_managed_identity_to_porcelain(plumbing)
|
2543
2485
|
items.append(porcelain)
|
2544
2486
|
end
|
2545
2487
|
items
|
@@ -3780,6 +3722,7 @@ module SDM
|
|
3780
3722
|
porcelain.id = (plumbing.id)
|
3781
3723
|
porcelain.listen_address = (plumbing.listen_address)
|
3782
3724
|
porcelain.location = (plumbing.location)
|
3725
|
+
porcelain.maintenance_windows = convert_repeated_node_maintenance_window_to_porcelain(plumbing.maintenance_windows)
|
3783
3726
|
porcelain.name = (plumbing.name)
|
3784
3727
|
porcelain.state = (plumbing.state)
|
3785
3728
|
porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
|
@@ -3799,6 +3742,7 @@ module SDM
|
|
3799
3742
|
plumbing.id = (porcelain.id)
|
3800
3743
|
plumbing.listen_address = (porcelain.listen_address)
|
3801
3744
|
plumbing.location = (porcelain.location)
|
3745
|
+
plumbing.maintenance_windows += convert_repeated_node_maintenance_window_to_plumbing(porcelain.maintenance_windows)
|
3802
3746
|
plumbing.name = (porcelain.name)
|
3803
3747
|
plumbing.state = (porcelain.state)
|
3804
3748
|
plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
|
@@ -5541,6 +5485,42 @@ module SDM
|
|
5541
5485
|
end
|
5542
5486
|
items
|
5543
5487
|
end
|
5488
|
+
def self.convert_node_maintenance_window_to_porcelain(plumbing)
|
5489
|
+
if plumbing == nil
|
5490
|
+
return nil
|
5491
|
+
end
|
5492
|
+
porcelain = NodeMaintenanceWindow.new()
|
5493
|
+
porcelain.cron_schedule = (plumbing.cron_schedule)
|
5494
|
+
porcelain.require_idleness = (plumbing.require_idleness)
|
5495
|
+
porcelain
|
5496
|
+
end
|
5497
|
+
|
5498
|
+
def self.convert_node_maintenance_window_to_plumbing(porcelain)
|
5499
|
+
if porcelain == nil
|
5500
|
+
return nil
|
5501
|
+
end
|
5502
|
+
plumbing = V1::NodeMaintenanceWindow.new()
|
5503
|
+
plumbing.cron_schedule = (porcelain.cron_schedule)
|
5504
|
+
plumbing.require_idleness = (porcelain.require_idleness)
|
5505
|
+
plumbing
|
5506
|
+
end
|
5507
|
+
def self.convert_repeated_node_maintenance_window_to_plumbing(porcelains)
|
5508
|
+
items = Array.new
|
5509
|
+
porcelains.each do |porcelain|
|
5510
|
+
plumbing = convert_node_maintenance_window_to_plumbing(porcelain)
|
5511
|
+
items.append(plumbing)
|
5512
|
+
end
|
5513
|
+
items
|
5514
|
+
end
|
5515
|
+
|
5516
|
+
def self.convert_repeated_node_maintenance_window_to_porcelain(plumbings)
|
5517
|
+
items = Array.new
|
5518
|
+
plumbings.each do |plumbing|
|
5519
|
+
porcelain = convert_node_maintenance_window_to_porcelain(plumbing)
|
5520
|
+
items.append(porcelain)
|
5521
|
+
end
|
5522
|
+
items
|
5523
|
+
end
|
5544
5524
|
def self.convert_node_update_response_to_porcelain(plumbing)
|
5545
5525
|
if plumbing == nil
|
5546
5526
|
return nil
|
@@ -6365,6 +6345,7 @@ module SDM
|
|
6365
6345
|
porcelain.gateway_filter = (plumbing.gateway_filter)
|
6366
6346
|
porcelain.id = (plumbing.id)
|
6367
6347
|
porcelain.location = (plumbing.location)
|
6348
|
+
porcelain.maintenance_windows = convert_repeated_node_maintenance_window_to_porcelain(plumbing.maintenance_windows)
|
6368
6349
|
porcelain.name = (plumbing.name)
|
6369
6350
|
porcelain.state = (plumbing.state)
|
6370
6351
|
porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
|
@@ -6382,6 +6363,7 @@ module SDM
|
|
6382
6363
|
plumbing.gateway_filter = (porcelain.gateway_filter)
|
6383
6364
|
plumbing.id = (porcelain.id)
|
6384
6365
|
plumbing.location = (porcelain.location)
|
6366
|
+
plumbing.maintenance_windows += convert_repeated_node_maintenance_window_to_plumbing(porcelain.maintenance_windows)
|
6385
6367
|
plumbing.name = (porcelain.name)
|
6386
6368
|
plumbing.state = (porcelain.state)
|
6387
6369
|
plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
|
@@ -6889,11 +6871,8 @@ module SDM
|
|
6889
6871
|
if porcelain.instance_of? AzurePostgres
|
6890
6872
|
plumbing.azure_postgres = convert_azure_postgres_to_plumbing(porcelain)
|
6891
6873
|
end
|
6892
|
-
if porcelain.instance_of?
|
6893
|
-
plumbing.
|
6894
|
-
end
|
6895
|
-
if porcelain.instance_of? AzurePostgresSingle
|
6896
|
-
plumbing.azure_postgres_single = convert_azure_postgres_single_to_plumbing(porcelain)
|
6874
|
+
if porcelain.instance_of? AzurePostgresManagedIdentity
|
6875
|
+
plumbing.azure_postgres_managed_identity = convert_azure_postgres_managed_identity_to_plumbing(porcelain)
|
6897
6876
|
end
|
6898
6877
|
if porcelain.instance_of? BigQuery
|
6899
6878
|
plumbing.big_query = convert_big_query_to_plumbing(porcelain)
|
@@ -7142,11 +7121,8 @@ module SDM
|
|
7142
7121
|
if plumbing.azure_postgres != nil
|
7143
7122
|
return convert_azure_postgres_to_porcelain(plumbing.azure_postgres)
|
7144
7123
|
end
|
7145
|
-
if plumbing.
|
7146
|
-
return
|
7147
|
-
end
|
7148
|
-
if plumbing.azure_postgres_single != nil
|
7149
|
-
return convert_azure_postgres_single_to_porcelain(plumbing.azure_postgres_single)
|
7124
|
+
if plumbing.azure_postgres_managed_identity != nil
|
7125
|
+
return convert_azure_postgres_managed_identity_to_porcelain(plumbing.azure_postgres_managed_identity)
|
7150
7126
|
end
|
7151
7127
|
if plumbing.big_query != nil
|
7152
7128
|
return convert_big_query_to_porcelain(plumbing.big_query)
|
data/lib/models/porcelain.rb
CHANGED
@@ -1241,6 +1241,9 @@ module SDM
|
|
1241
1241
|
attr_accessor :id
|
1242
1242
|
# The IP from which this action was taken.
|
1243
1243
|
attr_accessor :ip_address
|
1244
|
+
# The User Agent present when this request was executed. Generally a client type and version
|
1245
|
+
# like strongdm-cli/55.66.77
|
1246
|
+
attr_accessor :user_agent
|
1244
1247
|
# The kind of activity which has taken place.
|
1245
1248
|
attr_accessor :verb
|
1246
1249
|
|
@@ -1251,6 +1254,7 @@ module SDM
|
|
1251
1254
|
entities: nil,
|
1252
1255
|
id: nil,
|
1253
1256
|
ip_address: nil,
|
1257
|
+
user_agent: nil,
|
1254
1258
|
verb: nil
|
1255
1259
|
)
|
1256
1260
|
@actor = actor == nil ? nil : actor
|
@@ -1259,6 +1263,7 @@ module SDM
|
|
1259
1263
|
@entities = entities == nil ? [] : entities
|
1260
1264
|
@id = id == nil ? "" : id
|
1261
1265
|
@ip_address = ip_address == nil ? "" : ip_address
|
1266
|
+
@user_agent = user_agent == nil ? "" : user_agent
|
1262
1267
|
@verb = verb == nil ? "" : verb
|
1263
1268
|
end
|
1264
1269
|
|
@@ -2380,84 +2385,8 @@ module SDM
|
|
2380
2385
|
end
|
2381
2386
|
end
|
2382
2387
|
|
2383
|
-
#
|
2384
|
-
class
|
2385
|
-
# The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
|
2386
|
-
attr_accessor :bind_interface
|
2387
|
-
# The initial database to connect to. This setting does not by itself prevent switching to another database after connecting.
|
2388
|
-
attr_accessor :database
|
2389
|
-
# A filter applied to the routing logic to pin datasource to nodes.
|
2390
|
-
attr_accessor :egress_filter
|
2391
|
-
# True if the datasource is reachable and the credentials are valid.
|
2392
|
-
attr_accessor :healthy
|
2393
|
-
# The host to dial to initiate a connection from the egress node to this resource.
|
2394
|
-
attr_accessor :hostname
|
2395
|
-
# Unique identifier of the Resource.
|
2396
|
-
attr_accessor :id
|
2397
|
-
# Unique human-readable name of the Resource.
|
2398
|
-
attr_accessor :name
|
2399
|
-
# If set, the database configured cannot be changed by users. This setting is not recommended for most use cases, as some clients will insist their database has changed when it has not, leading to user confusion.
|
2400
|
-
attr_accessor :override_database
|
2401
|
-
# The password to authenticate with.
|
2402
|
-
attr_accessor :password
|
2403
|
-
# The port to dial to initiate a connection from the egress node to this resource.
|
2404
|
-
attr_accessor :port
|
2405
|
-
# The local port used by clients to connect to this resource.
|
2406
|
-
attr_accessor :port_override
|
2407
|
-
# ID of the secret store containing credentials for this resource, if any.
|
2408
|
-
attr_accessor :secret_store_id
|
2409
|
-
# Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
|
2410
|
-
attr_accessor :subdomain
|
2411
|
-
# Tags is a map of key, value pairs.
|
2412
|
-
attr_accessor :tags
|
2413
|
-
# The username to authenticate with.
|
2414
|
-
attr_accessor :username
|
2415
|
-
|
2416
|
-
def initialize(
|
2417
|
-
bind_interface: nil,
|
2418
|
-
database: nil,
|
2419
|
-
egress_filter: nil,
|
2420
|
-
healthy: nil,
|
2421
|
-
hostname: nil,
|
2422
|
-
id: nil,
|
2423
|
-
name: nil,
|
2424
|
-
override_database: nil,
|
2425
|
-
password: nil,
|
2426
|
-
port: nil,
|
2427
|
-
port_override: nil,
|
2428
|
-
secret_store_id: nil,
|
2429
|
-
subdomain: nil,
|
2430
|
-
tags: nil,
|
2431
|
-
username: nil
|
2432
|
-
)
|
2433
|
-
@bind_interface = bind_interface == nil ? "" : bind_interface
|
2434
|
-
@database = database == nil ? "" : database
|
2435
|
-
@egress_filter = egress_filter == nil ? "" : egress_filter
|
2436
|
-
@healthy = healthy == nil ? false : healthy
|
2437
|
-
@hostname = hostname == nil ? "" : hostname
|
2438
|
-
@id = id == nil ? "" : id
|
2439
|
-
@name = name == nil ? "" : name
|
2440
|
-
@override_database = override_database == nil ? false : override_database
|
2441
|
-
@password = password == nil ? "" : password
|
2442
|
-
@port = port == nil ? 0 : port
|
2443
|
-
@port_override = port_override == nil ? 0 : port_override
|
2444
|
-
@secret_store_id = secret_store_id == nil ? "" : secret_store_id
|
2445
|
-
@subdomain = subdomain == nil ? "" : subdomain
|
2446
|
-
@tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
|
2447
|
-
@username = username == nil ? "" : username
|
2448
|
-
end
|
2449
|
-
|
2450
|
-
def to_json(options = {})
|
2451
|
-
hash = {}
|
2452
|
-
self.instance_variables.each do |var|
|
2453
|
-
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
2454
|
-
end
|
2455
|
-
hash.to_json
|
2456
|
-
end
|
2457
|
-
end
|
2458
|
-
|
2459
|
-
# AzurePostgresSingle is currently unstable, and its API may change, or it may be removed, without a major version bump.
|
2460
|
-
class AzurePostgresSingle
|
2388
|
+
# AzurePostgresManagedIdentity is currently unstable, and its API may change, or it may be removed, without a major version bump.
|
2389
|
+
class AzurePostgresManagedIdentity
|
2461
2390
|
# The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
|
2462
2391
|
attr_accessor :bind_interface
|
2463
2392
|
# The initial database to connect to. This setting does not by itself prevent switching to another database after connecting.
|
@@ -2486,6 +2415,8 @@ module SDM
|
|
2486
2415
|
attr_accessor :subdomain
|
2487
2416
|
# Tags is a map of key, value pairs.
|
2488
2417
|
attr_accessor :tags
|
2418
|
+
# If true, appends the hostname to the username when hitting a database.azure.com address
|
2419
|
+
attr_accessor :use_azure_single_server_usernames
|
2489
2420
|
# The username to authenticate with.
|
2490
2421
|
attr_accessor :username
|
2491
2422
|
|
@@ -2504,6 +2435,7 @@ module SDM
|
|
2504
2435
|
secret_store_id: nil,
|
2505
2436
|
subdomain: nil,
|
2506
2437
|
tags: nil,
|
2438
|
+
use_azure_single_server_usernames: nil,
|
2507
2439
|
username: nil
|
2508
2440
|
)
|
2509
2441
|
@bind_interface = bind_interface == nil ? "" : bind_interface
|
@@ -2520,6 +2452,7 @@ module SDM
|
|
2520
2452
|
@secret_store_id = secret_store_id == nil ? "" : secret_store_id
|
2521
2453
|
@subdomain = subdomain == nil ? "" : subdomain
|
2522
2454
|
@tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
|
2455
|
+
@use_azure_single_server_usernames = use_azure_single_server_usernames == nil ? false : use_azure_single_server_usernames
|
2523
2456
|
@username = username == nil ? "" : username
|
2524
2457
|
end
|
2525
2458
|
|
@@ -3828,6 +3761,19 @@ module SDM
|
|
3828
3761
|
# Location is a read only network location uploaded by the gateway process
|
3829
3762
|
# when it comes online.
|
3830
3763
|
attr_accessor :location
|
3764
|
+
# Maintenance Windows define when this node is allowed to restart. If a node
|
3765
|
+
# is requested to restart, it will check each window to determine if any of
|
3766
|
+
# them permit it to restart, and if any do, it will. This check is repeated
|
3767
|
+
# per window until the restart is successfully completed.
|
3768
|
+
#
|
3769
|
+
# If not set here, may be set on the command line or via an environment variable
|
3770
|
+
# on the process itself; any server setting will take precedence over local
|
3771
|
+
# settings. This setting is ineffective for nodes below version 38.44.0.
|
3772
|
+
#
|
3773
|
+
# If this setting is not applied via this remote configuration or via local
|
3774
|
+
# configuration, the default setting is used: always allow restarts if serving
|
3775
|
+
# no connections, and allow a restart even if serving connections between 7-8 UTC, any day.
|
3776
|
+
attr_accessor :maintenance_windows
|
3831
3777
|
# Unique human-readable name of the Gateway. Node names must include only letters, numbers, and hyphens (no spaces, underscores, or other special characters). Generated if not provided on create.
|
3832
3778
|
attr_accessor :name
|
3833
3779
|
# The current state of the gateway. One of: "new", "verifying_restart",
|
@@ -3847,6 +3793,7 @@ module SDM
|
|
3847
3793
|
id: nil,
|
3848
3794
|
listen_address: nil,
|
3849
3795
|
location: nil,
|
3796
|
+
maintenance_windows: nil,
|
3850
3797
|
name: nil,
|
3851
3798
|
state: nil,
|
3852
3799
|
tags: nil,
|
@@ -3859,6 +3806,7 @@ module SDM
|
|
3859
3806
|
@id = id == nil ? "" : id
|
3860
3807
|
@listen_address = listen_address == nil ? "" : listen_address
|
3861
3808
|
@location = location == nil ? "" : location
|
3809
|
+
@maintenance_windows = maintenance_windows == nil ? [] : maintenance_windows
|
3862
3810
|
@name = name == nil ? "" : name
|
3863
3811
|
@state = state == nil ? "" : state
|
3864
3812
|
@tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
|
@@ -5816,6 +5764,38 @@ module SDM
|
|
5816
5764
|
end
|
5817
5765
|
end
|
5818
5766
|
|
5767
|
+
class NodeMaintenanceWindow
|
5768
|
+
# Cron job syntax for when this maintenance window is active. On this schedule, associated
|
5769
|
+
# nodes will restart if requested, provided other checks allow the restart to proceed. Times
|
5770
|
+
# are represented in UTC.
|
5771
|
+
# e.g. * 7 * * 0,6 to check for a restart at every minute from 7:00 to 8:00 UTC on Sunday and
|
5772
|
+
# Saturday. Not all possible inputs are supported: the month and day of month selections
|
5773
|
+
# must be '*'.
|
5774
|
+
attr_accessor :cron_schedule
|
5775
|
+
# Require Idleness defines whether this window can sever live connections. If true,
|
5776
|
+
# this window will not allow a node to be restarted unless it is serving no connections.
|
5777
|
+
# If false, given a restart of the node has been requested (for an update, usually), the
|
5778
|
+
# node will restart as soon as it enters an allowed day / hour combination. At least one
|
5779
|
+
# maintenance window, out of all configured windows for a node, must have this as false.
|
5780
|
+
attr_accessor :require_idleness
|
5781
|
+
|
5782
|
+
def initialize(
|
5783
|
+
cron_schedule: nil,
|
5784
|
+
require_idleness: nil
|
5785
|
+
)
|
5786
|
+
@cron_schedule = cron_schedule == nil ? "" : cron_schedule
|
5787
|
+
@require_idleness = require_idleness == nil ? false : require_idleness
|
5788
|
+
end
|
5789
|
+
|
5790
|
+
def to_json(options = {})
|
5791
|
+
hash = {}
|
5792
|
+
self.instance_variables.each do |var|
|
5793
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
5794
|
+
end
|
5795
|
+
hash.to_json
|
5796
|
+
end
|
5797
|
+
end
|
5798
|
+
|
5819
5799
|
# NodeUpdateResponse returns the fields of a Node after it has been updated by
|
5820
5800
|
# a NodeUpdateRequest.
|
5821
5801
|
class NodeUpdateResponse
|
@@ -6801,6 +6781,19 @@ module SDM
|
|
6801
6781
|
# Location is a read only network location uploaded by the gateway process
|
6802
6782
|
# when it comes online.
|
6803
6783
|
attr_accessor :location
|
6784
|
+
# Maintenance Windows define when this node is allowed to restart. If a node
|
6785
|
+
# is requested to restart, it will check each window to determine if any of
|
6786
|
+
# them permit it to restart, and if any do, it will. This check is repeated
|
6787
|
+
# per window until the restart is successfully completed.
|
6788
|
+
#
|
6789
|
+
# If not set here, may be set on the command line or via an environment variable
|
6790
|
+
# on the process itself; any server setting will take precedence over local
|
6791
|
+
# settings. This setting is ineffective for nodes below version 38.44.0.
|
6792
|
+
#
|
6793
|
+
# If this setting is not applied via this remote configuration or via local
|
6794
|
+
# configuration, the default setting is used: always allow restarts if serving
|
6795
|
+
# no connections, and allow a restart even if serving connections between 7-8 UTC, any day.
|
6796
|
+
attr_accessor :maintenance_windows
|
6804
6797
|
# Unique human-readable name of the Relay. Node names must include only letters, numbers, and hyphens (no spaces, underscores, or other special characters). Generated if not provided on create.
|
6805
6798
|
attr_accessor :name
|
6806
6799
|
# The current state of the relay. One of: "new", "verifying_restart",
|
@@ -6819,6 +6812,7 @@ module SDM
|
|
6819
6812
|
gateway_filter: nil,
|
6820
6813
|
id: nil,
|
6821
6814
|
location: nil,
|
6815
|
+
maintenance_windows: nil,
|
6822
6816
|
name: nil,
|
6823
6817
|
state: nil,
|
6824
6818
|
tags: nil,
|
@@ -6829,6 +6823,7 @@ module SDM
|
|
6829
6823
|
@gateway_filter = gateway_filter == nil ? "" : gateway_filter
|
6830
6824
|
@id = id == nil ? "" : id
|
6831
6825
|
@location = location == nil ? "" : location
|
6826
|
+
@maintenance_windows = maintenance_windows == nil ? [] : maintenance_windows
|
6832
6827
|
@name = name == nil ? "" : name
|
6833
6828
|
@state = state == nil ? "" : state
|
6834
6829
|
@tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
|
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/3.
|
32
|
+
USER_AGENT = "strongdm-sdk-ruby/3.18.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.
|
data/lib/svc.rb
CHANGED
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: 3.
|
4
|
+
version: 3.18.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: 2023-
|
11
|
+
date: 2023-07-07 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-f4db79d8b517a6bbe6b8e46ce03146184bf6e554.idx"
|
85
|
+
- "./.git/objects/pack/pack-f4db79d8b517a6bbe6b8e46ce03146184bf6e554.pack"
|
86
86
|
- "./.git/packed-refs"
|
87
87
|
- "./.git/refs/heads/master"
|
88
88
|
- "./.git/refs/remotes/origin/HEAD"
|