fusionauth_client 1.39.0 → 1.42.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 34a9f230af6ca7349f8fdee665b8ba23985c385637d9d64d5c355ffdf5bc77c6
4
- data.tar.gz: c24e551fa66cbcd3621062f93204422acde7bdadd0b4f9a6884635cb756c65f7
3
+ metadata.gz: 4d7a14c355dc44a349a38f749dc8ffe085129d6d1bccfa5799be45968cc00f45
4
+ data.tar.gz: 29fb4471d770b6b396424000c285b875e1204704cd09056bccb1ebed0b60e9f9
5
5
  SHA512:
6
- metadata.gz: d5f95f92365e882fff1753ec87d4302f5933617f72c7faefe8decc9cd877b3e7f83ab785b507ba64f8b7244889982cc0f8c0ec6f4ddcf929a920504e017b1415
7
- data.tar.gz: 30373ef50dd2fbc08020781e77d9ec8a03d96f0bce02f41ad8c3a2a01b9ebe9c025b0d90795e977bbc4b9f9c8f0e5f39bb6723920ed59d8d3a455de85a729c41
6
+ metadata.gz: 064ce98e40306be0049f7c715533d52d8e9b4c8c1bfe2502093cbde9e8d797c08bef2471e75ca84ab167facc6e3f2ced85ee54d3c69ae5340adcda62f89c0e39
7
+ data.tar.gz: 07f3b6aaf676a468eeea4d9c758fa547a54d49e8062128209c432e1dfb99b30e61735cba55340df4afd5b8e65f9210558ec60d152b7f792f24a375c75dfff64e
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2019, FusionAuth, All Rights Reserved
1
+ # Copyright (c) 2019-2022, FusionAuth, All Rights Reserved
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -15,8 +15,8 @@
15
15
  source 'https://rubygems.org'
16
16
  ruby '2.5.9'
17
17
 
18
- gem "rake", "12.3.3"
19
- gem "minitest", "5.8.3"
18
+ gem "rake", "12.3.3"
19
+ gem "minitest", "5.8.3"
20
20
 
21
21
  # Specify your gem's dependencies in fusionauth_client.gemspec
22
22
  gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fusionauth_client (1.39.0)
4
+ fusionauth_client (1.42.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/build.savant CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2018-2020, FusionAuth, All Rights Reserved
2
+ * Copyright (c) 2018-2022, FusionAuth, All Rights Reserved
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -13,10 +13,9 @@
13
13
  * either express or implied. See the License for the specific
14
14
  * language governing permissions and limitations under the License.
15
15
  */
16
- savantVersion = "1.0.0"
17
16
 
18
17
  pubVersion = ""
19
- project(group: "io.fusionauth", name: "fusionauth-ruby-client", version: "1.39.0", licenses: ["ApacheV2_0"]) {
18
+ project(group: "io.fusionauth", name: "fusionauth-ruby-client", version: "1.42.0", licenses: ["ApacheV2_0"]) {
20
19
  workflow {
21
20
  fetch {
22
21
  cache()
@@ -40,8 +39,8 @@ project(group: "io.fusionauth", name: "fusionauth-ruby-client", version: "1.39.0
40
39
  }
41
40
 
42
41
  // Plugins
43
- file = loadPlugin(id: "org.savantbuild.plugin:file:1.0.2")
44
- release = loadPlugin(id: "org.savantbuild.plugin:release-git:${savantVersion}")
42
+ file = loadPlugin(id: "org.savantbuild.plugin:file:2.0.0-RC.4")
43
+ release = loadPlugin(id: "org.savantbuild.plugin:release-git:2.0.0-RC.4")
45
44
 
46
45
  target(name: "clean", description: "Cleans build directory") {
47
46
  file.prune(dir: 'pkg')
@@ -12,32 +12,4 @@
12
12
  <orderEntry type="library" scope="PROVIDED" name="minitest (v5.8.3, rbenv: 2.5.9) [gem]" level="application" />
13
13
  <orderEntry type="library" scope="PROVIDED" name="rake (v12.3.3, rbenv: 2.5.9) [gem]" level="application" />
14
14
  </component>
15
- <component name="RakeTasksCache">
16
- <option name="myRootTask">
17
- <RakeTaskImpl id="rake">
18
- <subtasks>
19
- <RakeTaskImpl description="Build fusionauth_client-1.37.0.gem into the pkg directory" fullCommand="build" id="build" />
20
- <RakeTaskImpl description="Remove any temporary products" fullCommand="clean" id="clean" />
21
- <RakeTaskImpl description="Remove any generated files" fullCommand="clobber" id="clobber" />
22
- <RakeTaskImpl description="Build and install fusionauth_client-1.37.0.gem into system gems" fullCommand="install" id="install" />
23
- <RakeTaskImpl id="install">
24
- <subtasks>
25
- <RakeTaskImpl description="Build and install fusionauth_client-1.37.0.gem into system gems without network access" fullCommand="install:local" id="local" />
26
- </subtasks>
27
- </RakeTaskImpl>
28
- <RakeTaskImpl description="Create tag v1.37.0 and build and push fusionauth_client-1.37.0.gem to https://rubygems.org" fullCommand="release[remote]" id="release[remote]" />
29
- <RakeTaskImpl description="Run tests" fullCommand="test" id="test" />
30
- <RakeTaskImpl description="" fullCommand="default" id="default" />
31
- <RakeTaskImpl description="" fullCommand="release" id="release" />
32
- <RakeTaskImpl id="release">
33
- <subtasks>
34
- <RakeTaskImpl description="" fullCommand="release:guard_clean" id="guard_clean" />
35
- <RakeTaskImpl description="" fullCommand="release:rubygem_push" id="rubygem_push" />
36
- <RakeTaskImpl description="" fullCommand="release:source_control_push" id="source_control_push" />
37
- </subtasks>
38
- </RakeTaskImpl>
39
- </subtasks>
40
- </RakeTaskImpl>
41
- </option>
42
- </component>
43
15
  </module>
@@ -1,17 +1,32 @@
1
1
  # coding: utf-8
2
+
3
+ # Copyright (c) 2022, FusionAuth, All Rights Reserved
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
14
+ # either express or implied. See the License for the specific
15
+ # language governing permissions and limitations under the License.
16
+
2
17
  lib = File.expand_path('../lib', __FILE__)
3
18
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
19
 
5
20
  Gem::Specification.new do |spec|
6
- spec.name = 'fusionauth_client'
7
- spec.version = '1.39.0'
8
- spec.authors = ['Brian Pontarelli', 'Daniel DeGroff']
9
- spec.email = %w(brian@fusionauth.io daniel@fusionauth.io)
21
+ spec.name = 'fusionauth_client'
22
+ spec.version = '1.42.0'
23
+ spec.authors = ['Brian Pontarelli', 'Daniel DeGroff']
24
+ spec.email = %w(brian@fusionauth.io daniel@fusionauth.io)
10
25
 
11
- spec.summary = %q{The Ruby client library for FusionAuth}
12
- spec.description = %q{This library contains the Ruby client library that helps you connect your application to FusionAuth.}
13
- spec.homepage = 'https://github.com/FusionAuth/fusionauth-ruby-client'
14
- spec.license = 'Apache-2.0'
26
+ spec.summary = %q{The Ruby client library for FusionAuth}
27
+ spec.description = %q{This library contains the Ruby client library that helps you connect your application to FusionAuth.}
28
+ spec.homepage = 'https://github.com/FusionAuth/fusionauth-ruby-client'
29
+ spec.license = 'Apache-2.0'
15
30
 
16
31
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
17
32
  # to allow pushing to a single host or delete this section to allow pushing to any host.
@@ -21,11 +36,11 @@ Gem::Specification.new do |spec|
21
36
  raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
22
37
  end
23
38
 
24
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
39
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
25
40
  f.match(%r{^(test|spec|features)/})
26
41
  end
27
- spec.bindir = 'exe'
28
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
42
+ spec.bindir = 'exe'
43
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
44
  spec.require_paths = ['lib']
30
45
 
31
46
  # spec.add_development_dependency 'bundler', '~> 1.14'
@@ -175,6 +175,26 @@ module FusionAuth
175
175
  .go()
176
176
  end
177
177
 
178
+ #
179
+ # Make a Client Credentials grant request to obtain an access token.
180
+ #
181
+ # @param client_id [string] The client identifier. The client Id is the Id of the FusionAuth Entity in which you are attempting to authenticate.
182
+ # @param client_secret [string] The client secret used to authenticate this request.
183
+ # @param scope [string] (Optional) This parameter is used to indicate which target entity you are requesting access. To request access to an entity, use the format target-entity:&lt;target-entity-id&gt;:&lt;roles&gt;. Roles are an optional comma separated list.
184
+ # @return [FusionAuth::ClientResponse] The ClientResponse object.
185
+ def client_credentials_grant(client_id, client_secret, scope)
186
+ body = {
187
+ "client_id" => client_id,
188
+ "client_secret" => client_secret,
189
+ "grant_type" => "client_credentials",
190
+ "scope" => scope
191
+ }
192
+ startAnonymous.uri('/oauth2/token')
193
+ .body_handler(FusionAuth::FormDataBodyHandler.new(body))
194
+ .post()
195
+ .go()
196
+ end
197
+
178
198
  #
179
199
  # Adds a comment to the user's account.
180
200
  #
@@ -187,6 +207,42 @@ module FusionAuth
187
207
  .go()
188
208
  end
189
209
 
210
+ #
211
+ # Complete a WebAuthn authentication ceremony by validating the signature against the previously generated challenge without logging the user in
212
+ #
213
+ # @param request [OpenStruct, Hash] An object containing data necessary for completing the authentication ceremony
214
+ # @return [FusionAuth::ClientResponse] The ClientResponse object.
215
+ def complete_web_authn_assertion(request)
216
+ startAnonymous.uri('/api/webauthn/assert')
217
+ .body_handler(FusionAuth::JSONBodyHandler.new(request))
218
+ .post()
219
+ .go()
220
+ end
221
+
222
+ #
223
+ # Complete a WebAuthn authentication ceremony by validating the signature against the previously generated challenge and then login the user in
224
+ #
225
+ # @param request [OpenStruct, Hash] An object containing data necessary for completing the authentication ceremony
226
+ # @return [FusionAuth::ClientResponse] The ClientResponse object.
227
+ def complete_web_authn_login(request)
228
+ startAnonymous.uri('/api/webauthn/login')
229
+ .body_handler(FusionAuth::JSONBodyHandler.new(request))
230
+ .post()
231
+ .go()
232
+ end
233
+
234
+ #
235
+ # Complete a WebAuthn registration ceremony by validating the client request and saving the new credential
236
+ #
237
+ # @param request [OpenStruct, Hash] An object containing data necessary for completing the registration ceremony
238
+ # @return [FusionAuth::ClientResponse] The ClientResponse object.
239
+ def complete_web_authn_registration(request)
240
+ start.uri('/api/webauthn/register/complete')
241
+ .body_handler(FusionAuth::JSONBodyHandler.new(request))
242
+ .post()
243
+ .go()
244
+ end
245
+
190
246
  #
191
247
  # Creates an API key. You can optionally specify a unique Id for the key, if not provided one will be generated.
192
248
  # an API key can only be created with equal or lesser authority. An API key cannot create another API key unless it is granted
@@ -1110,6 +1166,18 @@ module FusionAuth
1110
1166
  .go()
1111
1167
  end
1112
1168
 
1169
+ #
1170
+ # Deletes the WebAuthn credential for the given Id.
1171
+ #
1172
+ # @param id [string] The Id of the WebAuthn credential to delete.
1173
+ # @return [FusionAuth::ClientResponse] The ClientResponse object.
1174
+ def delete_web_authn_credential(id)
1175
+ start.uri('/api/webauthn')
1176
+ .url_segment(id)
1177
+ .delete()
1178
+ .go()
1179
+ end
1180
+
1113
1181
  #
1114
1182
  # Deletes the webhook for the given Id.
1115
1183
  #
@@ -1123,11 +1191,11 @@ module FusionAuth
1123
1191
  end
1124
1192
 
1125
1193
  #
1126
- # Disable Two Factor authentication for a user.
1194
+ # Disable two-factor authentication for a user.
1127
1195
  #
1128
- # @param user_id [string] The Id of the User for which you're disabling Two Factor authentication.
1196
+ # @param user_id [string] The Id of the User for which you're disabling two-factor authentication.
1129
1197
  # @param method_id [string] The two-factor method identifier you wish to disable
1130
- # @param code [string] The Two Factor code used verify the the caller knows the Two Factor secret.
1198
+ # @param code [string] The two-factor code used verify the the caller knows the two-factor secret.
1131
1199
  # @return [FusionAuth::ClientResponse] The ClientResponse object.
1132
1200
  def disable_two_factor(user_id, method_id, code)
1133
1201
  start.uri('/api/user/two-factor')
@@ -1139,9 +1207,9 @@ module FusionAuth
1139
1207
  end
1140
1208
 
1141
1209
  #
1142
- # Disable Two Factor authentication for a user using a JSON body rather than URL parameters.
1210
+ # Disable two-factor authentication for a user using a JSON body rather than URL parameters.
1143
1211
  #
1144
- # @param user_id [string] The Id of the User for which you're disabling Two Factor authentication.
1212
+ # @param user_id [string] The Id of the User for which you're disabling two-factor authentication.
1145
1213
  # @param request [OpenStruct, Hash] The request information that contains the code and methodId along with any event information.
1146
1214
  # @return [FusionAuth::ClientResponse] The ClientResponse object.
1147
1215
  def disable_two_factor_with_request(user_id, request)
@@ -1153,10 +1221,10 @@ module FusionAuth
1153
1221
  end
1154
1222
 
1155
1223
  #
1156
- # Enable Two Factor authentication for a user.
1224
+ # Enable two-factor authentication for a user.
1157
1225
  #
1158
- # @param user_id [string] The Id of the user to enable Two Factor authentication.
1159
- # @param request [OpenStruct, Hash] The two factor enable request information.
1226
+ # @param user_id [string] The Id of the user to enable two-factor authentication.
1227
+ # @param request [OpenStruct, Hash] The two-factor enable request information.
1160
1228
  # @return [FusionAuth::ClientResponse] The ClientResponse object.
1161
1229
  def enable_two_factor(user_id, request)
1162
1230
  start.uri('/api/user/two-factor')
@@ -1171,7 +1239,7 @@ module FusionAuth
1171
1239
  # Makes a request to the Token endpoint to exchange the authorization code returned from the Authorize endpoint for an access token.
1172
1240
  #
1173
1241
  # @param code [string] The authorization code returned on the /oauth2/authorize response.
1174
- # @param client_id [string] The unique client identifier. The client Id is the Id of the FusionAuth Application in which you you are attempting to authenticate.
1242
+ # @param client_id [string] The unique client identifier. The client Id is the Id of the FusionAuth Application in which you are attempting to authenticate.
1175
1243
  # @param client_secret [string] (Optional) The client secret. This value will be required if client authentication is enabled.
1176
1244
  # @param redirect_uri [string] The URI to redirect to upon a successful request.
1177
1245
  # @return [FusionAuth::ClientResponse] The ClientResponse object.
@@ -1194,7 +1262,7 @@ module FusionAuth
1194
1262
  # Makes a request to the Token endpoint to exchange the authorization code returned from the Authorize endpoint and a code_verifier for an access token.
1195
1263
  #
1196
1264
  # @param code [string] The authorization code returned on the /oauth2/authorize response.
1197
- # @param client_id [string] (Optional) The unique client identifier. The client Id is the Id of the FusionAuth Application in which you you are attempting to authenticate. This parameter is optional when the Authorization header is provided.
1265
+ # @param client_id [string] (Optional) The unique client identifier. The client Id is the Id of the FusionAuth Application in which you are attempting to authenticate. This parameter is optional when the Authorization header is provided.
1198
1266
  # @param client_secret [string] (Optional) The client secret. This value may optionally be provided in the request body instead of the Authorization header.
1199
1267
  # @param redirect_uri [string] The URI to redirect to upon a successful request.
1200
1268
  # @param code_verifier [string] The random string generated previously. Will be compared with the code_challenge sent previously, which allows the OAuth provider to authenticate your app.
@@ -1219,7 +1287,7 @@ module FusionAuth
1219
1287
  # If you will be using the Refresh Token Grant, you will make a request to the Token endpoint to exchange the user’s refresh token for an access token.
1220
1288
  #
1221
1289
  # @param refresh_token [string] The refresh token that you would like to use to exchange for an access token.
1222
- # @param client_id [string] (Optional) The unique client identifier. The client Id is the Id of the FusionAuth Application in which you you are attempting to authenticate. This parameter is optional when the Authorization header is provided.
1290
+ # @param client_id [string] (Optional) The unique client identifier. The client Id is the Id of the FusionAuth Application in which you are attempting to authenticate. This parameter is optional when the Authorization header is provided.
1223
1291
  # @param client_secret [string] (Optional) The client secret. This value may optionally be provided in the request body instead of the Authorization header.
1224
1292
  # @param scope [string] (Optional) This parameter is optional and if omitted, the same scope requested during the authorization request will be used. If provided the scopes must match those requested during the initial authorization request.
1225
1293
  # @param user_code [string] (Optional) The end-user verification code. This code is required if using this endpoint to approve the Device Authorization.
@@ -1257,7 +1325,7 @@ module FusionAuth
1257
1325
  #
1258
1326
  # @param username [string] The login identifier of the user. The login identifier can be either the email or the username.
1259
1327
  # @param password [string] The user’s password.
1260
- # @param client_id [string] (Optional) The unique client identifier. The client Id is the Id of the FusionAuth Application in which you you are attempting to authenticate. This parameter is optional when the Authorization header is provided.
1328
+ # @param client_id [string] (Optional) The unique client identifier. The client Id is the Id of the FusionAuth Application in which you are attempting to authenticate. This parameter is optional when the Authorization header is provided.
1261
1329
  # @param client_secret [string] (Optional) The client secret. This value may optionally be provided in the request body instead of the Authorization header.
1262
1330
  # @param scope [string] (Optional) This parameter is optional and if omitted, the same scope requested during the authorization request will be used. If provided the scopes must match those requested during the initial authorization request.
1263
1331
  # @param user_code [string] (Optional) The end-user verification code. This code is required if using this endpoint to approve the Device Authorization.
@@ -1438,6 +1506,18 @@ module FusionAuth
1438
1506
  .go()
1439
1507
  end
1440
1508
 
1509
+ #
1510
+ # Import a WebAuthn credential
1511
+ #
1512
+ # @param request [OpenStruct, Hash] An object containing data necessary for importing the credential
1513
+ # @return [FusionAuth::ClientResponse] The ClientResponse object.
1514
+ def import_web_authn_credential(request)
1515
+ start.uri('/api/webauthn/import')
1516
+ .body_handler(FusionAuth::JSONBodyHandler.new(request))
1517
+ .post()
1518
+ .go()
1519
+ end
1520
+
1441
1521
  #
1442
1522
  # Inspect an access token issued by FusionAuth.
1443
1523
  #
@@ -3230,6 +3310,30 @@ module FusionAuth
3230
3310
  .go()
3231
3311
  end
3232
3312
 
3313
+ #
3314
+ # Retrieves the WebAuthn credential for the given Id.
3315
+ #
3316
+ # @param id [string] The Id of the WebAuthn credential.
3317
+ # @return [FusionAuth::ClientResponse] The ClientResponse object.
3318
+ def retrieve_web_authn_credential(id)
3319
+ start.uri('/api/webauthn')
3320
+ .url_segment(id)
3321
+ .get()
3322
+ .go()
3323
+ end
3324
+
3325
+ #
3326
+ # Retrieves all WebAuthn credentials for the given user.
3327
+ #
3328
+ # @param user_id [string] The user's ID.
3329
+ # @return [FusionAuth::ClientResponse] The ClientResponse object.
3330
+ def retrieve_web_authn_credentials_for_user(user_id)
3331
+ start.uri('/api/webauthn')
3332
+ .url_parameter('userId', user_id)
3333
+ .get()
3334
+ .go()
3335
+ end
3336
+
3233
3337
  #
3234
3338
  # Retrieves the webhook for the given Id. If you pass in null for the id, this will return all the webhooks.
3235
3339
  #
@@ -3684,6 +3788,30 @@ module FusionAuth
3684
3788
  .go()
3685
3789
  end
3686
3790
 
3791
+ #
3792
+ # Start a WebAuthn authentication ceremony by generating a new challenge for the user
3793
+ #
3794
+ # @param request [OpenStruct, Hash] An object containing data necessary for starting the authentication ceremony
3795
+ # @return [FusionAuth::ClientResponse] The ClientResponse object.
3796
+ def start_web_authn_login(request)
3797
+ start.uri('/api/webauthn/start')
3798
+ .body_handler(FusionAuth::JSONBodyHandler.new(request))
3799
+ .post()
3800
+ .go()
3801
+ end
3802
+
3803
+ #
3804
+ # Start a WebAuthn registration ceremony by generating a new challenge for the user
3805
+ #
3806
+ # @param request [OpenStruct, Hash] An object containing data necessary for starting the registration ceremony
3807
+ # @return [FusionAuth::ClientResponse] The ClientResponse object.
3808
+ def start_web_authn_registration(request)
3809
+ start.uri('/api/webauthn/register/start')
3810
+ .body_handler(FusionAuth::JSONBodyHandler.new(request))
3811
+ .post()
3812
+ .go()
3813
+ end
3814
+
3687
3815
  #
3688
3816
  # Complete login using a 2FA challenge
3689
3817
  #
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fusionauth_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.39.0
4
+ version: 1.42.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Pontarelli
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-09-11 00:00:00.000000000 Z
12
+ date: 2022-12-08 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: This library contains the Ruby client library that helps you connect
15
15
  your application to FusionAuth.