comet_backup_ruby_sdk 1.7.0 → 1.11.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/.gitignore +1 -0
- data/CHANGELOG.md +27 -0
- data/Gemfile.lock +3 -3
- data/README.md +1 -1
- data/RELEASING.md +1 -0
- data/comet_backup_ruby_sdk.gemspec +2 -2
- data/lib/comet/comet_server.rb +171 -3
- data/lib/comet/definitions.rb +26 -2
- data/lib/comet/models/admin_security_options.rb +23 -0
- data/lib/comet/models/admin_web_authn_registration.rb +112 -0
- data/lib/comet/models/allowed_admin_user.rb +212 -0
- data/lib/comet/models/b2destination_location.rb +8 -0
- data/lib/comet/models/b2virtual_storage_role_settings.rb +6 -0
- data/lib/comet/models/browse_office_365list_virtual_accounts_response.rb +99 -0
- data/lib/comet/models/device_config.rb +11 -0
- data/lib/comet/models/dispatcher_windisk_snapshot_response.rb +99 -0
- data/lib/comet/models/email_report_generated_preview.rb +25 -0
- data/lib/comet/models/my_sqlconnection.rb +39 -0
- data/lib/comet/models/office_365connection.rb +8 -0
- data/lib/comet/models/office_365custom_setting_v2.rb +108 -0
- data/lib/comet/models/office_365mixed_virtual_account.rb +203 -0
- data/lib/comet/models/server_meta_branding_properties.rb +9 -0
- data/lib/comet/models/stat_result.rb +9 -0
- data/lib/comet/models/web_authn_authenticator_selection.rb +96 -0
- data/lib/comet/models/web_authn_credential.rb +105 -0
- data/lib/comet/models/web_authn_credential_assertion.rb +74 -0
- data/lib/comet/models/web_authn_credential_descriptor.rb +101 -0
- data/lib/comet/models/web_authn_credential_entity.rb +86 -0
- data/lib/comet/models/web_authn_credential_parameter.rb +84 -0
- data/lib/comet/models/web_authn_public_key_credential_creation_options.rb +173 -0
- data/lib/comet/models/web_authn_public_key_credential_request_options.rb +141 -0
- data/lib/comet/models/web_authn_registration_challenge_response.rb +101 -0
- data/lib/comet/models/web_authn_relying_party_entity.rb +95 -0
- data/lib/comet/models/web_authn_sign_request.rb +83 -0
- data/lib/comet/models/web_authn_sign_response.rb +84 -0
- data/lib/comet/models/web_authn_user_entity.rb +105 -0
- data/lib/comet/models/webhook_option.rb +16 -0
- data/lib/comet_backup_ruby_sdk.rb +19 -0
- metadata +24 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d320abff24079c6c63042f2319ab6bf85895df807ae4e3c64e28f124931439d
|
4
|
+
data.tar.gz: 54992cd97acfdea46b281ec833bd6b42a5ee56968ca0f6a9a59a2dfaee4ee97b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3554197606a2d10499e981d642f7b2ad5645b2a424f13be88cf0be3d118da6c6df0caf9a784cc1d0c2536f9b591ef8320b1a04e46fffe0e42c4372c677dafa87
|
7
|
+
data.tar.gz: '0921fc302340b38c77bb6f7733c447d274347dc7379a8916b7f5a4fea0b97c666cdc126d793075be180ea40d431db1449659f279779bf965513c7e5af1235cb2'
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
*.gem
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,31 @@
|
|
1
1
|
# CHANGELOG
|
2
|
+
|
3
|
+
## 2021-12-22 v1.11.0
|
4
|
+
- Based on 21.12.1
|
5
|
+
- Add `AdminAccountWebauthnRegistration` endpoint for new webauthn support.
|
6
|
+
- Deprecate `AdminACcountU2fSubmitChallenge` as U2F is ending browser support in February 2022.
|
7
|
+
|
8
|
+
## 2021-11-24 v1.10.0
|
9
|
+
- Based on 21.9.12
|
10
|
+
- Add support for Thai and Danish localizations
|
11
|
+
- Add From and To fields to the EmailReportGenerated API
|
12
|
+
- Add `AdminDispatcherEmailPreview` api method for requesting the HTML content of an email
|
13
|
+
- Add `ImageEtag` field to the response of the ServerMetaBrandingProperties endpoint.
|
14
|
+
- Add support for new engine properties on the Office365 backup type.
|
15
|
+
- Add `AdminDispatcherOffice365ListVirtualAccounts` api method for requesting Objects that Office365 is capable of backing up.
|
16
|
+
|
17
|
+
## 2021-10-21 1.9.0
|
18
|
+
- Based on 21.9.7
|
19
|
+
- Add Support for `HideFiles` parameter in B2 Destination Locations
|
20
|
+
- Add support for `RegistrationTime` to `DeviceConfig`
|
21
|
+
- Upgrade MYSQL to support new TLS connection options
|
22
|
+
- Add support for new API: `AdminMetaReadAllLogsRequest` and `AdminDispatcherRequestWindiskSnapshot`
|
23
|
+
|
24
|
+
## 2021-09-14 1.8.0
|
25
|
+
- Based on Comet 21.9.2
|
26
|
+
- Support new `custom_headers` field on the `WebhookOption` class for specifying custom HTTP headers
|
27
|
+
to be sent in webhook POST requests from Comet Server
|
28
|
+
|
2
29
|
## 2021-09-08 v1.7.0
|
3
30
|
- Based on Comet 21.9.1
|
4
31
|
- Support new `device_timezone` field on the `DeviceConfig` class.
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
comet_backup_ruby_sdk (1.
|
4
|
+
comet_backup_ruby_sdk (1.10.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -33,11 +33,11 @@ PLATFORMS
|
|
33
33
|
ruby
|
34
34
|
|
35
35
|
DEPENDENCIES
|
36
|
-
bundler (~> 1.
|
36
|
+
bundler (~> 2.1.4)
|
37
37
|
comet_backup_ruby_sdk!
|
38
38
|
minitest (~> 5.14)
|
39
39
|
rake (~> 13.0)
|
40
40
|
rubocop (~> 0.88)
|
41
41
|
|
42
42
|
BUNDLED WITH
|
43
|
-
1.
|
43
|
+
2.1.4
|
data/README.md
CHANGED
data/RELEASING.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# Procedure for releasing gem package updates
|
2
2
|
|
3
|
+
0. As a cygwin user, with docker installed; `docker run -it -v "c://cygwin64/$PWD":/app -w /app ruby:2.7 bash` will get you with a suitable ruby environment for testing/building and releasing this package9.
|
3
4
|
1. All tests passing
|
4
5
|
2. Update changelog in `CHANGELOG.md`
|
5
6
|
3. Update version number in `comet_backup_ruby_sdk.gemspec`
|
@@ -12,7 +12,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
12
12
|
|
13
13
|
Gem::Specification.new do |spec|
|
14
14
|
spec.name = 'comet_backup_ruby_sdk'
|
15
|
-
spec.version = '1.
|
15
|
+
spec.version = '1.11.0'
|
16
16
|
spec.authors = ['Comet Licensing Ltd.']
|
17
17
|
spec.email = ['hello@cometbackup.com']
|
18
18
|
|
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
end
|
29
29
|
spec.require_paths = ['lib']
|
30
30
|
|
31
|
-
spec.add_development_dependency 'bundler', '~> 1.
|
31
|
+
spec.add_development_dependency 'bundler', '~> 2.1.4'
|
32
32
|
spec.add_development_dependency 'minitest', '~> 5.14'
|
33
33
|
spec.add_development_dependency 'rake', '~> 13.0'
|
34
34
|
spec.add_development_dependency 'rubocop', '~> 0.88'
|
data/lib/comet/comet_server.rb
CHANGED
@@ -96,7 +96,7 @@ module Comet
|
|
96
96
|
#
|
97
97
|
# You must supply administrator authentication credentials to use this API.
|
98
98
|
#
|
99
|
-
# @param [String] self_address (Optional) External URL of this server
|
99
|
+
# @param [String] self_address (Optional) External URL of this server
|
100
100
|
# @return [Comet::SessionKeyRegeneratedResponse]
|
101
101
|
def admin_account_session_start(self_address = nil)
|
102
102
|
submit_params = {}
|
@@ -166,6 +166,9 @@ module Comet
|
|
166
166
|
# AdminAccountU2fRequestRegistrationChallenge
|
167
167
|
#
|
168
168
|
# Register a new FIDO U2F token.
|
169
|
+
# Browser support for U2F is ending in February 2022. WebAuthn is backwards
|
170
|
+
# compatible with U2F keys, and Comet will automatically migrate existing U2F keys
|
171
|
+
# to allow their use with the WebAuthn endpoints.
|
169
172
|
#
|
170
173
|
# You must supply administrator authentication credentials to use this API.
|
171
174
|
#
|
@@ -188,6 +191,9 @@ module Comet
|
|
188
191
|
# AdminAccountU2fSubmitChallengeResponse
|
189
192
|
#
|
190
193
|
# Register a new FIDO U2F token.
|
194
|
+
# Browser support for U2F is ending in February 2022. WebAuthn is backwards
|
195
|
+
# compatible with U2F keys, and Comet will automatically migrate existing U2F keys
|
196
|
+
# to allow their use with the WebAuthn endpoints.
|
191
197
|
#
|
192
198
|
# You must supply administrator authentication credentials to use this API.
|
193
199
|
#
|
@@ -245,6 +251,58 @@ module Comet
|
|
245
251
|
ret
|
246
252
|
end
|
247
253
|
|
254
|
+
# AdminAccountWebauthnRequestRegistrationChallenge
|
255
|
+
#
|
256
|
+
# Register a new FIDO2 WebAuthn token.
|
257
|
+
#
|
258
|
+
# You must supply administrator authentication credentials to use this API.
|
259
|
+
#
|
260
|
+
# @param [String] self_address External URL of this server, used as WebAuthn ID
|
261
|
+
# @return [Comet::WebAuthnRegistrationChallengeResponse]
|
262
|
+
def admin_account_webauthn_request_registration_challenge(self_address)
|
263
|
+
submit_params = {}
|
264
|
+
raise TypeError, "'self_address' expected String, got #{self_address.class}" unless self_address.is_a? String
|
265
|
+
|
266
|
+
submit_params['SelfAddress'] = self_address
|
267
|
+
|
268
|
+
body = perform_request('api/v1/admin/account/webauthn/request-registration-challenge', submit_params)
|
269
|
+
json_body = JSON.parse body
|
270
|
+
check_status json_body
|
271
|
+
ret = Comet::WebAuthnRegistrationChallengeResponse.new
|
272
|
+
ret.from_hash(json_body)
|
273
|
+
ret
|
274
|
+
end
|
275
|
+
|
276
|
+
# AdminAccountWebauthnSubmitChallengeResponse
|
277
|
+
#
|
278
|
+
# Register a new FIDO2 WebAuthn token.
|
279
|
+
#
|
280
|
+
# You must supply administrator authentication credentials to use this API.
|
281
|
+
#
|
282
|
+
# @param [String] self_address External URL of this server, used as WebAuthn ID
|
283
|
+
# @param [String] challenge_id Associated value from AdminAccountWebAuthnRequestRegistrationChallenge API
|
284
|
+
# @param [String] credential JSON-encoded credential
|
285
|
+
# @return [Comet::CometAPIResponseMessage]
|
286
|
+
def admin_account_webauthn_submit_challenge_response(self_address, challenge_id, credential)
|
287
|
+
submit_params = {}
|
288
|
+
raise TypeError, "'self_address' expected String, got #{self_address.class}" unless self_address.is_a? String
|
289
|
+
|
290
|
+
submit_params['SelfAddress'] = self_address
|
291
|
+
raise TypeError, "'challenge_id' expected String, got #{challenge_id.class}" unless challenge_id.is_a? String
|
292
|
+
|
293
|
+
submit_params['ChallengeID'] = challenge_id
|
294
|
+
raise TypeError, "'credential' expected String, got #{credential.class}" unless credential.is_a? String
|
295
|
+
|
296
|
+
submit_params['Credential'] = credential
|
297
|
+
|
298
|
+
body = perform_request('api/v1/admin/account/webauthn/submit-challenge-response', submit_params)
|
299
|
+
json_body = JSON.parse body
|
300
|
+
check_status json_body
|
301
|
+
ret = Comet::CometAPIResponseMessage.new
|
302
|
+
ret.from_hash(json_body)
|
303
|
+
ret
|
304
|
+
end
|
305
|
+
|
248
306
|
# AdminAddUser
|
249
307
|
#
|
250
308
|
# Add a new user account.
|
@@ -1001,6 +1059,42 @@ module Comet
|
|
1001
1059
|
ret
|
1002
1060
|
end
|
1003
1061
|
|
1062
|
+
# AdminDispatcherEmailPreview
|
1063
|
+
#
|
1064
|
+
# Request HTML content of an email.
|
1065
|
+
# The remote device must have given consent for an MSP to browse their mail
|
1066
|
+
#
|
1067
|
+
# You must supply administrator authentication credentials to use this API.
|
1068
|
+
# This API requires the Auth Role to be enabled.
|
1069
|
+
#
|
1070
|
+
# @param [String] target_id The live connection GUID
|
1071
|
+
# @param [String] snapshot where the email belongs to
|
1072
|
+
# @param [String] destination The Storage Vault ID
|
1073
|
+
# @param [String] path of the email to view
|
1074
|
+
# @return [Comet::EmailReportGeneratedPreview]
|
1075
|
+
def admin_dispatcher_email_preview(target_id, snapshot, destination, path)
|
1076
|
+
submit_params = {}
|
1077
|
+
raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
|
1078
|
+
|
1079
|
+
submit_params['TargetID'] = target_id
|
1080
|
+
raise TypeError, "'snapshot' expected String, got #{snapshot.class}" unless snapshot.is_a? String
|
1081
|
+
|
1082
|
+
submit_params['Snapshot'] = snapshot
|
1083
|
+
raise TypeError, "'destination' expected String, got #{destination.class}" unless destination.is_a? String
|
1084
|
+
|
1085
|
+
submit_params['Destination'] = destination
|
1086
|
+
raise TypeError, "'path' expected String, got #{path.class}" unless path.is_a? String
|
1087
|
+
|
1088
|
+
submit_params['Path'] = path
|
1089
|
+
|
1090
|
+
body = perform_request('api/v1/admin/dispatcher/email-preview', submit_params)
|
1091
|
+
json_body = JSON.parse body
|
1092
|
+
check_status json_body
|
1093
|
+
ret = Comet::EmailReportGeneratedPreview.new
|
1094
|
+
ret.from_hash(json_body)
|
1095
|
+
ret
|
1096
|
+
end
|
1097
|
+
|
1004
1098
|
# AdminDispatcherImportApply
|
1005
1099
|
#
|
1006
1100
|
# Instruct a live connected device to import settings from an installed product.
|
@@ -1077,6 +1171,34 @@ module Comet
|
|
1077
1171
|
ret
|
1078
1172
|
end
|
1079
1173
|
|
1174
|
+
# AdminDispatcherOffice365ListVirtualAccounts
|
1175
|
+
#
|
1176
|
+
# Request a list of Office365 Resources (groups, sites, teams groups and users).
|
1177
|
+
# The remote device must have given consent for an MSP to browse their files.
|
1178
|
+
#
|
1179
|
+
# You must supply administrator authentication credentials to use this API.
|
1180
|
+
# This API requires the Auth Role to be enabled.
|
1181
|
+
#
|
1182
|
+
# @param [String] target_id The live connection GUID
|
1183
|
+
# @param [Comet::Office365Credential] credentials The Office365 account credential
|
1184
|
+
# @return [Comet::BrowseOffice365ListVirtualAccountsResponse]
|
1185
|
+
def admin_dispatcher_office_365list_virtual_accounts(target_id, credentials)
|
1186
|
+
submit_params = {}
|
1187
|
+
raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
|
1188
|
+
|
1189
|
+
submit_params['TargetID'] = target_id
|
1190
|
+
raise TypeError, "'credentials' expected Comet::Office365Credential, got #{credentials.class}" unless credentials.is_a? Comet::Office365Credential
|
1191
|
+
|
1192
|
+
submit_params['Credentials'] = credentials.to_json
|
1193
|
+
|
1194
|
+
body = perform_request('api/v1/admin/dispatcher/office365-list-virtual-accounts', submit_params)
|
1195
|
+
json_body = JSON.parse body
|
1196
|
+
check_status json_body
|
1197
|
+
ret = Comet::BrowseOffice365ListVirtualAccountsResponse.new
|
1198
|
+
ret.from_hash(json_body)
|
1199
|
+
ret
|
1200
|
+
end
|
1201
|
+
|
1080
1202
|
# AdminDispatcherPingDestination
|
1081
1203
|
#
|
1082
1204
|
# Test the connection to the storage bucket.
|
@@ -1563,6 +1685,37 @@ module Comet
|
|
1563
1685
|
ret
|
1564
1686
|
end
|
1565
1687
|
|
1688
|
+
# AdminDispatcherRequestWindiskSnapshot
|
1689
|
+
#
|
1690
|
+
# Request a Disk Image snapshot with the windiskbrowse-style from a live connected device.
|
1691
|
+
#
|
1692
|
+
# You must supply administrator authentication credentials to use this API.
|
1693
|
+
# This API requires the Auth Role to be enabled.
|
1694
|
+
#
|
1695
|
+
# @param [String] target_id The live connection GUID
|
1696
|
+
# @param [String] destination The Storage Vault ID
|
1697
|
+
# @param [String] snapshot_id The Snapshot ID
|
1698
|
+
# @return [Comet::DispatcherWindiskSnapshotResponse]
|
1699
|
+
def admin_dispatcher_request_windisk_snapshot(target_id, destination, snapshot_id)
|
1700
|
+
submit_params = {}
|
1701
|
+
raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
|
1702
|
+
|
1703
|
+
submit_params['TargetID'] = target_id
|
1704
|
+
raise TypeError, "'destination' expected String, got #{destination.class}" unless destination.is_a? String
|
1705
|
+
|
1706
|
+
submit_params['Destination'] = destination
|
1707
|
+
raise TypeError, "'snapshot_id' expected String, got #{snapshot_id.class}" unless snapshot_id.is_a? String
|
1708
|
+
|
1709
|
+
submit_params['SnapshotID'] = snapshot_id
|
1710
|
+
|
1711
|
+
body = perform_request('api/v1/admin/dispatcher/request-windisk-snapshot', submit_params)
|
1712
|
+
json_body = JSON.parse body
|
1713
|
+
check_status json_body
|
1714
|
+
ret = Comet::DispatcherWindiskSnapshotResponse.new
|
1715
|
+
ret.from_hash(json_body)
|
1716
|
+
ret
|
1717
|
+
end
|
1718
|
+
|
1566
1719
|
# AdminDispatcherRunBackup
|
1567
1720
|
#
|
1568
1721
|
# Instruct a live connected device to run a scheduled backup.
|
@@ -2139,6 +2292,7 @@ module Comet
|
|
2139
2292
|
# Cancel a running job.
|
2140
2293
|
# A request is sent to the live-connected device, asking it to cancel the operation. This may fail if there is no live-connection.
|
2141
2294
|
# Only jobs from Comet 18.3.5 or newer can be cancelled. A job can only be cancelled if it has a non-empty CancellationID field in its properties.
|
2295
|
+
# If the device is running Comet 21.9.5 or later, this API will wait up to ten seconds for a confirmation from the client.
|
2142
2296
|
#
|
2143
2297
|
# You must supply administrator authentication credentials to use this API.
|
2144
2298
|
# This API requires the Auth Role to be enabled.
|
@@ -2318,6 +2472,20 @@ module Comet
|
|
2318
2472
|
ret
|
2319
2473
|
end
|
2320
2474
|
|
2475
|
+
# AdminMetaReadAllLogs
|
2476
|
+
#
|
2477
|
+
# Get a ZIP file of all of the server's log files.
|
2478
|
+
# On non-Windows platforms, log content uses LF line endings. On Windows, Comet changed from LF to CRLF line endings in 18.3.2.
|
2479
|
+
# This API does not automatically convert line endings; around the 18.3.2 timeframe, log content may even contain mixed line-endings.
|
2480
|
+
#
|
2481
|
+
# You must supply administrator authentication credentials to use this API.
|
2482
|
+
# This API is only available for administrator accounts in the top-level Organization, not in any other Organization.
|
2483
|
+
#
|
2484
|
+
# @return [String]
|
2485
|
+
def admin_meta_read_all_logs
|
2486
|
+
perform_request('api/v1/admin/meta/read-all-logs')
|
2487
|
+
end
|
2488
|
+
|
2321
2489
|
# AdminMetaReadLogs
|
2322
2490
|
#
|
2323
2491
|
# Get log file content.
|
@@ -3483,7 +3651,7 @@ module Comet
|
|
3483
3651
|
|
3484
3652
|
ret_error = Comet::CometAPIResponseMessage.new
|
3485
3653
|
ret_error.from_hash(obj)
|
3486
|
-
raise Comet::APIResponseError.new(ret_error)
|
3654
|
+
raise Comet::APIResponseError.new(ret_error)
|
3487
3655
|
end
|
3488
3656
|
|
3489
3657
|
# Perform a synchronous HTTP request.
|
@@ -3520,7 +3688,7 @@ module Comet
|
|
3520
3688
|
|
3521
3689
|
form_params = []
|
3522
3690
|
params.each do |k, v|
|
3523
|
-
form_params.append [k, v, {
|
3691
|
+
form_params.append [k, v, {:filename => k}]
|
3524
3692
|
end
|
3525
3693
|
req.set_form(form_params, 'multipart/form-data')
|
3526
3694
|
|
data/lib/comet/definitions.rb
CHANGED
@@ -155,6 +155,24 @@ module Comet
|
|
155
155
|
|
156
156
|
MONGODB_DEFAULT_PORT = 27_017
|
157
157
|
|
158
|
+
SERVICE_CALENDAR = 1
|
159
|
+
|
160
|
+
SERVICE_CONTACT = 2
|
161
|
+
|
162
|
+
SERVICE_MAIL = 4
|
163
|
+
|
164
|
+
SERVICE_SHAREPOINT = 8
|
165
|
+
|
166
|
+
SERVICE_ONEDRIVE = 16
|
167
|
+
|
168
|
+
MIXED_VIRTUAL_ACCOUNT_TYPE_USER = 1
|
169
|
+
|
170
|
+
MIXED_VIRTUAL_ACCOUNT_TYPE_GROUP = 2
|
171
|
+
|
172
|
+
MIXED_VIRTUAL_ACCOUNT_TYPE_TEAM_GROUP = 3
|
173
|
+
|
174
|
+
MIXED_VIRTUAL_ACCOUNT_TYPE_SHAREPOINT_ONLY = 4
|
175
|
+
|
158
176
|
# RestoreType:
|
159
177
|
RESTORETYPE_INVALID = -1
|
160
178
|
|
@@ -412,11 +430,11 @@ module Comet
|
|
412
430
|
|
413
431
|
DEFAULT_TIMEZONE = 'UTC'
|
414
432
|
|
415
|
-
APPLICATION_VERSION = '21.
|
433
|
+
APPLICATION_VERSION = '21.12.1'
|
416
434
|
|
417
435
|
APPLICATION_VERSION_MAJOR = 21
|
418
436
|
|
419
|
-
APPLICATION_VERSION_MINOR =
|
437
|
+
APPLICATION_VERSION_MINOR = 12
|
420
438
|
|
421
439
|
APPLICATION_VERSION_REVISION = 1
|
422
440
|
|
@@ -591,6 +609,9 @@ module Comet
|
|
591
609
|
# MacOSCodesignLevel:
|
592
610
|
MACOSCODESIGN_LEVEL_SIGN_NOTARISE_STAPLE = 2
|
593
611
|
|
612
|
+
# StreamableEventType:
|
613
|
+
SEVT__MIN = 4000
|
614
|
+
|
594
615
|
# StreamableEventType: Event is emitted when the webhook is registered, or when the server starts up. The Data associated is ServerMetaVersionInfo
|
595
616
|
SEVT_META_HELLO = 4000
|
596
617
|
|
@@ -612,6 +633,9 @@ module Comet
|
|
612
633
|
# StreamableEventType: Data is the string bucket ref
|
613
634
|
SEVT_BUCKET_NEW = 4300
|
614
635
|
|
636
|
+
# StreamableEventType:
|
637
|
+
SEVT__MAX = 4999
|
638
|
+
|
615
639
|
OFFICE365_REGION_PUBLIC = 'GlobalPublicCloud'
|
616
640
|
|
617
641
|
OFFICE365_REGION_CHINA = 'ChinaCloud'
|
@@ -29,9 +29,15 @@ module Comet
|
|
29
29
|
# @type [Boolean] allow_password_and_u2flogin
|
30
30
|
attr_accessor :allow_password_and_u2flogin
|
31
31
|
|
32
|
+
# @type [Boolean] allow_password_and_web_authn_login
|
33
|
+
attr_accessor :allow_password_and_web_authn_login
|
34
|
+
|
32
35
|
# @type [Array<Comet::AdminU2FRegistration>] u2fregistrations
|
33
36
|
attr_accessor :u2fregistrations
|
34
37
|
|
38
|
+
# @type [Array<Comet::AdminWebAuthnRegistration>] web_authn_registrations
|
39
|
+
attr_accessor :web_authn_registrations
|
40
|
+
|
35
41
|
# @type [Number] totpkey_encryption_format
|
36
42
|
attr_accessor :totpkey_encryption_format
|
37
43
|
|
@@ -52,6 +58,7 @@ module Comet
|
|
52
58
|
@password_format = 0
|
53
59
|
@password = ''
|
54
60
|
@u2fregistrations = []
|
61
|
+
@web_authn_registrations = []
|
55
62
|
@totpkey_encryption_format = 0
|
56
63
|
@totpkey = ''
|
57
64
|
@ipwhitelist = ''
|
@@ -85,6 +92,8 @@ module Comet
|
|
85
92
|
@allow_password_and_totplogin = v
|
86
93
|
when 'AllowPasswordAndU2FLogin'
|
87
94
|
@allow_password_and_u2flogin = v
|
95
|
+
when 'AllowPasswordAndWebAuthnLogin'
|
96
|
+
@allow_password_and_web_authn_login = v
|
88
97
|
when 'U2FRegistrations'
|
89
98
|
if v.nil?
|
90
99
|
@u2fregistrations = []
|
@@ -95,6 +104,16 @@ module Comet
|
|
95
104
|
@u2fregistrations[i1].from_hash(v1)
|
96
105
|
end
|
97
106
|
end
|
107
|
+
when 'WebAuthnRegistrations'
|
108
|
+
if v.nil?
|
109
|
+
@web_authn_registrations = []
|
110
|
+
else
|
111
|
+
@web_authn_registrations = Array.new(v.length)
|
112
|
+
v.each_with_index do |v1, i1|
|
113
|
+
@web_authn_registrations[i1] = Comet::AdminWebAuthnRegistration.new
|
114
|
+
@web_authn_registrations[i1].from_hash(v1)
|
115
|
+
end
|
116
|
+
end
|
98
117
|
when 'TOTPKeyEncryptionFormat'
|
99
118
|
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
100
119
|
|
@@ -121,9 +140,13 @@ module Comet
|
|
121
140
|
ret['AllowPasswordLogin'] = @allow_password_login
|
122
141
|
ret['AllowPasswordAndTOTPLogin'] = @allow_password_and_totplogin
|
123
142
|
ret['AllowPasswordAndU2FLogin'] = @allow_password_and_u2flogin
|
143
|
+
ret['AllowPasswordAndWebAuthnLogin'] = @allow_password_and_web_authn_login
|
124
144
|
unless @u2fregistrations.nil?
|
125
145
|
ret['U2FRegistrations'] = @u2fregistrations
|
126
146
|
end
|
147
|
+
unless @web_authn_registrations.nil?
|
148
|
+
ret['WebAuthnRegistrations'] = @web_authn_registrations
|
149
|
+
end
|
127
150
|
unless @totpkey_encryption_format.nil?
|
128
151
|
ret['TOTPKeyEncryptionFormat'] = @totpkey_encryption_format
|
129
152
|
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
#!/usr/bin/env ruby --enable-frozen-string-literal
|
2
|
+
#
|
3
|
+
# Copyright (c) 2020-2021 Comet Licensing Ltd.
|
4
|
+
# Please see the LICENSE file for usage information.
|
5
|
+
#
|
6
|
+
# SPDX-License-Identifier: MIT
|
7
|
+
#
|
8
|
+
# frozen_string_literal: true
|
9
|
+
|
10
|
+
require 'base64'
|
11
|
+
require 'json'
|
12
|
+
|
13
|
+
module Comet
|
14
|
+
|
15
|
+
# AdminWebAuthnRegistration is a typed class wrapper around the underlying Comet Server API data structure.
|
16
|
+
class AdminWebAuthnRegistration
|
17
|
+
|
18
|
+
# @type [String] description
|
19
|
+
attr_accessor :description
|
20
|
+
|
21
|
+
# @type [Number] register_time
|
22
|
+
attr_accessor :register_time
|
23
|
+
|
24
|
+
# @type [Boolean] is_legacy_u2f
|
25
|
+
attr_accessor :is_legacy_u2f
|
26
|
+
|
27
|
+
# @type [Array<Object>] id
|
28
|
+
attr_accessor :id
|
29
|
+
|
30
|
+
# @type [Comet::WebAuthnCredential] credential
|
31
|
+
attr_accessor :credential
|
32
|
+
|
33
|
+
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
34
|
+
attr_accessor :unknown_json_fields
|
35
|
+
|
36
|
+
def initialize
|
37
|
+
clear
|
38
|
+
end
|
39
|
+
|
40
|
+
def clear
|
41
|
+
@description = ''
|
42
|
+
@register_time = 0
|
43
|
+
@id = []
|
44
|
+
@credential = Comet::WebAuthnCredential.new
|
45
|
+
@unknown_json_fields = {}
|
46
|
+
end
|
47
|
+
|
48
|
+
# @param [String] json_string The complete object in JSON format
|
49
|
+
def from_json(json_string)
|
50
|
+
raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
|
51
|
+
|
52
|
+
from_hash(JSON.parse(json_string))
|
53
|
+
end
|
54
|
+
|
55
|
+
# @param [Hash] obj The complete object as a Ruby hash
|
56
|
+
def from_hash(obj)
|
57
|
+
raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
|
58
|
+
|
59
|
+
obj.each do |k, v|
|
60
|
+
case k
|
61
|
+
when 'Description'
|
62
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
63
|
+
|
64
|
+
@description = v
|
65
|
+
when 'RegisterTime'
|
66
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
67
|
+
|
68
|
+
@register_time = v
|
69
|
+
when 'IsLegacyU2F'
|
70
|
+
@is_legacy_u2f = v
|
71
|
+
when 'ID'
|
72
|
+
@id = Base64.decode64(v)
|
73
|
+
when 'Credential'
|
74
|
+
@credential = Comet::WebAuthnCredential.new
|
75
|
+
@credential.from_hash(v)
|
76
|
+
else
|
77
|
+
@unknown_json_fields[k] = v
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# @return [Hash] The complete object as a Ruby hash
|
83
|
+
def to_hash
|
84
|
+
ret = {}
|
85
|
+
ret['Description'] = @description
|
86
|
+
ret['RegisterTime'] = @register_time
|
87
|
+
unless @is_legacy_u2f.nil?
|
88
|
+
ret['IsLegacyU2F'] = @is_legacy_u2f
|
89
|
+
end
|
90
|
+
unless @id.nil?
|
91
|
+
ret['ID'] = @id
|
92
|
+
end
|
93
|
+
unless @credential.nil?
|
94
|
+
ret['Credential'] = @credential
|
95
|
+
end
|
96
|
+
@unknown_json_fields.each do |k, v|
|
97
|
+
ret[k] = v
|
98
|
+
end
|
99
|
+
ret
|
100
|
+
end
|
101
|
+
|
102
|
+
# @return [Hash] The complete object as a Ruby hash
|
103
|
+
def to_h
|
104
|
+
to_hash
|
105
|
+
end
|
106
|
+
|
107
|
+
# @return [String] The complete object as a JSON string
|
108
|
+
def to_json(options = {})
|
109
|
+
to_hash.to_json(options)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|