workos 1.2.1 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +3 -3
  3. data/lib/workos/client.rb +3 -6
  4. data/lib/workos/connection.rb +9 -1
  5. data/lib/workos/directory.rb +12 -1
  6. data/lib/workos/directory_user.rb +9 -1
  7. data/lib/workos/errors.rb +13 -2
  8. data/lib/workos/organization.rb +7 -1
  9. data/lib/workos/sso.rb +6 -0
  10. data/lib/workos/types/connection_struct.rb +2 -0
  11. data/lib/workos/types/directory_struct.rb +3 -0
  12. data/lib/workos/types/directory_user_struct.rb +2 -0
  13. data/lib/workos/types/organization_struct.rb +2 -0
  14. data/lib/workos/types/provider_enum.rb +1 -0
  15. data/lib/workos/version.rb +1 -1
  16. data/spec/lib/workos/audit_trail_spec.rb +2 -0
  17. data/spec/lib/workos/directory_sync_spec.rb +21 -19
  18. data/spec/lib/workos/organizations_spec.rb +13 -11
  19. data/spec/lib/workos/passwordless_spec.rb +2 -0
  20. data/spec/lib/workos/portal_spec.rb +2 -0
  21. data/spec/lib/workos/sso_spec.rb +21 -19
  22. data/spec/spec_helper.rb +3 -0
  23. data/spec/support/fixtures/vcr_cassettes/directory_sync/get_user.yml +40 -16
  24. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_after.yml +12 -9
  25. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_before.yml +8 -5
  26. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_domain.yml +8 -8
  27. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_limit.yml +9 -9
  28. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_no_options.yml +23 -10
  29. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_search.yml +8 -8
  30. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_after.yml +128 -28
  31. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_before.yml +31 -18
  32. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_directory.yml +136 -35
  33. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_group.yml +128 -18
  34. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_limit.yml +131 -17
  35. data/spec/support/fixtures/vcr_cassettes/organization/create.yml +28 -16
  36. data/spec/support/fixtures/vcr_cassettes/organization/get.yml +27 -16
  37. data/spec/support/fixtures/vcr_cassettes/organization/list.yml +29 -14
  38. data/spec/support/fixtures/vcr_cassettes/organization/update.yml +27 -16
  39. data/spec/support/fixtures/vcr_cassettes/sso/get_connection_with_valid_id.yml +28 -16
  40. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_after.yml +25 -15
  41. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_before.yml +28 -15
  42. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_connection_type.yml +31 -14
  43. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_domain.yml +27 -13
  44. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_limit.yml +24 -15
  45. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_no_options.yml +30 -14
  46. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_organization_id.yml +28 -14
  47. data/spec/support/shared_examples/client_spec.rb +16 -0
  48. 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.com'],
12
+ domains: ['example.io'],
11
13
  name: 'Test Organization',
12
14
  )
13
15
 
14
- expect(organization.id).to eq('org_01EHT88Z8J8795GZNQ4ZP1J81T')
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.com')
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(7)
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(7)
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(7)
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(7)
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: 'org_01EZDF20TZEJXKPSX2BJRN6TV6',
125
+ id: 'org_01F9293WD2PDEEV4Y625XPZVG7',
124
126
  )
125
127
 
126
- expect(organization.id).to eq('org_01EZDF20TZEJXKPSX2BJRN6TV6')
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: 'org_01F29YJ068E52HGEB8ZQGC9MJG',
154
+ organization: 'org_01F6Q6TFP7RD2PF6J03ANNWDKV',
153
155
  domains: ['example.me'],
154
156
  name: 'Test Organization',
155
157
  )
156
158
 
157
- expect(organization.id).to eq('org_01F29YJ068E52HGEB8ZQGC9MJG')
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
@@ -2,6 +2,8 @@
2
2
  # typed: false
3
3
 
4
4
  describe WorkOS::Passwordless do
5
+ it_behaves_like 'client'
6
+
5
7
  describe '.create_session' do
6
8
  context 'with valid options payload' do
7
9
  let(:valid_options) do
@@ -2,6 +2,8 @@
2
2
  # typed: false
3
3
 
4
4
  describe WorkOS::Portal do
5
+ it_behaves_like 'client'
6
+
5
7
  describe '.generate_link' do
6
8
  let(:organization) { 'org_01EHQMYV6MBK39QC5PZXHY59C3' }
7
9
 
@@ -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: { "message": 'some error message' }.to_json,
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 message - request ID: request-id',
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: 201,
276
+ status: 400,
275
277
  headers: { 'X-Request-ID' => 'request-id' },
276
278
  body: {
277
- message: "The code '01DVX3C5Z367SFHR8QNDMK7V24'" \
278
- ' has expired or is invalid.',
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(3)
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(3)
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=org_01EGS4P7QR31EZ4YWD1Z1XA176',
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: 'org_01EGS4P7QR31EZ4YWD1Z1XA176',
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
- 'org_01EGS4P7QR31EZ4YWD1Z1XA176',
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=conn_01EQKPMQAPV02H270HKVNS4CTA',
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: 'conn_01EQKPMQAPV02H270HKVNS4CTA',
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=conn_01EQKPMQAPV02H270HKVNS4CTA',
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: 'conn_01EQKPMQAPV02H270HKVNS4CTA',
442
+ after: 'conn_01FA3WGCWPCCY1V2FGES2FDNP7',
441
443
  )
442
444
 
443
- expect(connections.data.size).to eq(3)
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: 'conn_01EX00NB050H354WKGC7990AR2',
456
+ id: 'conn_01FA3WGCWPCCY1V2FGES2FDNP7',
455
457
  )
456
458
 
457
- expect(connection.id).to eq('conn_01EX00NB050H354WKGC7990AR2')
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
@@ -18,6 +18,9 @@ require 'webmock/rspec'
18
18
  require 'workos'
19
19
  require 'vcr'
20
20
 
21
+ # Support
22
+ Dir['./spec/support/**/*.rb'].sort.each { |f| require f }
23
+
21
24
  SPEC_ROOT = File.dirname __FILE__
22
25
 
23
26
  VCR.configure do |config|
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://api.workos.com/directory_users/directory_usr_01E64QS50EAY48S0XJ1AA4WX4D
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/2.7.1; x86_64-darwin19; v0.2.3
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
- Server:
26
- - Cowboy
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
- - 1; mode=block
58
+ - '0'
45
59
  X-Request-Id:
46
- - fe3f582a-b944-4f2c-a225-ae3a7f099fa0
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/"170-JjGTDHa7GqXeAwXcua+s3+2z/oA"
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: UTF-8
59
- string: '{"id":"directory_usr_01E64QS50EAY48S0XJ1AA4WX4D","raw_attributes":{"name":{"givenName":"Mark","familyName":"Tran"},"emails":[{"value":"mark@foo-corp.com","primary":true}],"userName":"mark@foo-corp.com","externalId":"118325297729072421906"},"first_name":"Mark","emails":[{"value":"mark@foo-corp.com","primary":true}],"username":"mark@foo-corp.com","last_name":"Tran"}'
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: Thu, 30 Apr 2020 04:43:15 GMT
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/2.7.1; x86_64-darwin19; v0.10.3
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
- - 1e6d2f37-ca39-4e6c-8d04-4a56fed444ce
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/"7dc-9PMr4siidbvsdQqw0uiJT6E94Dc"
62
+ - W/"310-fBrsCTIA95j4JLo4UR8X2zBThYQ"
61
63
  Date:
62
- - Thu, 22 Apr 2021 21:33:48 GMT
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: ASCII-8BIT
69
- string: '{"object":"list","listMetadata":{"before":"before-id","after":null},"data":[{"object":"directory","id":"directory_edp_1","external_key":"lA3gS1kCZMCkk82E","state":"linked","type":"gsuite directory","name":"Foo Corp","bearer_token":null,"client_id":"project_XXX","domain":"foo-corp.com"}, {"object":"directory","id":"directory_edp_2","external_key":"lA3g","state":"linked","type":"okta scim v2.0","name":"Example", "bearer_token":null,"client_id":"project_XXX","domain":"example.com"}, {"object":"directory","id":"directory_edp_3","external_key":"lA3gS1kC","state":"linked","type":"bamboohr","name":"Acme","bearer_token":null,"client_id":"project_XXX","domain":"acme.com"}]}'
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: Thu, 22 Apr 2021 21:33:49 GMT
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/2.7.1; x86_64-darwin19; v0.10.3
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
- - ee432766-24b5-4d6d-baa9-05b7d56ac582
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
- - Thu, 22 Apr 2021 21:33:48 GMT
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":"before-id","after":null},"data":[{"object":"directory","id":"directory_edp_1","external_key":"lA3gS1kCZMCkk82E","state":"linked","type":"gsuite directory","name":"Foo Corp","bearer_token":null,"client_id":"project_XXX","domain":"foo-corp.com"}, {"object":"directory","id":"directory_edp_2","external_key":"lA3g","state":"linked","type":"okta scim v2.0","name":"Example", "bearer_token":null,"client_id":"project_XXX","domain":"example.com"}, {"object":"directory","id":"directory_edp_3","external_key":"lA3gS1kC","state":"linked","type":"bamboohr","name":"Acme","bearer_token":null,"client_id":"project_XXX","domain":"acme.com"}]}'
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: Thu, 22 Apr 2021 21:33:48 GMT
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/2.7.1; x86_64-darwin19; v0.10.3
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
- - c2664753-7a2a-499f-a6e7-dae700ad49d7
56
+ - d3cd212f-5dc1-4e08-ab1f-69e33bebd9ca
57
57
  Content-Type:
58
58
  - application/json; charset=utf-8
59
59
  Content-Length:
60
- - '256'
60
+ - '539'
61
61
  Etag:
62
- - W/"100-Vh8CFQGzG+aGyEkNXe2nXGxNFJ4"
62
+ - W/"21b-d3KisYEu0vvI9FJFreAktGIgT+c"
63
63
  Date:
64
- - Thu, 22 Apr 2021 21:33:47 GMT
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":"directory_01EK2YEMVTWGX27STRDR0N3MP9","name":"Foo
70
- Corp","external_key":"SZ5TZMl7gcOAKS04","type":"gsuite directory","state":"linked","domain":"foo-corp.com"}]}'
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: Thu, 22 Apr 2021 21:33:47 GMT
72
+ recorded_at: Mon, 07 Jun 2021 17:55:29 GMT
73
73
  recorded_with: VCR 5.0.0