workos 10.2.1 → 10.4.0

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.
Files changed (292) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +2 -2
  3. data/.github/workflows/docs.yml +3 -3
  4. data/.github/workflows/lint.yml +2 -2
  5. data/.github/workflows/release-please.yml +3 -3
  6. data/.github/workflows/release.yml +2 -2
  7. data/.last-synced-sha +1 -1
  8. data/.oagen-manifest.json +393 -4
  9. data/.release-please-manifest.json +1 -1
  10. data/.ruby-version +1 -1
  11. data/CHANGELOG.md +328 -0
  12. data/Gemfile.lock +14 -14
  13. data/README.md +23 -0
  14. data/lib/workos/admin_portal.rb +2 -2
  15. data/lib/workos/agents/agent_blueprint.rb +43 -0
  16. data/lib/workos/agents/agent_blueprint_invocable_by.rb +7 -0
  17. data/lib/workos/agents/agent_blueprint_session_setting.rb +25 -0
  18. data/lib/workos/agents/agent_blueprints_create_request.rb +31 -0
  19. data/lib/workos/agents/agent_blueprints_create_request_invocable_by.rb +22 -0
  20. data/lib/workos/agents/agent_blueprints_create_request_session_setting.rb +7 -0
  21. data/lib/workos/agents/agent_blueprints_token_mint_token_request.rb +34 -0
  22. data/lib/workos/agents/agent_blueprints_token_validate_token_request.rb +18 -0
  23. data/lib/workos/agents/agent_blueprints_update_request.rb +31 -0
  24. data/lib/workos/agents/agent_blueprints_update_request_invocable_by.rb +7 -0
  25. data/lib/workos/agents/agent_blueprints_update_request_session_setting.rb +25 -0
  26. data/lib/workos/agents/agent_instance.rb +40 -0
  27. data/lib/workos/agents/agent_instance_session.rb +40 -0
  28. data/lib/workos/agents/agent_token.rb +40 -0
  29. data/lib/workos/agents/agent_token_validation.rb +40 -0
  30. data/lib/workos/agents.rb +399 -0
  31. data/lib/workos/audit_logs.rb +23 -5
  32. data/lib/workos/authorization.rb +3 -3
  33. data/lib/workos/base_client.rb +6 -2
  34. data/lib/workos/client.rb +4 -0
  35. data/lib/workos/configuration.rb +3 -2
  36. data/lib/workos/inflections.rb +17 -0
  37. data/lib/workos/multi_factor_auth.rb +1 -1
  38. data/lib/workos/organizations/create_it_contact.rb +18 -0
  39. data/lib/workos/organizations/invite_it_contact.rb +18 -0
  40. data/lib/workos/organizations/it_contact.rb +31 -0
  41. data/lib/workos/organizations/it_contact_list.rb +25 -0
  42. data/lib/workos/organizations/organization_input.rb +10 -1
  43. data/lib/workos/organizations/update_audit_logs_retention.rb +13 -1
  44. data/lib/workos/organizations.rb +110 -1
  45. data/lib/workos/pipes/connected_account.rb +9 -0
  46. data/lib/workos/pipes/create_data_integration.rb +3 -0
  47. data/lib/workos/pipes/data_integration.rb +3 -0
  48. data/lib/workos/pipes/data_integration_installation.rb +9 -0
  49. data/lib/workos/pipes/data_integrations_get_data_integration_authorize_url_request.rb +3 -0
  50. data/lib/workos/pipes/data_integrations_get_user_token_request.rb +11 -2
  51. data/lib/workos/pipes/data_integrations_list_response_data.rb +18 -3
  52. data/lib/workos/pipes/data_integrations_list_response_data_connected_account.rb +9 -0
  53. data/lib/workos/pipes/data_integrations_upsert_api_key_request.rb +25 -1
  54. data/lib/workos/pipes/data_integrations_upsert_client_credentials_request.rb +6 -0
  55. data/lib/workos/pipes/data_integrations_vend_credentials_request.rb +11 -2
  56. data/lib/workos/pipes.rb +324 -17
  57. data/lib/workos/platform_teams/create_team.rb +22 -0
  58. data/lib/workos/platform_teams/team.rb +37 -0
  59. data/lib/workos/platform_teams.rb +58 -0
  60. data/lib/workos/session_manager.rb +11 -6
  61. data/lib/workos/shared/account_selection_required_error.rb +22 -0
  62. data/lib/workos/shared/agent_blueprint_created.rb +34 -0
  63. data/lib/workos/shared/agent_blueprint_created_data.rb +43 -0
  64. data/lib/workos/shared/agent_blueprint_created_data_invocable_by.rb +22 -0
  65. data/lib/workos/shared/agent_blueprint_created_data_session_setting.rb +25 -0
  66. data/lib/workos/shared/agent_blueprint_deleted.rb +34 -0
  67. data/lib/workos/shared/agent_blueprint_deleted_data.rb +31 -0
  68. data/lib/workos/shared/agent_blueprint_updated.rb +34 -0
  69. data/lib/workos/shared/agent_blueprint_updated_data.rb +7 -0
  70. data/lib/workos/shared/agent_blueprint_updated_data_invocable_by.rb +7 -0
  71. data/lib/workos/shared/agent_blueprint_updated_data_session_setting.rb +7 -0
  72. data/lib/workos/shared/agent_instance_created.rb +34 -0
  73. data/lib/workos/shared/agent_instance_created_data.rb +40 -0
  74. data/lib/workos/shared/agent_instance_deleted.rb +34 -0
  75. data/lib/workos/shared/agent_instance_deleted_data.rb +40 -0
  76. data/lib/workos/shared/agent_instance_session_created.rb +34 -0
  77. data/lib/workos/shared/agent_instance_session_created_data.rb +43 -0
  78. data/lib/workos/shared/agent_instance_session_revoked.rb +34 -0
  79. data/lib/workos/shared/agent_instance_session_revoked_data.rb +40 -0
  80. data/lib/workos/shared/pipe_connected_account.rb +15 -0
  81. data/lib/workos/shared/pipes_account_connection_add_failed.rb +34 -0
  82. data/lib/workos/shared/pipes_account_connection_add_failed_data.rb +49 -0
  83. data/lib/workos/shared/pipes_account_connection_connected.rb +34 -0
  84. data/lib/workos/shared/pipes_account_connection_connection_failed.rb +34 -0
  85. data/lib/workos/shared/pipes_account_connection_connection_failed_data.rb +7 -0
  86. data/lib/workos/shared/pipes_account_connection_disconnected.rb +34 -0
  87. data/lib/workos/shared/pipes_account_connection_reauthorization_needed.rb +34 -0
  88. data/lib/workos/shared/pipes_connected_account_connection_failed_data.rb +1 -40
  89. data/lib/workos/shared/resource_export_completed.rb +34 -0
  90. data/lib/workos/shared/resource_export_completed_data.rb +22 -0
  91. data/lib/workos/shared/resource_export_created.rb +34 -0
  92. data/lib/workos/shared/resource_export_created_data.rb +22 -0
  93. data/lib/workos/shared/resource_export_downloaded.rb +34 -0
  94. data/lib/workos/shared/resource_export_downloaded_data.rb +22 -0
  95. data/lib/workos/shared/resource_export_failed.rb +34 -0
  96. data/lib/workos/shared/resource_export_failed_data.rb +22 -0
  97. data/lib/workos/shared/waitlist_user.rb +8 -5
  98. data/lib/workos/sso/create_connection.rb +37 -0
  99. data/lib/workos/sso/create_connection_attribute_maps.rb +22 -0
  100. data/lib/workos/sso/create_connection_key_pair.rb +22 -0
  101. data/lib/workos/sso/create_connection_oidc_options.rb +43 -0
  102. data/lib/workos/sso/create_connection_saml_options.rb +40 -0
  103. data/lib/workos/sso/create_connection_standard_attributes.rb +34 -0
  104. data/lib/workos/sso/create_saml_idp_signing_certificate.rb +18 -0
  105. data/lib/workos/sso/patch_connection.rb +34 -0
  106. data/lib/workos/sso/patch_connection_attribute_maps.rb +22 -0
  107. data/lib/workos/sso/patch_connection_oidc_options.rb +40 -0
  108. data/lib/workos/sso/patch_connection_saml_options.rb +31 -0
  109. data/lib/workos/sso/patch_connection_standard_attributes.rb +7 -0
  110. data/lib/workos/sso/saml_idp_signing_certificate.rb +34 -0
  111. data/lib/workos/sso/saml_idp_signing_certificate_list.rb +22 -0
  112. data/lib/workos/sso/saml_sp_encryption_certificate.rb +34 -0
  113. data/lib/workos/sso/saml_sp_encryption_certificate_list.rb +22 -0
  114. data/lib/workos/sso/saml_sp_signing_certificate.rb +34 -0
  115. data/lib/workos/sso/token_query.rb +11 -2
  116. data/lib/workos/sso.rb +305 -4
  117. data/lib/workos/types/agent_blueprints_token_mint_token_request_type.rb +15 -0
  118. data/lib/workos/types/agent_instance_created_data_type.rb +13 -0
  119. data/lib/workos/types/agent_instance_deleted_data_type.rb +9 -0
  120. data/lib/workos/types/agent_instance_session_status.rb +14 -0
  121. data/lib/workos/types/agent_instance_type.rb +9 -0
  122. data/lib/workos/types/authenticate_response_authentication_method.rb +1 -4
  123. data/lib/workos/types/connected_account_connection_role.rb +13 -0
  124. data/lib/workos/types/connection_activated_data_connection_type.rb +1 -4
  125. data/lib/workos/types/connection_type.rb +1 -4
  126. data/lib/workos/types/connections_connection_type.rb +1 -4
  127. data/lib/workos/types/create_connection_oidc_options_id_token_signature_algorithm.rb +24 -0
  128. data/lib/workos/types/create_connection_oidc_options_token_authentication_method.rb +14 -0
  129. data/lib/workos/types/create_data_integration_ownership.rb +13 -0
  130. data/lib/workos/types/create_webhook_endpoint_events.rb +13 -1
  131. data/lib/workos/types/data_integration_installation_connection_role.rb +9 -0
  132. data/lib/workos/types/data_integration_ownership.rb +9 -0
  133. data/lib/workos/types/data_integrations_get_data_integration_authorize_url_request_connection_owner.rb +9 -0
  134. data/lib/workos/types/data_integrations_get_user_token_request_connection_owner.rb +9 -0
  135. data/lib/workos/types/data_integrations_list_response_data_connected_account_connection_role.rb +9 -0
  136. data/lib/workos/types/data_integrations_list_response_data_connection_owner.rb +9 -0
  137. data/lib/workos/types/data_integrations_upsert_api_key_request_connection_owner.rb +9 -0
  138. data/lib/workos/types/data_integrations_upsert_client_credentials_request_connection_owner.rb +9 -0
  139. data/lib/workos/types/data_integrations_vend_credentials_request_connection_owner.rb +9 -0
  140. data/lib/workos/types/invite_it_contact_intents.rb +16 -0
  141. data/lib/workos/types/patch_connection_oidc_options_id_token_signature_algorithm.rb +9 -0
  142. data/lib/workos/types/patch_connection_oidc_options_token_authentication_method.rb +9 -0
  143. data/lib/workos/types/pipe_connected_account_auth_method.rb +9 -0
  144. data/lib/workos/types/pipe_connected_account_connection_role.rb +9 -0
  145. data/lib/workos/types/pipes_ownership.rb +9 -0
  146. data/lib/workos/types/resource_export_completed_data_resource_type.rb +18 -0
  147. data/lib/workos/types/resource_export_created_data_resource_type.rb +9 -0
  148. data/lib/workos/types/resource_export_downloaded_data_resource_type.rb +9 -0
  149. data/lib/workos/types/resource_export_failed_data_resource_type.rb +9 -0
  150. data/lib/workos/types/session_created_data_status.rb +1 -6
  151. data/lib/workos/types/session_revoked_data_status.rb +1 -1
  152. data/lib/workos/types/sso_grant_type.rb +13 -0
  153. data/lib/workos/types/team_production_state.rb +15 -0
  154. data/lib/workos/types/token_query_grant_type.rb +9 -0
  155. data/lib/workos/types/update_audit_logs_retention_retention_period.rb +32 -0
  156. data/lib/workos/types/user_identities_get_item_provider.rb +1 -4
  157. data/lib/workos/types/user_management_waitlists_state.rb +14 -0
  158. data/lib/workos/types/user_sessions_status.rb +1 -1
  159. data/lib/workos/types/waitlist_entry_state.rb +9 -0
  160. data/lib/workos/types/waitlist_user_state.rb +1 -6
  161. data/lib/workos/user_management/authentication_oauth_failed_data.rb +5 -2
  162. data/lib/workos/user_management/authentication_oauth_succeeded_data.rb +5 -2
  163. data/lib/workos/user_management/authkit_oauth_resource.rb +34 -0
  164. data/lib/workos/user_management/create_authkit_oauth_resource.rb +22 -0
  165. data/lib/workos/user_management/create_password_reset_token.rb +1 -12
  166. data/lib/workos/user_management/create_waitlist_entry.rb +25 -0
  167. data/lib/workos/user_management/email_completion_session_authenticate_request.rb +43 -0
  168. data/lib/workos/user_management/waitlist.rb +28 -0
  169. data/lib/workos/user_management/waitlist_entry.rb +43 -0
  170. data/lib/workos/user_management.rb +263 -0
  171. data/lib/workos/version.rb +1 -1
  172. data/lib/workos.rb +1 -0
  173. data/rbi/workos/account_selection_required_error.rbi +30 -0
  174. data/rbi/workos/agent_blueprint.rbi +72 -0
  175. data/rbi/workos/agent_blueprint_created.rbi +54 -0
  176. data/rbi/workos/agent_blueprint_created_data.rbi +72 -0
  177. data/rbi/workos/agent_blueprint_created_data_invocable_by.rbi +30 -0
  178. data/rbi/workos/agent_blueprint_created_data_session_setting.rbi +36 -0
  179. data/rbi/workos/agent_blueprint_deleted.rbi +54 -0
  180. data/rbi/workos/agent_blueprint_deleted_data.rbi +48 -0
  181. data/rbi/workos/agent_blueprint_invocable_by.rbi +30 -0
  182. data/rbi/workos/agent_blueprint_session_setting.rbi +36 -0
  183. data/rbi/workos/agent_blueprint_updated.rbi +54 -0
  184. data/rbi/workos/agent_blueprint_updated_data.rbi +72 -0
  185. data/rbi/workos/agent_blueprint_updated_data_invocable_by.rbi +30 -0
  186. data/rbi/workos/agent_blueprint_updated_data_session_setting.rbi +36 -0
  187. data/rbi/workos/agent_blueprints_create_request.rbi +48 -0
  188. data/rbi/workos/agent_blueprints_create_request_invocable_by.rbi +30 -0
  189. data/rbi/workos/agent_blueprints_create_request_session_setting.rbi +36 -0
  190. data/rbi/workos/agent_blueprints_token_mint_token_request.rbi +54 -0
  191. data/rbi/workos/agent_blueprints_token_validate_token_request.rbi +24 -0
  192. data/rbi/workos/agent_blueprints_update_request.rbi +48 -0
  193. data/rbi/workos/agent_blueprints_update_request_invocable_by.rbi +30 -0
  194. data/rbi/workos/agent_blueprints_update_request_session_setting.rbi +36 -0
  195. data/rbi/workos/agent_instance.rbi +66 -0
  196. data/rbi/workos/agent_instance_created.rbi +54 -0
  197. data/rbi/workos/agent_instance_created_data.rbi +66 -0
  198. data/rbi/workos/agent_instance_deleted.rbi +54 -0
  199. data/rbi/workos/agent_instance_deleted_data.rbi +66 -0
  200. data/rbi/workos/agent_instance_session.rbi +66 -0
  201. data/rbi/workos/agent_instance_session_created.rbi +54 -0
  202. data/rbi/workos/agent_instance_session_created_data.rbi +72 -0
  203. data/rbi/workos/agent_instance_session_revoked.rbi +54 -0
  204. data/rbi/workos/agent_instance_session_revoked_data.rbi +66 -0
  205. data/rbi/workos/agent_token.rbi +66 -0
  206. data/rbi/workos/agent_token_validation.rbi +66 -0
  207. data/rbi/workos/agents.rbi +134 -0
  208. data/rbi/workos/audit_logs.rbi +26 -2
  209. data/rbi/workos/authentication_oauth_failed_data.rbi +6 -0
  210. data/rbi/workos/authentication_oauth_succeeded_data.rbi +6 -0
  211. data/rbi/workos/authkit_oauth_resource.rbi +54 -0
  212. data/rbi/workos/client.rbi +3 -0
  213. data/rbi/workos/connected_account.rbi +18 -0
  214. data/rbi/workos/create_authkit_oauth_resource.rbi +30 -0
  215. data/rbi/workos/create_connection.rbi +60 -0
  216. data/rbi/workos/create_connection_attribute_maps.rbi +30 -0
  217. data/rbi/workos/create_connection_key_pair.rbi +30 -0
  218. data/rbi/workos/create_connection_oidc_options.rbi +72 -0
  219. data/rbi/workos/create_connection_saml_options.rbi +66 -0
  220. data/rbi/workos/create_connection_standard_attributes.rbi +54 -0
  221. data/rbi/workos/create_data_integration.rbi +6 -0
  222. data/rbi/workos/create_it_contact.rbi +24 -0
  223. data/rbi/workos/create_saml_idp_signing_certificate.rbi +24 -0
  224. data/rbi/workos/create_team.rbi +30 -0
  225. data/rbi/workos/create_waitlist_entry.rbi +36 -0
  226. data/rbi/workos/data_integration.rbi +6 -0
  227. data/rbi/workos/data_integration_installation.rbi +19 -1
  228. data/rbi/workos/data_integrations_get_data_integration_authorize_url_request.rbi +6 -0
  229. data/rbi/workos/data_integrations_get_user_token_request.rbi +18 -0
  230. data/rbi/workos/data_integrations_list_response_data.rbi +12 -0
  231. data/rbi/workos/data_integrations_list_response_data_connected_account.rbi +18 -0
  232. data/rbi/workos/data_integrations_upsert_api_key_request.rbi +12 -0
  233. data/rbi/workos/data_integrations_upsert_client_credentials_request.rbi +12 -0
  234. data/rbi/workos/data_integrations_vend_credentials_request.rbi +18 -0
  235. data/rbi/workos/email_completion_session_authenticate_request.rbi +72 -0
  236. data/rbi/workos/invite_it_contact.rbi +24 -0
  237. data/rbi/workos/it_contact.rbi +48 -0
  238. data/rbi/workos/organizations.rbi +45 -0
  239. data/rbi/workos/patch_connection.rbi +54 -0
  240. data/rbi/workos/patch_connection_attribute_maps.rbi +30 -0
  241. data/rbi/workos/patch_connection_oidc_options.rbi +66 -0
  242. data/rbi/workos/patch_connection_saml_options.rbi +48 -0
  243. data/rbi/workos/patch_connection_standard_attributes.rbi +54 -0
  244. data/rbi/workos/pipe_connected_account.rbi +30 -0
  245. data/rbi/workos/pipes.rbi +122 -11
  246. data/rbi/workos/pipes_account_connection_add_failed.rbi +54 -0
  247. data/rbi/workos/pipes_account_connection_add_failed_data.rbi +84 -0
  248. data/rbi/workos/pipes_account_connection_connected.rbi +54 -0
  249. data/rbi/workos/pipes_account_connection_connection_failed.rbi +54 -0
  250. data/rbi/workos/pipes_account_connection_connection_failed_data.rbi +84 -0
  251. data/rbi/workos/pipes_account_connection_disconnected.rbi +54 -0
  252. data/rbi/workos/pipes_account_connection_reauthorization_needed.rbi +54 -0
  253. data/rbi/workos/pipes_connected_account_connection_failed_data.rbi +6 -0
  254. data/rbi/workos/platform_teams.rbi +30 -0
  255. data/rbi/workos/resource_export_completed.rbi +54 -0
  256. data/rbi/workos/resource_export_completed_data.rbi +30 -0
  257. data/rbi/workos/resource_export_created.rbi +54 -0
  258. data/rbi/workos/resource_export_created_data.rbi +30 -0
  259. data/rbi/workos/resource_export_downloaded.rbi +54 -0
  260. data/rbi/workos/resource_export_downloaded_data.rbi +30 -0
  261. data/rbi/workos/resource_export_failed.rbi +54 -0
  262. data/rbi/workos/resource_export_failed_data.rbi +30 -0
  263. data/rbi/workos/saml_idp_signing_certificate.rbi +54 -0
  264. data/rbi/workos/saml_idp_signing_certificate_list.rbi +30 -0
  265. data/rbi/workos/saml_sp_encryption_certificate.rbi +54 -0
  266. data/rbi/workos/saml_sp_encryption_certificate_list.rbi +30 -0
  267. data/rbi/workos/saml_sp_signing_certificate.rbi +54 -0
  268. data/rbi/workos/sso.rbi +155 -2
  269. data/rbi/workos/team.rbi +60 -0
  270. data/rbi/workos/token_query.rbi +20 -2
  271. data/rbi/workos/update_audit_logs_retention.rbi +8 -2
  272. data/rbi/workos/user_management.rbi +92 -0
  273. data/rbi/workos/waitlist.rbi +42 -0
  274. data/rbi/workos/waitlist_entry.rbi +72 -0
  275. data/rbi/workos/waitlist_user.rbi +12 -6
  276. data/test/workos/test_agents.rb +105 -1
  277. data/test/workos/test_agents_model_round_trip.rb +245 -0
  278. data/test/workos/test_audit_logs.rb +11 -2
  279. data/test/workos/test_authorization.rb +6 -6
  280. data/test/workos/test_organizations.rb +41 -1
  281. data/test/workos/test_organizations_model_round_trip.rb +40 -1
  282. data/test/workos/test_pipes.rb +64 -0
  283. data/test/workos/test_pipes_model_round_trip.rb +35 -5
  284. data/test/workos/test_platform_teams.rb +41 -0
  285. data/test/workos/test_platform_teams_model_round_trip.rb +41 -0
  286. data/test/workos/test_session.rb +63 -0
  287. data/test/workos/test_shared_model_round_trip.rb +610 -2
  288. data/test/workos/test_sso.rb +108 -2
  289. data/test/workos/test_sso_model_round_trip.rb +262 -2
  290. data/test/workos/test_user_management.rb +80 -0
  291. data/test/workos/test_user_management_model_round_trip.rb +110 -2
  292. metadata +194 -1
@@ -55,6 +55,7 @@ class PipesModelRoundTripTest < Minitest::Test
55
55
  def test_create_data_integration_round_trip
56
56
  fixture = {
57
57
  "provider" => "stub",
58
+ "ownership" => "stub",
58
59
  "description" => nil,
59
60
  "enabled" => true,
60
61
  "scopes" => nil,
@@ -126,6 +127,7 @@ class PipesModelRoundTripTest < Minitest::Test
126
127
  "id" => "stub",
127
128
  "slug" => "stub",
128
129
  "integration_type" => "stub",
130
+ "ownership" => "stub",
129
131
  "description" => nil,
130
132
  "enabled" => true,
131
133
  "state" => "stub",
@@ -192,6 +194,9 @@ class PipesModelRoundTripTest < Minitest::Test
192
194
  fixture = {
193
195
  "object" => "connected_account",
194
196
  "id" => "stub",
197
+ "connection_role" => "stub",
198
+ "account_identifier" => nil,
199
+ "account_display_name" => nil,
195
200
  "user_id" => nil,
196
201
  "organization_id" => nil,
197
202
  "scopes" => [],
@@ -208,6 +213,8 @@ class PipesModelRoundTripTest < Minitest::Test
208
213
  json = model.to_h
209
214
  assert_kind_of Hash, json
210
215
  assert_equal fixture["id"], json[:id]
216
+ assert_nil json[:account_identifier]
217
+ assert_nil json[:account_display_name]
211
218
  assert_nil json[:user_id]
212
219
  assert_nil json[:organization_id]
213
220
  assert_equal fixture["created_at"], json[:created_at]
@@ -237,10 +244,12 @@ class PipesModelRoundTripTest < Minitest::Test
237
244
  "credentials_type" => "stub",
238
245
  "scopes" => nil,
239
246
  "auth_methods" => [],
247
+ "connection_owner" => "stub",
240
248
  "ownership" => "stub",
241
249
  "created_at" => "stub",
242
250
  "updated_at" => "stub",
243
- "connected_account" => nil
251
+ "connected_account" => nil,
252
+ "connected_accounts" => []
244
253
  }
245
254
  model = WorkOS::DataIntegrationsListResponseData.new(fixture.to_json)
246
255
  json = model.to_h
@@ -306,7 +315,10 @@ class PipesModelRoundTripTest < Minitest::Test
306
315
  def test_data_integration_installation_round_trip
307
316
  fixture = {
308
317
  "id" => "stub",
309
- "user_id" => "stub",
318
+ "connection_role" => "stub",
319
+ "account_identifier" => nil,
320
+ "account_display_name" => nil,
321
+ "user_id" => nil,
310
322
  "organization_id" => nil,
311
323
  "api_key_last_4" => nil
312
324
  }
@@ -314,7 +326,9 @@ class PipesModelRoundTripTest < Minitest::Test
314
326
  json = model.to_h
315
327
  assert_kind_of Hash, json
316
328
  assert_equal fixture["id"], json[:id]
317
- assert_equal fixture["user_id"], json[:user_id]
329
+ assert_nil json[:account_identifier]
330
+ assert_nil json[:account_display_name]
331
+ assert_nil json[:user_id]
318
332
  assert_nil json[:organization_id]
319
333
  assert_nil json[:api_key_last_4]
320
334
  fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
@@ -353,6 +367,8 @@ class PipesModelRoundTripTest < Minitest::Test
353
367
  fixture = {
354
368
  "user_id" => "stub",
355
369
  "organization_id" => "stub",
370
+ "connected_account_id" => "stub",
371
+ "connection_owner" => "stub",
356
372
  "secret" => "stub"
357
373
  }
358
374
  model = WorkOS::DataIntegrationsUpsertApiKeyRequest.new(fixture.to_json)
@@ -367,6 +383,7 @@ class PipesModelRoundTripTest < Minitest::Test
367
383
  fixture = {
368
384
  "user_id" => "stub",
369
385
  "organization_id" => "stub",
386
+ "connection_owner" => "stub",
370
387
  "return_to" => "stub",
371
388
  "config" => {}
372
389
  }
@@ -381,6 +398,8 @@ class PipesModelRoundTripTest < Minitest::Test
381
398
  fixture = {
382
399
  "user_id" => "stub",
383
400
  "organization_id" => "stub",
401
+ "connected_account_id" => "stub",
402
+ "connection_owner" => "stub",
384
403
  "client_id" => "stub",
385
404
  "client_secret" => "stub",
386
405
  "config" => {}
@@ -397,7 +416,10 @@ class PipesModelRoundTripTest < Minitest::Test
397
416
  def test_data_integrations_vend_credentials_request_round_trip
398
417
  fixture = {
399
418
  "user_id" => "stub",
400
- "organization_id" => "stub"
419
+ "organization_id" => "stub",
420
+ "connected_account_id" => "stub",
421
+ "connection_owner" => "stub",
422
+ "supports_multiple_connections" => true
401
423
  }
402
424
  model = WorkOS::DataIntegrationsVendCredentialsRequest.new(fixture.to_json)
403
425
  json = model.to_h
@@ -409,7 +431,10 @@ class PipesModelRoundTripTest < Minitest::Test
409
431
  def test_data_integrations_get_user_token_request_round_trip
410
432
  fixture = {
411
433
  "user_id" => "stub",
412
- "organization_id" => nil
434
+ "organization_id" => nil,
435
+ "connected_account_id" => "stub",
436
+ "connection_owner" => "stub",
437
+ "supports_multiple_connections" => true
413
438
  }
414
439
  model = WorkOS::DataIntegrationsGetUserTokenRequest.new(fixture.to_json)
415
440
  json = model.to_h
@@ -422,6 +447,9 @@ class PipesModelRoundTripTest < Minitest::Test
422
447
  fixture = {
423
448
  "object" => "connected_account",
424
449
  "id" => "stub",
450
+ "connection_role" => "stub",
451
+ "account_identifier" => nil,
452
+ "account_display_name" => nil,
425
453
  "user_id" => nil,
426
454
  "organization_id" => nil,
427
455
  "scopes" => [],
@@ -439,6 +467,8 @@ class PipesModelRoundTripTest < Minitest::Test
439
467
  json = model.to_h
440
468
  assert_kind_of Hash, json
441
469
  assert_equal fixture["id"], json[:id]
470
+ assert_nil json[:account_identifier]
471
+ assert_nil json[:account_display_name]
442
472
  assert_nil json[:user_id]
443
473
  assert_nil json[:organization_id]
444
474
  assert_equal fixture["created_at"], json[:created_at]
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ require "test_helper"
6
+
7
+ class PlatformTeamsTest < Minitest::Test
8
+ include FixtureHelper
9
+
10
+ def setup
11
+ @client = WorkOS::Client.new(api_key: "sk_test_123")
12
+ end
13
+
14
+ def test_create_team_returns_expected_result
15
+ stub_request(:post, %r{\Ahttps://api\.workos\.com/platform/teams(\?|\z)})
16
+ .to_return(body: "{}", status: 200)
17
+ result = @client.platform_teams.create_team(admin_email: "stub", name: "stub")
18
+ refute_nil result
19
+ end
20
+
21
+ def test_get_team_returns_expected_result
22
+ stub_request(:get, %r{\Ahttps://api\.workos\.com/platform/teams/stub(\?|\z)})
23
+ .to_return(body: "{}", status: 200)
24
+ result = @client.platform_teams.get_team(team_id: "stub")
25
+ refute_nil result
26
+ end
27
+
28
+ # Parameterized authentication error tests (one per endpoint).
29
+ [
30
+ {name: :create_team, verb: :post, url: %r{\Ahttps://api\.workos\.com/platform/teams(\?|\z)}, args: {admin_email: "stub", name: "stub"}},
31
+ {name: :get_team, verb: :get, url: %r{\Ahttps://api\.workos\.com/platform/teams/stub(\?|\z)}, args: {team_id: "stub"}}
32
+ ].each do |spec|
33
+ define_method("test_#{spec[:name]}_raises_authentication_error_on_401") do
34
+ stub_request(spec[:verb], spec[:url])
35
+ .to_return(body: '{"message": "Unauthorized"}', status: 401)
36
+ assert_raises(WorkOS::AuthenticationError) do
37
+ @client.platform_teams.send(spec[:name], **(spec[:args] || {}))
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ require "test_helper"
6
+
7
+ class PlatformTeamsModelRoundTripTest < Minitest::Test
8
+ def test_create_team_round_trip
9
+ fixture = {
10
+ "admin_email" => "stub",
11
+ "name" => "stub"
12
+ }
13
+ model = WorkOS::CreateTeam.new(fixture.to_json)
14
+ json = model.to_h
15
+ assert_kind_of Hash, json
16
+ assert_equal fixture["admin_email"], json[:admin_email]
17
+ assert_equal fixture["name"], json[:name]
18
+ fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
19
+ end
20
+
21
+ def test_team_round_trip
22
+ fixture = {
23
+ "object" => "team",
24
+ "id" => "stub",
25
+ "name" => "stub",
26
+ "production_state" => "stub",
27
+ "production_enabled_at" => nil,
28
+ "created_at" => "stub",
29
+ "updated_at" => "stub"
30
+ }
31
+ model = WorkOS::Team.new(fixture.to_json)
32
+ json = model.to_h
33
+ assert_kind_of Hash, json
34
+ assert_equal fixture["id"], json[:id]
35
+ assert_equal fixture["name"], json[:name]
36
+ assert_nil json[:production_enabled_at]
37
+ assert_equal fixture["created_at"], json[:created_at]
38
+ assert_equal fixture["updated_at"], json[:updated_at]
39
+ fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
40
+ end
41
+ end
@@ -220,6 +220,69 @@ class SessionTest < Minitest::Test
220
220
  assert_equal "session_expired", result.session_id
221
221
  end
222
222
 
223
+ # --- jwt_issuer -----------------------------------------------------------
224
+
225
+ def authenticate_with_issuer(jwt_issuer, iss)
226
+ rsa, pub = signing_key_pair
227
+ client = WorkOS::Client.new(api_key: "sk_test_session", client_id: "client_001", jwt_issuer: jwt_issuer)
228
+ sm = client.session_manager
229
+ claims = {"sid" => "session_iss", "exp" => Time.now.to_i + 60}
230
+ claims["iss"] = iss unless iss.nil?
231
+ access_token = make_jwt(claims, rsa)
232
+ sealed = sm.seal_data({"access_token" => access_token}, PASSWORD)
233
+
234
+ stub_request(:get, "https://api.workos.com/sso/jwks/client_001")
235
+ .to_return(status: 200, body: jwks_payload(pub).to_json)
236
+
237
+ sm.authenticate(seal_data: sealed, cookie_password: PASSWORD)
238
+ end
239
+
240
+ def test_authenticate_ignores_issuer_when_jwt_issuer_is_not_configured
241
+ result = authenticate_with_issuer(nil, "https://other.example.com")
242
+ assert_kind_of WorkOS::SessionManager::AuthSuccess, result
243
+ assert result.authenticated
244
+ end
245
+
246
+ def test_authenticate_accepts_matching_jwt_issuer
247
+ result = authenticate_with_issuer("https://api.workos.com", "https://api.workos.com")
248
+ assert_kind_of WorkOS::SessionManager::AuthSuccess, result
249
+ assert result.authenticated
250
+ end
251
+
252
+ def test_authenticate_rejects_mismatched_jwt_issuer
253
+ result = authenticate_with_issuer("https://api.workos.com", "https://other.example.com")
254
+ assert_kind_of WorkOS::SessionManager::AuthError, result
255
+ assert_equal WorkOS::SessionManager::INVALID_JWT, result.reason
256
+ end
257
+
258
+ def test_authenticate_rejects_missing_iss_when_jwt_issuer_is_configured
259
+ result = authenticate_with_issuer("https://api.workos.com", nil)
260
+ assert_kind_of WorkOS::SessionManager::AuthError, result
261
+ assert_equal WorkOS::SessionManager::INVALID_JWT, result.reason
262
+ end
263
+
264
+ def test_authenticate_accepts_any_listed_jwt_issuer
265
+ issuers = ["https://api.workos.com", "https://auth.example.com"]
266
+ result = authenticate_with_issuer(issuers, "https://auth.example.com")
267
+ assert_kind_of WorkOS::SessionManager::AuthSuccess, result
268
+ assert result.authenticated
269
+ end
270
+
271
+ def test_authenticate_rejects_all_tokens_when_jwt_issuer_list_is_empty
272
+ result = authenticate_with_issuer([], "https://api.workos.com")
273
+ assert_kind_of WorkOS::SessionManager::AuthError, result
274
+ assert_equal WorkOS::SessionManager::INVALID_JWT, result.reason
275
+ end
276
+
277
+ def test_global_configuration_passes_jwt_issuer_to_client
278
+ WorkOS.reset_client
279
+ WorkOS.configure { |config| config.jwt_issuer = "https://api.workos.com" }
280
+ assert_equal "https://api.workos.com", WorkOS.client.jwt_issuer
281
+ ensure
282
+ WorkOS.configuration.jwt_issuer = nil
283
+ WorkOS.reset_client
284
+ end
285
+
223
286
  # --- get_logout_url -------------------------------------------------------
224
287
 
225
288
  def test_get_logout_url_includes_session_id_from_authenticate