workos 1.6.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 18ce86de81ae6d0135098cff2358718a85e32216b668fa8812561518765d08c3
4
- data.tar.gz: 8536d98714bbd426436f2b6ac0a24164da2837e6d4ec1f9162d4bcbb167fd344
3
+ metadata.gz: 739e4734f5caa4b4c8180e125a206106242fea489c1dccc19f1bc45ad514bc7e
4
+ data.tar.gz: '029c0a8ef19f9b9b933a73eec53a9770851ea2a338a81060c040b72a06e39189'
5
5
  SHA512:
6
- metadata.gz: f4befc50b81553c325994aca87349d8c4badc3af319cd1924967542352dd5b9e0c36ad8375fa71f1605979dd9415e720d03bf55a9fe74bbba35d7fa2127d34ad
7
- data.tar.gz: 25f9bf26defd800826522200a2328f1ce1c1e1ae169cad9c3a297a4f45d0f120a9fd25d0d60d1ff5050c56408b7ef25619827a6083307f17203f66a0ce72c72e
6
+ metadata.gz: 18631e0e0cdc5033b7df32d3ff95e2eeadcd7babd6c3b11063e174006ed3e8abd7769bfe4b0c828967e79b724ce0d8a79243960b5f2922eeb242051b56395b41
7
+ data.tar.gz: 2a2b2d48b1410ad0fc86943a168d584234fd5c01ca5ee3e3b4b3117f9924ddc4199d55d10d338b1f07daa193edc0144312ec6271a68c65b89ec8fa2243064aa0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- workos (1.6.1)
4
+ workos (2.0.0)
5
5
  sorbet-runtime (~> 0.5)
6
6
 
7
7
  GEM
@@ -21,7 +21,7 @@ module WorkOS
21
21
  @name = T.let(raw.name, String)
22
22
  @connection_type = T.let(raw.connection_type, String)
23
23
  @domains = T.let(raw.domains, Array)
24
- @organization_id = T.let(raw.organization_id, String)
24
+ @organization_id = raw.organization_id
25
25
  @state = T.let(raw.state, String)
26
26
  @status = T.let(raw.status, String)
27
27
  @created_at = T.let(raw.created_at, String)
@@ -20,7 +20,7 @@ module WorkOS
20
20
  @domain = raw.domain
21
21
  @type = T.let(raw.type, String)
22
22
  @state = T.let(raw.state, String)
23
- @organization_id = T.let(raw.organization_id, String)
23
+ @organization_id = raw.organization_id
24
24
  @created_at = T.let(raw.created_at, String)
25
25
  @updated_at = T.let(raw.updated_at, String)
26
26
  end
@@ -53,6 +53,35 @@ module WorkOS
53
53
  )
54
54
  end
55
55
 
56
+ # Retrieve directory.
57
+ #
58
+ # @param [String] id Directory unique identifier
59
+ #
60
+ # @example
61
+ # WorkOS::SSO.get_directory(id: 'directory_01FK17DWRHH7APAFXT5B52PV0W')
62
+ # => #<WorkOS::Directory:0x00007fb6e4193d20
63
+ # @id="directory_01FK17DWRHH7APAFXT5B52PV0W",
64
+ # @name="Foo Corp",
65
+ # @domain="foo-corp.com",
66
+ # @type="okta scim v2.0",
67
+ # @state="linked",
68
+ # @organization_id="org_01F6Q6TFP7RD2PF6J03ANNWDKV",
69
+ # @created_at="2021-10-27T15:55:47.856Z",
70
+ # @updated_at="2021-10-27T16:03:43.990Z"
71
+ #
72
+ # @return [WorkOS::Directory]
73
+ sig { params(id: String).returns(WorkOS::Directory) }
74
+ def get_directory(id:)
75
+ request = get_request(
76
+ auth: true,
77
+ path: "/directories/#{id}",
78
+ )
79
+
80
+ response = execute_request(request: request)
81
+
82
+ WorkOS::Directory.new(response.body)
83
+ end
84
+
56
85
  # Retrieve directory groups.
57
86
  #
58
87
  # @param [Hash] options An options hash
@@ -23,7 +23,7 @@ module WorkOS
23
23
  @email = T.let(raw.email, String)
24
24
  @first_name = raw.first_name
25
25
  @last_name = raw.last_name
26
- @organization_id = T.let(raw.organization_id, String)
26
+ @organization_id = raw.organization_id
27
27
  @connection_id = T.let(raw.connection_id, String)
28
28
  @connection_type = T.let(raw.connection_type, String)
29
29
  @idp_id = raw.idp_id
@@ -10,7 +10,7 @@ module WorkOS
10
10
  const :name, String
11
11
  const :connection_type, String
12
12
  const :domains, T::Array[T.untyped]
13
- const :organization_id, String
13
+ const :organization_id, T.nilable(String)
14
14
  const :state, String
15
15
  const :status, String
16
16
  const :created_at, String
@@ -11,7 +11,7 @@ module WorkOS
11
11
  const :domain, T.nilable(String)
12
12
  const :type, String
13
13
  const :state, String
14
- const :organization_id, String
14
+ const :organization_id, T.nilable(String)
15
15
  const :created_at, String
16
16
  const :updated_at, String
17
17
  end
@@ -10,7 +10,7 @@ module WorkOS
10
10
  const :email, String
11
11
  const :first_name, T.nilable(String)
12
12
  const :last_name, T.nilable(String)
13
- const :organization_id, String
13
+ const :organization_id, T.nilable(String)
14
14
  const :connection_id, String
15
15
  const :connection_type, String
16
16
  const :idp_id, T.nilable(String)
@@ -2,5 +2,5 @@
2
2
  # typed: strong
3
3
 
4
4
  module WorkOS
5
- VERSION = '1.6.1'
5
+ VERSION = '2.0.0'
6
6
  end
@@ -143,6 +143,38 @@ describe WorkOS::DirectorySync do
143
143
  end
144
144
  end
145
145
 
146
+ describe '.get_directory' do
147
+ context 'with a valid id' do
148
+ it 'gets the directory details' do
149
+ VCR.use_cassette('directory_sync/get_directory_with_valid_id') do
150
+ directory = WorkOS::DirectorySync.get_directory(
151
+ id: 'directory_01FK17DWRHH7APAFXT5B52PV0W',
152
+ )
153
+
154
+ expect(directory.id).to eq('directory_01FK17DWRHH7APAFXT5B52PV0W')
155
+ expect(directory.name).to eq('Testing Active Attribute')
156
+ expect(directory.domain).to eq('example.me')
157
+ expect(directory.type).to eq('azure scim v2.0')
158
+ expect(directory.state).to eq('linked')
159
+ expect(directory.organization_id).to eq('org_01F6Q6TFP7RD2PF6J03ANNWDKV')
160
+ end
161
+ end
162
+ end
163
+
164
+ context 'with an invalid id' do
165
+ it 'raises an error' do
166
+ VCR.use_cassette('directory_sync/get_directory_with_invalid_id') do
167
+ expect do
168
+ WorkOS::DirectorySync.get_directory(id: 'invalid')
169
+ end.to raise_error(
170
+ WorkOS::APIError,
171
+ "Status 404, Directory not found: 'invalid'. - request ID: ",
172
+ )
173
+ end
174
+ end
175
+ end
176
+ end
177
+
146
178
  describe '.list_groups' do
147
179
  context 'with no options' do
148
180
  it 'raises an error' do
@@ -0,0 +1,83 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.workos.com/directories/invalid
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ User-Agent:
17
+ - WorkOS; ruby/3.0.2; x86_64-darwin19; v1.6.1
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 404
23
+ message: Not Found
24
+ headers:
25
+ Date:
26
+ - Sun, 07 Nov 2021 19:18:31 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ Content-Security-Policy:
34
+ - 'default-src ''self'';base-uri ''self'';block-all-mixed-content;font-src ''self''
35
+ https: data:;frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src
36
+ ''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
37
+ X-Dns-Prefetch-Control:
38
+ - 'off'
39
+ Expect-Ct:
40
+ - max-age=0
41
+ X-Frame-Options:
42
+ - SAMEORIGIN
43
+ Strict-Transport-Security:
44
+ - max-age=15552000; includeSubDomains
45
+ X-Download-Options:
46
+ - noopen
47
+ X-Content-Type-Options:
48
+ - nosniff
49
+ X-Permitted-Cross-Domain-Policies:
50
+ - none
51
+ Referrer-Policy:
52
+ - no-referrer
53
+ X-Xss-Protection:
54
+ - '0'
55
+ Vary:
56
+ - Origin, Accept-Encoding
57
+ Access-Control-Allow-Credentials:
58
+ - 'true'
59
+ X-Request-Id:
60
+ -
61
+ Etag:
62
+ - W/"5d-Sx4XoCfDLxkGIc0yAjSbi2ILYww"
63
+ Via:
64
+ - 1.1 vegur
65
+ Cf-Cache-Status:
66
+ - DYNAMIC
67
+ Report-To:
68
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=9UGS4Swz%2BHWvLOf0MGTCQbJyS0uBKnB72E77LfjybUN%2FXbJaDPBYfHnAUcgVM7JZbTefNquu4bG0Fw0edgQVoGnTK9OWPuO6fVKmo8XkF1G%2FNgibe8B715ZZje%2FZM7m3%2B9bEbNout5ArQfFyyQ%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
+ - 6aa8e86f7b5a66bf-DFW
75
+ Alt-Svc:
76
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
77
+ ma=86400
78
+ body:
79
+ encoding: ASCII-8BIT
80
+ string: '{"message":"Directory not found: ''invalid''.","code":"entity_not_found","entity_id":"invalid"}'
81
+ http_version:
82
+ recorded_at: Sun, 07 Nov 2021 19:18:31 GMT
83
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,84 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.workos.com/directories/directory_01FK17DWRHH7APAFXT5B52PV0W
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ User-Agent:
17
+ - WorkOS; ruby/3.0.2; x86_64-darwin19; v1.6.1
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Sun, 07 Nov 2021 19:18:31 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ Content-Security-Policy:
34
+ - 'default-src ''self'';base-uri ''self'';block-all-mixed-content;font-src ''self''
35
+ https: data:;frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src
36
+ ''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
37
+ X-Dns-Prefetch-Control:
38
+ - 'off'
39
+ Expect-Ct:
40
+ - max-age=0
41
+ X-Frame-Options:
42
+ - SAMEORIGIN
43
+ Strict-Transport-Security:
44
+ - max-age=15552000; includeSubDomains
45
+ X-Download-Options:
46
+ - noopen
47
+ X-Content-Type-Options:
48
+ - nosniff
49
+ X-Permitted-Cross-Domain-Policies:
50
+ - none
51
+ Referrer-Policy:
52
+ - no-referrer
53
+ X-Xss-Protection:
54
+ - '0'
55
+ Vary:
56
+ - Origin, Accept-Encoding
57
+ Access-Control-Allow-Credentials:
58
+ - 'true'
59
+ X-Request-Id:
60
+ - c63229f4-faa3-4693-a769-f132af1d156e
61
+ Etag:
62
+ - W/"149-gnrinkKr5pyIOSLENIObBLph9N0"
63
+ Via:
64
+ - 1.1 vegur
65
+ Cf-Cache-Status:
66
+ - DYNAMIC
67
+ Report-To:
68
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=8pe6lAa%2BE5FfpwjmgW1wU%2Fn%2BqfVS0xUHV0FKT%2Fvt%2FpQCa1A4nNwqR1hMyE9ytoi%2F3InXs3rP9ELYw%2FpJZ1Ow0uaNd3xoll7al5maCCPI1JWivjr%2Bxx6G1Otiw5iTIaAh3MXoP0pjUAnZVsf4bw%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
+ - 6aa8e86daa570b76-DFW
75
+ Alt-Svc:
76
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
77
+ ma=86400
78
+ body:
79
+ encoding: ASCII-8BIT
80
+ string: '{"object":"directory","id":"directory_01FK17DWRHH7APAFXT5B52PV0W","organization_id":"org_01F6Q6TFP7RD2PF6J03ANNWDKV","name":"Testing
81
+ Active Attribute","external_key":"QArgyQQkq4G0MquM","type":"azure scim v2.0","state":"linked","created_at":"2021-10-27T15:55:47.856Z","updated_at":"2021-10-27T16:03:43.990Z","domain":"example.me"}'
82
+ http_version:
83
+ recorded_at: Sun, 07 Nov 2021 19:18:31 GMT
84
+ recorded_with: VCR 5.0.0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workos
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - WorkOS
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-03 00:00:00.000000000 Z
11
+ date: 2021-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-runtime
@@ -289,6 +289,8 @@ files:
289
289
  - spec/support/fixtures/vcr_cassettes/audit_trail/get_events.yml
290
290
  - spec/support/fixtures/vcr_cassettes/base/execute_request_unauthenticated.yml
291
291
  - spec/support/fixtures/vcr_cassettes/directory_sync/delete_directory.yml
292
+ - spec/support/fixtures/vcr_cassettes/directory_sync/get_directory_with_invalid_id.yml
293
+ - spec/support/fixtures/vcr_cassettes/directory_sync/get_directory_with_valid_id.yml
292
294
  - spec/support/fixtures/vcr_cassettes/directory_sync/get_group.yml
293
295
  - spec/support/fixtures/vcr_cassettes/directory_sync/get_group_with_invalid_id.yml
294
296
  - spec/support/fixtures/vcr_cassettes/directory_sync/get_user.yml
@@ -362,7 +364,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
362
364
  - !ruby/object:Gem::Version
363
365
  version: '0'
364
366
  requirements: []
365
- rubygems_version: 3.2.30
367
+ rubygems_version: 3.2.31
366
368
  signing_key:
367
369
  specification_version: 4
368
370
  summary: API client for WorkOS
@@ -384,6 +386,8 @@ test_files:
384
386
  - spec/support/fixtures/vcr_cassettes/audit_trail/get_events.yml
385
387
  - spec/support/fixtures/vcr_cassettes/base/execute_request_unauthenticated.yml
386
388
  - spec/support/fixtures/vcr_cassettes/directory_sync/delete_directory.yml
389
+ - spec/support/fixtures/vcr_cassettes/directory_sync/get_directory_with_invalid_id.yml
390
+ - spec/support/fixtures/vcr_cassettes/directory_sync/get_directory_with_valid_id.yml
387
391
  - spec/support/fixtures/vcr_cassettes/directory_sync/get_group.yml
388
392
  - spec/support/fixtures/vcr_cassettes/directory_sync/get_group_with_invalid_id.yml
389
393
  - spec/support/fixtures/vcr_cassettes/directory_sync/get_user.yml