workos 8.0.1 → 9.0.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 +1 -1
- data/.github/workflows/docs.yml +1 -1
- data/.github/workflows/lint.yml +1 -1
- data/.github/workflows/release-please.yml +174 -3
- data/.github/workflows/release.yml +1 -1
- data/.last-synced-sha +1 -1
- data/.oagen-manifest.json +129 -34
- data/.release-please-manifest.json +1 -1
- data/CHANGELOG.md +59 -0
- data/Gemfile.lock +4 -4
- data/lib/workos/api_keys/api_key.rb +3 -0
- data/lib/workos/api_keys/api_key_created.rb +5 -5
- data/lib/workos/api_keys/api_key_created_data.rb +3 -0
- data/lib/workos/api_keys/api_key_revoked.rb +5 -5
- data/lib/workos/api_keys/create_organization_api_key.rb +5 -2
- data/lib/workos/api_keys/organization_api_key.rb +3 -0
- data/lib/workos/api_keys/organization_api_key_with_value.rb +3 -0
- data/lib/workos/api_keys.rb +4 -1
- data/lib/workos/audit_logs/audit_log_action.rb +2 -7
- data/lib/workos/audit_logs/audit_log_export.rb +2 -7
- data/lib/workos/audit_logs/audit_log_schema.rb +11 -2
- data/lib/workos/audit_logs/{audit_log_schema_json_actor.rb → audit_log_schema_actor_input.rb} +1 -1
- data/lib/workos/audit_logs/audit_log_schema_input.rb +25 -0
- data/lib/workos/audit_logs/audit_log_schema_target.rb +16 -1
- data/lib/workos/{types/radar_type.rb → audit_logs/audit_log_schema_target_input.rb} +1 -3
- data/lib/workos/audit_logs.rb +16 -16
- data/lib/workos/authorization/permission_created.rb +5 -5
- data/lib/workos/authorization/permission_deleted.rb +5 -5
- data/lib/workos/authorization/permission_updated.rb +5 -5
- data/lib/workos/authorization/role_created.rb +5 -5
- data/lib/workos/authorization/role_deleted.rb +5 -5
- data/lib/workos/authorization/role_updated.rb +5 -5
- data/lib/workos/authorization.rb +28 -12
- data/lib/workos/client.rb +6 -6
- data/lib/workos/connect/connect_application.rb +12 -0
- data/lib/workos/{audit_logs/audit_log_schema_json_target.rb → connect/connect_application_redirect_uri.rb} +7 -7
- data/lib/workos/directory_sync/dsync_activated.rb +5 -5
- data/lib/workos/directory_sync/dsync_deactivated.rb +5 -5
- data/lib/workos/directory_sync/dsync_deleted.rb +5 -5
- data/lib/workos/directory_sync/dsync_group_created.rb +5 -5
- data/lib/workos/directory_sync/dsync_group_deleted.rb +5 -5
- data/lib/workos/directory_sync/dsync_group_updated.rb +5 -5
- data/lib/workos/directory_sync/dsync_group_user_added.rb +5 -5
- data/lib/workos/directory_sync/dsync_group_user_removed.rb +5 -5
- data/lib/workos/directory_sync/dsync_user_created.rb +5 -5
- data/lib/workos/directory_sync/dsync_user_deleted.rb +5 -5
- data/lib/workos/directory_sync/dsync_user_updated.rb +5 -5
- data/lib/workos/feature_flags/flag_created.rb +5 -5
- data/lib/workos/feature_flags/flag_deleted.rb +5 -5
- data/lib/workos/feature_flags/flag_rule_updated.rb +5 -5
- data/lib/workos/feature_flags/flag_rule_updated_context_configured_target_organization.rb +1 -16
- data/lib/workos/feature_flags/flag_rule_updated_context_previous_attribute_context_configured_target_organization.rb +1 -1
- data/lib/workos/feature_flags/flag_updated.rb +5 -5
- data/lib/workos/inflections.rb +4 -1
- data/lib/workos/organization_domains/organization_domain_created.rb +5 -5
- data/lib/workos/organization_domains/organization_domain_deleted.rb +5 -5
- data/lib/workos/organization_domains/organization_domain_updated.rb +5 -5
- data/lib/workos/organization_domains/organization_domain_verification_failed.rb +5 -5
- data/lib/workos/organization_domains/organization_domain_verified.rb +5 -5
- data/lib/workos/organization_membership_service.rb +273 -0
- data/lib/workos/organizations/audit_logs_retention.rb +2 -7
- data/lib/workos/organizations/organization_created.rb +5 -5
- data/lib/workos/organizations/organization_deleted.rb +5 -5
- data/lib/workos/organizations/organization_membership_created.rb +5 -5
- data/lib/workos/organizations/organization_membership_deleted.rb +5 -5
- data/lib/workos/organizations/organization_membership_updated.rb +5 -5
- data/lib/workos/organizations/organization_role_created.rb +5 -5
- data/lib/workos/organizations/organization_role_deleted.rb +5 -5
- data/lib/workos/organizations/organization_role_updated.rb +5 -5
- data/lib/workos/organizations/organization_updated.rb +5 -5
- data/lib/workos/radar/radar_standalone_assess_request.rb +2 -8
- data/lib/workos/radar.rb +6 -12
- data/lib/workos/shared/connect_application_m2m.rb +46 -0
- data/lib/workos/shared/connect_application_oauth.rb +58 -0
- data/lib/workos/shared/connect_application_oauth_redirect_uris.rb +22 -0
- data/lib/workos/shared/error_response.rb +18 -0
- data/lib/workos/shared/group_created.rb +5 -5
- data/lib/workos/shared/group_deleted.rb +5 -5
- data/lib/workos/shared/group_member_added.rb +5 -5
- data/lib/workos/shared/group_member_removed.rb +5 -5
- data/lib/workos/shared/group_updated.rb +5 -5
- data/lib/workos/shared/pipe_connected_account.rb +46 -0
- data/lib/workos/{audit_logs/audit_log_export_json.rb → shared/pipes_connected_account_connected.rb} +10 -10
- data/lib/workos/shared/pipes_connected_account_disconnected.rb +34 -0
- data/lib/workos/shared/pipes_connected_account_reauthorization_needed.rb +34 -0
- data/lib/workos/shared/waitlist_user_approved.rb +5 -5
- data/lib/workos/shared/waitlist_user_created.rb +5 -5
- data/lib/workos/shared/waitlist_user_denied.rb +5 -5
- data/lib/workos/sso/connection_activated.rb +5 -5
- data/lib/workos/sso/connection_deactivated.rb +5 -5
- data/lib/workos/sso/connection_deleted.rb +5 -5
- data/lib/workos/sso/connection_saml_certificate_renewal_required.rb +5 -5
- data/lib/workos/sso/connection_saml_certificate_renewed.rb +5 -5
- data/lib/workos/types/create_webhook_endpoint_events.rb +4 -1
- data/lib/workos/types/pipe_connected_account_state.rb +13 -0
- data/lib/workos/types/{radar_action.rb → radar_list_action.rb} +1 -1
- data/lib/workos/types/radar_list_type.rb +18 -0
- data/lib/workos/types/radar_standalone_assess_request_action.rb +1 -7
- data/lib/workos/types/radar_standalone_response_blocklist_type.rb +1 -10
- data/lib/workos/types/radar_standalone_response_control.rb +1 -3
- data/lib/workos/types/user_management_authentication_screen_hint.rb +1 -5
- data/{rbi/workos/types/request_options.rbi → lib/workos/types/vault_order.rb} +4 -3
- data/lib/workos/types/webhook_endpoint_status.rb +1 -5
- data/lib/workos/user_management/action_authentication_denied.rb +6 -6
- data/lib/workos/user_management/action_user_registration_denied.rb +6 -6
- data/lib/workos/user_management/authentication_email_verification_failed.rb +5 -5
- data/lib/workos/user_management/authentication_email_verification_succeeded.rb +5 -5
- data/lib/workos/user_management/authentication_magic_auth_failed.rb +5 -5
- data/lib/workos/user_management/authentication_magic_auth_succeeded.rb +5 -5
- data/lib/workos/user_management/authentication_mfa_failed.rb +5 -5
- data/lib/workos/user_management/authentication_mfa_succeeded.rb +5 -5
- data/lib/workos/user_management/authentication_oauth_failed.rb +5 -5
- data/lib/workos/user_management/authentication_oauth_succeeded.rb +5 -5
- data/lib/workos/user_management/authentication_passkey_failed.rb +5 -5
- data/lib/workos/user_management/authentication_passkey_succeeded.rb +5 -5
- data/lib/workos/user_management/authentication_password_failed.rb +5 -5
- data/lib/workos/user_management/authentication_password_succeeded.rb +5 -5
- data/lib/workos/user_management/authentication_radar_risk_detected.rb +5 -5
- data/lib/workos/user_management/authentication_sso_failed.rb +5 -5
- data/lib/workos/user_management/authentication_sso_started.rb +5 -5
- data/lib/workos/user_management/authentication_sso_succeeded.rb +5 -5
- data/lib/workos/user_management/authentication_sso_timed_out.rb +5 -5
- data/lib/workos/user_management/create_user_api_key.rb +5 -2
- data/lib/workos/user_management/email_verification_created.rb +5 -5
- data/lib/workos/user_management/invitation_accepted.rb +5 -5
- data/lib/workos/user_management/invitation_created.rb +5 -5
- data/lib/workos/user_management/invitation_resent.rb +5 -5
- data/lib/workos/user_management/invitation_revoked.rb +5 -5
- data/lib/workos/user_management/magic_auth_created.rb +5 -5
- data/lib/workos/user_management/password_reset_created.rb +5 -5
- data/lib/workos/user_management/password_reset_succeeded.rb +5 -5
- data/lib/workos/user_management/session_created.rb +5 -5
- data/lib/workos/user_management/session_revoked.rb +5 -5
- data/lib/workos/user_management/user_api_key.rb +3 -0
- data/lib/workos/user_management/user_api_key_with_value.rb +3 -0
- data/lib/workos/user_management/user_created.rb +5 -5
- data/lib/workos/user_management/user_deleted.rb +5 -5
- data/lib/workos/user_management/user_updated.rb +5 -5
- data/lib/workos/user_management.rb +4 -214
- data/lib/workos/vault/actor.rb +22 -0
- data/lib/workos/vault/create_data_key_request.rb +18 -0
- data/lib/workos/vault/create_data_key_response.rb +28 -0
- data/lib/workos/vault/create_object_request.rb +25 -0
- data/lib/workos/vault/decrypt_request.rb +18 -0
- data/lib/workos/vault/decrypt_response.rb +22 -0
- data/lib/workos/vault/delete_object_response.rb +22 -0
- data/lib/workos/vault/object.rb +28 -0
- data/lib/workos/vault/object_metadata.rb +37 -0
- data/lib/workos/{audit_logs/audit_log_action_json.rb → vault/object_summary.rb} +4 -10
- data/lib/workos/vault/object_version.rb +31 -0
- data/lib/workos/vault/object_without_value.rb +25 -0
- data/lib/workos/vault/rekey_request.rb +22 -0
- data/lib/workos/vault/update_object_request.rb +22 -0
- data/lib/workos/vault/vault_byok_key_deleted.rb +5 -5
- data/lib/workos/vault/vault_byok_key_verification_completed.rb +5 -5
- data/lib/workos/vault/vault_data_created.rb +5 -5
- data/lib/workos/vault/vault_data_deleted.rb +5 -5
- data/lib/workos/vault/vault_data_read.rb +5 -5
- data/lib/workos/vault/vault_data_updated.rb +5 -5
- data/lib/workos/vault/vault_dek_decrypted.rb +5 -5
- data/lib/workos/vault/vault_dek_read.rb +5 -5
- data/lib/workos/vault/vault_kek_created.rb +5 -5
- data/lib/workos/vault/vault_metadata_read.rb +5 -5
- data/lib/workos/vault/vault_names_listed.rb +5 -5
- data/lib/workos/vault/version_list_response.rb +22 -0
- data/lib/workos/vault.rb +273 -139
- data/lib/workos/version.rb +1 -1
- data/lib/workos/webhooks/webhook_endpoint.rb +2 -7
- data/lib/workos/webhooks.rb +7 -8
- data/lib/workos.rb +1 -0
- data/rbi/workos/action_authentication_denied.rbi +10 -10
- data/rbi/workos/action_user_registration_denied.rbi +10 -10
- data/rbi/workos/actor.rbi +30 -0
- data/rbi/workos/api_key.rbi +6 -0
- data/rbi/workos/api_key_created.rbi +6 -6
- data/rbi/workos/api_key_created_data.rbi +6 -0
- data/rbi/workos/api_key_revoked.rbi +6 -6
- data/rbi/workos/api_key_revoked_data.rbi +6 -0
- data/rbi/workos/api_keys.rbi +2 -1
- data/rbi/workos/audit_log_action.rbi +1 -0
- data/rbi/workos/audit_log_export.rbi +1 -0
- data/rbi/workos/audit_log_schema.rbi +18 -0
- data/rbi/workos/{audit_log_schema_json_actor.rbi → audit_log_schema_actor_input.rbi} +1 -1
- data/rbi/workos/audit_log_schema_input.rbi +36 -0
- data/rbi/workos/{audit_log_schema_json_target.rbi → audit_log_schema_target_input.rbi} +1 -1
- data/rbi/workos/audit_logs.rbi +9 -9
- data/rbi/workos/audit_logs_retention.rbi +1 -0
- data/rbi/workos/authentication_email_verification_failed.rbi +6 -6
- data/rbi/workos/authentication_email_verification_succeeded.rbi +6 -6
- data/rbi/workos/authentication_magic_auth_failed.rbi +6 -6
- data/rbi/workos/authentication_magic_auth_succeeded.rbi +6 -6
- data/rbi/workos/authentication_mfa_failed.rbi +6 -6
- data/rbi/workos/authentication_mfa_succeeded.rbi +6 -6
- data/rbi/workos/authentication_oauth_failed.rbi +6 -6
- data/rbi/workos/authentication_oauth_succeeded.rbi +6 -6
- data/rbi/workos/authentication_passkey_failed.rbi +6 -6
- data/rbi/workos/authentication_passkey_succeeded.rbi +6 -6
- data/rbi/workos/authentication_password_failed.rbi +6 -6
- data/rbi/workos/authentication_password_succeeded.rbi +6 -6
- data/rbi/workos/authentication_radar_risk_detected.rbi +6 -6
- data/rbi/workos/authentication_sso_failed.rbi +6 -6
- data/rbi/workos/authentication_sso_started.rbi +6 -6
- data/rbi/workos/authentication_sso_succeeded.rbi +6 -6
- data/rbi/workos/authentication_sso_timed_out.rbi +6 -6
- data/rbi/workos/authorization.rbi +9 -5
- data/rbi/workos/client.rbi +6 -3
- data/rbi/workos/connect_application.rbi +0 -12
- data/rbi/workos/{webhook_endpoint_json.rbi → connect_application_m2m.rbi} +23 -11
- data/rbi/workos/connect_application_oauth.rbi +102 -0
- data/rbi/workos/connect_application_oauth_redirect_uris.rbi +30 -0
- data/rbi/workos/connection_activated.rbi +6 -6
- data/rbi/workos/connection_deactivated.rbi +6 -6
- data/rbi/workos/connection_deleted.rbi +6 -6
- data/rbi/workos/connection_saml_certificate_renewal_required.rbi +6 -6
- data/rbi/workos/connection_saml_certificate_renewed.rbi +6 -6
- data/rbi/workos/{audit_logs_retention_json.rbi → create_data_key_request.rbi} +5 -5
- data/rbi/workos/create_data_key_response.rbi +42 -0
- data/rbi/workos/create_object_request.rbi +36 -0
- data/rbi/workos/create_organization_api_key.rbi +6 -0
- data/rbi/workos/create_user_api_key.rbi +6 -0
- data/rbi/workos/decrypt_request.rbi +24 -0
- data/rbi/workos/decrypt_response.rbi +30 -0
- data/rbi/workos/delete_object_response.rbi +30 -0
- data/rbi/workos/dsync_activated.rbi +6 -6
- data/rbi/workos/dsync_deactivated.rbi +6 -6
- data/rbi/workos/dsync_deleted.rbi +6 -6
- data/rbi/workos/dsync_group_created.rbi +6 -6
- data/rbi/workos/dsync_group_deleted.rbi +6 -6
- data/rbi/workos/dsync_group_updated.rbi +6 -6
- data/rbi/workos/dsync_group_user_added.rbi +6 -6
- data/rbi/workos/dsync_group_user_removed.rbi +6 -6
- data/rbi/workos/dsync_user_created.rbi +6 -6
- data/rbi/workos/dsync_user_deleted.rbi +6 -6
- data/rbi/workos/dsync_user_updated.rbi +6 -6
- data/rbi/workos/email_verification_created.rbi +6 -6
- data/rbi/workos/error_response.rbi +24 -0
- data/rbi/workos/flag_created.rbi +6 -6
- data/rbi/workos/flag_deleted.rbi +6 -6
- data/rbi/workos/flag_rule_updated.rbi +6 -6
- data/rbi/workos/flag_updated.rbi +6 -6
- data/rbi/workos/group_created.rbi +6 -6
- data/rbi/workos/group_deleted.rbi +6 -6
- data/rbi/workos/group_member_added.rbi +6 -6
- data/rbi/workos/group_member_removed.rbi +6 -6
- data/rbi/workos/group_updated.rbi +6 -6
- data/rbi/workos/invitation_accepted.rbi +6 -6
- data/rbi/workos/invitation_created.rbi +6 -6
- data/rbi/workos/invitation_resent.rbi +6 -6
- data/rbi/workos/invitation_revoked.rbi +6 -6
- data/rbi/workos/magic_auth_created.rbi +6 -6
- data/rbi/workos/object.rbi +42 -0
- data/rbi/workos/object_metadata.rbi +60 -0
- data/rbi/workos/object_summary.rbi +36 -0
- data/rbi/workos/{audit_log_action_json.rbi → object_version.rbi} +17 -17
- data/rbi/workos/object_without_value.rbi +36 -0
- data/rbi/workos/organization_api_key.rbi +6 -0
- data/rbi/workos/organization_api_key_with_value.rbi +6 -0
- data/rbi/workos/organization_created.rbi +6 -6
- data/rbi/workos/organization_deleted.rbi +6 -6
- data/rbi/workos/organization_domain_created.rbi +6 -6
- data/rbi/workos/organization_domain_deleted.rbi +6 -6
- data/rbi/workos/organization_domain_updated.rbi +6 -6
- data/rbi/workos/organization_domain_verification_failed.rbi +6 -6
- data/rbi/workos/organization_domain_verified.rbi +6 -6
- data/rbi/workos/organization_membership_created.rbi +6 -6
- data/rbi/workos/organization_membership_deleted.rbi +6 -6
- data/rbi/workos/organization_membership_service.rbi +114 -0
- data/rbi/workos/organization_membership_updated.rbi +6 -6
- data/rbi/workos/organization_role_created.rbi +6 -6
- data/rbi/workos/organization_role_deleted.rbi +6 -6
- data/rbi/workos/organization_role_updated.rbi +6 -6
- data/rbi/workos/organization_updated.rbi +6 -6
- data/rbi/workos/password_reset_created.rbi +6 -6
- data/rbi/workos/password_reset_succeeded.rbi +6 -6
- data/rbi/workos/permission_created.rbi +6 -6
- data/rbi/workos/permission_deleted.rbi +6 -6
- data/rbi/workos/permission_updated.rbi +6 -6
- data/rbi/workos/pipe_connected_account.rbi +78 -0
- data/rbi/workos/{audit_log_export_json.rbi → pipes_connected_account_connected.rbi} +11 -11
- data/rbi/workos/pipes_connected_account_disconnected.rbi +54 -0
- data/rbi/workos/pipes_connected_account_reauthorization_needed.rbi +54 -0
- data/rbi/workos/radar.rbi +1 -3
- data/rbi/workos/radar_standalone_assess_request.rbi +0 -12
- data/rbi/workos/rekey_request.rbi +30 -0
- data/rbi/workos/role_created.rbi +6 -6
- data/rbi/workos/role_deleted.rbi +6 -6
- data/rbi/workos/role_updated.rbi +6 -6
- data/rbi/workos/session_created.rbi +6 -6
- data/rbi/workos/session_manager.rbi +1 -1
- data/rbi/workos/session_revoked.rbi +6 -6
- data/rbi/workos/update_object_request.rbi +30 -0
- data/rbi/workos/user_api_key.rbi +6 -0
- data/rbi/workos/user_api_key_with_value.rbi +6 -0
- data/rbi/workos/user_created.rbi +6 -6
- data/rbi/workos/user_deleted.rbi +6 -6
- data/rbi/workos/user_management.rbi +2 -90
- data/rbi/workos/user_updated.rbi +6 -6
- data/rbi/workos/vault.rbi +70 -95
- data/rbi/workos/vault_byok_key_deleted.rbi +6 -6
- data/rbi/workos/vault_byok_key_verification_completed.rbi +6 -6
- data/rbi/workos/vault_data_created.rbi +6 -6
- data/rbi/workos/vault_data_deleted.rbi +6 -6
- data/rbi/workos/vault_data_read.rbi +6 -6
- data/rbi/workos/vault_data_updated.rbi +6 -6
- data/rbi/workos/vault_dek_decrypted.rbi +6 -6
- data/rbi/workos/vault_dek_read.rbi +6 -6
- data/rbi/workos/vault_kek_created.rbi +6 -6
- data/rbi/workos/vault_metadata_read.rbi +6 -6
- data/rbi/workos/vault_names_listed.rbi +6 -6
- data/rbi/workos/waitlist_user_approved.rbi +6 -6
- data/rbi/workos/waitlist_user_created.rbi +6 -6
- data/rbi/workos/waitlist_user_denied.rbi +6 -6
- data/rbi/workos/webhook_endpoint.rbi +1 -0
- data/rbi/workos/webhooks.rbi +2 -2
- data/renovate.json +1 -1
- data/test/workos/test_model_round_trip.rb +577 -212
- data/test/workos/test_organization_membership_service.rb +107 -0
- data/test/workos/test_user_management.rb +0 -74
- data/test/workos/test_vault.rb +91 -87
- metadata +65 -41
- data/lib/workos/audit_logs/audit_log_schema_json.rb +0 -34
- data/lib/workos/organizations/audit_logs_retention_json.rb +0 -18
- data/lib/workos/types/audit_log_export_json_state.rb +0 -14
- data/lib/workos/types/webhook_endpoint_json_status.rb +0 -9
- data/lib/workos/user_management_organization_membership_groups.rb +0 -60
- data/lib/workos/webhooks/webhook_endpoint_json.rb +0 -40
- data/rbi/workos/actions.rbi +0 -48
- data/rbi/workos/audit_log_schema_json.rbi +0 -54
- data/rbi/workos/base_client.rbi +0 -132
- data/rbi/workos/configuration.rbi +0 -68
- data/rbi/workos/encryptors/aes_gcm.rbi +0 -19
- data/rbi/workos/errors.rbi +0 -43
- data/rbi/workos/hash_provider.rbi +0 -18
- data/rbi/workos/passwordless.rbi +0 -47
- data/rbi/workos/public_client.rbi +0 -12
- data/rbi/workos/session.rbi +0 -43
- data/rbi/workos/types/api_response.rbi +0 -29
- data/rbi/workos/types/base_model.rbi +0 -22
- data/rbi/workos/types/list_struct.rbi +0 -89
- data/rbi/workos/user_management_organization_membership_groups.rbi +0 -25
- data/rbi/workos/util.rbi +0 -12
- data/test/workos/test_user_management_organization_membership_groups.rb +0 -33
- /data/lib/workos/{user_management → organization_membership}/create_user_organization_membership.rb +0 -0
- /data/lib/workos/{user_management → organization_membership}/organization_membership.rb +0 -0
- /data/lib/workos/{user_management → organization_membership}/update_user_organization_membership.rb +0 -0
- /data/lib/workos/{user_management → organization_membership}/user_organization_membership.rb +0 -0
|
@@ -0,0 +1,107 @@
|
|
|
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 OrganizationMembershipServiceTest < 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_list_organization_memberships_returns_expected_result
|
|
15
|
+
stub_request(:get, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)})
|
|
16
|
+
.to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
|
|
17
|
+
result = @client.organization_membership.list_organization_memberships
|
|
18
|
+
assert_kind_of WorkOS::Types::ListStruct, result
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_create_organization_membership_returns_expected_result
|
|
22
|
+
stub_request(:post, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)})
|
|
23
|
+
.with(body: hash_including("user_id" => "stub", "organization_id" => "stub", "role_slug" => "stub"))
|
|
24
|
+
.to_return(body: "{}", status: 200)
|
|
25
|
+
result = @client.organization_membership.create_organization_membership(user_id: "stub", organization_id: "stub", role: WorkOS::OrganizationMembershipService::RoleSingle.new(role_slug: "stub"))
|
|
26
|
+
refute_nil result
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_create_organization_membership_with_role_multiple_returns_expected_result
|
|
30
|
+
stub_request(:post, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)})
|
|
31
|
+
.with(body: hash_including("user_id" => "stub", "organization_id" => "stub", "role_slugs" => ["stub"]))
|
|
32
|
+
.to_return(body: "{}", status: 200)
|
|
33
|
+
result = @client.organization_membership.create_organization_membership(user_id: "stub", organization_id: "stub", role: WorkOS::OrganizationMembershipService::RoleMultiple.new(role_slugs: ["stub"]))
|
|
34
|
+
refute_nil result
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_get_organization_membership_returns_expected_result
|
|
38
|
+
stub_request(:get, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
|
|
39
|
+
.to_return(body: "{}", status: 200)
|
|
40
|
+
result = @client.organization_membership.get_organization_membership(id: "stub")
|
|
41
|
+
refute_nil result
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_update_organization_membership_returns_expected_result
|
|
45
|
+
stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
|
|
46
|
+
.with(body: hash_including("role_slug" => "stub"))
|
|
47
|
+
.to_return(body: "{}", status: 200)
|
|
48
|
+
result = @client.organization_membership.update_organization_membership(id: "stub", role: WorkOS::OrganizationMembershipService::RoleSingle.new(role_slug: "stub"))
|
|
49
|
+
refute_nil result
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def test_update_organization_membership_with_role_multiple_returns_expected_result
|
|
53
|
+
stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
|
|
54
|
+
.with(body: hash_including("role_slugs" => ["stub"]))
|
|
55
|
+
.to_return(body: "{}", status: 200)
|
|
56
|
+
result = @client.organization_membership.update_organization_membership(id: "stub", role: WorkOS::OrganizationMembershipService::RoleMultiple.new(role_slugs: ["stub"]))
|
|
57
|
+
refute_nil result
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_delete_organization_membership_returns_expected_result
|
|
61
|
+
stub_request(:delete, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
|
|
62
|
+
.to_return(body: "{}", status: 200)
|
|
63
|
+
result = @client.organization_membership.delete_organization_membership(id: "stub")
|
|
64
|
+
assert_nil result
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def test_deactivate_organization_membership_returns_expected_result
|
|
68
|
+
stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/deactivate(\?|\z)})
|
|
69
|
+
.to_return(body: "{}", status: 200)
|
|
70
|
+
result = @client.organization_membership.deactivate_organization_membership(id: "stub")
|
|
71
|
+
refute_nil result
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def test_reactivate_organization_membership_returns_expected_result
|
|
75
|
+
stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/reactivate(\?|\z)})
|
|
76
|
+
.to_return(body: "{}", status: 200)
|
|
77
|
+
result = @client.organization_membership.reactivate_organization_membership(id: "stub")
|
|
78
|
+
refute_nil result
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def test_list_organization_membership_groups_returns_expected_result
|
|
82
|
+
stub_request(:get, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/groups(\?|\z)})
|
|
83
|
+
.to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
|
|
84
|
+
result = @client.organization_membership.list_organization_membership_groups(om_id: "stub")
|
|
85
|
+
assert_kind_of WorkOS::Types::ListStruct, result
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Parameterized authentication error tests (one per endpoint).
|
|
89
|
+
[
|
|
90
|
+
{name: :list_organization_memberships, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)}},
|
|
91
|
+
{name: :create_organization_membership, verb: :post, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)}, args: {user_id: "stub", organization_id: "stub", role: WorkOS::OrganizationMembershipService::RoleSingle.new(role_slug: "stub")}},
|
|
92
|
+
{name: :get_organization_membership, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)}, args: {id: "stub"}},
|
|
93
|
+
{name: :update_organization_membership, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)}, args: {id: "stub", role: WorkOS::OrganizationMembershipService::RoleSingle.new(role_slug: "stub")}},
|
|
94
|
+
{name: :delete_organization_membership, verb: :delete, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)}, args: {id: "stub"}},
|
|
95
|
+
{name: :deactivate_organization_membership, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/deactivate(\?|\z)}, args: {id: "stub"}},
|
|
96
|
+
{name: :reactivate_organization_membership, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/reactivate(\?|\z)}, args: {id: "stub"}},
|
|
97
|
+
{name: :list_organization_membership_groups, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/groups(\?|\z)}, args: {om_id: "stub"}}
|
|
98
|
+
].each do |spec|
|
|
99
|
+
define_method("test_#{spec[:name]}_raises_authentication_error_on_401") do
|
|
100
|
+
stub_request(spec[:verb], spec[:url])
|
|
101
|
+
.to_return(body: '{"message": "Unauthorized"}', status: 401)
|
|
102
|
+
assert_raises(WorkOS::AuthenticationError) do
|
|
103
|
+
@client.organization_membership.send(spec[:name], **(spec[:args] || {}))
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
@@ -373,73 +373,6 @@ class UserManagementTest < Minitest::Test
|
|
|
373
373
|
refute_nil result
|
|
374
374
|
end
|
|
375
375
|
|
|
376
|
-
def test_list_organization_memberships_returns_expected_result
|
|
377
|
-
stub_request(:get, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)})
|
|
378
|
-
.to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
|
|
379
|
-
result = @client.user_management.list_organization_memberships
|
|
380
|
-
assert_kind_of WorkOS::Types::ListStruct, result
|
|
381
|
-
end
|
|
382
|
-
|
|
383
|
-
def test_create_organization_membership_returns_expected_result
|
|
384
|
-
stub_request(:post, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)})
|
|
385
|
-
.with(body: hash_including("user_id" => "stub", "organization_id" => "stub", "role_slug" => "stub"))
|
|
386
|
-
.to_return(body: "{}", status: 200)
|
|
387
|
-
result = @client.user_management.create_organization_membership(user_id: "stub", organization_id: "stub", role: WorkOS::UserManagement::RoleSingle.new(role_slug: "stub"))
|
|
388
|
-
refute_nil result
|
|
389
|
-
end
|
|
390
|
-
|
|
391
|
-
def test_create_organization_membership_with_role_multiple_returns_expected_result
|
|
392
|
-
stub_request(:post, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)})
|
|
393
|
-
.with(body: hash_including("user_id" => "stub", "organization_id" => "stub", "role_slugs" => ["stub"]))
|
|
394
|
-
.to_return(body: "{}", status: 200)
|
|
395
|
-
result = @client.user_management.create_organization_membership(user_id: "stub", organization_id: "stub", role: WorkOS::UserManagement::RoleMultiple.new(role_slugs: ["stub"]))
|
|
396
|
-
refute_nil result
|
|
397
|
-
end
|
|
398
|
-
|
|
399
|
-
def test_get_organization_membership_returns_expected_result
|
|
400
|
-
stub_request(:get, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
|
|
401
|
-
.to_return(body: "{}", status: 200)
|
|
402
|
-
result = @client.user_management.get_organization_membership(id: "stub")
|
|
403
|
-
refute_nil result
|
|
404
|
-
end
|
|
405
|
-
|
|
406
|
-
def test_update_organization_membership_returns_expected_result
|
|
407
|
-
stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
|
|
408
|
-
.with(body: hash_including("role_slug" => "stub"))
|
|
409
|
-
.to_return(body: "{}", status: 200)
|
|
410
|
-
result = @client.user_management.update_organization_membership(id: "stub", role: WorkOS::UserManagement::RoleSingle.new(role_slug: "stub"))
|
|
411
|
-
refute_nil result
|
|
412
|
-
end
|
|
413
|
-
|
|
414
|
-
def test_update_organization_membership_with_role_multiple_returns_expected_result
|
|
415
|
-
stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
|
|
416
|
-
.with(body: hash_including("role_slugs" => ["stub"]))
|
|
417
|
-
.to_return(body: "{}", status: 200)
|
|
418
|
-
result = @client.user_management.update_organization_membership(id: "stub", role: WorkOS::UserManagement::RoleMultiple.new(role_slugs: ["stub"]))
|
|
419
|
-
refute_nil result
|
|
420
|
-
end
|
|
421
|
-
|
|
422
|
-
def test_delete_organization_membership_returns_expected_result
|
|
423
|
-
stub_request(:delete, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
|
|
424
|
-
.to_return(body: "{}", status: 200)
|
|
425
|
-
result = @client.user_management.delete_organization_membership(id: "stub")
|
|
426
|
-
assert_nil result
|
|
427
|
-
end
|
|
428
|
-
|
|
429
|
-
def test_deactivate_organization_membership_returns_expected_result
|
|
430
|
-
stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/deactivate(\?|\z)})
|
|
431
|
-
.to_return(body: "{}", status: 200)
|
|
432
|
-
result = @client.user_management.deactivate_organization_membership(id: "stub")
|
|
433
|
-
refute_nil result
|
|
434
|
-
end
|
|
435
|
-
|
|
436
|
-
def test_reactivate_organization_membership_returns_expected_result
|
|
437
|
-
stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/reactivate(\?|\z)})
|
|
438
|
-
.to_return(body: "{}", status: 200)
|
|
439
|
-
result = @client.user_management.reactivate_organization_membership(id: "stub")
|
|
440
|
-
refute_nil result
|
|
441
|
-
end
|
|
442
|
-
|
|
443
376
|
def test_create_redirect_uri_returns_expected_result
|
|
444
377
|
stub_request(:post, %r{\Ahttps://api\.workos\.com/user_management/redirect_uris(\?|\z)})
|
|
445
378
|
.to_return(body: "{}", status: 200)
|
|
@@ -509,13 +442,6 @@ class UserManagementTest < Minitest::Test
|
|
|
509
442
|
{name: :update_jwt_template, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/jwt_template(\?|\z)}, args: {content: "stub"}},
|
|
510
443
|
{name: :create_magic_auth, verb: :post, url: %r{\Ahttps://api\.workos\.com/user_management/magic_auth(\?|\z)}, args: {email: "stub"}},
|
|
511
444
|
{name: :get_magic_auth, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/magic_auth/stub(\?|\z)}, args: {id: "stub"}},
|
|
512
|
-
{name: :list_organization_memberships, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)}},
|
|
513
|
-
{name: :create_organization_membership, verb: :post, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)}, args: {user_id: "stub", organization_id: "stub", role: WorkOS::UserManagement::RoleSingle.new(role_slug: "stub")}},
|
|
514
|
-
{name: :get_organization_membership, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)}, args: {id: "stub"}},
|
|
515
|
-
{name: :update_organization_membership, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)}, args: {id: "stub", role: WorkOS::UserManagement::RoleSingle.new(role_slug: "stub")}},
|
|
516
|
-
{name: :delete_organization_membership, verb: :delete, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)}, args: {id: "stub"}},
|
|
517
|
-
{name: :deactivate_organization_membership, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/deactivate(\?|\z)}, args: {id: "stub"}},
|
|
518
|
-
{name: :reactivate_organization_membership, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/reactivate(\?|\z)}, args: {id: "stub"}},
|
|
519
445
|
{name: :create_redirect_uri, verb: :post, url: %r{\Ahttps://api\.workos\.com/user_management/redirect_uris(\?|\z)}, args: {uri: "stub"}},
|
|
520
446
|
{name: :list_user_authorized_applications, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/users/stub/authorized_applications(\?|\z)}, args: {user_id: "stub"}},
|
|
521
447
|
{name: :delete_user_authorized_application, verb: :delete, url: %r{\Ahttps://api\.workos\.com/user_management/users/stub/authorized_applications/stub(\?|\z)}, args: {application_id: "stub", user_id: "stub"}},
|
data/test/workos/test_vault.rb
CHANGED
|
@@ -1,119 +1,118 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
4
5
|
require "test_helper"
|
|
5
6
|
require "base64"
|
|
6
7
|
|
|
7
8
|
class VaultTest < Minitest::Test
|
|
9
|
+
include FixtureHelper
|
|
10
|
+
|
|
8
11
|
def setup
|
|
9
|
-
@client = WorkOS::Client.new(api_key: "
|
|
12
|
+
@client = WorkOS::Client.new(api_key: "sk_test_123")
|
|
10
13
|
end
|
|
11
14
|
|
|
12
|
-
def
|
|
13
|
-
|
|
15
|
+
def test_create_data_key_returns_expected_result
|
|
16
|
+
stub_request(:post, %r{\Ahttps://api\.workos\.com/vault/v1/keys/data-key(\?|\z)})
|
|
17
|
+
.to_return(body: "{}", status: 200)
|
|
18
|
+
result = @client.vault.create_data_key(context: {})
|
|
19
|
+
refute_nil result
|
|
14
20
|
end
|
|
15
21
|
|
|
16
|
-
def
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"updated_by" => {"id" => "u1", "name" => "alice"}
|
|
22
|
-
}
|
|
23
|
-
stub_request(:post, "https://api.workos.com/vault/v1/kv")
|
|
24
|
-
.with(body: hash_including("name" => "secret", "value" => "hello"))
|
|
25
|
-
.to_return(status: 200, body: body.to_json)
|
|
26
|
-
|
|
27
|
-
meta = @client.vault.create_object(name: "secret", value: "hello", key_context: {"tenant" => "t1"})
|
|
28
|
-
assert_equal "obj_01", meta.id
|
|
29
|
-
assert_equal "v1", meta.version_id
|
|
30
|
-
assert_equal "alice", meta.updated_by.name
|
|
22
|
+
def test_create_decrypt_returns_expected_result
|
|
23
|
+
stub_request(:post, %r{\Ahttps://api\.workos\.com/vault/v1/keys/decrypt(\?|\z)})
|
|
24
|
+
.to_return(body: "{}", status: 200)
|
|
25
|
+
result = @client.vault.create_decrypt(keys: "stub")
|
|
26
|
+
refute_nil result
|
|
31
27
|
end
|
|
32
28
|
|
|
33
|
-
def
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"context" => {}, "environment_id" => "env",
|
|
39
|
-
"updated_at" => "x", "updated_by" => {"id" => "u", "name" => "n"}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
stub_request(:get, "https://api.workos.com/vault/v1/kv/obj_01")
|
|
43
|
-
.to_return(status: 200, body: body.to_json)
|
|
44
|
-
|
|
45
|
-
obj = @client.vault.read_object(object_id: "obj_01")
|
|
46
|
-
assert_equal "hello", obj.value
|
|
47
|
-
assert_equal "secret", obj.name
|
|
29
|
+
def test_create_rekey_returns_expected_result
|
|
30
|
+
stub_request(:post, %r{\Ahttps://api\.workos\.com/vault/v1/keys/rekey(\?|\z)})
|
|
31
|
+
.to_return(body: "{}", status: 200)
|
|
32
|
+
result = @client.vault.create_rekey(context: {}, encrypted_keys: "stub")
|
|
33
|
+
refute_nil result
|
|
48
34
|
end
|
|
49
35
|
|
|
50
|
-
def
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
assert_equal 2, digests.size
|
|
56
|
-
assert_equal "o1", digests.first.id
|
|
36
|
+
def test_list_kv_returns_expected_result
|
|
37
|
+
stub_request(:get, %r{\Ahttps://api\.workos\.com/vault/v1/kv(\?|\z)})
|
|
38
|
+
.to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
|
|
39
|
+
result = @client.vault.list_kv
|
|
40
|
+
assert_kind_of WorkOS::Types::ListStruct, result
|
|
57
41
|
end
|
|
58
42
|
|
|
59
|
-
def
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
assert_equal 1, versions.size
|
|
65
|
-
assert versions.first.current_version
|
|
43
|
+
def test_create_kv_returns_expected_result
|
|
44
|
+
stub_request(:post, %r{\Ahttps://api\.workos\.com/vault/v1/kv(\?|\z)})
|
|
45
|
+
.to_return(body: "{}", status: 200)
|
|
46
|
+
result = @client.vault.create_kv(key_context: {}, name: "stub", value: "stub")
|
|
47
|
+
refute_nil result
|
|
66
48
|
end
|
|
67
49
|
|
|
68
|
-
def
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}}
|
|
74
|
-
stub_request(:get, "https://api.workos.com/vault/v1/kv/obj_1/metadata").to_return(status: 200, body: body.to_json)
|
|
75
|
-
|
|
76
|
-
obj = @client.vault.get_object_metadata(object_id: "obj_1")
|
|
77
|
-
assert_nil obj.value
|
|
78
|
-
assert_equal "obj_1", obj.metadata.id
|
|
50
|
+
def test_get_name_returns_expected_result
|
|
51
|
+
stub_request(:get, %r{\Ahttps://api\.workos\.com/vault/v1/kv/name/stub(\?|\z)})
|
|
52
|
+
.to_return(body: "{}", status: 200)
|
|
53
|
+
result = @client.vault.get_name(name: "stub")
|
|
54
|
+
refute_nil result
|
|
79
55
|
end
|
|
80
56
|
|
|
81
|
-
def
|
|
82
|
-
stub_request(:
|
|
83
|
-
|
|
57
|
+
def test_get_kv_returns_expected_result
|
|
58
|
+
stub_request(:get, %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub(\?|\z)})
|
|
59
|
+
.to_return(body: "{}", status: 200)
|
|
60
|
+
result = @client.vault.get_kv(id: "stub")
|
|
61
|
+
refute_nil result
|
|
84
62
|
end
|
|
85
63
|
|
|
86
|
-
def
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
obj = @client.vault.update_object(object_id: "obj_1", value: "newval", version_check: "v1")
|
|
93
|
-
assert_equal "newval", obj.value
|
|
64
|
+
def test_update_kv_returns_expected_result
|
|
65
|
+
stub_request(:put, %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub(\?|\z)})
|
|
66
|
+
.to_return(body: "{}", status: 200)
|
|
67
|
+
result = @client.vault.update_kv(id: "stub", value: "stub")
|
|
68
|
+
refute_nil result
|
|
94
69
|
end
|
|
95
70
|
|
|
96
|
-
def
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
71
|
+
def test_delete_kv_returns_expected_result
|
|
72
|
+
stub_request(:delete, %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub(\?|\z)})
|
|
73
|
+
.to_return(body: "{}", status: 200)
|
|
74
|
+
result = @client.vault.delete_kv(id: "stub")
|
|
75
|
+
refute_nil result
|
|
76
|
+
end
|
|
101
77
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
78
|
+
def test_list_kv_metadata_returns_expected_result
|
|
79
|
+
stub_request(:get, %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub/metadata(\?|\z)})
|
|
80
|
+
.to_return(body: "{}", status: 200)
|
|
81
|
+
result = @client.vault.list_kv_metadata(id: "stub")
|
|
82
|
+
refute_nil result
|
|
105
83
|
end
|
|
106
84
|
|
|
107
|
-
def
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
85
|
+
def test_list_kv_versions_returns_expected_result
|
|
86
|
+
stub_request(:get, %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub/versions(\?|\z)})
|
|
87
|
+
.to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
|
|
88
|
+
result = @client.vault.list_kv_versions(id: "stub")
|
|
89
|
+
assert_kind_of WorkOS::Types::ListStruct, result
|
|
90
|
+
end
|
|
112
91
|
|
|
113
|
-
|
|
114
|
-
|
|
92
|
+
# Parameterized authentication error tests (one per endpoint).
|
|
93
|
+
[
|
|
94
|
+
{name: :create_data_key, verb: :post, url: %r{\Ahttps://api\.workos\.com/vault/v1/keys/data-key(\?|\z)}, args: {context: {}}},
|
|
95
|
+
{name: :create_decrypt, verb: :post, url: %r{\Ahttps://api\.workos\.com/vault/v1/keys/decrypt(\?|\z)}, args: {keys: "stub"}},
|
|
96
|
+
{name: :create_rekey, verb: :post, url: %r{\Ahttps://api\.workos\.com/vault/v1/keys/rekey(\?|\z)}, args: {context: {}, encrypted_keys: "stub"}},
|
|
97
|
+
{name: :list_kv, verb: :get, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv(\?|\z)}},
|
|
98
|
+
{name: :create_kv, verb: :post, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv(\?|\z)}, args: {key_context: {}, name: "stub", value: "stub"}},
|
|
99
|
+
{name: :get_name, verb: :get, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv/name/stub(\?|\z)}, args: {name: "stub"}},
|
|
100
|
+
{name: :get_kv, verb: :get, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub(\?|\z)}, args: {id: "stub"}},
|
|
101
|
+
{name: :update_kv, verb: :put, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub(\?|\z)}, args: {id: "stub", value: "stub"}},
|
|
102
|
+
{name: :delete_kv, verb: :delete, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub(\?|\z)}, args: {id: "stub"}},
|
|
103
|
+
{name: :list_kv_metadata, verb: :get, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub/metadata(\?|\z)}, args: {id: "stub"}},
|
|
104
|
+
{name: :list_kv_versions, verb: :get, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub/versions(\?|\z)}, args: {id: "stub"}}
|
|
105
|
+
].each do |spec|
|
|
106
|
+
define_method("test_#{spec[:name]}_raises_authentication_error_on_401") do
|
|
107
|
+
stub_request(spec[:verb], spec[:url])
|
|
108
|
+
.to_return(body: '{"message": "Unauthorized"}', status: 401)
|
|
109
|
+
assert_raises(WorkOS::AuthenticationError) do
|
|
110
|
+
@client.vault.send(spec[:name], **(spec[:args] || {}))
|
|
111
|
+
end
|
|
112
|
+
end
|
|
115
113
|
end
|
|
116
114
|
|
|
115
|
+
# @oagen-ignore-start — client-side AES-GCM encrypt/decrypt tests (hand-maintained)
|
|
117
116
|
def test_local_encrypt_then_decrypt_roundtrip
|
|
118
117
|
plaintext_key = "k" * 32
|
|
119
118
|
create_resp = {"context" => {"t" => "1"}, "id" => "dek_1",
|
|
@@ -125,7 +124,7 @@ class VaultTest < Minitest::Test
|
|
|
125
124
|
stub_request(:post, "https://api.workos.com/vault/v1/keys/decrypt").to_return(status: 200, body: decrypt_resp.to_json)
|
|
126
125
|
|
|
127
126
|
payload = "the quick brown fox"
|
|
128
|
-
encrypted = @client.vault.encrypt(data: payload,
|
|
127
|
+
encrypted = @client.vault.encrypt(data: payload, context: {"t" => "1"})
|
|
129
128
|
refute_equal payload, encrypted
|
|
130
129
|
|
|
131
130
|
plaintext = @client.vault.decrypt(encrypted_data: encrypted)
|
|
@@ -140,7 +139,7 @@ class VaultTest < Minitest::Test
|
|
|
140
139
|
stub_request(:post, "https://api.workos.com/vault/v1/keys/data-key").to_return(status: 200, body: create_resp.to_json)
|
|
141
140
|
stub_request(:post, "https://api.workos.com/vault/v1/keys/decrypt").to_return(status: 200, body: decrypt_resp.to_json)
|
|
142
141
|
|
|
143
|
-
encrypted = @client.vault.encrypt(data: "secret",
|
|
142
|
+
encrypted = @client.vault.encrypt(data: "secret", context: {}, associated_data: "tenant=42")
|
|
144
143
|
plaintext = @client.vault.decrypt(encrypted_data: encrypted, associated_data: "tenant=42")
|
|
145
144
|
assert_equal "secret", plaintext
|
|
146
145
|
|
|
@@ -148,4 +147,9 @@ class VaultTest < Minitest::Test
|
|
|
148
147
|
@client.vault.decrypt(encrypted_data: encrypted, associated_data: "wrong")
|
|
149
148
|
end
|
|
150
149
|
end
|
|
150
|
+
# @oagen-ignore-end
|
|
151
|
+
|
|
152
|
+
# @oagen-ignore-start — client-side encrypt/decrypt test requires
|
|
153
|
+
require "base64"
|
|
154
|
+
# @oagen-ignore-end
|
|
151
155
|
end
|