workos 8.0.1 → 9.1.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 (389) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +2 -2
  3. data/.github/workflows/docs.yml +2 -2
  4. data/.github/workflows/lint.yml +2 -2
  5. data/.github/workflows/release-please.yml +199 -4
  6. data/.github/workflows/release.yml +2 -2
  7. data/.last-synced-sha +1 -1
  8. data/.oagen-manifest.json +154 -43
  9. data/.release-please-manifest.json +1 -1
  10. data/.ruby-version +1 -1
  11. data/CHANGELOG.md +92 -0
  12. data/Gemfile.lock +6 -6
  13. data/lib/workos/api_keys/api_key.rb +3 -0
  14. data/lib/workos/api_keys/api_key_created.rb +5 -5
  15. data/lib/workos/api_keys/api_key_created_data.rb +3 -0
  16. data/lib/workos/api_keys/api_key_revoked.rb +5 -5
  17. data/lib/workos/{audit_logs/audit_log_export_json.rb → api_keys/api_key_updated.rb} +10 -10
  18. data/lib/workos/api_keys/api_key_updated_data.rb +49 -0
  19. data/lib/workos/{directory_sync/dsync_deactivated_data_domain.rb → api_keys/api_key_updated_data_owner.rb} +1 -1
  20. data/lib/workos/api_keys/api_key_updated_data_previous_attribute.rb +18 -0
  21. data/lib/workos/api_keys/create_organization_api_key.rb +5 -2
  22. data/lib/workos/api_keys/expire_api_key.rb +18 -0
  23. data/lib/workos/api_keys/organization_api_key.rb +3 -0
  24. data/lib/workos/api_keys/organization_api_key_with_value.rb +3 -0
  25. data/lib/workos/api_keys.rb +29 -1
  26. data/lib/workos/audit_logs/audit_log_action.rb +2 -7
  27. data/lib/workos/audit_logs/audit_log_export.rb +2 -7
  28. data/lib/workos/audit_logs/audit_log_schema.rb +11 -2
  29. data/lib/workos/{types/radar_type.rb → audit_logs/audit_log_schema_actor_input.rb} +1 -3
  30. data/lib/workos/audit_logs/audit_log_schema_input.rb +25 -0
  31. data/lib/workos/audit_logs/audit_log_schema_target.rb +16 -1
  32. data/lib/workos/audit_logs/audit_log_schema_target_input.rb +7 -0
  33. data/lib/workos/audit_logs.rb +16 -16
  34. data/lib/workos/authorization/permission_created.rb +5 -5
  35. data/lib/workos/authorization/permission_deleted.rb +5 -5
  36. data/lib/workos/authorization/permission_updated.rb +5 -5
  37. data/lib/workos/authorization/role_created.rb +5 -5
  38. data/lib/workos/authorization/role_deleted.rb +5 -5
  39. data/lib/workos/authorization/role_updated.rb +5 -5
  40. data/lib/workos/authorization.rb +38 -22
  41. data/lib/workos/base_client.rb +19 -2
  42. data/lib/workos/client.rb +6 -6
  43. data/lib/workos/connect/connect_application.rb +12 -0
  44. data/lib/workos/{audit_logs/audit_log_schema_json_target.rb → connect/connect_application_redirect_uri.rb} +7 -7
  45. data/lib/workos/connect/user_object.rb +3 -0
  46. data/lib/workos/connect.rb +1 -1
  47. data/lib/workos/directory_sync/dsync_activated.rb +5 -5
  48. data/lib/workos/directory_sync/dsync_deleted.rb +5 -5
  49. data/lib/workos/directory_sync/dsync_group_created.rb +5 -5
  50. data/lib/workos/directory_sync/dsync_group_deleted.rb +5 -5
  51. data/lib/workos/directory_sync/dsync_group_updated.rb +5 -5
  52. data/lib/workos/directory_sync/dsync_group_user_added.rb +5 -5
  53. data/lib/workos/directory_sync/dsync_group_user_removed.rb +5 -5
  54. data/lib/workos/directory_sync/dsync_token_created.rb +34 -0
  55. data/lib/workos/directory_sync/dsync_token_created_data.rb +34 -0
  56. data/lib/workos/directory_sync/dsync_token_revoked.rb +34 -0
  57. data/lib/workos/{audit_logs/audit_log_schema_json_actor.rb → directory_sync/dsync_token_revoked_data.rb} +1 -1
  58. data/lib/workos/directory_sync/dsync_user_created.rb +5 -5
  59. data/lib/workos/directory_sync/dsync_user_deleted.rb +5 -5
  60. data/lib/workos/directory_sync/dsync_user_updated.rb +5 -5
  61. data/lib/workos/directory_sync.rb +2 -2
  62. data/lib/workos/events.rb +1 -1
  63. data/lib/workos/feature_flags/flag_created.rb +5 -5
  64. data/lib/workos/feature_flags/flag_deleted.rb +5 -5
  65. data/lib/workos/feature_flags/flag_rule_updated.rb +5 -5
  66. data/lib/workos/feature_flags/flag_rule_updated_context_configured_target_organization.rb +1 -16
  67. data/lib/workos/feature_flags/flag_rule_updated_context_previous_attribute_context_configured_target_organization.rb +1 -1
  68. data/lib/workos/feature_flags/flag_updated.rb +5 -5
  69. data/lib/workos/groups.rb +2 -2
  70. data/lib/workos/inflections.rb +3 -1
  71. data/lib/workos/organization_domains/organization_domain_created.rb +5 -5
  72. data/lib/workos/organization_domains/organization_domain_deleted.rb +5 -5
  73. data/lib/workos/organization_domains/organization_domain_updated.rb +5 -5
  74. data/lib/workos/organization_domains/organization_domain_verification_failed.rb +5 -5
  75. data/lib/workos/organization_domains/organization_domain_verified.rb +5 -5
  76. data/lib/workos/organization_membership_service.rb +273 -0
  77. data/lib/workos/organizations/audit_logs_retention.rb +2 -7
  78. data/lib/workos/organizations/organization_created.rb +5 -5
  79. data/lib/workos/organizations/organization_deleted.rb +5 -5
  80. data/lib/workos/organizations/organization_membership_created.rb +5 -5
  81. data/lib/workos/organizations/organization_membership_deleted.rb +5 -5
  82. data/lib/workos/organizations/organization_membership_updated.rb +5 -5
  83. data/lib/workos/organizations/organization_role_created.rb +5 -5
  84. data/lib/workos/organizations/organization_role_deleted.rb +5 -5
  85. data/lib/workos/organizations/organization_role_updated.rb +5 -5
  86. data/lib/workos/organizations/organization_updated.rb +5 -5
  87. data/lib/workos/organizations.rb +1 -1
  88. data/lib/workos/radar/radar_standalone_assess_request.rb +2 -8
  89. data/lib/workos/radar.rb +6 -12
  90. data/lib/workos/shared/connect_application_m2m.rb +46 -0
  91. data/lib/workos/shared/connect_application_oauth.rb +58 -0
  92. data/lib/workos/shared/connect_application_oauth_redirect_uris.rb +22 -0
  93. data/lib/workos/shared/error_response.rb +18 -0
  94. data/lib/workos/shared/group_created.rb +5 -5
  95. data/lib/workos/shared/group_deleted.rb +5 -5
  96. data/lib/workos/shared/group_member_added.rb +5 -5
  97. data/lib/workos/shared/group_member_removed.rb +5 -5
  98. data/lib/workos/shared/group_updated.rb +5 -5
  99. data/lib/workos/{directory_sync/dsync_deactivated_data.rb → shared/pipe_connected_account.rb} +15 -15
  100. data/lib/workos/{directory_sync/dsync_deactivated.rb → shared/pipes_connected_account_connected.rb} +7 -7
  101. data/lib/workos/shared/pipes_connected_account_disconnected.rb +34 -0
  102. data/lib/workos/shared/pipes_connected_account_reauthorization_needed.rb +34 -0
  103. data/lib/workos/shared/waitlist_user_approved.rb +5 -5
  104. data/lib/workos/shared/waitlist_user_created.rb +5 -5
  105. data/lib/workos/shared/waitlist_user_denied.rb +5 -5
  106. data/lib/workos/sso/connection_activated.rb +5 -5
  107. data/lib/workos/sso/connection_deactivated.rb +5 -5
  108. data/lib/workos/sso/connection_deleted.rb +5 -5
  109. data/lib/workos/sso/connection_saml_certificate_renewal_required.rb +5 -5
  110. data/lib/workos/sso/connection_saml_certificate_renewed.rb +5 -5
  111. data/lib/workos/types/audit_log_configuration_log_stream_type.rb +2 -1
  112. data/lib/workos/types/create_webhook_endpoint_events.rb +5 -1
  113. data/lib/workos/types/pipe_connected_account_state.rb +13 -0
  114. data/lib/workos/types/{radar_action.rb → radar_list_action.rb} +1 -1
  115. data/lib/workos/types/radar_list_type.rb +18 -0
  116. data/lib/workos/types/radar_standalone_assess_request_action.rb +1 -7
  117. data/lib/workos/types/radar_standalone_response_blocklist_type.rb +1 -10
  118. data/lib/workos/types/radar_standalone_response_control.rb +1 -4
  119. data/lib/workos/types/user_management_authentication_screen_hint.rb +1 -5
  120. data/{rbi/workos/types/request_options.rbi → lib/workos/types/vault_order.rb} +4 -3
  121. data/lib/workos/types/webhook_endpoint_status.rb +1 -5
  122. data/lib/workos/user_management/action_authentication_denied.rb +6 -6
  123. data/lib/workos/user_management/action_user_registration_denied.rb +6 -6
  124. data/lib/workos/user_management/authentication_email_verification_failed.rb +5 -5
  125. data/lib/workos/user_management/authentication_email_verification_succeeded.rb +5 -5
  126. data/lib/workos/user_management/authentication_magic_auth_failed.rb +5 -5
  127. data/lib/workos/user_management/authentication_magic_auth_succeeded.rb +5 -5
  128. data/lib/workos/user_management/authentication_mfa_failed.rb +5 -5
  129. data/lib/workos/user_management/authentication_mfa_succeeded.rb +5 -5
  130. data/lib/workos/user_management/authentication_oauth_failed.rb +5 -5
  131. data/lib/workos/user_management/authentication_oauth_succeeded.rb +5 -5
  132. data/lib/workos/user_management/authentication_passkey_failed.rb +5 -5
  133. data/lib/workos/user_management/authentication_passkey_succeeded.rb +5 -5
  134. data/lib/workos/user_management/authentication_password_failed.rb +5 -5
  135. data/lib/workos/user_management/authentication_password_succeeded.rb +5 -5
  136. data/lib/workos/user_management/authentication_radar_risk_detected.rb +5 -5
  137. data/lib/workos/user_management/authentication_sso_failed.rb +5 -5
  138. data/lib/workos/user_management/authentication_sso_started.rb +5 -5
  139. data/lib/workos/user_management/authentication_sso_succeeded.rb +5 -5
  140. data/lib/workos/user_management/authentication_sso_timed_out.rb +5 -5
  141. data/lib/workos/user_management/create_user.rb +3 -0
  142. data/lib/workos/user_management/create_user_api_key.rb +5 -2
  143. data/lib/workos/user_management/email_change_confirmation_user.rb +3 -0
  144. data/lib/workos/user_management/email_verification_created.rb +5 -5
  145. data/lib/workos/user_management/invitation_accepted.rb +5 -5
  146. data/lib/workos/user_management/invitation_created.rb +5 -5
  147. data/lib/workos/user_management/invitation_resent.rb +5 -5
  148. data/lib/workos/user_management/invitation_revoked.rb +5 -5
  149. data/lib/workos/user_management/magic_auth_created.rb +5 -5
  150. data/lib/workos/user_management/password_reset_created.rb +5 -5
  151. data/lib/workos/user_management/password_reset_succeeded.rb +5 -5
  152. data/lib/workos/user_management/revoke_session.rb +2 -6
  153. data/lib/workos/user_management/session_created.rb +5 -5
  154. data/lib/workos/user_management/session_revoked.rb +5 -5
  155. data/lib/workos/user_management/update_user.rb +3 -0
  156. data/lib/workos/user_management/user_api_key.rb +3 -0
  157. data/lib/workos/user_management/user_api_key_updated_data_owner.rb +7 -0
  158. data/lib/workos/user_management/user_api_key_with_value.rb +3 -0
  159. data/lib/workos/user_management/user_created.rb +5 -5
  160. data/lib/workos/user_management/user_deleted.rb +5 -5
  161. data/lib/workos/user_management/user_updated.rb +5 -5
  162. data/lib/workos/user_management.rb +16 -223
  163. data/lib/workos/vault/actor.rb +22 -0
  164. data/lib/workos/vault/create_data_key_request.rb +18 -0
  165. data/lib/workos/vault/create_data_key_response.rb +28 -0
  166. data/lib/workos/vault/create_object_request.rb +25 -0
  167. data/lib/workos/vault/decrypt_request.rb +18 -0
  168. data/lib/workos/vault/decrypt_response.rb +22 -0
  169. data/lib/workos/vault/delete_object_response.rb +22 -0
  170. data/lib/workos/vault/object_metadata.rb +37 -0
  171. data/lib/workos/{audit_logs/audit_log_action_json.rb → vault/object_summary.rb} +4 -10
  172. data/lib/workos/vault/object_version.rb +31 -0
  173. data/lib/workos/vault/object_without_value.rb +25 -0
  174. data/lib/workos/vault/rekey_request.rb +22 -0
  175. data/lib/workos/vault/update_object_request.rb +22 -0
  176. data/lib/workos/vault/vault_byok_key_deleted.rb +5 -5
  177. data/lib/workos/vault/vault_byok_key_verification_completed.rb +5 -5
  178. data/lib/workos/vault/vault_data_created.rb +5 -5
  179. data/lib/workos/vault/vault_data_deleted.rb +5 -5
  180. data/lib/workos/vault/vault_data_read.rb +5 -5
  181. data/lib/workos/vault/vault_data_updated.rb +5 -5
  182. data/lib/workos/vault/vault_dek_decrypted.rb +5 -5
  183. data/lib/workos/vault/vault_dek_read.rb +5 -5
  184. data/lib/workos/vault/vault_kek_created.rb +5 -5
  185. data/lib/workos/vault/vault_metadata_read.rb +5 -5
  186. data/lib/workos/vault/vault_names_listed.rb +5 -5
  187. data/lib/workos/vault/vault_object.rb +28 -0
  188. data/lib/workos/vault/version_list_response.rb +22 -0
  189. data/lib/workos/vault.rb +273 -139
  190. data/lib/workos/version.rb +1 -1
  191. data/lib/workos/webhooks/webhook_endpoint.rb +2 -7
  192. data/lib/workos/webhooks.rb +8 -9
  193. data/lib/workos.rb +1 -0
  194. data/rbi/workos/action_authentication_denied.rbi +10 -10
  195. data/rbi/workos/action_user_registration_denied.rbi +10 -10
  196. data/rbi/workos/actor.rbi +30 -0
  197. data/rbi/workos/api_key.rbi +6 -0
  198. data/rbi/workos/api_key_created.rbi +6 -6
  199. data/rbi/workos/api_key_created_data.rbi +6 -0
  200. data/rbi/workos/api_key_revoked.rbi +6 -6
  201. data/rbi/workos/api_key_revoked_data.rbi +6 -0
  202. data/rbi/workos/{dsync_deactivated.rbi → api_key_updated.rbi} +9 -9
  203. data/rbi/workos/api_key_updated_data.rbi +84 -0
  204. data/rbi/workos/api_key_updated_data_owner.rbi +30 -0
  205. data/rbi/workos/{audit_logs_retention_json.rbi → api_key_updated_data_previous_attribute.rbi} +5 -5
  206. data/rbi/workos/api_keys.rbi +11 -1
  207. data/rbi/workos/audit_log_action.rbi +1 -0
  208. data/rbi/workos/audit_log_export.rbi +1 -0
  209. data/rbi/workos/audit_log_schema.rbi +18 -0
  210. data/rbi/workos/{audit_log_schema_json_actor.rbi → audit_log_schema_actor_input.rbi} +1 -1
  211. data/rbi/workos/audit_log_schema_input.rbi +36 -0
  212. data/rbi/workos/{audit_log_schema_json_target.rbi → audit_log_schema_target_input.rbi} +1 -1
  213. data/rbi/workos/audit_logs.rbi +9 -9
  214. data/rbi/workos/audit_logs_retention.rbi +1 -0
  215. data/rbi/workos/authentication_email_verification_failed.rbi +6 -6
  216. data/rbi/workos/authentication_email_verification_succeeded.rbi +6 -6
  217. data/rbi/workos/authentication_magic_auth_failed.rbi +6 -6
  218. data/rbi/workos/authentication_magic_auth_succeeded.rbi +6 -6
  219. data/rbi/workos/authentication_mfa_failed.rbi +6 -6
  220. data/rbi/workos/authentication_mfa_succeeded.rbi +6 -6
  221. data/rbi/workos/authentication_oauth_failed.rbi +6 -6
  222. data/rbi/workos/authentication_oauth_succeeded.rbi +6 -6
  223. data/rbi/workos/authentication_passkey_failed.rbi +6 -6
  224. data/rbi/workos/authentication_passkey_succeeded.rbi +6 -6
  225. data/rbi/workos/authentication_password_failed.rbi +6 -6
  226. data/rbi/workos/authentication_password_succeeded.rbi +6 -6
  227. data/rbi/workos/authentication_radar_risk_detected.rbi +6 -6
  228. data/rbi/workos/authentication_sso_failed.rbi +6 -6
  229. data/rbi/workos/authentication_sso_started.rbi +6 -6
  230. data/rbi/workos/authentication_sso_succeeded.rbi +6 -6
  231. data/rbi/workos/authentication_sso_timed_out.rbi +6 -6
  232. data/rbi/workos/authorization.rbi +9 -5
  233. data/rbi/workos/client.rbi +6 -3
  234. data/rbi/workos/connect_application.rbi +0 -12
  235. data/rbi/workos/{dsync_deactivated_data.rbi → connect_application_m2m.rbi} +19 -19
  236. data/rbi/workos/connect_application_oauth.rbi +102 -0
  237. data/rbi/workos/connect_application_oauth_redirect_uris.rbi +30 -0
  238. data/rbi/workos/connection_activated.rbi +6 -6
  239. data/rbi/workos/connection_deactivated.rbi +6 -6
  240. data/rbi/workos/connection_deleted.rbi +6 -6
  241. data/rbi/workos/connection_saml_certificate_renewal_required.rbi +6 -6
  242. data/rbi/workos/connection_saml_certificate_renewed.rbi +6 -6
  243. data/rbi/workos/create_data_key_request.rbi +24 -0
  244. data/rbi/workos/create_data_key_response.rbi +42 -0
  245. data/rbi/workos/create_object_request.rbi +36 -0
  246. data/rbi/workos/create_organization_api_key.rbi +6 -0
  247. data/rbi/workos/create_user.rbi +6 -0
  248. data/rbi/workos/create_user_api_key.rbi +6 -0
  249. data/rbi/workos/decrypt_request.rbi +24 -0
  250. data/rbi/workos/decrypt_response.rbi +30 -0
  251. data/rbi/workos/delete_object_response.rbi +30 -0
  252. data/rbi/workos/dsync_activated.rbi +6 -6
  253. data/rbi/workos/dsync_deleted.rbi +6 -6
  254. data/rbi/workos/dsync_group_created.rbi +6 -6
  255. data/rbi/workos/dsync_group_deleted.rbi +6 -6
  256. data/rbi/workos/dsync_group_updated.rbi +6 -6
  257. data/rbi/workos/dsync_group_user_added.rbi +6 -6
  258. data/rbi/workos/dsync_group_user_removed.rbi +6 -6
  259. data/rbi/workos/dsync_token_created.rbi +54 -0
  260. data/rbi/workos/{audit_log_export_json.rbi → dsync_token_created_data.rbi} +9 -9
  261. data/rbi/workos/dsync_token_revoked.rbi +54 -0
  262. data/rbi/workos/{audit_log_action_json.rbi → dsync_token_revoked_data.rbi} +17 -11
  263. data/rbi/workos/dsync_user_created.rbi +6 -6
  264. data/rbi/workos/dsync_user_deleted.rbi +6 -6
  265. data/rbi/workos/dsync_user_updated.rbi +6 -6
  266. data/rbi/workos/email_change_confirmation_user.rbi +6 -0
  267. data/rbi/workos/email_verification_created.rbi +6 -6
  268. data/rbi/workos/error_response.rbi +24 -0
  269. data/rbi/workos/expire_api_key.rbi +24 -0
  270. data/rbi/workos/flag_created.rbi +6 -6
  271. data/rbi/workos/flag_deleted.rbi +6 -6
  272. data/rbi/workos/flag_rule_updated.rbi +6 -6
  273. data/rbi/workos/flag_updated.rbi +6 -6
  274. data/rbi/workos/group_created.rbi +6 -6
  275. data/rbi/workos/group_deleted.rbi +6 -6
  276. data/rbi/workos/group_member_added.rbi +6 -6
  277. data/rbi/workos/group_member_removed.rbi +6 -6
  278. data/rbi/workos/group_updated.rbi +6 -6
  279. data/rbi/workos/invitation_accepted.rbi +6 -6
  280. data/rbi/workos/invitation_created.rbi +6 -6
  281. data/rbi/workos/invitation_resent.rbi +6 -6
  282. data/rbi/workos/invitation_revoked.rbi +6 -6
  283. data/rbi/workos/magic_auth_created.rbi +6 -6
  284. data/rbi/workos/object_metadata.rbi +60 -0
  285. data/rbi/workos/object_summary.rbi +36 -0
  286. data/rbi/workos/object_version.rbi +48 -0
  287. data/rbi/workos/object_without_value.rbi +36 -0
  288. data/rbi/workos/organization_api_key.rbi +6 -0
  289. data/rbi/workos/organization_api_key_with_value.rbi +6 -0
  290. data/rbi/workos/organization_created.rbi +6 -6
  291. data/rbi/workos/organization_deleted.rbi +6 -6
  292. data/rbi/workos/organization_domain_created.rbi +6 -6
  293. data/rbi/workos/organization_domain_deleted.rbi +6 -6
  294. data/rbi/workos/organization_domain_updated.rbi +6 -6
  295. data/rbi/workos/organization_domain_verification_failed.rbi +6 -6
  296. data/rbi/workos/organization_domain_verified.rbi +6 -6
  297. data/rbi/workos/organization_membership_created.rbi +6 -6
  298. data/rbi/workos/organization_membership_deleted.rbi +6 -6
  299. data/rbi/workos/organization_membership_service.rbi +114 -0
  300. data/rbi/workos/organization_membership_updated.rbi +6 -6
  301. data/rbi/workos/organization_role_created.rbi +6 -6
  302. data/rbi/workos/organization_role_deleted.rbi +6 -6
  303. data/rbi/workos/organization_role_updated.rbi +6 -6
  304. data/rbi/workos/organization_updated.rbi +6 -6
  305. data/rbi/workos/password_reset_created.rbi +6 -6
  306. data/rbi/workos/password_reset_succeeded.rbi +6 -6
  307. data/rbi/workos/permission_created.rbi +6 -6
  308. data/rbi/workos/permission_deleted.rbi +6 -6
  309. data/rbi/workos/permission_updated.rbi +6 -6
  310. data/rbi/workos/{webhook_endpoint_json.rbi → pipe_connected_account.rbi} +23 -11
  311. data/rbi/workos/pipes_connected_account_connected.rbi +54 -0
  312. data/rbi/workos/pipes_connected_account_disconnected.rbi +54 -0
  313. data/rbi/workos/pipes_connected_account_reauthorization_needed.rbi +54 -0
  314. data/rbi/workos/radar.rbi +1 -3
  315. data/rbi/workos/radar_standalone_assess_request.rbi +0 -12
  316. data/rbi/workos/rekey_request.rbi +30 -0
  317. data/rbi/workos/revoke_session.rbi +0 -6
  318. data/rbi/workos/role_created.rbi +6 -6
  319. data/rbi/workos/role_deleted.rbi +6 -6
  320. data/rbi/workos/role_updated.rbi +6 -6
  321. data/rbi/workos/session_created.rbi +6 -6
  322. data/rbi/workos/session_manager.rbi +1 -1
  323. data/rbi/workos/session_revoked.rbi +6 -6
  324. data/rbi/workos/update_object_request.rbi +30 -0
  325. data/rbi/workos/update_user.rbi +6 -0
  326. data/rbi/workos/user.rbi +6 -0
  327. data/rbi/workos/user_api_key.rbi +6 -0
  328. data/rbi/workos/{dsync_deactivated_data_domain.rbi → user_api_key_updated_data_owner.rbi} +5 -5
  329. data/rbi/workos/user_api_key_with_value.rbi +6 -0
  330. data/rbi/workos/user_created.rbi +6 -6
  331. data/rbi/workos/user_deleted.rbi +6 -6
  332. data/rbi/workos/user_management.rbi +7 -94
  333. data/rbi/workos/user_object.rbi +6 -0
  334. data/rbi/workos/user_updated.rbi +6 -6
  335. data/rbi/workos/vault.rbi +70 -95
  336. data/rbi/workos/vault_byok_key_deleted.rbi +6 -6
  337. data/rbi/workos/vault_byok_key_verification_completed.rbi +6 -6
  338. data/rbi/workos/vault_data_created.rbi +6 -6
  339. data/rbi/workos/vault_data_deleted.rbi +6 -6
  340. data/rbi/workos/vault_data_read.rbi +6 -6
  341. data/rbi/workos/vault_data_updated.rbi +6 -6
  342. data/rbi/workos/vault_dek_decrypted.rbi +6 -6
  343. data/rbi/workos/vault_dek_read.rbi +6 -6
  344. data/rbi/workos/vault_kek_created.rbi +6 -6
  345. data/rbi/workos/vault_metadata_read.rbi +6 -6
  346. data/rbi/workos/vault_names_listed.rbi +6 -6
  347. data/rbi/workos/vault_object.rbi +42 -0
  348. data/rbi/workos/waitlist_user_approved.rbi +6 -6
  349. data/rbi/workos/waitlist_user_created.rbi +6 -6
  350. data/rbi/workos/waitlist_user_denied.rbi +6 -6
  351. data/rbi/workos/webhook_endpoint.rbi +1 -0
  352. data/rbi/workos/webhooks.rbi +2 -2
  353. data/renovate.json +1 -61
  354. data/test/workos/test_api_keys.rb +9 -1
  355. data/test/workos/test_base_client.rb +64 -0
  356. data/test/workos/test_model_round_trip.rb +740 -261
  357. data/test/workos/test_organization_membership_service.rb +107 -0
  358. data/test/workos/test_user_management.rb +0 -74
  359. data/test/workos/test_vault.rb +91 -88
  360. metadata +87 -54
  361. data/lib/workos/audit_logs/audit_log_schema_json.rb +0 -34
  362. data/lib/workos/organizations/audit_logs_retention_json.rb +0 -18
  363. data/lib/workos/types/audit_log_export_json_state.rb +0 -14
  364. data/lib/workos/types/dsync_deactivated_data_state.rb +0 -9
  365. data/lib/workos/types/dsync_deactivated_data_type.rb +0 -9
  366. data/lib/workos/types/webhook_endpoint_json_status.rb +0 -9
  367. data/lib/workos/user_management_organization_membership_groups.rb +0 -60
  368. data/lib/workos/webhooks/webhook_endpoint_json.rb +0 -40
  369. data/rbi/workos/actions.rbi +0 -48
  370. data/rbi/workos/audit_log_schema_json.rbi +0 -54
  371. data/rbi/workos/base_client.rbi +0 -132
  372. data/rbi/workos/configuration.rbi +0 -68
  373. data/rbi/workos/encryptors/aes_gcm.rbi +0 -19
  374. data/rbi/workos/errors.rbi +0 -43
  375. data/rbi/workos/hash_provider.rbi +0 -18
  376. data/rbi/workos/passwordless.rbi +0 -47
  377. data/rbi/workos/public_client.rbi +0 -12
  378. data/rbi/workos/session.rbi +0 -43
  379. data/rbi/workos/types/api_response.rbi +0 -29
  380. data/rbi/workos/types/base_model.rbi +0 -22
  381. data/rbi/workos/types/list_struct.rbi +0 -89
  382. data/rbi/workos/user_management_organization_membership_groups.rbi +0 -25
  383. data/rbi/workos/util.rbi +0 -12
  384. data/test/workos/test_user_management_organization_membership_groups.rb +0 -33
  385. /data/lib/workos/{authorization → groups}/user_organization_membership_base_list_data.rb +0 -0
  386. /data/lib/workos/{user_management → organization_membership}/create_user_organization_membership.rb +0 -0
  387. /data/lib/workos/{user_management → organization_membership}/organization_membership.rb +0 -0
  388. /data/lib/workos/{user_management → organization_membership}/update_user_organization_membership.rb +0 -0
  389. /data/lib/workos/{user_management → organization_membership}/user_organization_membership.rb +0 -0
@@ -9,6 +9,12 @@ module WorkOS
9
9
  sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
10
  def initialize(json); end
11
11
 
12
+ sig { returns(String) }
13
+ def object; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def object=(value); end
17
+
12
18
  sig { returns(String) }
13
19
  def id; end
14
20
 
@@ -39,12 +45,6 @@ module WorkOS
39
45
  sig { params(value: T.nilable(WorkOS::EventContext)).returns(T.nilable(WorkOS::EventContext)) }
40
46
  def context=(value); end
41
47
 
42
- sig { returns(String) }
43
- def object; end
44
-
45
- sig { params(value: String).returns(String) }
46
- def object=(value); end
47
-
48
48
  sig { returns(T::Hash[Symbol, T.untyped]) }
49
49
  def to_h; end
50
50
 
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ # typed: strong
6
+
7
+ module WorkOS
8
+ class VaultObject
9
+ sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
+ def initialize(json); end
11
+
12
+ sig { returns(String) }
13
+ def id; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def id=(value); end
17
+
18
+ sig { returns(WorkOS::ObjectMetadata) }
19
+ def metadata; end
20
+
21
+ sig { params(value: WorkOS::ObjectMetadata).returns(WorkOS::ObjectMetadata) }
22
+ def metadata=(value); end
23
+
24
+ sig { returns(String) }
25
+ def name; end
26
+
27
+ sig { params(value: String).returns(String) }
28
+ def name=(value); end
29
+
30
+ sig { returns(String) }
31
+ def value; end
32
+
33
+ sig { params(value: String).returns(String) }
34
+ def value=(value); end
35
+
36
+ sig { returns(T::Hash[Symbol, T.untyped]) }
37
+ def to_h; end
38
+
39
+ sig { params(args: T.untyped).returns(String) }
40
+ def to_json(*args); end
41
+ end
42
+ end
@@ -9,6 +9,12 @@ module WorkOS
9
9
  sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
10
  def initialize(json); end
11
11
 
12
+ sig { returns(String) }
13
+ def object; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def object=(value); end
17
+
12
18
  sig { returns(String) }
13
19
  def id; end
14
20
 
@@ -39,12 +45,6 @@ module WorkOS
39
45
  sig { params(value: T.nilable(WorkOS::EventContext)).returns(T.nilable(WorkOS::EventContext)) }
40
46
  def context=(value); end
41
47
 
42
- sig { returns(String) }
43
- def object; end
44
-
45
- sig { params(value: String).returns(String) }
46
- def object=(value); end
47
-
48
48
  sig { returns(T::Hash[Symbol, T.untyped]) }
49
49
  def to_h; end
50
50
 
@@ -9,6 +9,12 @@ module WorkOS
9
9
  sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
10
  def initialize(json); end
11
11
 
12
+ sig { returns(String) }
13
+ def object; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def object=(value); end
17
+
12
18
  sig { returns(String) }
13
19
  def id; end
14
20
 
@@ -39,12 +45,6 @@ module WorkOS
39
45
  sig { params(value: T.nilable(WorkOS::EventContext)).returns(T.nilable(WorkOS::EventContext)) }
40
46
  def context=(value); end
41
47
 
42
- sig { returns(String) }
43
- def object; end
44
-
45
- sig { params(value: String).returns(String) }
46
- def object=(value); end
47
-
48
48
  sig { returns(T::Hash[Symbol, T.untyped]) }
49
49
  def to_h; end
50
50
 
@@ -9,6 +9,12 @@ module WorkOS
9
9
  sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
10
  def initialize(json); end
11
11
 
12
+ sig { returns(String) }
13
+ def object; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def object=(value); end
17
+
12
18
  sig { returns(String) }
13
19
  def id; end
14
20
 
@@ -39,12 +45,6 @@ module WorkOS
39
45
  sig { params(value: T.nilable(WorkOS::EventContext)).returns(T.nilable(WorkOS::EventContext)) }
40
46
  def context=(value); end
41
47
 
42
- sig { returns(String) }
43
- def object; end
44
-
45
- sig { params(value: String).returns(String) }
46
- def object=(value); end
47
-
48
48
  sig { returns(T::Hash[Symbol, T.untyped]) }
49
49
  def to_h; end
50
50
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # This file is auto-generated by oagen. Do not edit.
3
4
 
4
5
  # typed: strong
@@ -25,7 +25,7 @@ module WorkOS
25
25
  endpoint_url: String,
26
26
  events: T::Array[String],
27
27
  request_options: T::Hash[Symbol, T.untyped]
28
- ).returns(WorkOS::WebhookEndpointJson)
28
+ ).returns(WorkOS::WebhookEndpoint)
29
29
  end
30
30
  def create_webhook_endpoint(endpoint_url:, events:, request_options:); end
31
31
 
@@ -36,7 +36,7 @@ module WorkOS
36
36
  status: T.nilable(String),
37
37
  events: T.nilable(T::Array[String]),
38
38
  request_options: T::Hash[Symbol, T.untyped]
39
- ).returns(WorkOS::WebhookEndpointJson)
39
+ ).returns(WorkOS::WebhookEndpoint)
40
40
  end
41
41
  def update_webhook_endpoint(id:, endpoint_url:, status:, events:, request_options:); end
42
42
 
data/renovate.json CHANGED
@@ -1,66 +1,6 @@
1
1
  {
2
2
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
3
  "extends": [
4
- "config:recommended"
5
- ],
6
- "dependencyDashboard": false,
7
- "schedule": [
8
- "on the 15th day of the month before 12pm"
9
- ],
10
- "timezone": "UTC",
11
- "rebaseWhen": "conflicted",
12
- "packageRules": [
13
- {
14
- "matchManagers": [
15
- "github-actions"
16
- ],
17
- "pinDigests": true,
18
- "extractVersion": "^v(?<version>\\d+\\.\\d+\\.\\d+)$"
19
- },
20
- {
21
- "matchUpdateTypes": [
22
- "minor",
23
- "patch"
24
- ],
25
- "automerge": true,
26
- "groupName": "minor and patch updates"
27
- },
28
- {
29
- "matchUpdateTypes": [
30
- "major"
31
- ],
32
- "automerge": false
33
- },
34
- {
35
- "matchUpdateTypes": [
36
- "digest"
37
- ],
38
- "automerge": false
39
- },
40
- {
41
- "matchManagers": [
42
- "github-actions"
43
- ],
44
- "matchUpdateTypes": [
45
- "minor",
46
- "patch",
47
- "digest",
48
- "pinDigest"
49
- ],
50
- "groupName": "github actions non-major",
51
- "groupSlug": "github-actions-non-major",
52
- "automerge": true
53
- },
54
- {
55
- "matchManagers": [
56
- "github-actions"
57
- ],
58
- "matchUpdateTypes": [
59
- "major"
60
- ],
61
- "groupName": "github actions major",
62
- "groupSlug": "github-actions-major",
63
- "automerge": false
64
- }
4
+ "github>workos/renovate-config:public"
65
5
  ]
66
6
  }
@@ -39,12 +39,20 @@ class ApiKeysTest < Minitest::Test
39
39
  assert_nil result
40
40
  end
41
41
 
42
+ def test_create_api_key_expire_returns_expected_result
43
+ stub_request(:post, %r{\Ahttps://api\.workos\.com/api_keys/stub/expire(\?|\z)})
44
+ .to_return(body: "{}", status: 200)
45
+ result = @client.api_keys.create_api_key_expire(id: "stub")
46
+ refute_nil result
47
+ end
48
+
42
49
  # Parameterized authentication error tests (one per endpoint).
43
50
  [
44
51
  {name: :list_organization_api_keys, verb: :get, url: %r{\Ahttps://api\.workos\.com/organizations/stub/api_keys(\?|\z)}, args: {organization_id: "stub"}},
45
52
  {name: :create_organization_api_key, verb: :post, url: %r{\Ahttps://api\.workos\.com/organizations/stub/api_keys(\?|\z)}, args: {organization_id: "stub", name: "stub"}},
46
53
  {name: :create_validation, verb: :post, url: %r{\Ahttps://api\.workos\.com/api_keys/validations(\?|\z)}, args: {value: "stub"}},
47
- {name: :delete_api_key, verb: :delete, url: %r{\Ahttps://api\.workos\.com/api_keys/stub(\?|\z)}, args: {id: "stub"}}
54
+ {name: :delete_api_key, verb: :delete, url: %r{\Ahttps://api\.workos\.com/api_keys/stub(\?|\z)}, args: {id: "stub"}},
55
+ {name: :create_api_key_expire, verb: :post, url: %r{\Ahttps://api\.workos\.com/api_keys/stub/expire(\?|\z)}, args: {id: "stub"}}
48
56
  ].each do |spec|
49
57
  define_method("test_#{spec[:name]}_raises_authentication_error_on_401") do
50
58
  stub_request(spec[:verb], spec[:url])
@@ -86,6 +86,14 @@ class BaseClientTest < Minitest::Test
86
86
  @client = WorkOS::BaseClient.new(api_key: "sk_test_123", max_retries: 1)
87
87
  end
88
88
 
89
+ def teardown
90
+ super
91
+ # Close any open connections and clear the thread-local cache to avoid
92
+ # leaking sockets between tests.
93
+ @client.shutdown
94
+ Thread.current[:workos_connections] = nil
95
+ end
96
+
89
97
  def test_request_dispatches_known_methods
90
98
  client = RecordingClient.new(api_key: "sk_test_123")
91
99
 
@@ -171,6 +179,62 @@ class BaseClientTest < Minitest::Test
171
179
  refute keep.finished
172
180
  end
173
181
 
182
+ # Regression test for https://github.com/workos/workos-ruby/issues/496
183
+ #
184
+ # The connection cache must be isolated per thread. A previous version
185
+ # keyed it on Fiber[] (inheritable fiber storage), which is inherited *by
186
+ # reference* by child threads — so a Net::HTTP socket warmed in a parent
187
+ # thread leaked into every worker thread spawned afterward (Solid Queue,
188
+ # Puma, etc.) and got driven concurrently, corrupting the stream.
189
+ def test_connection_cache_is_not_shared_with_threads_spawned_after_warming
190
+ # Warm a connection in the "parent" thread before spawning workers.
191
+ parent_cache = @client.send(:thread_connections)
192
+ warm = FakeConnection.new
193
+ parent_cache["https:api.workos.com:443:30"] = warm
194
+
195
+ results = Array.new(4) do
196
+ Thread.new do
197
+ cache = @client.send(:thread_connections)
198
+ {cache_id: cache.object_id, leaked: cache.value?(warm), size: cache.size}
199
+ end
200
+ end.map(&:value)
201
+
202
+ results.each do |r|
203
+ refute_equal parent_cache.object_id, r[:cache_id],
204
+ "worker thread must not share the parent thread's connection cache"
205
+ refute r[:leaked],
206
+ "parent thread's warmed connection leaked into a worker thread"
207
+ assert_equal 0, r[:size],
208
+ "worker thread should start with an empty, isolated cache"
209
+ end
210
+
211
+ # The parent's own cache is left intact.
212
+ assert_same warm, parent_cache["https:api.workos.com:443:30"]
213
+ end
214
+
215
+ # Exercises the connection_for path (not just the storage helper):
216
+ # each thread must open and cache its *own* Net::HTTP connection rather
217
+ # than reusing one established on another thread.
218
+ #
219
+ # Net::HTTP#start is stubbed to avoid real TCP+TLS connections.
220
+ def test_connection_for_opens_a_distinct_connection_per_thread
221
+ original_start = Net::HTTP.instance_method(:start)
222
+ Net::HTTP.define_method(:start) { self }
223
+
224
+ parent_conn = @client.send(:connection_for, "https://api.workos.com", 30)
225
+
226
+ worker_conns = Array.new(4) do
227
+ Thread.new { @client.send(:connection_for, "https://api.workos.com", 30).object_id }
228
+ end.map(&:value)
229
+
230
+ refute_includes worker_conns, parent_conn.object_id,
231
+ "a worker thread reused a connection opened on another thread"
232
+ assert_equal worker_conns.length, worker_conns.uniq.length,
233
+ "worker threads must each get a distinct connection"
234
+ ensure
235
+ Net::HTTP.define_method(:start, original_start)
236
+ end
237
+
174
238
  def test_redact_path_strips_invitation_token_segment
175
239
  redacted = @client.send(:redact_path, "/user_management/invitations/by_token/invtoken_secret123")
176
240
  assert_equal "/user_management/invitations/by_token/[REDACTED]", redacted