workos 0.11.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/.semaphore/semaphore.yml +2 -2
  4. data/Gemfile.lock +2 -2
  5. data/LICENSE +1 -1
  6. data/README.md +13 -230
  7. data/lib/workos.rb +2 -0
  8. data/lib/workos/client.rb +21 -3
  9. data/lib/workos/connection.rb +5 -1
  10. data/lib/workos/directory_user.rb +4 -1
  11. data/lib/workos/organizations.rb +171 -0
  12. data/lib/workos/passwordless.rb +4 -0
  13. data/lib/workos/portal.rb +0 -80
  14. data/lib/workos/profile.rb +8 -10
  15. data/lib/workos/profile_and_token.rb +28 -0
  16. data/lib/workos/sso.rb +25 -100
  17. data/lib/workos/types/connection_struct.rb +1 -0
  18. data/lib/workos/types/directory_user_struct.rb +1 -0
  19. data/lib/workos/version.rb +1 -1
  20. data/spec/lib/workos/organizations_spec.rb +191 -0
  21. data/spec/lib/workos/portal_spec.rb +0 -113
  22. data/spec/lib/workos/sso_spec.rb +35 -115
  23. data/spec/support/fixtures/vcr_cassettes/organization/delete.yml +72 -0
  24. data/spec/support/fixtures/vcr_cassettes/organization/delete_invalid.yml +72 -0
  25. data/spec/support/fixtures/vcr_cassettes/organization/get.yml +73 -0
  26. data/spec/support/fixtures/vcr_cassettes/{sso/create_connection_with_invalid_source.yml → organization/get_invalid.yml} +26 -12
  27. data/spec/support/fixtures/vcr_cassettes/organization/update.yml +73 -0
  28. data/spec/support/fixtures/vcr_cassettes/organization/update_invalid.yml +73 -0
  29. data/spec/support/fixtures/vcr_cassettes/sso/profile.yml +74 -0
  30. data/workos.gemspec +1 -1
  31. metadata +23 -9
  32. data/spec/support/fixtures/vcr_cassettes/sso/create_connection_with_valid_source.yml +0 -63
@@ -0,0 +1,74 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.workos.com/sso/profile
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.1; arm64-darwin20; v1.0.0
18
+ Authorization:
19
+ - Bearer access_token
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Server:
26
+ - Cowboy
27
+ Connection:
28
+ - keep-alive
29
+ Vary:
30
+ - Origin, Accept-Encoding
31
+ Access-Control-Allow-Credentials:
32
+ - "true"
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
+ X-Request-Id:
56
+ - 45f253d6-51bb-4171-879a-d532f0275044
57
+ Content-Type:
58
+ - application/json; charset=utf-8
59
+ Content-Length:
60
+ - "545"
61
+ Etag:
62
+ - W/"221-LoXMZbv3vrn7lnJvNn6G/pqr7+c"
63
+ Date:
64
+ - Tue, 18 May 2021 22:55:21 GMT
65
+ Via:
66
+ - 1.1 vegur
67
+ body:
68
+ encoding: UTF-8
69
+ string:
70
+ '{"object":"profile","id":"prof_01EEJTY9SZ1R350RB7B73SNBKF","connection_id":"conn_01E83FVYZHY7DM4S9503JHV0R5","connection_type":"GoogleOAuth","idp_id":"116485463307139932699","email":"bob.loblaw@workos.com","first_name":"Bob","last_name":"Loblaw","raw_attributes":{"hd":"workos.com","id":"116485463307139932699","name":"Bob
71
+ Loblaw","email":"bob.loblaw@workos.com","locale":"en","picture":"https://lh3.googleusercontent.com/a-/AOh14GyO2hLlgZvteDQ3Ldi3_-RteZLya0hWH7247Cam=s96-c","given_name":"Bob","family_name":"Loblaw","verified_email":true}}'
72
+ http_version:
73
+ recorded_at: Tue, 18 May 2021 22:55:21 GMT
74
+ recorded_with: VCR 5.0.0
data/workos.gemspec CHANGED
@@ -34,5 +34,5 @@ Gem::Specification.new do |spec|
34
34
  spec.add_development_dependency 'webmock'
35
35
  spec.add_development_dependency 'yard'
36
36
 
37
- spec.required_ruby_version = '~> 3.0'
37
+ spec.required_ruby_version = '>= 2.5'
38
38
  end
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: 0.11.0
4
+ version: 1.2.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-04-27 00:00:00.000000000 Z
11
+ date: 2021-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-runtime
@@ -217,9 +217,11 @@ files:
217
217
  - lib/workos/directory_user.rb
218
218
  - lib/workos/errors.rb
219
219
  - lib/workos/organization.rb
220
+ - lib/workos/organizations.rb
220
221
  - lib/workos/passwordless.rb
221
222
  - lib/workos/portal.rb
222
223
  - lib/workos/profile.rb
224
+ - lib/workos/profile_and_token.rb
223
225
  - lib/workos/sso.rb
224
226
  - lib/workos/types.rb
225
227
  - lib/workos/types/connection_struct.rb
@@ -270,6 +272,7 @@ files:
270
272
  - spec/lib/workos/audit_trail_spec.rb
271
273
  - spec/lib/workos/base_spec.rb
272
274
  - spec/lib/workos/directory_sync_spec.rb
275
+ - spec/lib/workos/organizations_spec.rb
273
276
  - spec/lib/workos/passwordless_spec.rb
274
277
  - spec/lib/workos/portal_spec.rb
275
278
  - spec/lib/workos/sso_spec.rb
@@ -306,7 +309,13 @@ files:
306
309
  - spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_no_options.yml
307
310
  - spec/support/fixtures/vcr_cassettes/organization/create.yml
308
311
  - spec/support/fixtures/vcr_cassettes/organization/create_invalid.yml
312
+ - spec/support/fixtures/vcr_cassettes/organization/delete.yml
313
+ - spec/support/fixtures/vcr_cassettes/organization/delete_invalid.yml
314
+ - spec/support/fixtures/vcr_cassettes/organization/get.yml
315
+ - spec/support/fixtures/vcr_cassettes/organization/get_invalid.yml
309
316
  - spec/support/fixtures/vcr_cassettes/organization/list.yml
317
+ - spec/support/fixtures/vcr_cassettes/organization/update.yml
318
+ - spec/support/fixtures/vcr_cassettes/organization/update_invalid.yml
310
319
  - spec/support/fixtures/vcr_cassettes/passwordless/create_session.yml
311
320
  - spec/support/fixtures/vcr_cassettes/passwordless/create_session_invalid.yml
312
321
  - spec/support/fixtures/vcr_cassettes/passwordless/send_session.yml
@@ -314,8 +323,6 @@ files:
314
323
  - spec/support/fixtures/vcr_cassettes/portal/generate_link_dsync.yml
315
324
  - spec/support/fixtures/vcr_cassettes/portal/generate_link_invalid.yml
316
325
  - spec/support/fixtures/vcr_cassettes/portal/generate_link_sso.yml
317
- - spec/support/fixtures/vcr_cassettes/sso/create_connection_with_invalid_source.yml
318
- - spec/support/fixtures/vcr_cassettes/sso/create_connection_with_valid_source.yml
319
326
  - spec/support/fixtures/vcr_cassettes/sso/delete_connection_with_invalid_id.yml
320
327
  - spec/support/fixtures/vcr_cassettes/sso/delete_connection_with_valid_id.yml
321
328
  - spec/support/fixtures/vcr_cassettes/sso/get_connection_with_invalid_id.yml
@@ -327,6 +334,7 @@ files:
327
334
  - spec/support/fixtures/vcr_cassettes/sso/list_connections/with_limit.yml
328
335
  - spec/support/fixtures/vcr_cassettes/sso/list_connections/with_no_options.yml
329
336
  - spec/support/fixtures/vcr_cassettes/sso/list_connections/with_organization_id.yml
337
+ - spec/support/fixtures/vcr_cassettes/sso/profile.yml
330
338
  - spec/support/profile.txt
331
339
  - workos.gemspec
332
340
  homepage: https://github.com/workos-inc/workos-ruby
@@ -340,16 +348,16 @@ require_paths:
340
348
  - lib
341
349
  required_ruby_version: !ruby/object:Gem::Requirement
342
350
  requirements:
343
- - - "~>"
351
+ - - ">="
344
352
  - !ruby/object:Gem::Version
345
- version: '3.0'
353
+ version: '2.5'
346
354
  required_rubygems_version: !ruby/object:Gem::Requirement
347
355
  requirements:
348
356
  - - ">="
349
357
  - !ruby/object:Gem::Version
350
358
  version: '0'
351
359
  requirements: []
352
- rubygems_version: 3.2.16
360
+ rubygems_version: 3.2.17
353
361
  signing_key:
354
362
  specification_version: 4
355
363
  summary: API client for WorkOS
@@ -357,6 +365,7 @@ test_files:
357
365
  - spec/lib/workos/audit_trail_spec.rb
358
366
  - spec/lib/workos/base_spec.rb
359
367
  - spec/lib/workos/directory_sync_spec.rb
368
+ - spec/lib/workos/organizations_spec.rb
360
369
  - spec/lib/workos/passwordless_spec.rb
361
370
  - spec/lib/workos/portal_spec.rb
362
371
  - spec/lib/workos/sso_spec.rb
@@ -393,7 +402,13 @@ test_files:
393
402
  - spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_no_options.yml
394
403
  - spec/support/fixtures/vcr_cassettes/organization/create.yml
395
404
  - spec/support/fixtures/vcr_cassettes/organization/create_invalid.yml
405
+ - spec/support/fixtures/vcr_cassettes/organization/delete.yml
406
+ - spec/support/fixtures/vcr_cassettes/organization/delete_invalid.yml
407
+ - spec/support/fixtures/vcr_cassettes/organization/get.yml
408
+ - spec/support/fixtures/vcr_cassettes/organization/get_invalid.yml
396
409
  - spec/support/fixtures/vcr_cassettes/organization/list.yml
410
+ - spec/support/fixtures/vcr_cassettes/organization/update.yml
411
+ - spec/support/fixtures/vcr_cassettes/organization/update_invalid.yml
397
412
  - spec/support/fixtures/vcr_cassettes/passwordless/create_session.yml
398
413
  - spec/support/fixtures/vcr_cassettes/passwordless/create_session_invalid.yml
399
414
  - spec/support/fixtures/vcr_cassettes/passwordless/send_session.yml
@@ -401,8 +416,6 @@ test_files:
401
416
  - spec/support/fixtures/vcr_cassettes/portal/generate_link_dsync.yml
402
417
  - spec/support/fixtures/vcr_cassettes/portal/generate_link_invalid.yml
403
418
  - spec/support/fixtures/vcr_cassettes/portal/generate_link_sso.yml
404
- - spec/support/fixtures/vcr_cassettes/sso/create_connection_with_invalid_source.yml
405
- - spec/support/fixtures/vcr_cassettes/sso/create_connection_with_valid_source.yml
406
419
  - spec/support/fixtures/vcr_cassettes/sso/delete_connection_with_invalid_id.yml
407
420
  - spec/support/fixtures/vcr_cassettes/sso/delete_connection_with_valid_id.yml
408
421
  - spec/support/fixtures/vcr_cassettes/sso/get_connection_with_invalid_id.yml
@@ -414,4 +427,5 @@ test_files:
414
427
  - spec/support/fixtures/vcr_cassettes/sso/list_connections/with_limit.yml
415
428
  - spec/support/fixtures/vcr_cassettes/sso/list_connections/with_no_options.yml
416
429
  - spec/support/fixtures/vcr_cassettes/sso/list_connections/with_organization_id.yml
430
+ - spec/support/fixtures/vcr_cassettes/sso/profile.yml
417
431
  - spec/support/profile.txt
@@ -1,63 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: https://api.workos.com/connections
6
- body:
7
- encoding: UTF-8
8
- string: '{"source":"draft_conn_01E6PK87QP6NQ29RRX0G100YGV"}'
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/2.7.1; x86_64-darwin19; v0.2.2
18
- Authorization:
19
- - Bearer <API_KEY>
20
- response:
21
- status:
22
- code: 201
23
- message: Created
24
- headers:
25
- Server:
26
- - Cowboy
27
- Connection:
28
- - keep-alive
29
- Vary:
30
- - Origin, Accept-Encoding
31
- Access-Control-Allow-Credentials:
32
- - 'true'
33
- X-Dns-Prefetch-Control:
34
- - 'off'
35
- X-Frame-Options:
36
- - SAMEORIGIN
37
- Strict-Transport-Security:
38
- - max-age=15552000; includeSubDomains
39
- X-Download-Options:
40
- - noopen
41
- X-Content-Type-Options:
42
- - nosniff
43
- X-Xss-Protection:
44
- - 1; mode=block
45
- X-Request-Id:
46
- - 8cd03fab-ca1a-4c0b-9953-1f918849a9de
47
- Content-Type:
48
- - application/json; charset=utf-8
49
- Etag:
50
- - W/"55a-z00MNCfGmS/7RWJwhsBrAXo09Ls"
51
- Date:
52
- - Fri, 24 Apr 2020 17:20:52 GMT
53
- Transfer-Encoding:
54
- - chunked
55
- Via:
56
- - 1.1 vegur
57
- body:
58
- encoding: ASCII-8BIT
59
- string: '{"object":"connection","id":"conn_01E4F9T2YWZFD218DN04KVFDSY","status":"linked","name":"Foo Corp","connection_type":"GoogleOAuth","oauth_uid":"demo
60
- client id","oauth_secret":"demo client secret","oauth_redirect_uri":"https://auth.workos.com/sso/oauth/google/gcrSPYSytyQeZKkwKs6Ye4ogM/callback","saml_entity_id":null,"saml_idp_url":null,"saml_relying_party_trust_cert":null,"saml_x509_certs":null,"organization_id":"12345","domains":[{"object":"connection_domain","id":"domain_01E6PK9N3XMD8RHWF7S66380AR","domain":"example.com"}]}'
61
- http_version:
62
- recorded_at: Fri, 24 Apr 2020 17:20:52 GMT
63
- recorded_with: VCR 5.0.0