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.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +2 -2
- data/.github/workflows/docs.yml +3 -3
- data/.github/workflows/lint.yml +2 -2
- data/.github/workflows/release-please.yml +3 -3
- data/.github/workflows/release.yml +2 -2
- data/.last-synced-sha +1 -1
- data/.oagen-manifest.json +393 -4
- data/.release-please-manifest.json +1 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +328 -0
- data/Gemfile.lock +14 -14
- data/README.md +23 -0
- data/lib/workos/admin_portal.rb +2 -2
- data/lib/workos/agents/agent_blueprint.rb +43 -0
- data/lib/workos/agents/agent_blueprint_invocable_by.rb +7 -0
- data/lib/workos/agents/agent_blueprint_session_setting.rb +25 -0
- data/lib/workos/agents/agent_blueprints_create_request.rb +31 -0
- data/lib/workos/agents/agent_blueprints_create_request_invocable_by.rb +22 -0
- data/lib/workos/agents/agent_blueprints_create_request_session_setting.rb +7 -0
- data/lib/workos/agents/agent_blueprints_token_mint_token_request.rb +34 -0
- data/lib/workos/agents/agent_blueprints_token_validate_token_request.rb +18 -0
- data/lib/workos/agents/agent_blueprints_update_request.rb +31 -0
- data/lib/workos/agents/agent_blueprints_update_request_invocable_by.rb +7 -0
- data/lib/workos/agents/agent_blueprints_update_request_session_setting.rb +25 -0
- data/lib/workos/agents/agent_instance.rb +40 -0
- data/lib/workos/agents/agent_instance_session.rb +40 -0
- data/lib/workos/agents/agent_token.rb +40 -0
- data/lib/workos/agents/agent_token_validation.rb +40 -0
- data/lib/workos/agents.rb +399 -0
- data/lib/workos/audit_logs.rb +23 -5
- data/lib/workos/authorization.rb +3 -3
- data/lib/workos/base_client.rb +6 -2
- data/lib/workos/client.rb +4 -0
- data/lib/workos/configuration.rb +3 -2
- data/lib/workos/inflections.rb +17 -0
- data/lib/workos/multi_factor_auth.rb +1 -1
- data/lib/workos/organizations/create_it_contact.rb +18 -0
- data/lib/workos/organizations/invite_it_contact.rb +18 -0
- data/lib/workos/organizations/it_contact.rb +31 -0
- data/lib/workos/organizations/it_contact_list.rb +25 -0
- data/lib/workos/organizations/organization_input.rb +10 -1
- data/lib/workos/organizations/update_audit_logs_retention.rb +13 -1
- data/lib/workos/organizations.rb +110 -1
- data/lib/workos/pipes/connected_account.rb +9 -0
- data/lib/workos/pipes/create_data_integration.rb +3 -0
- data/lib/workos/pipes/data_integration.rb +3 -0
- data/lib/workos/pipes/data_integration_installation.rb +9 -0
- data/lib/workos/pipes/data_integrations_get_data_integration_authorize_url_request.rb +3 -0
- data/lib/workos/pipes/data_integrations_get_user_token_request.rb +11 -2
- data/lib/workos/pipes/data_integrations_list_response_data.rb +18 -3
- data/lib/workos/pipes/data_integrations_list_response_data_connected_account.rb +9 -0
- data/lib/workos/pipes/data_integrations_upsert_api_key_request.rb +25 -1
- data/lib/workos/pipes/data_integrations_upsert_client_credentials_request.rb +6 -0
- data/lib/workos/pipes/data_integrations_vend_credentials_request.rb +11 -2
- data/lib/workos/pipes.rb +324 -17
- data/lib/workos/platform_teams/create_team.rb +22 -0
- data/lib/workos/platform_teams/team.rb +37 -0
- data/lib/workos/platform_teams.rb +58 -0
- data/lib/workos/session_manager.rb +11 -6
- data/lib/workos/shared/account_selection_required_error.rb +22 -0
- data/lib/workos/shared/agent_blueprint_created.rb +34 -0
- data/lib/workos/shared/agent_blueprint_created_data.rb +43 -0
- data/lib/workos/shared/agent_blueprint_created_data_invocable_by.rb +22 -0
- data/lib/workos/shared/agent_blueprint_created_data_session_setting.rb +25 -0
- data/lib/workos/shared/agent_blueprint_deleted.rb +34 -0
- data/lib/workos/shared/agent_blueprint_deleted_data.rb +31 -0
- data/lib/workos/shared/agent_blueprint_updated.rb +34 -0
- data/lib/workos/shared/agent_blueprint_updated_data.rb +7 -0
- data/lib/workos/shared/agent_blueprint_updated_data_invocable_by.rb +7 -0
- data/lib/workos/shared/agent_blueprint_updated_data_session_setting.rb +7 -0
- data/lib/workos/shared/agent_instance_created.rb +34 -0
- data/lib/workos/shared/agent_instance_created_data.rb +40 -0
- data/lib/workos/shared/agent_instance_deleted.rb +34 -0
- data/lib/workos/shared/agent_instance_deleted_data.rb +40 -0
- data/lib/workos/shared/agent_instance_session_created.rb +34 -0
- data/lib/workos/shared/agent_instance_session_created_data.rb +43 -0
- data/lib/workos/shared/agent_instance_session_revoked.rb +34 -0
- data/lib/workos/shared/agent_instance_session_revoked_data.rb +40 -0
- data/lib/workos/shared/pipe_connected_account.rb +15 -0
- data/lib/workos/shared/pipes_account_connection_add_failed.rb +34 -0
- data/lib/workos/shared/pipes_account_connection_add_failed_data.rb +49 -0
- data/lib/workos/shared/pipes_account_connection_connected.rb +34 -0
- data/lib/workos/shared/pipes_account_connection_connection_failed.rb +34 -0
- data/lib/workos/shared/pipes_account_connection_connection_failed_data.rb +7 -0
- data/lib/workos/shared/pipes_account_connection_disconnected.rb +34 -0
- data/lib/workos/shared/pipes_account_connection_reauthorization_needed.rb +34 -0
- data/lib/workos/shared/pipes_connected_account_connection_failed_data.rb +1 -40
- data/lib/workos/shared/resource_export_completed.rb +34 -0
- data/lib/workos/shared/resource_export_completed_data.rb +22 -0
- data/lib/workos/shared/resource_export_created.rb +34 -0
- data/lib/workos/shared/resource_export_created_data.rb +22 -0
- data/lib/workos/shared/resource_export_downloaded.rb +34 -0
- data/lib/workos/shared/resource_export_downloaded_data.rb +22 -0
- data/lib/workos/shared/resource_export_failed.rb +34 -0
- data/lib/workos/shared/resource_export_failed_data.rb +22 -0
- data/lib/workos/shared/waitlist_user.rb +8 -5
- data/lib/workos/sso/create_connection.rb +37 -0
- data/lib/workos/sso/create_connection_attribute_maps.rb +22 -0
- data/lib/workos/sso/create_connection_key_pair.rb +22 -0
- data/lib/workos/sso/create_connection_oidc_options.rb +43 -0
- data/lib/workos/sso/create_connection_saml_options.rb +40 -0
- data/lib/workos/sso/create_connection_standard_attributes.rb +34 -0
- data/lib/workos/sso/create_saml_idp_signing_certificate.rb +18 -0
- data/lib/workos/sso/patch_connection.rb +34 -0
- data/lib/workos/sso/patch_connection_attribute_maps.rb +22 -0
- data/lib/workos/sso/patch_connection_oidc_options.rb +40 -0
- data/lib/workos/sso/patch_connection_saml_options.rb +31 -0
- data/lib/workos/sso/patch_connection_standard_attributes.rb +7 -0
- data/lib/workos/sso/saml_idp_signing_certificate.rb +34 -0
- data/lib/workos/sso/saml_idp_signing_certificate_list.rb +22 -0
- data/lib/workos/sso/saml_sp_encryption_certificate.rb +34 -0
- data/lib/workos/sso/saml_sp_encryption_certificate_list.rb +22 -0
- data/lib/workos/sso/saml_sp_signing_certificate.rb +34 -0
- data/lib/workos/sso/token_query.rb +11 -2
- data/lib/workos/sso.rb +305 -4
- data/lib/workos/types/agent_blueprints_token_mint_token_request_type.rb +15 -0
- data/lib/workos/types/agent_instance_created_data_type.rb +13 -0
- data/lib/workos/types/agent_instance_deleted_data_type.rb +9 -0
- data/lib/workos/types/agent_instance_session_status.rb +14 -0
- data/lib/workos/types/agent_instance_type.rb +9 -0
- data/lib/workos/types/authenticate_response_authentication_method.rb +1 -4
- data/lib/workos/types/connected_account_connection_role.rb +13 -0
- data/lib/workos/types/connection_activated_data_connection_type.rb +1 -4
- data/lib/workos/types/connection_type.rb +1 -4
- data/lib/workos/types/connections_connection_type.rb +1 -4
- data/lib/workos/types/create_connection_oidc_options_id_token_signature_algorithm.rb +24 -0
- data/lib/workos/types/create_connection_oidc_options_token_authentication_method.rb +14 -0
- data/lib/workos/types/create_data_integration_ownership.rb +13 -0
- data/lib/workos/types/create_webhook_endpoint_events.rb +13 -1
- data/lib/workos/types/data_integration_installation_connection_role.rb +9 -0
- data/lib/workos/types/data_integration_ownership.rb +9 -0
- data/lib/workos/types/data_integrations_get_data_integration_authorize_url_request_connection_owner.rb +9 -0
- data/lib/workos/types/data_integrations_get_user_token_request_connection_owner.rb +9 -0
- data/lib/workos/types/data_integrations_list_response_data_connected_account_connection_role.rb +9 -0
- data/lib/workos/types/data_integrations_list_response_data_connection_owner.rb +9 -0
- data/lib/workos/types/data_integrations_upsert_api_key_request_connection_owner.rb +9 -0
- data/lib/workos/types/data_integrations_upsert_client_credentials_request_connection_owner.rb +9 -0
- data/lib/workos/types/data_integrations_vend_credentials_request_connection_owner.rb +9 -0
- data/lib/workos/types/invite_it_contact_intents.rb +16 -0
- data/lib/workos/types/patch_connection_oidc_options_id_token_signature_algorithm.rb +9 -0
- data/lib/workos/types/patch_connection_oidc_options_token_authentication_method.rb +9 -0
- data/lib/workos/types/pipe_connected_account_auth_method.rb +9 -0
- data/lib/workos/types/pipe_connected_account_connection_role.rb +9 -0
- data/lib/workos/types/pipes_ownership.rb +9 -0
- data/lib/workos/types/resource_export_completed_data_resource_type.rb +18 -0
- data/lib/workos/types/resource_export_created_data_resource_type.rb +9 -0
- data/lib/workos/types/resource_export_downloaded_data_resource_type.rb +9 -0
- data/lib/workos/types/resource_export_failed_data_resource_type.rb +9 -0
- data/lib/workos/types/session_created_data_status.rb +1 -6
- data/lib/workos/types/session_revoked_data_status.rb +1 -1
- data/lib/workos/types/sso_grant_type.rb +13 -0
- data/lib/workos/types/team_production_state.rb +15 -0
- data/lib/workos/types/token_query_grant_type.rb +9 -0
- data/lib/workos/types/update_audit_logs_retention_retention_period.rb +32 -0
- data/lib/workos/types/user_identities_get_item_provider.rb +1 -4
- data/lib/workos/types/user_management_waitlists_state.rb +14 -0
- data/lib/workos/types/user_sessions_status.rb +1 -1
- data/lib/workos/types/waitlist_entry_state.rb +9 -0
- data/lib/workos/types/waitlist_user_state.rb +1 -6
- data/lib/workos/user_management/authentication_oauth_failed_data.rb +5 -2
- data/lib/workos/user_management/authentication_oauth_succeeded_data.rb +5 -2
- data/lib/workos/user_management/authkit_oauth_resource.rb +34 -0
- data/lib/workos/user_management/create_authkit_oauth_resource.rb +22 -0
- data/lib/workos/user_management/create_password_reset_token.rb +1 -12
- data/lib/workos/user_management/create_waitlist_entry.rb +25 -0
- data/lib/workos/user_management/email_completion_session_authenticate_request.rb +43 -0
- data/lib/workos/user_management/waitlist.rb +28 -0
- data/lib/workos/user_management/waitlist_entry.rb +43 -0
- data/lib/workos/user_management.rb +263 -0
- data/lib/workos/version.rb +1 -1
- data/lib/workos.rb +1 -0
- data/rbi/workos/account_selection_required_error.rbi +30 -0
- data/rbi/workos/agent_blueprint.rbi +72 -0
- data/rbi/workos/agent_blueprint_created.rbi +54 -0
- data/rbi/workos/agent_blueprint_created_data.rbi +72 -0
- data/rbi/workos/agent_blueprint_created_data_invocable_by.rbi +30 -0
- data/rbi/workos/agent_blueprint_created_data_session_setting.rbi +36 -0
- data/rbi/workos/agent_blueprint_deleted.rbi +54 -0
- data/rbi/workos/agent_blueprint_deleted_data.rbi +48 -0
- data/rbi/workos/agent_blueprint_invocable_by.rbi +30 -0
- data/rbi/workos/agent_blueprint_session_setting.rbi +36 -0
- data/rbi/workos/agent_blueprint_updated.rbi +54 -0
- data/rbi/workos/agent_blueprint_updated_data.rbi +72 -0
- data/rbi/workos/agent_blueprint_updated_data_invocable_by.rbi +30 -0
- data/rbi/workos/agent_blueprint_updated_data_session_setting.rbi +36 -0
- data/rbi/workos/agent_blueprints_create_request.rbi +48 -0
- data/rbi/workos/agent_blueprints_create_request_invocable_by.rbi +30 -0
- data/rbi/workos/agent_blueprints_create_request_session_setting.rbi +36 -0
- data/rbi/workos/agent_blueprints_token_mint_token_request.rbi +54 -0
- data/rbi/workos/agent_blueprints_token_validate_token_request.rbi +24 -0
- data/rbi/workos/agent_blueprints_update_request.rbi +48 -0
- data/rbi/workos/agent_blueprints_update_request_invocable_by.rbi +30 -0
- data/rbi/workos/agent_blueprints_update_request_session_setting.rbi +36 -0
- data/rbi/workos/agent_instance.rbi +66 -0
- data/rbi/workos/agent_instance_created.rbi +54 -0
- data/rbi/workos/agent_instance_created_data.rbi +66 -0
- data/rbi/workos/agent_instance_deleted.rbi +54 -0
- data/rbi/workos/agent_instance_deleted_data.rbi +66 -0
- data/rbi/workos/agent_instance_session.rbi +66 -0
- data/rbi/workos/agent_instance_session_created.rbi +54 -0
- data/rbi/workos/agent_instance_session_created_data.rbi +72 -0
- data/rbi/workos/agent_instance_session_revoked.rbi +54 -0
- data/rbi/workos/agent_instance_session_revoked_data.rbi +66 -0
- data/rbi/workos/agent_token.rbi +66 -0
- data/rbi/workos/agent_token_validation.rbi +66 -0
- data/rbi/workos/agents.rbi +134 -0
- data/rbi/workos/audit_logs.rbi +26 -2
- data/rbi/workos/authentication_oauth_failed_data.rbi +6 -0
- data/rbi/workos/authentication_oauth_succeeded_data.rbi +6 -0
- data/rbi/workos/authkit_oauth_resource.rbi +54 -0
- data/rbi/workos/client.rbi +3 -0
- data/rbi/workos/connected_account.rbi +18 -0
- data/rbi/workos/create_authkit_oauth_resource.rbi +30 -0
- data/rbi/workos/create_connection.rbi +60 -0
- data/rbi/workos/create_connection_attribute_maps.rbi +30 -0
- data/rbi/workos/create_connection_key_pair.rbi +30 -0
- data/rbi/workos/create_connection_oidc_options.rbi +72 -0
- data/rbi/workos/create_connection_saml_options.rbi +66 -0
- data/rbi/workos/create_connection_standard_attributes.rbi +54 -0
- data/rbi/workos/create_data_integration.rbi +6 -0
- data/rbi/workos/create_it_contact.rbi +24 -0
- data/rbi/workos/create_saml_idp_signing_certificate.rbi +24 -0
- data/rbi/workos/create_team.rbi +30 -0
- data/rbi/workos/create_waitlist_entry.rbi +36 -0
- data/rbi/workos/data_integration.rbi +6 -0
- data/rbi/workos/data_integration_installation.rbi +19 -1
- data/rbi/workos/data_integrations_get_data_integration_authorize_url_request.rbi +6 -0
- data/rbi/workos/data_integrations_get_user_token_request.rbi +18 -0
- data/rbi/workos/data_integrations_list_response_data.rbi +12 -0
- data/rbi/workos/data_integrations_list_response_data_connected_account.rbi +18 -0
- data/rbi/workos/data_integrations_upsert_api_key_request.rbi +12 -0
- data/rbi/workos/data_integrations_upsert_client_credentials_request.rbi +12 -0
- data/rbi/workos/data_integrations_vend_credentials_request.rbi +18 -0
- data/rbi/workos/email_completion_session_authenticate_request.rbi +72 -0
- data/rbi/workos/invite_it_contact.rbi +24 -0
- data/rbi/workos/it_contact.rbi +48 -0
- data/rbi/workos/organizations.rbi +45 -0
- data/rbi/workos/patch_connection.rbi +54 -0
- data/rbi/workos/patch_connection_attribute_maps.rbi +30 -0
- data/rbi/workos/patch_connection_oidc_options.rbi +66 -0
- data/rbi/workos/patch_connection_saml_options.rbi +48 -0
- data/rbi/workos/patch_connection_standard_attributes.rbi +54 -0
- data/rbi/workos/pipe_connected_account.rbi +30 -0
- data/rbi/workos/pipes.rbi +122 -11
- data/rbi/workos/pipes_account_connection_add_failed.rbi +54 -0
- data/rbi/workos/pipes_account_connection_add_failed_data.rbi +84 -0
- data/rbi/workos/pipes_account_connection_connected.rbi +54 -0
- data/rbi/workos/pipes_account_connection_connection_failed.rbi +54 -0
- data/rbi/workos/pipes_account_connection_connection_failed_data.rbi +84 -0
- data/rbi/workos/pipes_account_connection_disconnected.rbi +54 -0
- data/rbi/workos/pipes_account_connection_reauthorization_needed.rbi +54 -0
- data/rbi/workos/pipes_connected_account_connection_failed_data.rbi +6 -0
- data/rbi/workos/platform_teams.rbi +30 -0
- data/rbi/workos/resource_export_completed.rbi +54 -0
- data/rbi/workos/resource_export_completed_data.rbi +30 -0
- data/rbi/workos/resource_export_created.rbi +54 -0
- data/rbi/workos/resource_export_created_data.rbi +30 -0
- data/rbi/workos/resource_export_downloaded.rbi +54 -0
- data/rbi/workos/resource_export_downloaded_data.rbi +30 -0
- data/rbi/workos/resource_export_failed.rbi +54 -0
- data/rbi/workos/resource_export_failed_data.rbi +30 -0
- data/rbi/workos/saml_idp_signing_certificate.rbi +54 -0
- data/rbi/workos/saml_idp_signing_certificate_list.rbi +30 -0
- data/rbi/workos/saml_sp_encryption_certificate.rbi +54 -0
- data/rbi/workos/saml_sp_encryption_certificate_list.rbi +30 -0
- data/rbi/workos/saml_sp_signing_certificate.rbi +54 -0
- data/rbi/workos/sso.rbi +155 -2
- data/rbi/workos/team.rbi +60 -0
- data/rbi/workos/token_query.rbi +20 -2
- data/rbi/workos/update_audit_logs_retention.rbi +8 -2
- data/rbi/workos/user_management.rbi +92 -0
- data/rbi/workos/waitlist.rbi +42 -0
- data/rbi/workos/waitlist_entry.rbi +72 -0
- data/rbi/workos/waitlist_user.rbi +12 -6
- data/test/workos/test_agents.rb +105 -1
- data/test/workos/test_agents_model_round_trip.rb +245 -0
- data/test/workos/test_audit_logs.rb +11 -2
- data/test/workos/test_authorization.rb +6 -6
- data/test/workos/test_organizations.rb +41 -1
- data/test/workos/test_organizations_model_round_trip.rb +40 -1
- data/test/workos/test_pipes.rb +64 -0
- data/test/workos/test_pipes_model_round_trip.rb +35 -5
- data/test/workos/test_platform_teams.rb +41 -0
- data/test/workos/test_platform_teams_model_round_trip.rb +41 -0
- data/test/workos/test_session.rb +63 -0
- data/test/workos/test_shared_model_round_trip.rb +610 -2
- data/test/workos/test_sso.rb +108 -2
- data/test/workos/test_sso_model_round_trip.rb +262 -2
- data/test/workos/test_user_management.rb +80 -0
- data/test/workos/test_user_management_model_round_trip.rb +110 -2
- 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
|
-
"
|
|
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
|
-
|
|
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
|
data/test/workos/test_session.rb
CHANGED
|
@@ -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
|