workos 0.10.1 → 0.11.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/.ruby-version +1 -1
  4. data/.semaphore/semaphore.yml +8 -2
  5. data/Gemfile.lock +49 -36
  6. data/README.md +13 -230
  7. data/lib/workos.rb +3 -0
  8. data/lib/workos/client.rb +21 -4
  9. data/lib/workos/connection.rb +12 -1
  10. data/lib/workos/directory.rb +53 -0
  11. data/lib/workos/directory_group.rb +44 -0
  12. data/lib/workos/directory_sync.rb +63 -7
  13. data/lib/workos/directory_user.rb +63 -0
  14. data/lib/workos/passwordless.rb +4 -0
  15. data/lib/workos/portal.rb +54 -1
  16. data/lib/workos/profile.rb +1 -2
  17. data/lib/workos/sso.rb +31 -6
  18. data/lib/workos/types.rb +3 -0
  19. data/lib/workos/types/connection_struct.rb +3 -0
  20. data/lib/workos/types/directory_group_struct.rb +13 -0
  21. data/lib/workos/types/directory_struct.rb +16 -0
  22. data/lib/workos/types/directory_user_struct.rb +19 -0
  23. data/lib/workos/types/intent_enum.rb +1 -0
  24. data/lib/workos/version.rb +1 -1
  25. data/sorbet/rbi/gems/addressable.rbi +199 -0
  26. data/sorbet/rbi/gems/ast.rbi +49 -0
  27. data/sorbet/rbi/gems/codecov.rbi +37 -0
  28. data/sorbet/rbi/gems/crack.rbi +62 -0
  29. data/sorbet/rbi/gems/docile.rbi +36 -0
  30. data/sorbet/rbi/gems/hashdiff.rbi +66 -0
  31. data/sorbet/rbi/gems/parallel.rbi +83 -0
  32. data/sorbet/rbi/gems/parser.rbi +1429 -0
  33. data/sorbet/rbi/gems/public_suffix.rbi +104 -0
  34. data/sorbet/rbi/gems/rainbow.rbi +118 -0
  35. data/sorbet/rbi/gems/rake.rbi +644 -0
  36. data/sorbet/rbi/gems/regexp_parser.rbi +926 -0
  37. data/sorbet/rbi/gems/rexml.rbi +628 -0
  38. data/sorbet/rbi/gems/rspec-core.rbi +1898 -0
  39. data/sorbet/rbi/gems/rspec-expectations.rbi +1127 -0
  40. data/sorbet/rbi/gems/rspec-mocks.rbi +1099 -0
  41. data/sorbet/rbi/gems/rspec-support.rbi +280 -0
  42. data/sorbet/rbi/gems/rspec.rbi +15 -0
  43. data/sorbet/rbi/gems/rubocop-ast.rbi +1355 -0
  44. data/sorbet/rbi/gems/rubocop.rbi +7253 -0
  45. data/sorbet/rbi/gems/ruby-progressbar.rbi +304 -0
  46. data/sorbet/rbi/gems/simplecov-html.rbi +35 -0
  47. data/sorbet/rbi/gems/simplecov.rbi +406 -0
  48. data/sorbet/rbi/gems/unicode-display_width.rbi +17 -0
  49. data/sorbet/rbi/gems/vcr.rbi +572 -0
  50. data/sorbet/rbi/gems/webmock.rbi +556 -0
  51. data/sorbet/rbi/gems/yard.rbi +1165 -0
  52. data/sorbet/rbi/sorbet-typed/lib/rake/all/rake.rbi +645 -0
  53. data/sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi +1891 -0
  54. data/sorbet/rbi/sorbet-typed/lib/rubocop/~>0.85/rubocop.rbi +2072 -0
  55. data/sorbet/rbi/sorbet-typed/lib/yard/all/yard.rbi +1214 -0
  56. data/sorbet/rbi/todo.rbi +1 -3
  57. data/spec/lib/workos/audit_trail_spec.rb +0 -8
  58. data/spec/lib/workos/directory_sync_spec.rb +347 -40
  59. data/spec/lib/workos/passwordless_spec.rb +0 -8
  60. data/spec/lib/workos/portal_spec.rb +65 -11
  61. data/spec/lib/workos/sso_spec.rb +142 -76
  62. data/spec/spec_helper.rb +2 -1
  63. data/spec/support/fixtures/vcr_cassettes/directory_sync/delete_directory.yml +72 -0
  64. data/spec/support/fixtures/vcr_cassettes/{sso/list_connections.yml → directory_sync/list_directories/with_after.yml} +7 -7
  65. data/spec/support/fixtures/vcr_cassettes/{sso/list_connections_with_limit_param.yml → directory_sync/list_directories/with_before.yml} +8 -8
  66. data/spec/support/fixtures/vcr_cassettes/{sso/list_connections_with_connection_type_param.yml → directory_sync/list_directories/with_domain.yml} +11 -10
  67. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_limit.yml +74 -0
  68. data/spec/support/fixtures/vcr_cassettes/directory_sync/{list_directories.yml → list_directories/with_no_options.yml} +1 -1
  69. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_search.yml +73 -0
  70. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_after.yml +76 -0
  71. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_before.yml +74 -0
  72. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_directory.yml +78 -0
  73. data/spec/support/fixtures/vcr_cassettes/{sso/list_connections_with_before_param.yml → directory_sync/list_groups/with_limit.yml} +12 -11
  74. data/spec/support/fixtures/vcr_cassettes/directory_sync/{list_groups.yml → list_groups/with_no_options.yml} +16 -6
  75. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_user.yml +72 -0
  76. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_after.yml +86 -0
  77. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_before.yml +75 -0
  78. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_directory.yml +93 -0
  79. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_group.yml +76 -0
  80. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_limit.yml +75 -0
  81. data/spec/support/fixtures/vcr_cassettes/directory_sync/{list_users.yml → list_users/with_no_options.yml} +16 -6
  82. data/spec/support/fixtures/vcr_cassettes/organization/get.yml +73 -0
  83. data/spec/support/fixtures/vcr_cassettes/organization/get_invalid.yml +72 -0
  84. data/spec/support/fixtures/vcr_cassettes/organization/update.yml +73 -0
  85. data/spec/support/fixtures/vcr_cassettes/organization/update_invalid.yml +73 -0
  86. data/spec/support/fixtures/vcr_cassettes/portal/generate_link_dsync.yml +72 -0
  87. data/spec/support/fixtures/vcr_cassettes/portal/{generate_link.yml → generate_link_sso.yml} +1 -1
  88. data/spec/support/fixtures/vcr_cassettes/sso/create_connection_with_valid_source.yml +3 -3
  89. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_after.yml +73 -0
  90. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_before.yml +73 -0
  91. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_connection_type.yml +73 -0
  92. data/spec/support/fixtures/vcr_cassettes/sso/{list_connections_with_domain_param.yml → list_connections/with_domain.yml} +6 -6
  93. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_limit.yml +74 -0
  94. data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_no_options.yml +73 -0
  95. data/spec/support/fixtures/vcr_cassettes/sso/{list_connections_with_organization_id_param.yml → list_connections/with_organization_id.yml} +6 -6
  96. data/workos.gemspec +2 -0
  97. metadata +109 -42
  98. data/sorbet/rbi/hidden-definitions/errors.txt +0 -24896
  99. data/sorbet/rbi/hidden-definitions/hidden.rbi +0 -38411
  100. data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +0 -8684
  101. data/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi +0 -4222
  102. data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +0 -111
  103. data/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +0 -543
  104. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories_with_domain_param.yml +0 -63
  105. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups_with_directory_param.yml +0 -62
  106. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users_with_directory_param.yml +0 -62
  107. data/spec/support/fixtures/vcr_cassettes/sso/list_connections_with_after_param.yml +0 -72
@@ -1,63 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.workos.com/directories?domain=foo-corp.com
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/2.7.1; x86_64-darwin19; v0.2.3
18
- Authorization:
19
- - Bearer <API_KEY>
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
- 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
- - '08feb93b-22e8-4955-b17d-0e5efa1ed6a4'
47
- Content-Type:
48
- - application/json; charset=utf-8
49
- Content-Length:
50
- - '330'
51
- Etag:
52
- - W/"14a-Q+U+kuKWjl8FQwSosUsvUraY82A"
53
- Date:
54
- - Thu, 30 Apr 2020 03:42:20 GMT
55
- Via:
56
- - 1.1 vegur
57
- body:
58
- encoding: UTF-8
59
- string: '{"object":"list","listMetadata":{"before":null,"after":null},"data":[{"object":"directory","id":"directory_edp_01E64QQVQTCB0DECJ9CFNXEWDW","external_key":"lA3gS1kCZMCkk82E","state":"linked","type":"gsuite
60
- directory","name":"Foo Corp","bearer_token":null,"client_id":"project_01DFYCG8RCB1DB6DKFTGXF4Q9F","domain":"foo-corp.com"}]}'
61
- http_version:
62
- recorded_at: Thu, 30 Apr 2020 03:42:20 GMT
63
- recorded_with: VCR 5.0.0
@@ -1,62 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.workos.com/directory_groups?directory=directory_edp_01E64QQVQTCB0DECJ9CFNXEWDW
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/2.7.1; x86_64-darwin19; v0.2.3
18
- Authorization:
19
- - Bearer <API_KEY>
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
- 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
- - 87133408-9847-42ef-a6da-183280e6402c
47
- Content-Type:
48
- - application/json; charset=utf-8
49
- Content-Length:
50
- - '813'
51
- Etag:
52
- - W/"32d-Pi2S8kCjmY/SVPoMmwh0JNvHbgY"
53
- Date:
54
- - Thu, 30 Apr 2020 04:31:47 GMT
55
- Via:
56
- - 1.1 vegur
57
- body:
58
- encoding: UTF-8
59
- string: '{"object":"list","listMetadata":{"before":"directory_grp_01E64QTDHHE80V9N03ZTDV5SXD","after":null},"data":[{"id":"directory_grp_01E64QTDNS0EGJ0FMCVY9BWGZT","name":"Walrus"},{"id":"directory_grp_01E64QTDJTE8P0S3JKM7KV848A","name":"Design team"}]}'
60
- http_version:
61
- recorded_at: Thu, 30 Apr 2020 04:31:47 GMT
62
- recorded_with: VCR 5.0.0
@@ -1,62 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.workos.com/directory_users?directory=directory_edp_01E64QQVQTCB0DECJ9CFNXEWDW
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/2.7.1; x86_64-darwin19; v0.2.3
18
- Authorization:
19
- - Bearer <API_KEY>
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
- 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
- - 91802a43-3053-41e6-9a71-44fe88321224
47
- Content-Type:
48
- - application/json; charset=utf-8
49
- Etag:
50
- - W/"e55-P0NG6CugY3cr6/bL+B4xBkwDGns"
51
- Date:
52
- - Thu, 30 Apr 2020 04:36:02 GMT
53
- Transfer-Encoding:
54
- - chunked
55
- Via:
56
- - 1.1 vegur
57
- body:
58
- encoding: ASCII-8BIT
59
- string: '{"object":"list","listMetadata":{"before":null,"after":null},"data":[{"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"}]}'
60
- http_version:
61
- recorded_at: Thu, 30 Apr 2020 04:36:02 GMT
62
- recorded_with: VCR 5.0.0
@@ -1,72 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.workos.com/connections?after=conn_01EQKPMQAPV02H270HKVNS4CTA
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/2.7.1; x86_64-darwin19; v0.10.0
18
- Authorization:
19
- - Bearer <API_KEY>
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
- - 6fe135fd-2c1a-4cb4-9b84-4b4df29f2547
57
- Content-Type:
58
- - application/json; charset=utf-8
59
- Etag:
60
- - W/"3279-4NACEUGzYeJbQPDDN0On9p19UnQ"
61
- Date:
62
- - Wed, 27 Jan 2021 23:01:32 GMT
63
- Transfer-Encoding:
64
- - chunked
65
- Via:
66
- - 1.1 vegur
67
- body:
68
- encoding: ASCII-8BIT
69
- string: '{"data":[{"object":"connection","id":"conn_01EWDSQJNXM1M33MTVSQ2ZR5M5","status":"unlinked","state":"draft","name":"Example","connection_type":"OktaSAML","oidc_client_id":null,"oidc_client_secret":null,"oidc_discovery_endpoint":null,"oidc_redirect_uri":null,"saml_entity_id":null,"saml_idp_url":null,"saml_relying_party_private_key":null,"saml_relying_party_public_key":null,"saml_x509_certs":null,"organization_id":"org_01EWDSPEYNG87X1KMBNA7315F7","oauth_uid":null,"oauth_secret":null,"oauth_redirect_uri":null,"domains":[{"object":"connection_domain","id":"domain_01EWDSQJP5HPMD4BQQ031WG55V","domain":"example.com"}]}],"listMetadata":{"before":"conn_01ERFVD49HW0H9MW6GH8XYRQRR","after":null}}'
70
- http_version:
71
- recorded_at: Wed, 27 Jan 2021 23:01:32 GMT
72
- recorded_with: VCR 5.0.0