workos 2.2.1 → 2.3.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/Gemfile.lock +2 -2
- data/lib/workos/audit_trail.rb +1 -0
- data/lib/workos/challenge.rb +1 -1
- data/lib/workos/directory_group.rb +18 -1
- data/lib/workos/directory_sync.rb +3 -0
- data/lib/workos/directory_user.rb +5 -0
- data/lib/workos/factor.rb +1 -6
- data/lib/workos/organizations.rb +1 -0
- data/lib/workos/sso.rb +1 -0
- data/lib/workos/types/challenge_struct.rb +1 -1
- data/lib/workos/types/directory_group_struct.rb +5 -0
- data/lib/workos/types/factor_struct.rb +0 -1
- data/lib/workos/version.rb +1 -1
- data/spec/lib/workos/directory_sync_spec.rb +23 -19
- data/spec/lib/workos/directory_user_spec.rb +36 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/get_group.yml +48 -28
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_after.yml +46 -32
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_before.yml +47 -31
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_directory.yml +46 -34
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_limit.yml +41 -31
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_no_options.yml +36 -26
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_user.yml +38 -28
- data/spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_totp_valid.yml +1 -1
- data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_generic_valid.yml +1 -1
- data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_sms_valid.yml +1 -1
- data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_totp_valid.yml +1 -1
- data/spec/support/fixtures/vcr_cassettes/mfa/get_factor_valid.yml +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7abb4f1d075ea976bbc8577247d36ff763a21dd1b18335daac39a8c80d6acea
|
4
|
+
data.tar.gz: 4c8e6326e7b80773a292754a7030033773470dc12228571cad8b0198a3c8342b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d4c51f21848cb44e0f0326deab050040989811f829b4bbf1c317aca9d08e113c47bd4dbd822faac3f195d8695204fd3acb9a797638a0d9c4f951100964a53e7
|
7
|
+
data.tar.gz: 2b25fd19c5008c27d03a9ab73f6dcb02ba2cd7f133d0726ce46ccadb4928e2805dca1f63dbefd9552ea7ee8ea9acf122a7641dabf48e5199f4f607dcb8754c46
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
workos (2.
|
4
|
+
workos (2.3.0)
|
5
5
|
sorbet-runtime (~> 0.5)
|
6
6
|
|
7
7
|
GEM
|
@@ -60,7 +60,7 @@ GEM
|
|
60
60
|
simplecov_json_formatter (0.1.2)
|
61
61
|
sorbet (0.5.6388)
|
62
62
|
sorbet-static (= 0.5.6388)
|
63
|
-
sorbet-runtime (0.5.
|
63
|
+
sorbet-runtime (0.5.10090)
|
64
64
|
sorbet-static (0.5.6388-universal-darwin-14)
|
65
65
|
sorbet-static (0.5.6388-universal-darwin-15)
|
66
66
|
sorbet-static (0.5.6388-universal-darwin-16)
|
data/lib/workos/audit_trail.rb
CHANGED
@@ -65,6 +65,7 @@ module WorkOS
|
|
65
65
|
# @option options [String] before Event ID to look before
|
66
66
|
# @option options [String] after Event ID to look after
|
67
67
|
# @option options [Integer] limit Number of Events to return
|
68
|
+
# @option options [String] order The order in which to paginate records
|
68
69
|
# @option options [Array<String>] group List of Groups to filter for
|
69
70
|
# @option options [Array<String>] action List of Actions to filter for
|
70
71
|
# @option options [Array<String>] action_type List of Action Types to
|
data/lib/workos/challenge.rb
CHANGED
@@ -16,7 +16,7 @@ module WorkOS
|
|
16
16
|
raw = parse_json(json)
|
17
17
|
@id = T.let(raw.id, String)
|
18
18
|
@object = T.let(raw.object, String)
|
19
|
-
@expires_at = raw.expires_at
|
19
|
+
@expires_at = T.let(raw.expires_at, String)
|
20
20
|
@code = raw.code
|
21
21
|
@authentication_factor_id = T.let(raw.authentication_factor_id, String)
|
22
22
|
@created_at = T.let(raw.created_at, String)
|
@@ -9,22 +9,34 @@ module WorkOS
|
|
9
9
|
include HashProvider
|
10
10
|
extend T::Sig
|
11
11
|
|
12
|
-
attr_accessor :id, :name, :
|
12
|
+
attr_accessor :id, :directory_id, :idp_id, :name, :created_at, :updated_at, :raw_attributes
|
13
13
|
|
14
|
+
# rubocop:disable Metrics/AbcSize
|
14
15
|
sig { params(json: String).void }
|
15
16
|
def initialize(json)
|
16
17
|
raw = parse_json(json)
|
17
18
|
|
18
19
|
@id = T.let(raw.id, String)
|
20
|
+
@directory_id = T.let(raw.directory_id, String)
|
21
|
+
@idp_id = T.let(raw.idp_id, String)
|
19
22
|
@name = T.let(raw.name, String)
|
23
|
+
@created_at = T.let(raw.created_at, String)
|
24
|
+
@updated_at = T.let(raw.updated_at, String)
|
25
|
+
@raw_attributes = raw.raw_attributes
|
20
26
|
|
21
27
|
replace_without_warning(to_json)
|
22
28
|
end
|
29
|
+
# rubocop:enable Metrics/AbcSize
|
23
30
|
|
24
31
|
def to_json(*)
|
25
32
|
{
|
26
33
|
id: id,
|
34
|
+
directory_id: directory_id,
|
35
|
+
idp_id: idp_id,
|
27
36
|
name: name,
|
37
|
+
created_at: created_at,
|
38
|
+
updated_at: updated_at,
|
39
|
+
raw_attributes: raw_attributes,
|
28
40
|
}
|
29
41
|
end
|
30
42
|
|
@@ -40,7 +52,12 @@ module WorkOS
|
|
40
52
|
|
41
53
|
WorkOS::Types::DirectoryGroupStruct.new(
|
42
54
|
id: hash[:id],
|
55
|
+
directory_id: hash[:directory_id],
|
56
|
+
idp_id: hash[:idp_id],
|
43
57
|
name: hash[:name],
|
58
|
+
created_at: hash[:created_at],
|
59
|
+
updated_at: hash[:updated_at],
|
60
|
+
raw_attributes: hash[:raw_attributes],
|
44
61
|
)
|
45
62
|
end
|
46
63
|
end
|
@@ -22,6 +22,7 @@ module WorkOS
|
|
22
22
|
# retrieved.
|
23
23
|
# @option options [String] search A search term for direcory names.
|
24
24
|
# @option options [String] limit Maximum number of records to return.
|
25
|
+
# @option options [String] order The order in which to paginate records
|
25
26
|
# @option options [String] before Pagination cursor to receive records
|
26
27
|
# before a provided Directory ID.
|
27
28
|
# @option options [String] after Pagination cursor to receive records
|
@@ -91,6 +92,7 @@ module WorkOS
|
|
91
92
|
# @option options [String] user The ID of the directory user whose
|
92
93
|
# directory groups will be retrieved.
|
93
94
|
# @option options [String] limit Maximum number of records to return.
|
95
|
+
# @option options [String] order The order in which to paginate records
|
94
96
|
# @option options [String] before Pagination cursor to receive records
|
95
97
|
# before a provided Directory Group ID.
|
96
98
|
# @option options [String] after Pagination cursor to receive records
|
@@ -130,6 +132,7 @@ module WorkOS
|
|
130
132
|
# @option options [String] user The ID of the directory group whose
|
131
133
|
# directory users will be retrieved.
|
132
134
|
# @option options [String] limit Maximum number of records to return.
|
135
|
+
# @option options [String] order The order in which to paginate records
|
133
136
|
# @option options [String] before Pagination cursor to receive records
|
134
137
|
# before a provided Directory User ID.
|
135
138
|
# @option options [String] after Pagination cursor to receive records
|
data/lib/workos/factor.rb
CHANGED
@@ -7,15 +7,13 @@ module WorkOS
|
|
7
7
|
# in DirectoryUser space, and is instantiated internally but exposed.
|
8
8
|
class Factor
|
9
9
|
include HashProvider
|
10
|
-
# rubocop:disable Metrics/AbcSize
|
11
10
|
extend T::Sig
|
12
|
-
attr_accessor :id, :
|
11
|
+
attr_accessor :id, :object, :type, :sms, :totp, :updated_at, :created_at
|
13
12
|
|
14
13
|
sig { params(json: String).void }
|
15
14
|
def initialize(json)
|
16
15
|
raw = parse_json(json)
|
17
16
|
@id = T.let(raw.id, String)
|
18
|
-
@environment_id = T.let(raw.environment_id, String)
|
19
17
|
@object = T.let(raw.object, String)
|
20
18
|
@type = T.let(raw.type, String)
|
21
19
|
@created_at = T.let(raw.created_at, String)
|
@@ -27,7 +25,6 @@ module WorkOS
|
|
27
25
|
def to_json(*)
|
28
26
|
{
|
29
27
|
id: id,
|
30
|
-
environment_id: environment_id,
|
31
28
|
object: object,
|
32
29
|
type: type,
|
33
30
|
totp: totp,
|
@@ -45,7 +42,6 @@ module WorkOS
|
|
45
42
|
|
46
43
|
WorkOS::Types::FactorStruct.new(
|
47
44
|
id: hash[:id],
|
48
|
-
environment_id: hash[:environment_id],
|
49
45
|
object: hash[:object],
|
50
46
|
type: hash[:type],
|
51
47
|
totp: hash[:totp],
|
@@ -54,6 +50,5 @@ module WorkOS
|
|
54
50
|
updated_at: hash[:updated_at],
|
55
51
|
)
|
56
52
|
end
|
57
|
-
# rubocop:enable Metrics/AbcSize
|
58
53
|
end
|
59
54
|
end
|
data/lib/workos/organizations.rb
CHANGED
@@ -21,6 +21,7 @@ module WorkOS
|
|
21
21
|
# @param [String] after A pagination argument used to request
|
22
22
|
# organizations after the provided Organization ID.
|
23
23
|
# @param [Integer] limit A pagination argument used to limit the number
|
24
|
+
# @param [String] order The order in which to paginate records
|
24
25
|
# of listed Organizations that are returned.
|
25
26
|
sig do
|
26
27
|
params(
|
data/lib/workos/sso.rb
CHANGED
@@ -163,6 +163,7 @@ module WorkOS
|
|
163
163
|
# @option options [String] organization_id The id of the organization
|
164
164
|
# of the connections to be retrieved.
|
165
165
|
# @option options [String] limit Maximum number of records to return.
|
166
|
+
# @option options [String] order The order in which to paginate records
|
166
167
|
# @option options [String] before Pagination cursor to receive records
|
167
168
|
# before a provided Connection ID.
|
168
169
|
# @option options [String] after Pagination cursor to receive records
|
@@ -8,7 +8,7 @@ module WorkOS
|
|
8
8
|
class ChallengeStruct < T::Struct
|
9
9
|
const :id, String
|
10
10
|
const :object, String
|
11
|
-
const :expires_at,
|
11
|
+
const :expires_at, String
|
12
12
|
const :code, T.nilable(String)
|
13
13
|
const :authentication_factor_id, String
|
14
14
|
const :created_at, String
|
@@ -7,7 +7,12 @@ module WorkOS
|
|
7
7
|
# for the DirectoryGroup class
|
8
8
|
class DirectoryGroupStruct < T::Struct
|
9
9
|
const :id, String
|
10
|
+
const :directory_id, String
|
11
|
+
const :idp_id, String
|
10
12
|
const :name, String
|
13
|
+
const :created_at, String
|
14
|
+
const :updated_at, String
|
15
|
+
const :raw_attributes, T::Hash[Symbol, Object]
|
11
16
|
end
|
12
17
|
end
|
13
18
|
end
|
data/lib/workos/version.rb
CHANGED
@@ -189,7 +189,7 @@ describe WorkOS::DirectorySync do
|
|
189
189
|
context 'with directory option' do
|
190
190
|
it 'forms the proper request to the API' do
|
191
191
|
request_args = [
|
192
|
-
'/directory_groups?directory=
|
192
|
+
'/directory_groups?directory=directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
|
193
193
|
'Content-Type' => 'application/json'
|
194
194
|
]
|
195
195
|
|
@@ -200,7 +200,7 @@ describe WorkOS::DirectorySync do
|
|
200
200
|
|
201
201
|
VCR.use_cassette 'directory_sync/list_groups/with_directory' do
|
202
202
|
groups = described_class.list_groups(
|
203
|
-
directory: '
|
203
|
+
directory: 'directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
|
204
204
|
)
|
205
205
|
|
206
206
|
expect(groups.data.size).to eq(10)
|
@@ -212,7 +212,7 @@ describe WorkOS::DirectorySync do
|
|
212
212
|
context 'with user option' do
|
213
213
|
it 'forms the proper request to the API' do
|
214
214
|
request_args = [
|
215
|
-
'/directory_groups?user=
|
215
|
+
'/directory_groups?user=directory_user_01G2Z8D4FDB28ZNSRRBVCF2E0P',
|
216
216
|
'Content-Type' => 'application/json'
|
217
217
|
]
|
218
218
|
|
@@ -223,7 +223,7 @@ describe WorkOS::DirectorySync do
|
|
223
223
|
|
224
224
|
VCR.use_cassette 'directory_sync/list_groups/with_user' do
|
225
225
|
groups = described_class.list_groups(
|
226
|
-
user: '
|
226
|
+
user: 'directory_user_01G2Z8D4FDB28ZNSRRBVCF2E0P',
|
227
227
|
)
|
228
228
|
|
229
229
|
expect(groups.data.size).to eq(3)
|
@@ -234,8 +234,8 @@ describe WorkOS::DirectorySync do
|
|
234
234
|
context 'with the before option' do
|
235
235
|
it 'forms the proper request to the API' do
|
236
236
|
request_args = [
|
237
|
-
'/directory_groups?before=
|
238
|
-
'directory=
|
237
|
+
'/directory_groups?before=directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG&' \
|
238
|
+
'directory=directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
|
239
239
|
'Content-Type' => 'application/json'
|
240
240
|
]
|
241
241
|
|
@@ -246,11 +246,11 @@ describe WorkOS::DirectorySync do
|
|
246
246
|
|
247
247
|
VCR.use_cassette 'directory_sync/list_groups/with_before' do
|
248
248
|
groups = described_class.list_groups(
|
249
|
-
before: '
|
250
|
-
directory: '
|
249
|
+
before: 'directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG',
|
250
|
+
directory: 'directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
|
251
251
|
)
|
252
252
|
|
253
|
-
expect(groups.data.size).to eq(
|
253
|
+
expect(groups.data.size).to eq(10)
|
254
254
|
end
|
255
255
|
end
|
256
256
|
end
|
@@ -258,8 +258,8 @@ describe WorkOS::DirectorySync do
|
|
258
258
|
context 'with the after option' do
|
259
259
|
it 'forms the proper request to the API' do
|
260
260
|
request_args = [
|
261
|
-
'/directory_groups?after=
|
262
|
-
'directory=
|
261
|
+
'/directory_groups?after=directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG&' \
|
262
|
+
'directory=directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
|
263
263
|
'Content-Type' => 'application/json'
|
264
264
|
]
|
265
265
|
|
@@ -270,11 +270,11 @@ describe WorkOS::DirectorySync do
|
|
270
270
|
|
271
271
|
VCR.use_cassette 'directory_sync/list_groups/with_after' do
|
272
272
|
groups = described_class.list_groups(
|
273
|
-
after: '
|
274
|
-
directory: '
|
273
|
+
after: 'directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG',
|
274
|
+
directory: 'directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
|
275
275
|
)
|
276
276
|
|
277
|
-
expect(groups.data.size).to eq(
|
277
|
+
expect(groups.data.size).to eq(9)
|
278
278
|
end
|
279
279
|
end
|
280
280
|
end
|
@@ -283,7 +283,7 @@ describe WorkOS::DirectorySync do
|
|
283
283
|
it 'forms the proper request to the API' do
|
284
284
|
request_args = [
|
285
285
|
'/directory_groups?limit=2&' \
|
286
|
-
'directory=
|
286
|
+
'directory=directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
|
287
287
|
'Content-Type' => 'application/json'
|
288
288
|
]
|
289
289
|
|
@@ -295,7 +295,7 @@ describe WorkOS::DirectorySync do
|
|
295
295
|
VCR.use_cassette 'directory_sync/list_groups/with_limit' do
|
296
296
|
groups = described_class.list_groups(
|
297
297
|
limit: 2,
|
298
|
-
directory: '
|
298
|
+
directory: 'directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
|
299
299
|
)
|
300
300
|
|
301
301
|
expect(groups.data.size).to eq(2)
|
@@ -438,11 +438,15 @@ describe WorkOS::DirectorySync do
|
|
438
438
|
it 'returns a group' do
|
439
439
|
VCR.use_cassette('directory_sync/get_group') do
|
440
440
|
group = WorkOS::DirectorySync.get_group(
|
441
|
-
'
|
441
|
+
'directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG',
|
442
442
|
)
|
443
443
|
|
444
|
-
expect(group['
|
445
|
-
expect(group
|
444
|
+
expect(group['directory_id']).to eq('directory_01G2Z8ADK5NPMVTWF48MVVE4HT')
|
445
|
+
expect(group['idp_id']).to eq('01jlao4614two3d')
|
446
|
+
expect(group['name']).to eq('Sales')
|
447
|
+
expect(group.name).to eq('Sales')
|
448
|
+
expect(group['created_at']).to eq('2022-05-13T17:45:31.732Z')
|
449
|
+
expect(group['updated_at']).to eq('2022-06-07T17:45:35.739Z')
|
446
450
|
end
|
447
451
|
end
|
448
452
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# typed: false
|
3
|
+
|
4
|
+
describe WorkOS::DirectoryUser do
|
5
|
+
# rubocop:disable Layout/LineLength
|
6
|
+
describe '.get_primary_email' do
|
7
|
+
context 'with one primary email' do
|
8
|
+
it 'returns the primary email' do
|
9
|
+
user = WorkOS::DirectoryUser.new('{"object":"directory_user","id":"directory_user_01FAZYNPC8M0HRYTKFP2GNX852","directory_id":"directory_01FAZYMST676QMTFN1DDJZZX87","idp_id":"6092c280a3f1e19ef6d8cef8","username":"logan@workos.com","emails":[{"primary":true,"value":"logan@workos.com"}, {"primary":false,"value":"logan@gmail.com"}],"first_name":"Logan","last_name":"Gingerich","state":"active","raw_attributes":{},"custom_attributes":{},"groups":[]}')
|
10
|
+
expect(user.primary_email).to eq('logan@workos.com')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'with multiple primary emails' do
|
15
|
+
it 'returns the first email marked as primary' do
|
16
|
+
user = WorkOS::DirectoryUser.new('{"object":"directory_user","id":"directory_user_01FAZYNPC8M0HRYTKFP2GNX852","directory_id":"directory_01FAZYMST676QMTFN1DDJZZX87","idp_id":"6092c280a3f1e19ef6d8cef8","username":"logan@workos.com","emails":[{"primary":true,"value":"logan@workos.com"}, {"primary":true,"value":"logan@gmail.com"}],"first_name":"Logan","last_name":"Gingerich","state":"active","raw_attributes":{},"custom_attributes":{},"groups":[]}')
|
17
|
+
expect(user.primary_email).to eq('logan@workos.com')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'with no primary emails' do
|
22
|
+
it 'returns nil' do
|
23
|
+
user = WorkOS::DirectoryUser.new('{"object":"directory_user","id":"directory_user_01FAZYNPC8M0HRYTKFP2GNX852","directory_id":"directory_01FAZYMST676QMTFN1DDJZZX87","idp_id":"6092c280a3f1e19ef6d8cef8","username":"logan@workos.com","emails":[{"primary":false,"value":"logan@gmail.com"}],"first_name":"Logan","last_name":"Gingerich","state":"active","raw_attributes":{},"custom_attributes":{},"groups":[]}')
|
24
|
+
expect(user.primary_email).to eq(nil)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'with an empty email array' do
|
29
|
+
it 'returns nil' do
|
30
|
+
user = WorkOS::DirectoryUser.new('{"object":"directory_user","id":"directory_user_01FAZYNPC8M0HRYTKFP2GNX852","directory_id":"directory_01FAZYMST676QMTFN1DDJZZX87","idp_id":"6092c280a3f1e19ef6d8cef8","username":"logan@workos.com","emails":[],"first_name":"Logan","last_name":"Gingerich","state":"active","raw_attributes":{},"custom_attributes":{},"groups":[]}')
|
31
|
+
expect(user.primary_email).to eq(nil)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
# rubocop:enable Layout/LineLength
|
36
|
+
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://api.workos.com/directory_groups/
|
5
|
+
uri: https://api.workos.com/directory_groups/directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -14,7 +14,7 @@ http_interactions:
|
|
14
14
|
Accept:
|
15
15
|
- "*/*"
|
16
16
|
User-Agent:
|
17
|
-
- WorkOS; ruby/
|
17
|
+
- WorkOS; ruby/3.0.2; x86_64-darwin19; v2.1.1
|
18
18
|
Authorization:
|
19
19
|
- Bearer <API_KEY>
|
20
20
|
response:
|
@@ -22,41 +22,61 @@ http_interactions:
|
|
22
22
|
code: 200
|
23
23
|
message: OK
|
24
24
|
headers:
|
25
|
-
|
26
|
-
-
|
25
|
+
Date:
|
26
|
+
- Tue, 07 Jun 2022 22:28:37 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
27
31
|
Connection:
|
28
32
|
- keep-alive
|
29
|
-
Vary:
|
30
|
-
- Origin, Accept-Encoding
|
31
33
|
Access-Control-Allow-Credentials:
|
32
34
|
- 'true'
|
33
|
-
|
34
|
-
- '
|
35
|
-
|
36
|
-
|
35
|
+
Content-Security-Policy:
|
36
|
+
- 'default-src ''self'';base-uri ''self'';block-all-mixed-content;font-src ''self''
|
37
|
+
https: data:;frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src
|
38
|
+
''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
|
39
|
+
Etag:
|
40
|
+
- W/"244-4TugYfq6OLpdb2GYu9NN0Z83S0g"
|
41
|
+
Expect-Ct:
|
42
|
+
- max-age=0
|
43
|
+
Referrer-Policy:
|
44
|
+
- no-referrer
|
37
45
|
Strict-Transport-Security:
|
38
46
|
- max-age=15552000; includeSubDomains
|
39
|
-
|
40
|
-
-
|
47
|
+
Vary:
|
48
|
+
- Origin, Accept-Encoding
|
49
|
+
Via:
|
50
|
+
- 1.1 spaces-router (664a92218d61)
|
41
51
|
X-Content-Type-Options:
|
42
52
|
- nosniff
|
43
|
-
X-
|
44
|
-
-
|
53
|
+
X-Dns-Prefetch-Control:
|
54
|
+
- 'off'
|
55
|
+
X-Download-Options:
|
56
|
+
- noopen
|
57
|
+
X-Frame-Options:
|
58
|
+
- SAMEORIGIN
|
59
|
+
X-Permitted-Cross-Domain-Policies:
|
60
|
+
- none
|
45
61
|
X-Request-Id:
|
46
|
-
-
|
47
|
-
|
48
|
-
-
|
49
|
-
|
50
|
-
-
|
51
|
-
|
52
|
-
-
|
53
|
-
|
54
|
-
-
|
55
|
-
|
56
|
-
-
|
62
|
+
- 4a7bfd77-da6c-b1ae-bc39-35a1c175ecf2
|
63
|
+
X-Xss-Protection:
|
64
|
+
- '0'
|
65
|
+
Cf-Cache-Status:
|
66
|
+
- DYNAMIC
|
67
|
+
Report-To:
|
68
|
+
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=9nQ%2FpfKZE%2BT1W4WrbQGusRS%2FxZHEG7sB0Ps3PUXt4lmPSmC%2FZHLV6KW90D74Y9VQ0QT7q3OIF47yVIwX5fwPKOHMwcOYQv0eyKUrFYxKkNf6QALpJE7%2BVNSUBiEmv3cZ1zOXUFCiuMl2MYygsw%3D%3D"}],"group":"cf-nel","max_age":604800}'
|
69
|
+
Nel:
|
70
|
+
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
71
|
+
Server:
|
72
|
+
- cloudflare
|
73
|
+
Cf-Ray:
|
74
|
+
- 717cd26458fd671d-DFW
|
75
|
+
Alt-Svc:
|
76
|
+
- h3=":443"; ma=86400, h3-29=":443"; ma=86400
|
57
77
|
body:
|
58
|
-
encoding:
|
59
|
-
string: '{"id":"
|
78
|
+
encoding: ASCII-8BIT
|
79
|
+
string: '{"object":"directory_group","id":"directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG","idp_id":"01jlao4614two3d","directory_id":"directory_01G2Z8ADK5NPMVTWF48MVVE4HT","name":"Sales","created_at":"2022-05-13T17:45:31.732Z","updated_at":"2022-06-07T17:45:35.739Z","raw_attributes":{"id":"01jlao4614two3d","etag":"\"DaDAXuEwpvygu_Ul-89tlT4iVJBEvO3LZpQ0lrbYRrc/uLYJ0Hrx1gXXVg9z-zGLBZET2Wo\"","kind":"admin#directory#group","name":"Sales","email":"sales@foo-corp.com","description":"","adminCreated":true,"directMembersCount":"1","nonEditableAliases":["sales@foo-corp.com.test-google-a.com"]}}'
|
60
80
|
http_version:
|
61
|
-
recorded_at:
|
81
|
+
recorded_at: Tue, 07 Jun 2022 22:28:37 GMT
|
62
82
|
recorded_with: VCR 5.0.0
|