workos 1.2.1 → 1.5.1
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 +3 -3
- data/lib/workos/client.rb +3 -6
- data/lib/workos/connection.rb +9 -1
- data/lib/workos/directory.rb +12 -1
- data/lib/workos/directory_user.rb +9 -1
- data/lib/workos/errors.rb +13 -2
- data/lib/workos/organization.rb +7 -1
- data/lib/workos/sso.rb +6 -0
- data/lib/workos/types/connection_struct.rb +2 -0
- data/lib/workos/types/directory_struct.rb +3 -0
- data/lib/workos/types/directory_user_struct.rb +2 -0
- data/lib/workos/types/organization_struct.rb +2 -0
- data/lib/workos/types/provider_enum.rb +1 -0
- data/lib/workos/version.rb +1 -1
- data/spec/lib/workos/audit_trail_spec.rb +2 -0
- data/spec/lib/workos/directory_sync_spec.rb +21 -19
- data/spec/lib/workos/organizations_spec.rb +13 -11
- data/spec/lib/workos/passwordless_spec.rb +2 -0
- data/spec/lib/workos/portal_spec.rb +2 -0
- data/spec/lib/workos/sso_spec.rb +21 -19
- data/spec/spec_helper.rb +3 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/get_user.yml +40 -16
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_after.yml +12 -9
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_before.yml +8 -5
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_domain.yml +8 -8
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_limit.yml +9 -9
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_no_options.yml +23 -10
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_search.yml +8 -8
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_after.yml +128 -28
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_before.yml +31 -18
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_directory.yml +136 -35
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_group.yml +128 -18
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_limit.yml +131 -17
- data/spec/support/fixtures/vcr_cassettes/organization/create.yml +28 -16
- data/spec/support/fixtures/vcr_cassettes/organization/get.yml +27 -16
- data/spec/support/fixtures/vcr_cassettes/organization/list.yml +29 -14
- data/spec/support/fixtures/vcr_cassettes/organization/update.yml +27 -16
- data/spec/support/fixtures/vcr_cassettes/sso/get_connection_with_valid_id.yml +28 -16
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_after.yml +25 -15
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_before.yml +28 -15
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_connection_type.yml +31 -14
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_domain.yml +27 -13
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_limit.yml +24 -15
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_no_options.yml +30 -14
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_organization_id.yml +28 -14
- data/spec/support/shared_examples/client_spec.rb +16 -0
- metadata +5 -3
@@ -2,18 +2,20 @@
|
|
2
2
|
# typed: false
|
3
3
|
|
4
4
|
describe WorkOS::Organizations do
|
5
|
+
it_behaves_like 'client'
|
6
|
+
|
5
7
|
describe '.create_organization' do
|
6
8
|
context 'with valid payload' do
|
7
9
|
it 'creates an organization' do
|
8
10
|
VCR.use_cassette 'organization/create' do
|
9
11
|
organization = described_class.create_organization(
|
10
|
-
domains: ['example.
|
12
|
+
domains: ['example.io'],
|
11
13
|
name: 'Test Organization',
|
12
14
|
)
|
13
15
|
|
14
|
-
expect(organization.id).to eq('
|
16
|
+
expect(organization.id).to eq('org_01FCPEJXEZR4DSBA625YMGQT9N')
|
15
17
|
expect(organization.name).to eq('Test Organization')
|
16
|
-
expect(organization.domains.first[:domain]).to eq('example.
|
18
|
+
expect(organization.domains.first[:domain]).to eq('example.io')
|
17
19
|
end
|
18
20
|
end
|
19
21
|
end
|
@@ -46,7 +48,7 @@ describe WorkOS::Organizations do
|
|
46
48
|
VCR.use_cassette 'organization/list' do
|
47
49
|
organizations = described_class.list_organizations
|
48
50
|
|
49
|
-
expect(organizations.data.size).to eq(
|
51
|
+
expect(organizations.data.size).to eq(6)
|
50
52
|
expect(organizations.list_metadata).to eq(expected_metadata)
|
51
53
|
end
|
52
54
|
end
|
@@ -69,7 +71,7 @@ describe WorkOS::Organizations do
|
|
69
71
|
before: 'before-id',
|
70
72
|
)
|
71
73
|
|
72
|
-
expect(organizations.data.size).to eq(
|
74
|
+
expect(organizations.data.size).to eq(6)
|
73
75
|
end
|
74
76
|
end
|
75
77
|
end
|
@@ -89,7 +91,7 @@ describe WorkOS::Organizations do
|
|
89
91
|
VCR.use_cassette 'organization/list', match_requests_on: [:path] do
|
90
92
|
organizations = described_class.list_organizations(after: 'after-id')
|
91
93
|
|
92
|
-
expect(organizations.data.size).to eq(
|
94
|
+
expect(organizations.data.size).to eq(6)
|
93
95
|
end
|
94
96
|
end
|
95
97
|
end
|
@@ -109,7 +111,7 @@ describe WorkOS::Organizations do
|
|
109
111
|
VCR.use_cassette 'organization/list', match_requests_on: [:path] do
|
110
112
|
organizations = described_class.list_organizations(limit: 10)
|
111
113
|
|
112
|
-
expect(organizations.data.size).to eq(
|
114
|
+
expect(organizations.data.size).to eq(6)
|
113
115
|
end
|
114
116
|
end
|
115
117
|
end
|
@@ -120,10 +122,10 @@ describe WorkOS::Organizations do
|
|
120
122
|
it 'gets the organization details' do
|
121
123
|
VCR.use_cassette('organization/get') do
|
122
124
|
organization = described_class.get_organization(
|
123
|
-
id: '
|
125
|
+
id: 'org_01F9293WD2PDEEV4Y625XPZVG7',
|
124
126
|
)
|
125
127
|
|
126
|
-
expect(organization.id).to eq('
|
128
|
+
expect(organization.id).to eq('org_01F9293WD2PDEEV4Y625XPZVG7')
|
127
129
|
expect(organization.name).to eq('Foo Corp')
|
128
130
|
expect(organization.domains.first[:domain]).to eq('foo-corp.com')
|
129
131
|
end
|
@@ -149,12 +151,12 @@ describe WorkOS::Organizations do
|
|
149
151
|
it 'creates an organization' do
|
150
152
|
VCR.use_cassette 'organization/update' do
|
151
153
|
organization = described_class.update_organization(
|
152
|
-
organization: '
|
154
|
+
organization: 'org_01F6Q6TFP7RD2PF6J03ANNWDKV',
|
153
155
|
domains: ['example.me'],
|
154
156
|
name: 'Test Organization',
|
155
157
|
)
|
156
158
|
|
157
|
-
expect(organization.id).to eq('
|
159
|
+
expect(organization.id).to eq('org_01F6Q6TFP7RD2PF6J03ANNWDKV')
|
158
160
|
expect(organization.name).to eq('Test Organization')
|
159
161
|
expect(organization.domains.first[:domain]).to eq('example.me')
|
160
162
|
end
|
data/spec/lib/workos/sso_spec.rb
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
require 'securerandom'
|
5
5
|
|
6
6
|
describe WorkOS::SSO do
|
7
|
+
it_behaves_like 'client'
|
8
|
+
|
7
9
|
describe '.authorization_url' do
|
8
10
|
context 'with a domain' do
|
9
11
|
let(:args) do
|
@@ -143,7 +145,7 @@ describe WorkOS::SSO do
|
|
143
145
|
described_class.authorization_url(**args)
|
144
146
|
end.to raise_error(
|
145
147
|
ArgumentError,
|
146
|
-
'Okta is not a valid value. `provider` must be in ["GoogleOAuth"]',
|
148
|
+
'Okta is not a valid value. `provider` must be in ["GoogleOAuth", "MicrosoftOAuth"]',
|
147
149
|
)
|
148
150
|
end
|
149
151
|
end
|
@@ -252,7 +254,7 @@ describe WorkOS::SSO do
|
|
252
254
|
to_return(
|
253
255
|
headers: { 'X-Request-ID' => 'request-id' },
|
254
256
|
status: 422,
|
255
|
-
body: { "
|
257
|
+
body: { "error": 'some error', "error_description": 'some error description' }.to_json,
|
256
258
|
)
|
257
259
|
end
|
258
260
|
|
@@ -261,7 +263,7 @@ describe WorkOS::SSO do
|
|
261
263
|
described_class.profile_and_token(**args)
|
262
264
|
end.to raise_error(
|
263
265
|
WorkOS::APIError,
|
264
|
-
'some error
|
266
|
+
'error: some error, error_description: some error description - request ID: request-id',
|
265
267
|
)
|
266
268
|
end
|
267
269
|
end
|
@@ -271,11 +273,11 @@ describe WorkOS::SSO do
|
|
271
273
|
stub_request(:post, 'https://api.workos.com/sso/token').
|
272
274
|
with(body: request_body).
|
273
275
|
to_return(
|
274
|
-
status:
|
276
|
+
status: 400,
|
275
277
|
headers: { 'X-Request-ID' => 'request-id' },
|
276
278
|
body: {
|
277
|
-
|
278
|
-
|
279
|
+
"error": 'invalid_grant',
|
280
|
+
"error_description": "The code '01DVX3C5Z367SFHR8QNDMK7V24' has expired or is invalid.",
|
279
281
|
}.to_json,
|
280
282
|
)
|
281
283
|
end
|
@@ -285,7 +287,7 @@ describe WorkOS::SSO do
|
|
285
287
|
described_class.profile_and_token(**args)
|
286
288
|
end.to raise_error(
|
287
289
|
WorkOS::APIError,
|
288
|
-
"The code '01DVX3C5Z367SFHR8QNDMK7V24'" \
|
290
|
+
"error: invalid_grant, error_description: The code '01DVX3C5Z367SFHR8QNDMK7V24'" \
|
289
291
|
' has expired or is invalid. - request ID: request-id',
|
290
292
|
)
|
291
293
|
end
|
@@ -303,7 +305,7 @@ describe WorkOS::SSO do
|
|
303
305
|
VCR.use_cassette 'sso/list_connections/with_no_options' do
|
304
306
|
connections = described_class.list_connections
|
305
307
|
|
306
|
-
expect(connections.data.size).to eq(
|
308
|
+
expect(connections.data.size).to eq(6)
|
307
309
|
expect(connections.list_metadata).to eq(expected_metadata)
|
308
310
|
end
|
309
311
|
end
|
@@ -326,7 +328,7 @@ describe WorkOS::SSO do
|
|
326
328
|
connection_type: 'OktaSAML',
|
327
329
|
)
|
328
330
|
|
329
|
-
expect(connections.data.size).to eq(
|
331
|
+
expect(connections.data.size).to eq(10)
|
330
332
|
expect(connections.data.first.connection_type).to eq('OktaSAML')
|
331
333
|
end
|
332
334
|
end
|
@@ -357,7 +359,7 @@ describe WorkOS::SSO do
|
|
357
359
|
context 'with organization_id option' do
|
358
360
|
it 'forms the proper request to the API' do
|
359
361
|
request_args = [
|
360
|
-
'/connections?organization_id=
|
362
|
+
'/connections?organization_id=org_01F9293WD2PDEEV4Y625XPZVG7',
|
361
363
|
'Content-Type' => 'application/json'
|
362
364
|
]
|
363
365
|
|
@@ -368,12 +370,12 @@ describe WorkOS::SSO do
|
|
368
370
|
|
369
371
|
VCR.use_cassette 'sso/list_connections/with_organization_id' do
|
370
372
|
connections = described_class.list_connections(
|
371
|
-
organization_id: '
|
373
|
+
organization_id: 'org_01F9293WD2PDEEV4Y625XPZVG7',
|
372
374
|
)
|
373
375
|
|
374
376
|
expect(connections.data.size).to eq(1)
|
375
377
|
expect(connections.data.first.organization_id).to eq(
|
376
|
-
'
|
378
|
+
'org_01F9293WD2PDEEV4Y625XPZVG7',
|
377
379
|
)
|
378
380
|
end
|
379
381
|
end
|
@@ -404,7 +406,7 @@ describe WorkOS::SSO do
|
|
404
406
|
context 'with before option' do
|
405
407
|
it 'forms the proper request to the API' do
|
406
408
|
request_args = [
|
407
|
-
'/connections?before=
|
409
|
+
'/connections?before=conn_01FA3WGCWPCCY1V2FGES2FDNP7',
|
408
410
|
'Content-Type' => 'application/json'
|
409
411
|
]
|
410
412
|
|
@@ -415,7 +417,7 @@ describe WorkOS::SSO do
|
|
415
417
|
|
416
418
|
VCR.use_cassette 'sso/list_connections/with_before' do
|
417
419
|
connections = described_class.list_connections(
|
418
|
-
before: '
|
420
|
+
before: 'conn_01FA3WGCWPCCY1V2FGES2FDNP7',
|
419
421
|
)
|
420
422
|
|
421
423
|
expect(connections.data.size).to eq(3)
|
@@ -426,7 +428,7 @@ describe WorkOS::SSO do
|
|
426
428
|
context 'with after option' do
|
427
429
|
it 'forms the proper request to the API' do
|
428
430
|
request_args = [
|
429
|
-
'/connections?after=
|
431
|
+
'/connections?after=conn_01FA3WGCWPCCY1V2FGES2FDNP7',
|
430
432
|
'Content-Type' => 'application/json'
|
431
433
|
]
|
432
434
|
|
@@ -437,10 +439,10 @@ describe WorkOS::SSO do
|
|
437
439
|
|
438
440
|
VCR.use_cassette 'sso/list_connections/with_after' do
|
439
441
|
connections = described_class.list_connections(
|
440
|
-
after: '
|
442
|
+
after: 'conn_01FA3WGCWPCCY1V2FGES2FDNP7',
|
441
443
|
)
|
442
444
|
|
443
|
-
expect(connections.data.size).to eq(
|
445
|
+
expect(connections.data.size).to eq(2)
|
444
446
|
end
|
445
447
|
end
|
446
448
|
end
|
@@ -451,10 +453,10 @@ describe WorkOS::SSO do
|
|
451
453
|
it 'gets the connection details' do
|
452
454
|
VCR.use_cassette('sso/get_connection_with_valid_id') do
|
453
455
|
connection = WorkOS::SSO.get_connection(
|
454
|
-
id: '
|
456
|
+
id: 'conn_01FA3WGCWPCCY1V2FGES2FDNP7',
|
455
457
|
)
|
456
458
|
|
457
|
-
expect(connection.id).to eq('
|
459
|
+
expect(connection.id).to eq('conn_01FA3WGCWPCCY1V2FGES2FDNP7')
|
458
460
|
expect(connection.connection_type).to eq('OktaSAML')
|
459
461
|
expect(connection.name).to eq('Foo Corp')
|
460
462
|
expect(connection.domains.first[:domain]).to eq('foo-corp.com')
|
data/spec/spec_helper.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://api.workos.com/directory_users/
|
5
|
+
uri: https://api.workos.com/directory_users/directory_user_01FAZYNPC8M0HRYTKFP2GNX852
|
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.1; x86_64-darwin19; v1.4.0
|
18
18
|
Authorization:
|
19
19
|
- Bearer <API_KEY>
|
20
20
|
response:
|
@@ -22,16 +22,26 @@ http_interactions:
|
|
22
22
|
code: 200
|
23
23
|
message: OK
|
24
24
|
headers:
|
25
|
-
|
26
|
-
-
|
25
|
+
Date:
|
26
|
+
- Mon, 09 Aug 2021 17:36:13 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
27
31
|
Connection:
|
28
32
|
- keep-alive
|
29
33
|
Vary:
|
30
34
|
- Origin, Accept-Encoding
|
31
35
|
Access-Control-Allow-Credentials:
|
32
36
|
- 'true'
|
37
|
+
Content-Security-Policy:
|
38
|
+
- 'default-src ''self'';base-uri ''self'';block-all-mixed-content;font-src ''self''
|
39
|
+
https: data:;frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src
|
40
|
+
''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
|
33
41
|
X-Dns-Prefetch-Control:
|
34
42
|
- 'off'
|
43
|
+
Expect-Ct:
|
44
|
+
- max-age=0
|
35
45
|
X-Frame-Options:
|
36
46
|
- SAMEORIGIN
|
37
47
|
Strict-Transport-Security:
|
@@ -40,23 +50,37 @@ http_interactions:
|
|
40
50
|
- noopen
|
41
51
|
X-Content-Type-Options:
|
42
52
|
- nosniff
|
53
|
+
X-Permitted-Cross-Domain-Policies:
|
54
|
+
- none
|
55
|
+
Referrer-Policy:
|
56
|
+
- no-referrer
|
43
57
|
X-Xss-Protection:
|
44
|
-
-
|
58
|
+
- '0'
|
45
59
|
X-Request-Id:
|
46
|
-
-
|
47
|
-
Content-Type:
|
48
|
-
- application/json; charset=utf-8
|
49
|
-
Content-Length:
|
50
|
-
- '368'
|
60
|
+
- 59862449-73e5-4dfd-93ab-3764b1917801
|
51
61
|
Etag:
|
52
|
-
- W/"
|
53
|
-
Date:
|
54
|
-
- Thu, 30 Apr 2020 04:43:14 GMT
|
62
|
+
- W/"4c3-Ikxt2N0fUuSxCjv+RdYvW8W9Xwo"
|
55
63
|
Via:
|
56
64
|
- 1.1 vegur
|
65
|
+
Cf-Cache-Status:
|
66
|
+
- DYNAMIC
|
67
|
+
Report-To:
|
68
|
+
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=m6%2FJ3BJ75VMwSOtfDQXjt%2FoL29FI%2Bv5VswhZzg6LVkOQi7nyI19Sks%2FkDGCDrSQ%2FMtyU6DI4OFWR9RB1I04IGdhehsY2oPGugIj%2BhHMiJdQEcE6vPAsuaF1HyVnXGvMgRYdurEW1Jr7rSYBWeA%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
|
+
- 67c2bed0ebe6c7e6-DFW
|
75
|
+
Alt-Svc:
|
76
|
+
- h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400, h3=":443";
|
77
|
+
ma=86400
|
57
78
|
body:
|
58
|
-
encoding:
|
59
|
-
string: '{"
|
79
|
+
encoding: ASCII-8BIT
|
80
|
+
string: '{"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"}],"first_name":"Logan","last_name":"Gingerich","state":"active","raw_attributes":{"id":"6092c280a3f1e19ef6d8cef8","name":"Logan
|
81
|
+
Paul Gingerich","teams":["5f696c8e9a63a60e965aaca8"],"spokeId":null,"lastName":"Gingerich","createdAt":"2021-05-05T16:06:24+0000","firstName":"Logan","updatedAt":"2021-07-19T19:17:52+0000","workEmail":"logan@workos.com","department":"Infra","departmentId":"5f27ada9a5e9bc0001a0ae4a"},"custom_attributes":{"department":"Infra"},"groups":[{"object":"directory_group","id":"directory_group_01FAZYNN1NZWMBRAXXDSTB5NFH","directory_id":"directory_01FAZYMST676QMTFN1DDJZZX87","name":"Department
|
82
|
+
- Infra","raw_attributes":{"id":"5f27ada9a5e9bc0001a0ae4a","name":"Infra","parent":"5f27ada9a5e9bc0001a0ae48"}},{"object":"directory_group","id":"directory_group_01FAZYNNQ4HQ6EBF29MPTH7VKB","directory_id":"directory_01FAZYMST676QMTFN1DDJZZX87","name":"Team
|
83
|
+
- Platform","raw_attributes":{"id":"5f696c8e9a63a60e965aaca8","name":"Platform","parent":null}}]}'
|
60
84
|
http_version:
|
61
|
-
recorded_at:
|
85
|
+
recorded_at: Mon, 09 Aug 2021 17:36:13 GMT
|
62
86
|
recorded_with: VCR 5.0.0
|
@@ -14,7 +14,7 @@ http_interactions:
|
|
14
14
|
Accept:
|
15
15
|
- "*/*"
|
16
16
|
User-Agent:
|
17
|
-
- WorkOS; ruby/
|
17
|
+
- WorkOS; ruby/3.0.1; x86_64-darwin19; v1.2.1
|
18
18
|
Authorization:
|
19
19
|
- Bearer <API_KEY>
|
20
20
|
response:
|
@@ -53,20 +53,23 @@ http_interactions:
|
|
53
53
|
X-Xss-Protection:
|
54
54
|
- '0'
|
55
55
|
X-Request-Id:
|
56
|
-
-
|
56
|
+
- 167e0fa2-cee2-4834-a0aa-4f68fd0a3796
|
57
57
|
Content-Type:
|
58
58
|
- application/json; charset=utf-8
|
59
|
+
Content-Length:
|
60
|
+
- '784'
|
59
61
|
Etag:
|
60
|
-
- W/"
|
62
|
+
- W/"310-fBrsCTIA95j4JLo4UR8X2zBThYQ"
|
61
63
|
Date:
|
62
|
-
-
|
63
|
-
Transfer-Encoding:
|
64
|
-
- chunked
|
64
|
+
- Mon, 07 Jun 2021 17:55:30 GMT
|
65
65
|
Via:
|
66
66
|
- 1.1 vegur
|
67
67
|
body:
|
68
|
-
encoding:
|
69
|
-
string: '{"object":"list","listMetadata":{"before":
|
68
|
+
encoding: UTF-8
|
69
|
+
string: '{"object":"list","listMetadata":{"before":null,"after":null},"data":[{"object":"directory","id":"directory_01F7796W20KW0CXEQQEYENT0ZC","organization_id":"org_01EZDF20TZEJXKPSX2BJRN6TV6","name":"Bamboo
|
70
|
+
Test","external_key":"rPzV4pdpbaUiKsc6","type":"bamboohr","state":"unlinked","domain":"foo-corp.com", "created_at":"2021-07-02T19:15:39.556Z","updated_at":"2021-07-02T19:31:28.499Z"},{"object":"directory","id":"directory_01F5ZY7XVQZ3DRYEZTH1EPA8BS","organization_id":"org_01EZDF20TZEJXKPSX2BJRN6TV6","name":"Foo
|
71
|
+
Corp","external_key":"qV4eyK99QGUaYYa0","type":"okta scim v2.0","state":"linked","domain":"foo-corp.com", "created_at":"2021-07-02T19:15:39.556Z","updated_at":"2021-07-02T19:31:28.499Z"},{"object":"directory","id":"directory_01F5XHH1QHX6C2F0Z6WG9YPGCJ","organization_id":"org_01F29YJ068E52HGEB8ZQGC9MJG","name":"Example
|
72
|
+
Azure SCIM","external_key":"YDKJvbWHKKg66cSk","type":"azure scim v2.0","state":"linked","domain":"example.com", "created_at":"2021-07-02T19:15:39.556Z","updated_at":"2021-07-02T19:31:28.499Z"}]}'
|
70
73
|
http_version:
|
71
|
-
recorded_at:
|
74
|
+
recorded_at: Mon, 07 Jun 2021 17:55:30 GMT
|
72
75
|
recorded_with: VCR 5.0.0
|
@@ -14,7 +14,7 @@ http_interactions:
|
|
14
14
|
Accept:
|
15
15
|
- "*/*"
|
16
16
|
User-Agent:
|
17
|
-
- WorkOS; ruby/
|
17
|
+
- WorkOS; ruby/3.0.1; x86_64-darwin19; v1.2.1
|
18
18
|
Authorization:
|
19
19
|
- Bearer <API_KEY>
|
20
20
|
response:
|
@@ -53,7 +53,7 @@ http_interactions:
|
|
53
53
|
X-Xss-Protection:
|
54
54
|
- '0'
|
55
55
|
X-Request-Id:
|
56
|
-
-
|
56
|
+
- d5e27591-7a56-468c-bffe-3a035f3bf26c
|
57
57
|
Content-Type:
|
58
58
|
- application/json; charset=utf-8
|
59
59
|
Content-Length:
|
@@ -61,12 +61,15 @@ http_interactions:
|
|
61
61
|
Etag:
|
62
62
|
- W/"47-5KOnfOsRy36pnaPjBxvaf6LRiGc"
|
63
63
|
Date:
|
64
|
-
-
|
64
|
+
- Mon, 07 Jun 2021 17:55:30 GMT
|
65
65
|
Via:
|
66
66
|
- 1.1 vegur
|
67
67
|
body:
|
68
68
|
encoding: UTF-8
|
69
|
-
string: '{"object":"list","listMetadata":{"before":
|
69
|
+
string: '{"object":"list","listMetadata":{"before":null,"after":null},"data":[{"object":"directory","id":"directory_01F7796W20KW0CXEQQEYENT0ZC","organization_id":"org_01EZDF20TZEJXKPSX2BJRN6TV6","name":"Bamboo
|
70
|
+
Test","external_key":"rPzV4pdpbaUiKsc6","type":"bamboohr","state":"unlinked","domain":"foo-corp.com", "created_at":"2021-07-02T19:15:39.556Z","updated_at":"2021-07-02T19:31:28.499Z"},{"object":"directory","id":"directory_01F5ZY7XVQZ3DRYEZTH1EPA8BS","organization_id":"org_01EZDF20TZEJXKPSX2BJRN6TV6","name":"Foo
|
71
|
+
Corp","external_key":"qV4eyK99QGUaYYa0","type":"okta scim v2.0","state":"linked","domain":"foo-corp.com", "created_at":"2021-07-02T19:15:39.556Z","updated_at":"2021-07-02T19:31:28.499Z"},{"object":"directory","id":"directory_01F5XHH1QHX6C2F0Z6WG9YPGCJ","organization_id":"org_01F29YJ068E52HGEB8ZQGC9MJG","name":"Example
|
72
|
+
Azure SCIM","external_key":"YDKJvbWHKKg66cSk","type":"azure scim v2.0","state":"linked","domain":"example.com", "created_at":"2021-07-02T19:15:39.556Z","updated_at":"2021-07-02T19:31:28.499Z"}]}'
|
70
73
|
http_version:
|
71
|
-
recorded_at:
|
74
|
+
recorded_at: Mon, 07 Jun 2021 17:55:30 GMT
|
72
75
|
recorded_with: VCR 5.0.0
|
@@ -14,7 +14,7 @@ http_interactions:
|
|
14
14
|
Accept:
|
15
15
|
- "*/*"
|
16
16
|
User-Agent:
|
17
|
-
- WorkOS; ruby/
|
17
|
+
- WorkOS; ruby/3.0.1; x86_64-darwin19; v1.2.1
|
18
18
|
Authorization:
|
19
19
|
- Bearer <API_KEY>
|
20
20
|
response:
|
@@ -53,21 +53,21 @@ http_interactions:
|
|
53
53
|
X-Xss-Protection:
|
54
54
|
- '0'
|
55
55
|
X-Request-Id:
|
56
|
-
-
|
56
|
+
- d3cd212f-5dc1-4e08-ab1f-69e33bebd9ca
|
57
57
|
Content-Type:
|
58
58
|
- application/json; charset=utf-8
|
59
59
|
Content-Length:
|
60
|
-
- '
|
60
|
+
- '539'
|
61
61
|
Etag:
|
62
|
-
- W/"
|
62
|
+
- W/"21b-d3KisYEu0vvI9FJFreAktGIgT+c"
|
63
63
|
Date:
|
64
|
-
-
|
64
|
+
- Mon, 07 Jun 2021 17:55:29 GMT
|
65
65
|
Via:
|
66
66
|
- 1.1 vegur
|
67
67
|
body:
|
68
68
|
encoding: UTF-8
|
69
|
-
string: '{"object":"list","listMetadata":{"before":null,"after":null},"data":[{"object":"directory","id":"
|
70
|
-
Corp","external_key":"
|
69
|
+
string: '{"object":"list","listMetadata":{"before":null,"after":null},"data":[{"object":"directory","id":"directory_01F5ZY7XVQZ3DRYEZTH1EPA8BS","organization_id":"org_01EZDF20TZEJXKPSX2BJRN6TV6","name":"Foo
|
70
|
+
Corp","external_key":"qV4eyK99QGUaYYa0","type":"okta scim v2.0","state":"linked","domain":"foo-corp.com", "created_at":"2021-07-02T19:15:39.556Z","updated_at":"2021-07-02T19:31:28.499Z"}]}'
|
71
71
|
http_version:
|
72
|
-
recorded_at:
|
72
|
+
recorded_at: Mon, 07 Jun 2021 17:55:29 GMT
|
73
73
|
recorded_with: VCR 5.0.0
|