strongdm 1.0.34 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.git/ORIG_HEAD +1 -1
- data/.git/config +0 -3
- data/.git/index +0 -0
- data/.git/logs/HEAD +3 -4
- data/.git/logs/refs/heads/master +2 -2
- data/.git/logs/refs/remotes/origin/HEAD +1 -1
- data/.git/objects/pack/pack-ae9c31d15ecb69c51d515e053295673b38840788.idx +0 -0
- data/.git/objects/pack/{pack-802051e74a1de9449b3bc69f695b0b5e55e448e5.pack → pack-ae9c31d15ecb69c51d515e053295673b38840788.pack} +0 -0
- data/.git/packed-refs +5 -2
- data/.git/refs/heads/master +1 -1
- data/.yardopts +9 -0
- data/README.md +18 -6
- data/lib/errors/errors.rb +1 -1
- data/lib/grpc/account_attachments_services_pb.rb +1 -1
- data/lib/grpc/accounts_services_pb.rb +2 -2
- data/lib/grpc/drivers_pb.rb +41 -0
- data/lib/grpc/nodes_services_pb.rb +1 -1
- data/lib/grpc/options_pb.rb +35 -41
- data/lib/grpc/plumbing.rb +1235 -982
- data/lib/grpc/resources_services_pb.rb +3 -1
- data/lib/grpc/role_attachments_services_pb.rb +10 -0
- data/lib/grpc/role_grants_services_pb.rb +10 -0
- data/lib/grpc/roles_services_pb.rb +4 -6
- data/lib/grpc/secret_store_types_pb.rb +17 -0
- data/lib/grpc/secret_stores_services_pb.rb +1 -1
- data/lib/models/porcelain.rb +1255 -2961
- data/lib/strongdm.rb +53 -16
- data/lib/svc.rb +163 -14
- data/lib/version +1 -1
- data/lib/version.rb +1 -1
- metadata +5 -224
- data/.git/FETCH_HEAD +0 -2
- data/.git/logs/refs/heads/development +0 -1
- data/.git/objects/pack/pack-802051e74a1de9449b3bc69f695b0b5e55e448e5.idx +0 -0
- data/.git/refs/heads/development +0 -1
- data/doc/LICENSE.html +0 -187
- data/doc/Object.html +0 -114
- data/doc/README_md.html +0 -146
- data/doc/SDM/AKS.html +0 -352
- data/doc/SDM/AKSBasicAuth.html +0 -337
- data/doc/SDM/AKSServiceAccount.html +0 -322
- data/doc/SDM/AKSServiceAccountUserImpersonation.html +0 -322
- data/doc/SDM/AKSUserImpersonation.html +0 -352
- data/doc/SDM/AWS.html +0 -337
- data/doc/SDM/AWSStore.html +0 -232
- data/doc/SDM/AccountAttachment.html +0 -219
- data/doc/SDM/AccountAttachmentCreateResponse.html +0 -219
- data/doc/SDM/AccountAttachmentDeleteResponse.html +0 -204
- data/doc/SDM/AccountAttachmentGetResponse.html +0 -219
- data/doc/SDM/AccountAttachments.html +0 -354
- data/doc/SDM/AccountCreateResponse.html +0 -234
- data/doc/SDM/AccountDeleteResponse.html +0 -204
- data/doc/SDM/AccountGetResponse.html +0 -219
- data/doc/SDM/AccountGrant.html +0 -249
- data/doc/SDM/AccountGrantCreateResponse.html +0 -219
- data/doc/SDM/AccountGrantDeleteResponse.html +0 -204
- data/doc/SDM/AccountGrantGetResponse.html +0 -219
- data/doc/SDM/AccountGrants.html +0 -354
- data/doc/SDM/AccountUpdateResponse.html +0 -219
- data/doc/SDM/Accounts.html +0 -409
- data/doc/SDM/AlreadyExistsError.html +0 -140
- data/doc/SDM/AmazonEKS.html +0 -397
- data/doc/SDM/AmazonEKSUserImpersonation.html +0 -397
- data/doc/SDM/AmazonES.html +0 -367
- data/doc/SDM/AmazonMQAMQP091.html +0 -352
- data/doc/SDM/Athena.html +0 -367
- data/doc/SDM/AuroraMysql.html +0 -352
- data/doc/SDM/AuroraPostgres.html +0 -367
- data/doc/SDM/AuthenticationError.html +0 -140
- data/doc/SDM/Azure.html +0 -307
- data/doc/SDM/AzureCertificate.html +0 -307
- data/doc/SDM/AzurePostgres.html +0 -367
- data/doc/SDM/AzureStore.html +0 -232
- data/doc/SDM/BadRequestError.html +0 -140
- data/doc/SDM/BigQuery.html +0 -337
- data/doc/SDM/Cassandra.html +0 -352
- data/doc/SDM/Citus.html +0 -367
- data/doc/SDM/Client.html +0 -443
- data/doc/SDM/Clustrix.html +0 -352
- data/doc/SDM/Cockroach.html +0 -367
- data/doc/SDM/ControlPanel.html +0 -248
- data/doc/SDM/ControlPanelGetSSHCAPublicKeyResponse.html +0 -219
- data/doc/SDM/ControlPanelVerifyJWTResponse.html +0 -219
- data/doc/SDM/CreateResponseMetadata.html +0 -169
- data/doc/SDM/DB2LUW.html +0 -352
- data/doc/SDM/DB2i.html +0 -352
- data/doc/SDM/DeadlineExceededError.html +0 -140
- data/doc/SDM/DeleteResponseMetadata.html +0 -169
- data/doc/SDM/DocumentDBHost.html +0 -352
- data/doc/SDM/DocumentDBReplicaSet.html +0 -367
- data/doc/SDM/Druid.html +0 -337
- data/doc/SDM/DynamoDB.html +0 -367
- data/doc/SDM/Elastic.html +0 -352
- data/doc/SDM/ElasticacheRedis.html +0 -337
- data/doc/SDM/GCP.html +0 -292
- data/doc/SDM/Gateway.html +0 -279
- data/doc/SDM/GetResponseMetadata.html +0 -169
- data/doc/SDM/GoogleGKE.html +0 -322
- data/doc/SDM/GoogleGKEUserImpersonation.html +0 -322
- data/doc/SDM/Greenplum.html +0 -367
- data/doc/SDM/HTTPAuth.html +0 -352
- data/doc/SDM/HTTPBasicAuth.html +0 -367
- data/doc/SDM/HTTPNoAuth.html +0 -337
- data/doc/SDM/InternalError.html +0 -140
- data/doc/SDM/Kubernetes.html +0 -352
- data/doc/SDM/KubernetesBasicAuth.html +0 -337
- data/doc/SDM/KubernetesServiceAccount.html +0 -322
- data/doc/SDM/KubernetesServiceAccountUserImpersonation.html +0 -322
- data/doc/SDM/KubernetesUserImpersonation.html +0 -352
- data/doc/SDM/Maria.html +0 -352
- data/doc/SDM/Memcached.html +0 -307
- data/doc/SDM/Memsql.html +0 -352
- data/doc/SDM/MongoHost.html +0 -367
- data/doc/SDM/MongoLegacyHost.html +0 -382
- data/doc/SDM/MongoLegacyReplicaset.html +0 -397
- data/doc/SDM/MongoReplicaSet.html +0 -397
- data/doc/SDM/MongoShardedCluster.html +0 -352
- data/doc/SDM/Mysql.html +0 -352
- data/doc/SDM/Neptune.html +0 -307
- data/doc/SDM/NeptuneIAM.html +0 -382
- data/doc/SDM/NodeCreateResponse.html +0 -234
- data/doc/SDM/NodeDeleteResponse.html +0 -204
- data/doc/SDM/NodeGetResponse.html +0 -219
- data/doc/SDM/NodeUpdateResponse.html +0 -219
- data/doc/SDM/Nodes.html +0 -409
- data/doc/SDM/NotFoundError.html +0 -140
- data/doc/SDM/Oracle.html +0 -367
- data/doc/SDM/PermissionError.html +0 -140
- data/doc/SDM/Plumbing.html +0 -16086
- data/doc/SDM/Postgres.html +0 -367
- data/doc/SDM/Presto.html +0 -367
- data/doc/SDM/RDP.html +0 -352
- data/doc/SDM/RPCError.html +0 -157
- data/doc/SDM/RabbitMQAMQP091.html +0 -352
- data/doc/SDM/RateLimitError.html +0 -157
- data/doc/SDM/RateLimitMetadata.html +0 -234
- data/doc/SDM/RawTCP.html +0 -307
- data/doc/SDM/Redis.html +0 -322
- data/doc/SDM/Redshift.html +0 -367
- data/doc/SDM/Relay.html +0 -249
- data/doc/SDM/ResourceCreateResponse.html +0 -219
- data/doc/SDM/ResourceDeleteResponse.html +0 -204
- data/doc/SDM/ResourceGetResponse.html +0 -219
- data/doc/SDM/ResourceUpdateResponse.html +0 -219
- data/doc/SDM/Resources.html +0 -456
- data/doc/SDM/Role.html +0 -249
- data/doc/SDM/RoleAttachment.html +0 -219
- data/doc/SDM/RoleAttachmentCreateResponse.html +0 -219
- data/doc/SDM/RoleAttachmentDeleteResponse.html +0 -204
- data/doc/SDM/RoleAttachmentGetResponse.html +0 -219
- data/doc/SDM/RoleAttachments.html +0 -354
- data/doc/SDM/RoleCreateResponse.html +0 -219
- data/doc/SDM/RoleDeleteResponse.html +0 -204
- data/doc/SDM/RoleGetResponse.html +0 -219
- data/doc/SDM/RoleGrant.html +0 -219
- data/doc/SDM/RoleGrantCreateResponse.html +0 -219
- data/doc/SDM/RoleGrantDeleteResponse.html +0 -204
- data/doc/SDM/RoleGrantGetResponse.html +0 -219
- data/doc/SDM/RoleGrants.html +0 -354
- data/doc/SDM/RoleUpdateResponse.html +0 -219
- data/doc/SDM/Roles.html +0 -403
- data/doc/SDM/SQLServer.html +0 -382
- data/doc/SDM/SSH.html +0 -352
- data/doc/SDM/SSHCert.html +0 -337
- data/doc/SDM/SSHCustomerKey.html +0 -352
- data/doc/SDM/SecretStoreCreateResponse.html +0 -219
- data/doc/SDM/SecretStoreDeleteResponse.html +0 -204
- data/doc/SDM/SecretStoreGetResponse.html +0 -219
- data/doc/SDM/SecretStoreUpdateResponse.html +0 -219
- data/doc/SDM/SecretStores.html +0 -403
- data/doc/SDM/Service.html +0 -234
- data/doc/SDM/SingleStore.html +0 -352
- data/doc/SDM/Snowflake.html +0 -352
- data/doc/SDM/Sybase.html +0 -337
- data/doc/SDM/SybaseIQ.html +0 -337
- data/doc/SDM/Tag.html +0 -202
- data/doc/SDM/Teradata.html +0 -337
- data/doc/SDM/UpdateResponseMetadata.html +0 -169
- data/doc/SDM/User.html +0 -264
- data/doc/SDM/VaultTLSStore.html +0 -292
- data/doc/SDM/VaultTokenStore.html +0 -247
- data/doc/SDM.html +0 -122
- data/doc/V1/AccountAttachments/Service.html +0 -107
- data/doc/V1/AccountAttachments.html +0 -100
- data/doc/V1/AccountGrants/Service.html +0 -107
- data/doc/V1/AccountGrants.html +0 -100
- data/doc/V1/Accounts/Service.html +0 -112
- data/doc/V1/Accounts.html +0 -100
- data/doc/V1/ControlPanel/Service.html +0 -107
- data/doc/V1/ControlPanel.html +0 -100
- data/doc/V1/Nodes/Service.html +0 -112
- data/doc/V1/Nodes.html +0 -100
- data/doc/V1/Resources/Service.html +0 -105
- data/doc/V1/Resources.html +0 -100
- data/doc/V1/RoleAttachments/Service.html +0 -107
- data/doc/V1/RoleAttachments.html +0 -100
- data/doc/V1/RoleGrants/Service.html +0 -107
- data/doc/V1/RoleGrants.html +0 -100
- data/doc/V1/Roles/Service.html +0 -107
- data/doc/V1/Roles.html +0 -100
- data/doc/V1/SecretStores/Service.html +0 -107
- data/doc/V1/SecretStores.html +0 -100
- data/doc/V1/Tags.html +0 -100
- data/doc/V1.html +0 -506
- data/doc/created.rid +0 -37
- data/doc/css/fonts.css +0 -167
- data/doc/css/rdoc.css +0 -639
- data/doc/examples/Gemfile.html +0 -89
- data/doc/fonts/Lato-Light.ttf +0 -0
- data/doc/fonts/Lato-LightItalic.ttf +0 -0
- data/doc/fonts/Lato-Regular.ttf +0 -0
- data/doc/fonts/Lato-RegularItalic.ttf +0 -0
- data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/doc/images/add.png +0 -0
- data/doc/images/arrow_up.png +0 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/delete.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_blue.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/transparent.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +0 -257
- data/doc/js/darkfish.js +0 -84
- data/doc/js/navigation.js +0 -105
- data/doc/js/navigation.js.gz +0 -0
- data/doc/js/search.js +0 -110
- data/doc/js/search_index.js +0 -1
- data/doc/js/search_index.js.gz +0 -0
- data/doc/js/searcher.js +0 -229
- data/doc/js/searcher.js.gz +0 -0
- data/doc/lib/version.html +0 -92
- data/doc/table_of_contents.html +0 -4680
- data/examples/Gemfile +0 -3
- data/examples/listUsers.rb +0 -21
data/doc/SDM/Client.html
DELETED
|
@@ -1,443 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
|
|
3
|
-
<html>
|
|
4
|
-
<head>
|
|
5
|
-
<meta charset="UTF-8">
|
|
6
|
-
|
|
7
|
-
<title>class SDM::Client - RDoc Documentation</title>
|
|
8
|
-
|
|
9
|
-
<script type="text/javascript">
|
|
10
|
-
var rdoc_rel_prefix = "../";
|
|
11
|
-
var index_rel_prefix = "../";
|
|
12
|
-
</script>
|
|
13
|
-
|
|
14
|
-
<script src="../js/navigation.js" defer></script>
|
|
15
|
-
<script src="../js/search.js" defer></script>
|
|
16
|
-
<script src="../js/search_index.js" defer></script>
|
|
17
|
-
<script src="../js/searcher.js" defer></script>
|
|
18
|
-
<script src="../js/darkfish.js" defer></script>
|
|
19
|
-
|
|
20
|
-
<link href="../css/fonts.css" rel="stylesheet">
|
|
21
|
-
<link href="../css/rdoc.css" rel="stylesheet">
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<body id="top" role="document" class="class">
|
|
25
|
-
<nav role="navigation">
|
|
26
|
-
<div id="project-navigation">
|
|
27
|
-
<div id="home-section" role="region" title="Quick navigation" class="nav-section">
|
|
28
|
-
<h2>
|
|
29
|
-
<a href="../index.html" rel="home">Home</a>
|
|
30
|
-
</h2>
|
|
31
|
-
|
|
32
|
-
<div id="table-of-contents-navigation">
|
|
33
|
-
<a href="../table_of_contents.html#pages">Pages</a>
|
|
34
|
-
<a href="../table_of_contents.html#classes">Classes</a>
|
|
35
|
-
<a href="../table_of_contents.html#methods">Methods</a>
|
|
36
|
-
</div>
|
|
37
|
-
</div>
|
|
38
|
-
|
|
39
|
-
<div id="search-section" role="search" class="project-section initially-hidden">
|
|
40
|
-
<form action="#" method="get" accept-charset="utf-8">
|
|
41
|
-
<div id="search-field-wrapper">
|
|
42
|
-
<input id="search-field" role="combobox" aria-label="Search"
|
|
43
|
-
aria-autocomplete="list" aria-controls="search-results"
|
|
44
|
-
type="text" name="search" placeholder="Search" spellcheck="false"
|
|
45
|
-
title="Type to search, Up and Down to navigate, Enter to load">
|
|
46
|
-
</div>
|
|
47
|
-
|
|
48
|
-
<ul id="search-results" aria-label="Search Results"
|
|
49
|
-
aria-busy="false" aria-expanded="false"
|
|
50
|
-
aria-atomic="false" class="initially-hidden"></ul>
|
|
51
|
-
</form>
|
|
52
|
-
</div>
|
|
53
|
-
|
|
54
|
-
</div>
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
<div id="class-metadata">
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
<div id="parent-class-section" class="nav-section">
|
|
62
|
-
<h3>Parent</h3>
|
|
63
|
-
|
|
64
|
-
<p class="link"><a href="../Object.html">Object</a>
|
|
65
|
-
</div>
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
<!-- Method Quickref -->
|
|
71
|
-
<div id="method-list-section" class="nav-section">
|
|
72
|
-
<h3>Methods</h3>
|
|
73
|
-
|
|
74
|
-
<ul class="link-list" role="directory">
|
|
75
|
-
<li ><a href="#method-c-new">::new</a>
|
|
76
|
-
<li ><a href="#method-i-get_metadata">#get_metadata</a>
|
|
77
|
-
<li ><a href="#method-i-jitterSleep">#jitterSleep</a>
|
|
78
|
-
<li ><a href="#method-i-shouldRetry">#shouldRetry</a>
|
|
79
|
-
<li ><a href="#method-i-sign">#sign</a>
|
|
80
|
-
</ul>
|
|
81
|
-
</div>
|
|
82
|
-
|
|
83
|
-
</div>
|
|
84
|
-
</nav>
|
|
85
|
-
|
|
86
|
-
<main role="main" aria-labelledby="class-SDM::Client">
|
|
87
|
-
<h1 id="class-SDM::Client" class="class">
|
|
88
|
-
class SDM::Client
|
|
89
|
-
</h1>
|
|
90
|
-
|
|
91
|
-
<section class="description">
|
|
92
|
-
|
|
93
|
-
<p><a href="Client.html"><code>Client</code></a> bundles all the services together and initializes them.</p>
|
|
94
|
-
|
|
95
|
-
</section>
|
|
96
|
-
|
|
97
|
-
<section id="5Buntitled-5D" class="documentation-section">
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
<section class="attribute-method-details" class="method-section">
|
|
102
|
-
<header>
|
|
103
|
-
<h3>Attributes</h3>
|
|
104
|
-
</header>
|
|
105
|
-
|
|
106
|
-
<div id="attribute-i-_test_options" class="method-detail">
|
|
107
|
-
<div class="method-heading attribute-method-heading">
|
|
108
|
-
<span class="method-name">_test_options</span><span
|
|
109
|
-
class="attribute-access-type">[R]</span>
|
|
110
|
-
</div>
|
|
111
|
-
|
|
112
|
-
<div class="method-description">
|
|
113
|
-
|
|
114
|
-
</div>
|
|
115
|
-
</div>
|
|
116
|
-
<div id="attribute-i-account_attachments" class="method-detail">
|
|
117
|
-
<div class="method-heading attribute-method-heading">
|
|
118
|
-
<span class="method-name">account_attachments</span><span
|
|
119
|
-
class="attribute-access-type">[R]</span>
|
|
120
|
-
</div>
|
|
121
|
-
|
|
122
|
-
<div class="method-description">
|
|
123
|
-
<p><a href="AccountAttachments.html"><code>AccountAttachments</code></a> assign an account to a role or composite role.</p>
|
|
124
|
-
</div>
|
|
125
|
-
</div>
|
|
126
|
-
<div id="attribute-i-account_grants" class="method-detail">
|
|
127
|
-
<div class="method-heading attribute-method-heading">
|
|
128
|
-
<span class="method-name">account_grants</span><span
|
|
129
|
-
class="attribute-access-type">[R]</span>
|
|
130
|
-
</div>
|
|
131
|
-
|
|
132
|
-
<div class="method-description">
|
|
133
|
-
<p><a href="AccountGrants.html"><code>AccountGrants</code></a> assign a resource directly to an account, giving the account the permission to connect to that resource.</p>
|
|
134
|
-
</div>
|
|
135
|
-
</div>
|
|
136
|
-
<div id="attribute-i-accounts" class="method-detail">
|
|
137
|
-
<div class="method-heading attribute-method-heading">
|
|
138
|
-
<span class="method-name">accounts</span><span
|
|
139
|
-
class="attribute-access-type">[R]</span>
|
|
140
|
-
</div>
|
|
141
|
-
|
|
142
|
-
<div class="method-description">
|
|
143
|
-
<p><a href="Accounts.html"><code>Accounts</code></a> are users that have access to strongDM. There are two types of accounts:</p>
|
|
144
|
-
<ol><li>
|
|
145
|
-
<p><strong>Users:</strong> humans who are authenticated through username and password or SSO.</p>
|
|
146
|
-
</li><li>
|
|
147
|
-
<p>**Service Accounts:** machines that are authenticated using a service token.</p>
|
|
148
|
-
</li></ol>
|
|
149
|
-
</div>
|
|
150
|
-
</div>
|
|
151
|
-
<div id="attribute-i-api_access_key" class="method-detail">
|
|
152
|
-
<div class="method-heading attribute-method-heading">
|
|
153
|
-
<span class="method-name">api_access_key</span><span
|
|
154
|
-
class="attribute-access-type">[R]</span>
|
|
155
|
-
</div>
|
|
156
|
-
|
|
157
|
-
<div class="method-description">
|
|
158
|
-
<p>API authentication token (read-only).</p>
|
|
159
|
-
</div>
|
|
160
|
-
</div>
|
|
161
|
-
<div id="attribute-i-base_retry_delay" class="method-detail">
|
|
162
|
-
<div class="method-heading attribute-method-heading">
|
|
163
|
-
<span class="method-name">base_retry_delay</span><span
|
|
164
|
-
class="attribute-access-type">[R]</span>
|
|
165
|
-
</div>
|
|
166
|
-
|
|
167
|
-
<div class="method-description">
|
|
168
|
-
|
|
169
|
-
</div>
|
|
170
|
-
</div>
|
|
171
|
-
<div id="attribute-i-control_panel" class="method-detail">
|
|
172
|
-
<div class="method-heading attribute-method-heading">
|
|
173
|
-
<span class="method-name">control_panel</span><span
|
|
174
|
-
class="attribute-access-type">[R]</span>
|
|
175
|
-
</div>
|
|
176
|
-
|
|
177
|
-
<div class="method-description">
|
|
178
|
-
<p><a href="ControlPanel.html"><code>ControlPanel</code></a> contains all administrative controls.</p>
|
|
179
|
-
</div>
|
|
180
|
-
</div>
|
|
181
|
-
<div id="attribute-i-max_retries" class="method-detail">
|
|
182
|
-
<div class="method-heading attribute-method-heading">
|
|
183
|
-
<span class="method-name">max_retries</span><span
|
|
184
|
-
class="attribute-access-type">[R]</span>
|
|
185
|
-
</div>
|
|
186
|
-
|
|
187
|
-
<div class="method-description">
|
|
188
|
-
|
|
189
|
-
</div>
|
|
190
|
-
</div>
|
|
191
|
-
<div id="attribute-i-max_retry_delay" class="method-detail">
|
|
192
|
-
<div class="method-heading attribute-method-heading">
|
|
193
|
-
<span class="method-name">max_retry_delay</span><span
|
|
194
|
-
class="attribute-access-type">[R]</span>
|
|
195
|
-
</div>
|
|
196
|
-
|
|
197
|
-
<div class="method-description">
|
|
198
|
-
|
|
199
|
-
</div>
|
|
200
|
-
</div>
|
|
201
|
-
<div id="attribute-i-nodes" class="method-detail">
|
|
202
|
-
<div class="method-heading attribute-method-heading">
|
|
203
|
-
<span class="method-name">nodes</span><span
|
|
204
|
-
class="attribute-access-type">[R]</span>
|
|
205
|
-
</div>
|
|
206
|
-
|
|
207
|
-
<div class="method-description">
|
|
208
|
-
<p><a href="Nodes.html"><code>Nodes</code></a> make up the strongDM network, and allow your users to connect securely to your resources. There are two types of nodes:</p>
|
|
209
|
-
<ul><li>
|
|
210
|
-
<p><strong>Gateways</strong> are the entry points into network. They listen for connection from the strongDM client, and provide access to databases and servers.</p>
|
|
211
|
-
</li><li>
|
|
212
|
-
<p><strong>Relays</strong> are used to extend the strongDM network into segmented subnets. They provide access to databases and servers but do not listen for incoming connections.</p>
|
|
213
|
-
</li></ul>
|
|
214
|
-
</div>
|
|
215
|
-
</div>
|
|
216
|
-
<div id="attribute-i-resources" class="method-detail">
|
|
217
|
-
<div class="method-heading attribute-method-heading">
|
|
218
|
-
<span class="method-name">resources</span><span
|
|
219
|
-
class="attribute-access-type">[R]</span>
|
|
220
|
-
</div>
|
|
221
|
-
|
|
222
|
-
<div class="method-description">
|
|
223
|
-
|
|
224
|
-
</div>
|
|
225
|
-
</div>
|
|
226
|
-
<div id="attribute-i-role_attachments" class="method-detail">
|
|
227
|
-
<div class="method-heading attribute-method-heading">
|
|
228
|
-
<span class="method-name">role_attachments</span><span
|
|
229
|
-
class="attribute-access-type">[R]</span>
|
|
230
|
-
</div>
|
|
231
|
-
|
|
232
|
-
<div class="method-description">
|
|
233
|
-
<p><a href="RoleAttachments.html"><code>RoleAttachments</code></a> represent relationships between composite roles and the roles that make up those composite roles. When a composite role is attached to another role, the permissions granted to members of the composite role are augmented to include the permissions granted to members of the attached role.</p>
|
|
234
|
-
</div>
|
|
235
|
-
</div>
|
|
236
|
-
<div id="attribute-i-role_grants" class="method-detail">
|
|
237
|
-
<div class="method-heading attribute-method-heading">
|
|
238
|
-
<span class="method-name">role_grants</span><span
|
|
239
|
-
class="attribute-access-type">[R]</span>
|
|
240
|
-
</div>
|
|
241
|
-
|
|
242
|
-
<div class="method-description">
|
|
243
|
-
<p><a href="RoleGrants.html"><code>RoleGrants</code></a> represent relationships between composite roles and the roles that make up those composite roles. When a composite role is attached to another role, the permissions granted to members of the composite role are augmented to include the permissions granted to members of the attached role.</p>
|
|
244
|
-
</div>
|
|
245
|
-
</div>
|
|
246
|
-
<div id="attribute-i-roles" class="method-detail">
|
|
247
|
-
<div class="method-heading attribute-method-heading">
|
|
248
|
-
<span class="method-name">roles</span><span
|
|
249
|
-
class="attribute-access-type">[R]</span>
|
|
250
|
-
</div>
|
|
251
|
-
|
|
252
|
-
<div class="method-description">
|
|
253
|
-
<p><a href="Roles.html"><code>Roles</code></a> are tools for controlling user access to resources. Each <a href="Role.html"><code>Role</code></a> holds a list of resources which they grant access to. Composite roles are a special type of <a href="Role.html"><code>Role</code></a> which have no resource associations of their own, but instead grant access to the combined resources associated with a set of child roles. Each user can be a member of one <a href="Role.html"><code>Role</code></a> or composite role.</p>
|
|
254
|
-
</div>
|
|
255
|
-
</div>
|
|
256
|
-
<div id="attribute-i-secret_stores" class="method-detail">
|
|
257
|
-
<div class="method-heading attribute-method-heading">
|
|
258
|
-
<span class="method-name">secret_stores</span><span
|
|
259
|
-
class="attribute-access-type">[R]</span>
|
|
260
|
-
</div>
|
|
261
|
-
|
|
262
|
-
<div class="method-description">
|
|
263
|
-
<p><a href="SecretStores.html"><code>SecretStores</code></a> are servers where resource secrets (passwords, keys) are stored.</p>
|
|
264
|
-
</div>
|
|
265
|
-
</div>
|
|
266
|
-
</section>
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
<section id="public-class-5Buntitled-5D-method-details" class="method-section">
|
|
270
|
-
<header>
|
|
271
|
-
<h3>Public Class Methods</h3>
|
|
272
|
-
</header>
|
|
273
|
-
|
|
274
|
-
<div id="method-c-new" class="method-detail ">
|
|
275
|
-
<div class="method-heading">
|
|
276
|
-
<span class="method-name">new</span><span
|
|
277
|
-
class="method-args">(api_access_key, api_secret_key, host:"api.strongdm.com:443", insecure:false)</span>
|
|
278
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
279
|
-
</div>
|
|
280
|
-
|
|
281
|
-
<div class="method-description">
|
|
282
|
-
<p>Creates a new strongDM API client.</p>
|
|
283
|
-
|
|
284
|
-
<div class="method-source-code" id="new-source">
|
|
285
|
-
<pre><span class="ruby-comment"># File lib/strongdm.rb, line 33</span>
|
|
286
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">api_access_key</span>, <span class="ruby-identifier">api_secret_key</span>, <span class="ruby-value">host:</span><span class="ruby-string">"api.strongdm.com:443"</span>, <span class="ruby-value">insecure:</span><span class="ruby-keyword">false</span>)
|
|
287
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-string">'client access key must be a string'</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">api_access_key</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">String</span>)
|
|
288
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-string">'client secret key must be a string'</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">api_secret_key</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">String</span>)
|
|
289
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>, <span class="ruby-string">'client host must be a string'</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">host</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">String</span>)
|
|
290
|
-
<span class="ruby-ivar">@api_access_key</span> = <span class="ruby-identifier">api_access_key</span>.<span class="ruby-identifier">strip</span>
|
|
291
|
-
<span class="ruby-ivar">@api_secret_key</span> = <span class="ruby-constant">Base64</span>.<span class="ruby-identifier">strict_decode64</span>(<span class="ruby-identifier">api_secret_key</span>.<span class="ruby-identifier">strip</span>)
|
|
292
|
-
<span class="ruby-ivar">@max_retries</span> = <span class="ruby-constant">DEFAULT_MAX_RETRIES</span>
|
|
293
|
-
<span class="ruby-ivar">@base_retry_delay</span> = <span class="ruby-constant">DEFAULT_BASE_RETRY_DELAY</span>
|
|
294
|
-
<span class="ruby-ivar">@max_retry_delay</span> = <span class="ruby-constant">DEFAULT_MAX_RETRY_DELAY</span>
|
|
295
|
-
<span class="ruby-ivar">@account_attachments</span> = <span class="ruby-constant">AccountAttachments</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">insecure</span>, <span class="ruby-keyword">self</span>)
|
|
296
|
-
<span class="ruby-ivar">@account_grants</span> = <span class="ruby-constant">AccountGrants</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">insecure</span>, <span class="ruby-keyword">self</span>)
|
|
297
|
-
<span class="ruby-ivar">@accounts</span> = <span class="ruby-constant">Accounts</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">insecure</span>, <span class="ruby-keyword">self</span>)
|
|
298
|
-
<span class="ruby-ivar">@control_panel</span> = <span class="ruby-constant">ControlPanel</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">insecure</span>, <span class="ruby-keyword">self</span>)
|
|
299
|
-
<span class="ruby-ivar">@nodes</span> = <span class="ruby-constant">Nodes</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">insecure</span>, <span class="ruby-keyword">self</span>)
|
|
300
|
-
<span class="ruby-ivar">@resources</span> = <span class="ruby-constant">Resources</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">insecure</span>, <span class="ruby-keyword">self</span>)
|
|
301
|
-
<span class="ruby-ivar">@role_attachments</span> = <span class="ruby-constant">RoleAttachments</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">insecure</span>, <span class="ruby-keyword">self</span>)
|
|
302
|
-
<span class="ruby-ivar">@role_grants</span> = <span class="ruby-constant">RoleGrants</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">insecure</span>, <span class="ruby-keyword">self</span>)
|
|
303
|
-
<span class="ruby-ivar">@roles</span> = <span class="ruby-constant">Roles</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">insecure</span>, <span class="ruby-keyword">self</span>)
|
|
304
|
-
<span class="ruby-ivar">@secret_stores</span> = <span class="ruby-constant">SecretStores</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">insecure</span>, <span class="ruby-keyword">self</span>)
|
|
305
|
-
<span class="ruby-ivar">@_test_options</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
|
|
306
|
-
<span class="ruby-keyword">end</span></pre>
|
|
307
|
-
</div>
|
|
308
|
-
</div>
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
</div>
|
|
312
|
-
|
|
313
|
-
</section>
|
|
314
|
-
|
|
315
|
-
<section id="public-instance-5Buntitled-5D-method-details" class="method-section">
|
|
316
|
-
<header>
|
|
317
|
-
<h3>Public Instance Methods</h3>
|
|
318
|
-
</header>
|
|
319
|
-
|
|
320
|
-
<div id="method-i-get_metadata" class="method-detail ">
|
|
321
|
-
<div class="method-heading">
|
|
322
|
-
<span class="method-name">get_metadata</span><span
|
|
323
|
-
class="method-args">(method_name, req)</span>
|
|
324
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
325
|
-
</div>
|
|
326
|
-
|
|
327
|
-
<div class="method-description">
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
<div class="method-source-code" id="get_metadata-source">
|
|
331
|
-
<pre><span class="ruby-comment"># File lib/strongdm.rb, line 55</span>
|
|
332
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">get_metadata</span>(<span class="ruby-identifier">method_name</span>, <span class="ruby-identifier">req</span>)
|
|
333
|
-
<span class="ruby-keyword">return</span> {
|
|
334
|
-
<span class="ruby-value">'x-sdm-authentication':</span> <span class="ruby-ivar">@api_access_key</span>,
|
|
335
|
-
<span class="ruby-value">'x-sdm-signature':</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">sign</span>(<span class="ruby-identifier">method_name</span>, <span class="ruby-identifier">req</span>.<span class="ruby-identifier">to_proto</span>),
|
|
336
|
-
<span class="ruby-value">'x-sdm-api-version':</span> <span class="ruby-constant">API_VERSION</span>,
|
|
337
|
-
<span class="ruby-value">'x-sdm-user-agent':</span> <span class="ruby-constant">USER_AGENT</span>,
|
|
338
|
-
}
|
|
339
|
-
<span class="ruby-keyword">end</span></pre>
|
|
340
|
-
</div>
|
|
341
|
-
</div>
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
</div>
|
|
345
|
-
|
|
346
|
-
<div id="method-i-jitterSleep" class="method-detail ">
|
|
347
|
-
<div class="method-heading">
|
|
348
|
-
<span class="method-name">jitterSleep</span><span
|
|
349
|
-
class="method-args">(iter)</span>
|
|
350
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
351
|
-
</div>
|
|
352
|
-
|
|
353
|
-
<div class="method-description">
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
<div class="method-source-code" id="jitterSleep-source">
|
|
357
|
-
<pre><span class="ruby-comment"># File lib/strongdm.rb, line 80</span>
|
|
358
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">jitterSleep</span>(<span class="ruby-identifier">iter</span>)
|
|
359
|
-
<span class="ruby-identifier">dur_max</span> = <span class="ruby-ivar">@base_retry_delay</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span><span class="ruby-operator">**</span><span class="ruby-identifier">iter</span>
|
|
360
|
-
<span class="ruby-keyword">if</span> (<span class="ruby-identifier">dur_max</span> <span class="ruby-operator">></span> <span class="ruby-ivar">@max_retry_delay</span>)
|
|
361
|
-
<span class="ruby-identifier">dur_max</span> = <span class="ruby-ivar">@max_retry_delay</span>
|
|
362
|
-
<span class="ruby-keyword">end</span>
|
|
363
|
-
<span class="ruby-identifier">dur</span> = <span class="ruby-identifier">rand</span>() <span class="ruby-operator">*</span> <span class="ruby-identifier">dur_max</span>
|
|
364
|
-
<span class="ruby-identifier">sleep</span>(<span class="ruby-identifier">dur</span>)
|
|
365
|
-
<span class="ruby-keyword">end</span></pre>
|
|
366
|
-
</div>
|
|
367
|
-
</div>
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
</div>
|
|
371
|
-
|
|
372
|
-
<div id="method-i-shouldRetry" class="method-detail ">
|
|
373
|
-
<div class="method-heading">
|
|
374
|
-
<span class="method-name">shouldRetry</span><span
|
|
375
|
-
class="method-args">(iter, err)</span>
|
|
376
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
377
|
-
</div>
|
|
378
|
-
|
|
379
|
-
<div class="method-description">
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
<div class="method-source-code" id="shouldRetry-source">
|
|
383
|
-
<pre><span class="ruby-comment"># File lib/strongdm.rb, line 89</span>
|
|
384
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">shouldRetry</span>(<span class="ruby-identifier">iter</span>, <span class="ruby-identifier">err</span>)
|
|
385
|
-
<span class="ruby-keyword">if</span> (<span class="ruby-identifier">iter</span> <span class="ruby-operator">>=</span> <span class="ruby-ivar">@max_retries</span><span class="ruby-value">-1</span>)
|
|
386
|
-
<span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span>
|
|
387
|
-
<span class="ruby-keyword">end</span>
|
|
388
|
-
<span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">err</span> .<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">GRPC</span><span class="ruby-operator">::</span><span class="ruby-constant">BadStatus</span>
|
|
389
|
-
<span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span>
|
|
390
|
-
<span class="ruby-keyword">end</span>
|
|
391
|
-
<span class="ruby-keyword">return</span> <span class="ruby-identifier">err</span>.<span class="ruby-identifier">code</span>() <span class="ruby-operator">==</span> <span class="ruby-value">13</span>
|
|
392
|
-
<span class="ruby-keyword">end</span></pre>
|
|
393
|
-
</div>
|
|
394
|
-
</div>
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
</div>
|
|
398
|
-
|
|
399
|
-
<div id="method-i-sign" class="method-detail ">
|
|
400
|
-
<div class="method-heading">
|
|
401
|
-
<span class="method-name">sign</span><span
|
|
402
|
-
class="method-args">(method_name, msg_bytes)</span>
|
|
403
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
404
|
-
</div>
|
|
405
|
-
|
|
406
|
-
<div class="method-description">
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
<div class="method-source-code" id="sign-source">
|
|
410
|
-
<pre><span class="ruby-comment"># File lib/strongdm.rb, line 64</span>
|
|
411
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">sign</span>(<span class="ruby-identifier">method_name</span>, <span class="ruby-identifier">msg_bytes</span>)
|
|
412
|
-
<span class="ruby-identifier">current_utc_date</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">utc</span>
|
|
413
|
-
<span class="ruby-identifier">date</span> = <span class="ruby-identifier">sprintf</span>(<span class="ruby-string">"%04d-%02d-%02d"</span>,<span class="ruby-identifier">current_utc_date</span>.<span class="ruby-identifier">year</span>, <span class="ruby-identifier">current_utc_date</span>.<span class="ruby-identifier">month</span>, <span class="ruby-identifier">current_utc_date</span>.<span class="ruby-identifier">day</span>)
|
|
414
|
-
|
|
415
|
-
<span class="ruby-identifier">signing_key</span> = <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">HMAC</span>.<span class="ruby-identifier">digest</span>(<span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">SHA256</span>.<span class="ruby-identifier">new</span>, <span class="ruby-ivar">@api_secret_key</span>, <span class="ruby-identifier">date</span>)
|
|
416
|
-
<span class="ruby-identifier">signing_key</span> = <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">HMAC</span>.<span class="ruby-identifier">digest</span>(<span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">SHA256</span>.<span class="ruby-identifier">new</span>, <span class="ruby-identifier">signing_key</span>, <span class="ruby-string">'sdm_api_v1'</span>)
|
|
417
|
-
|
|
418
|
-
<span class="ruby-identifier">sha_req</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">SHA256</span>.<span class="ruby-identifier">new</span>
|
|
419
|
-
<span class="ruby-identifier">sha_req</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">method_name</span>
|
|
420
|
-
<span class="ruby-identifier">sha_req</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"\n"</span>
|
|
421
|
-
<span class="ruby-identifier">sha_req</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">msg_bytes</span>
|
|
422
|
-
<span class="ruby-identifier">request_hash</span> = <span class="ruby-identifier">sha_req</span>.<span class="ruby-identifier">digest</span>
|
|
423
|
-
|
|
424
|
-
<span class="ruby-keyword">return</span> <span class="ruby-constant">Base64</span>.<span class="ruby-identifier">strict_encode64</span>(<span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">HMAC</span>.<span class="ruby-identifier">digest</span>(<span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">SHA256</span>.<span class="ruby-identifier">new</span>, <span class="ruby-identifier">signing_key</span>, <span class="ruby-identifier">request_hash</span>))
|
|
425
|
-
<span class="ruby-keyword">end</span></pre>
|
|
426
|
-
</div>
|
|
427
|
-
</div>
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
</div>
|
|
431
|
-
|
|
432
|
-
</section>
|
|
433
|
-
|
|
434
|
-
</section>
|
|
435
|
-
</main>
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
<footer id="validator-badges" role="contentinfo">
|
|
439
|
-
<p><a href="https://validator.w3.org/check/referer">Validate</a>
|
|
440
|
-
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.1.
|
|
441
|
-
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
|
442
|
-
</footer>
|
|
443
|
-
|