workos 7.1.2 → 9.5.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 +49 -0
- data/.github/workflows/lint.yml +2 -2
- data/.github/workflows/release-please.yml +164 -10
- data/.github/workflows/release.yml +2 -2
- data/.gitignore +2 -0
- data/.last-synced-sha +1 -1
- data/.oagen-manifest.json +403 -84
- data/.release-please-manifest.json +1 -1
- data/.ruby-version +1 -1
- data/.yardopts +6 -0
- data/CHANGELOG.md +331 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +35 -4
- data/README.md +19 -0
- data/docs/V7_MIGRATION_GUIDE.md +21 -0
- data/lib/workos/actions.rb +1 -1
- data/lib/workos/admin_portal/generate_link.rb +0 -3
- data/lib/workos/admin_portal.rb +0 -3
- data/lib/workos/api_keys/api_key.rb +4 -1
- data/lib/workos/api_keys/api_key_created.rb +5 -5
- data/lib/workos/api_keys/api_key_created_data.rb +4 -1
- data/lib/workos/api_keys/api_key_revoked.rb +5 -5
- data/lib/workos/{audit_logs/audit_log_export_json.rb → api_keys/api_key_updated.rb} +10 -10
- data/lib/workos/api_keys/api_key_updated_data.rb +49 -0
- data/lib/workos/{directory_sync/dsync_deactivated_data_domain.rb → api_keys/api_key_updated_data_owner.rb} +1 -1
- data/lib/workos/api_keys/api_key_updated_data_previous_attribute.rb +18 -0
- data/lib/workos/api_keys/create_organization_api_key.rb +5 -2
- data/lib/workos/api_keys/expire_api_key.rb +18 -0
- data/lib/workos/api_keys/organization_api_key.rb +46 -0
- data/lib/workos/{types/events_order.rb → api_keys/organization_api_key_owner.rb} +1 -3
- data/lib/workos/api_keys/organization_api_key_with_value.rb +49 -0
- data/lib/workos/{types/audit_logs_order.rb → api_keys/organization_api_key_with_value_owner.rb} +1 -3
- data/lib/workos/api_keys.rb +75 -47
- 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_actor_input.rb +7 -0
- 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/audit_logs/audit_log_schema_target_input.rb +7 -0
- data/lib/workos/audit_logs.rb +20 -20
- data/lib/workos/{audit_logs/audit_log_schema_json_actor.rb → authorization/create_group_role_assignment.rb} +1 -1
- data/lib/workos/authorization/delete_group_role_assignments_by_criteria.rb +7 -0
- data/lib/workos/authorization/{role_assignment.rb → group_role_assignment.rb} +5 -2
- data/lib/workos/authorization/group_role_assignment_list.rb +25 -0
- data/lib/workos/authorization/{role_assignment_resource.rb → group_role_assignment_resource.rb} +1 -1
- 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/{api_keys/api_key_with_value_owner.rb → authorization/replace_group_role_assignment_entry.rb} +1 -1
- data/lib/workos/authorization/replace_group_role_assignments.rb +18 -0
- 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/user_role_assignment.rb +40 -0
- data/lib/workos/authorization/user_role_assignment_resource.rb +7 -0
- data/lib/workos/{audit_logs/audit_log_schema_json_target.rb → authorization/user_role_assignment_source.rb} +4 -4
- data/lib/workos/authorization.rb +326 -30
- data/lib/workos/base_client.rb +90 -7
- data/lib/workos/client.rb +18 -10
- data/lib/workos/client_api/client_api_token.rb +22 -0
- data/lib/workos/client_api/client_api_token_response.rb +18 -0
- data/lib/workos/client_api.rb +39 -0
- data/lib/workos/connect/connect_application.rb +12 -0
- data/lib/workos/connect/connect_application_redirect_uri.rb +22 -0
- data/lib/workos/connect/user_object.rb +3 -0
- data/lib/workos/connect.rb +2 -2
- data/lib/workos/directory_sync/directory_user.rb +3 -0
- data/lib/workos/directory_sync/directory_user_with_groups.rb +4 -1
- data/lib/workos/directory_sync/dsync_activated.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_token_created.rb +34 -0
- data/lib/workos/directory_sync/dsync_token_created_data.rb +34 -0
- data/lib/workos/directory_sync/dsync_token_revoked.rb +34 -0
- data/lib/workos/directory_sync/dsync_token_revoked_data.rb +7 -0
- 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/directory_sync/dsync_user_updated_data.rb +3 -0
- data/lib/workos/directory_sync.rb +6 -6
- data/lib/workos/encryptors/aes_gcm.rb +19 -5
- data/lib/workos/events.rb +2 -2
- 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/feature_flags.rb +6 -6
- data/lib/workos/{authorization → groups}/user_organization_membership_base_list_data.rb +5 -2
- data/lib/workos/groups.rb +4 -4
- data/lib/workos/inflections.rb +3 -1
- data/lib/workos/multi_factor_auth.rb +2 -2
- 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/{user_management → organization_membership}/organization_membership.rb +8 -2
- data/lib/workos/{user_management → organization_membership}/user_organization_membership.rb +8 -2
- 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/organizations.rb +2 -2
- data/lib/workos/pipes/connected_account.rb +6 -0
- data/lib/workos/pipes/connected_account_dto.rb +31 -0
- data/lib/workos/pipes/create_data_integration.rb +34 -0
- data/lib/workos/pipes/custom_provider_definition.rb +49 -0
- data/lib/workos/pipes/data_integration.rb +55 -0
- data/lib/workos/pipes/data_integration_credential.rb +25 -0
- data/lib/workos/pipes/data_integration_credentials_dto.rb +25 -0
- data/lib/workos/pipes/data_integration_credentials_response.rb +25 -0
- data/lib/workos/pipes/data_integration_credentials_response_credential.rb +34 -0
- data/lib/workos/pipes/data_integration_custom_provider.rb +49 -0
- data/lib/workos/pipes/data_integrations_list_response_data.rb +3 -0
- data/lib/workos/pipes/data_integrations_list_response_data_connected_account.rb +6 -0
- data/lib/workos/pipes/data_integrations_upsert_api_key_request.rb +25 -0
- data/lib/workos/pipes/data_integrations_vend_credentials_request.rb +22 -0
- data/lib/workos/pipes/update_custom_provider_definition.rb +49 -0
- data/lib/workos/pipes/update_data_integration.rb +31 -0
- data/lib/workos/pipes.rb +309 -5
- data/lib/workos/pipes_provider/configure_data_integration_body.rb +28 -0
- data/lib/workos/pipes_provider/data_integration_configuration_list_response.rb +22 -0
- data/lib/workos/{directory_sync/dsync_deactivated_data.rb → pipes_provider/data_integration_configuration_response.rb} +13 -13
- data/lib/workos/pipes_provider/data_integration_credentials.rb +31 -0
- data/lib/workos/pipes_provider.rb +68 -0
- data/lib/workos/radar/radar_standalone_assess_request.rb +3 -6
- data/lib/workos/radar.rb +7 -10
- data/lib/workos/session.rb +28 -7
- data/lib/workos/session_manager.rb +24 -1
- data/lib/workos/shared/auth_method_mismatch_error.rb +22 -0
- 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/{directory_sync/dsync_deactivated.rb → shared/pipes_connected_account_connected.rb} +7 -7
- 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/sso/profile.rb +3 -0
- data/lib/workos/sso.rb +2 -2
- data/lib/workos/types/audit_log_configuration_log_stream_type.rb +2 -1
- data/lib/workos/types/audit_log_export_state.rb +2 -1
- data/lib/workos/types/connected_account_auth_method.rb +13 -0
- data/lib/workos/types/connected_account_state.rb +1 -2
- data/lib/workos/types/create_webhook_endpoint_events.rb +12 -1
- data/lib/workos/types/custom_provider_definition_authenticate_via.rb +13 -0
- data/lib/workos/types/data_integration_access_token_response_error.rb +2 -2
- data/lib/workos/types/data_integration_credential_type.rb +13 -0
- data/lib/workos/types/data_integration_credentials_credentials_type.rb +14 -0
- data/lib/workos/types/{directories_order.rb → data_integration_credentials_response_error.rb} +1 -1
- data/lib/workos/types/{authorization_order.rb → data_integration_credentials_type.rb} +1 -1
- data/lib/workos/types/data_integration_custom_provider_authenticate_via.rb +9 -0
- data/lib/workos/types/data_integration_state.rb +14 -0
- data/lib/workos/types/{connections_order.rb → data_integrations_list_response_data_auth_methods.rb} +1 -1
- data/lib/workos/types/data_integrations_list_response_data_connected_account_auth_method.rb +9 -0
- data/lib/workos/types/data_integrations_list_response_data_connected_account_state.rb +6 -1
- data/lib/workos/types/event_context_actor_source.rb +2 -1
- data/lib/workos/types/{applications_order.rb → pagination_order.rb} +1 -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 -4
- data/lib/workos/types/update_custom_provider_definition_authenticate_via.rb +9 -0
- data/lib/workos/types/user_management_authentication_screen_hint.rb +1 -5
- data/lib/workos/types/user_role_assignment_source_type.rb +13 -0
- data/lib/workos/types/{vault_byok_key_verification_completed_data_key_provider.rb → vault_byok_key_provider.rb} +1 -1
- 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/types/widget_session_token_scopes.rb +2 -1
- 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/authorization_code_session_authenticate_request.rb +5 -2
- data/lib/workos/user_management/create_magic_code_and_return.rb +14 -2
- data/lib/workos/user_management/create_user.rb +12 -0
- data/lib/workos/user_management/create_user_api_key.rb +28 -0
- data/lib/workos/user_management/email_change_confirmation_user.rb +3 -0
- 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_code_session_authenticate_request.rb +5 -2
- data/lib/workos/user_management/magic_auth_created.rb +5 -5
- data/lib/workos/user_management/magic_auth_send_magic_auth_code_and_return_response.rb +43 -0
- 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/password_session_authenticate_request.rb +8 -2
- data/lib/workos/user_management/radar_email_challenge_code_session_authenticate_request.rb +43 -0
- data/lib/workos/user_management/radar_sms_challenge_code_session_authenticate_request.rb +46 -0
- data/lib/workos/user_management/revoke_session.rb +2 -6
- data/lib/workos/user_management/send_radar_sms_challenge.rb +31 -0
- data/lib/workos/user_management/send_radar_sms_challenge_response.rb +22 -0
- 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/update_user.rb +3 -0
- data/lib/workos/user_management/user_api_key.rb +46 -0
- data/lib/workos/user_management/user_api_key_created_data_owner.rb +25 -0
- data/lib/workos/user_management/user_api_key_owner.rb +7 -0
- data/lib/workos/user_management/user_api_key_revoked_data_owner.rb +7 -0
- data/lib/workos/user_management/user_api_key_updated_data_owner.rb +7 -0
- data/lib/workos/{api_keys/api_key_with_value.rb → user_management/user_api_key_with_value.rb} +5 -2
- data/lib/workos/user_management/user_api_key_with_value_owner.rb +7 -0
- data/lib/workos/user_management/user_create_response.rb +61 -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 +351 -202
- 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_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 +34 -0
- data/lib/workos/vault/vault_byok_key_deleted_data.rb +22 -0
- 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/vault_object.rb +28 -0
- 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 +10 -11
- data/lib/workos/widgets/widget_session_token_response.rb +1 -12
- data/lib/workos.rb +3 -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/admin_portal.rbi +1 -2
- data/rbi/workos/api_key.rbi +8 -2
- data/rbi/workos/api_key_created.rbi +6 -6
- data/rbi/workos/api_key_created_data.rbi +8 -2
- data/rbi/workos/api_key_revoked.rbi +6 -6
- data/rbi/workos/api_key_revoked_data.rbi +8 -2
- data/rbi/workos/{dsync_deactivated.rbi → api_key_updated.rbi} +9 -9
- data/rbi/workos/api_key_updated_data.rbi +84 -0
- data/rbi/workos/{api_key_with_value_owner.rbi → api_key_updated_data_owner.rbi} +1 -1
- data/rbi/workos/{audit_logs_retention_json.rbi → api_key_updated_data_previous_attribute.rbi} +5 -5
- data/rbi/workos/api_keys.rbi +27 -17
- 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/auth_method_mismatch_error.rbi +30 -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 +97 -4
- data/rbi/workos/authorization_code_session_authenticate_request.rbi +8 -2
- data/rbi/workos/client.rbi +15 -6
- data/rbi/workos/client_api.rbi +22 -0
- data/rbi/workos/client_api_token.rbi +30 -0
- data/rbi/workos/client_api_token_response.rbi +24 -0
- data/rbi/workos/configure_data_integration_body.rbi +42 -0
- data/rbi/workos/connect_application.rbi +0 -12
- data/rbi/workos/{dsync_deactivated_data.rbi → connect_application_m2m.rbi} +19 -19
- data/rbi/workos/connect_application_oauth.rbi +102 -0
- data/rbi/workos/connect_application_oauth_redirect_uris.rbi +30 -0
- data/rbi/workos/connected_account.rbi +12 -0
- data/rbi/workos/connected_account_dto.rbi +48 -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/create_data_integration.rbi +54 -0
- data/rbi/workos/create_data_key_request.rbi +24 -0
- data/rbi/workos/create_data_key_response.rbi +42 -0
- data/rbi/workos/create_group_role_assignment.rbi +42 -0
- data/rbi/workos/create_magic_code_and_return.rbi +24 -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.rbi +24 -0
- data/rbi/workos/create_user_api_key.rbi +42 -0
- data/rbi/workos/custom_provider_definition.rbi +84 -0
- data/rbi/workos/data_integration.rbi +96 -0
- data/rbi/workos/data_integration_configuration_list_response.rbi +30 -0
- data/rbi/workos/data_integration_configuration_response.rbi +78 -0
- data/rbi/workos/data_integration_credential.rbi +36 -0
- data/rbi/workos/data_integration_credentials.rbi +48 -0
- data/rbi/workos/data_integration_credentials_dto.rbi +36 -0
- data/rbi/workos/data_integration_credentials_response.rbi +36 -0
- data/rbi/workos/data_integration_credentials_response_credential.rbi +54 -0
- data/rbi/workos/data_integration_custom_provider.rbi +84 -0
- data/rbi/workos/data_integrations_list_response_data.rbi +6 -0
- data/rbi/workos/data_integrations_list_response_data_connected_account.rbi +12 -0
- data/rbi/workos/data_integrations_upsert_api_key_request.rbi +36 -0
- data/rbi/workos/data_integrations_vend_credentials_request.rbi +30 -0
- data/rbi/workos/decrypt_request.rbi +24 -0
- data/rbi/workos/decrypt_response.rbi +30 -0
- data/rbi/workos/delete_group_role_assignments_by_criteria.rbi +42 -0
- data/rbi/workos/delete_object_response.rbi +30 -0
- data/rbi/workos/directory_user.rbi +6 -0
- data/rbi/workos/directory_user_with_groups.rbi +6 -0
- data/rbi/workos/dsync_activated.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_token_created.rbi +54 -0
- data/rbi/workos/{audit_log_export_json.rbi → dsync_token_created_data.rbi} +9 -9
- data/rbi/workos/dsync_token_revoked.rbi +54 -0
- data/rbi/workos/{audit_log_action_json.rbi → dsync_token_revoked_data.rbi} +17 -11
- 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/dsync_user_updated_data.rbi +6 -0
- data/rbi/workos/email_change_confirmation_user.rbi +6 -0
- data/rbi/workos/email_verification_created.rbi +6 -6
- data/rbi/workos/error_response.rbi +24 -0
- data/rbi/workos/expire_api_key.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/generate_link.rbi +0 -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/{role_assignment.rbi → group_role_assignment.rbi} +9 -3
- data/rbi/workos/group_role_assignment_resource.rbi +36 -0
- 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_code_session_authenticate_request.rbi +6 -0
- data/rbi/workos/magic_auth_created.rbi +6 -6
- data/rbi/workos/{webhook_endpoint_json.rbi → magic_auth_send_magic_auth_code_and_return_response.rbi} +19 -13
- data/rbi/workos/object_metadata.rbi +60 -0
- data/rbi/workos/object_summary.rbi +36 -0
- data/rbi/workos/object_version.rbi +48 -0
- data/rbi/workos/object_without_value.rbi +36 -0
- data/rbi/workos/organization_api_key.rbi +78 -0
- data/rbi/workos/organization_api_key_owner.rbi +30 -0
- data/rbi/workos/organization_api_key_with_value.rbi +84 -0
- data/rbi/workos/organization_api_key_with_value_owner.rbi +30 -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.rbi +12 -0
- 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/password_session_authenticate_request.rbi +12 -0
- 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/pipes.rbi +105 -1
- data/rbi/workos/pipes_connected_account_connected.rbi +54 -0
- data/rbi/workos/pipes_connected_account_disconnected.rbi +54 -0
- data/rbi/workos/pipes_connected_account_reauthorization_needed.rbi +54 -0
- data/rbi/workos/pipes_provider.rbi +34 -0
- data/rbi/workos/profile.rbi +6 -0
- data/rbi/workos/radar.rbi +2 -3
- data/rbi/workos/radar_email_challenge_code_session_authenticate_request.rbi +72 -0
- data/rbi/workos/radar_sms_challenge_code_session_authenticate_request.rbi +78 -0
- data/rbi/workos/radar_standalone_assess_request.rbi +2 -8
- data/rbi/workos/refresh_token_session_authenticate_request.rbi +2 -2
- data/rbi/workos/rekey_request.rbi +30 -0
- data/rbi/workos/replace_group_role_assignment_entry.rbi +42 -0
- data/rbi/workos/replace_group_role_assignments.rbi +24 -0
- data/rbi/workos/revoke_session.rbi +0 -6
- 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/send_radar_sms_challenge.rbi +48 -0
- data/rbi/workos/send_radar_sms_challenge_response.rbi +30 -0
- 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_custom_provider_definition.rbi +84 -0
- data/rbi/workos/update_data_integration.rbi +48 -0
- data/rbi/workos/update_object_request.rbi +30 -0
- data/rbi/workos/update_user.rbi +6 -0
- data/rbi/workos/user.rbi +6 -0
- data/rbi/workos/{api_key_with_value.rbi → user_api_key.rbi} +9 -9
- data/rbi/workos/user_api_key_created_data_owner.rbi +36 -0
- data/rbi/workos/{dsync_deactivated_data_domain.rbi → user_api_key_owner.rbi} +5 -5
- data/rbi/workos/user_api_key_revoked_data_owner.rbi +36 -0
- data/rbi/workos/user_api_key_updated_data_owner.rbi +36 -0
- data/rbi/workos/user_api_key_with_value.rbi +84 -0
- data/rbi/workos/user_api_key_with_value_owner.rbi +36 -0
- data/rbi/workos/user_create_response.rbi +108 -0
- data/rbi/workos/user_created.rbi +6 -6
- data/rbi/workos/user_deleted.rbi +6 -6
- data/rbi/workos/user_management.rbi +72 -86
- data/rbi/workos/user_object.rbi +6 -0
- data/rbi/workos/user_organization_membership.rbi +12 -0
- data/rbi/workos/user_organization_membership_base_list_data.rbi +6 -0
- data/rbi/workos/user_role_assignment.rbi +66 -0
- data/rbi/workos/{role_assignment_resource.rbi → user_role_assignment_resource.rbi} +1 -1
- data/rbi/workos/user_role_assignment_source.rbi +30 -0
- data/rbi/workos/user_updated.rbi +6 -6
- data/rbi/workos/vault.rbi +70 -95
- data/rbi/workos/vault_byok_key_deleted.rbi +54 -0
- data/rbi/workos/vault_byok_key_deleted_data.rbi +30 -0
- 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/vault_object.rbi +42 -0
- 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 -61
- data/script/docs +16 -0
- data/script/docs-serve +12 -0
- data/script/llms-txt +37 -0
- data/test/workos/test_actions.rb +9 -0
- data/test/workos/test_admin_portal_model_round_trip.rb +33 -0
- data/test/workos/test_api_keys.rb +20 -12
- data/test/workos/test_audit_logs_model_round_trip.rb +218 -0
- data/test/workos/test_authorization.rb +64 -0
- data/test/workos/test_authorization_model_round_trip.rb +456 -0
- data/test/workos/test_base_client.rb +108 -0
- data/test/workos/test_client_api.rb +33 -0
- data/test/workos/test_connect_model_round_trip.rb +30 -0
- data/test/workos/test_encryptors_aes_gcm.rb +16 -1
- data/test/workos/test_groups_model_round_trip.rb +33 -0
- data/test/workos/test_model_round_trip.rb +2 -7138
- data/test/workos/test_organization_membership_service.rb +107 -0
- data/test/workos/test_organizations_model_round_trip.rb +29 -0
- data/test/workos/test_pipes.rb +75 -3
- data/test/workos/test_pipes_model_round_trip.rb +389 -0
- data/test/workos/test_pipes_provider.rb +41 -0
- data/test/workos/test_radar_model_round_trip.rb +85 -0
- data/test/workos/test_session.rb +43 -4
- data/test/workos/test_shared_model_round_trip.rb +92 -0
- data/test/workos/test_user_management.rb +77 -73
- data/test/workos/test_user_management_model_round_trip.rb +1087 -0
- data/test/workos/test_vault.rb +91 -88
- data/test/workos/test_webhook_verify.rb +11 -0
- data/test/workos/test_webhooks_model_round_trip.rb +53 -0
- metadata +220 -85
- 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/directory_groups_order.rb +0 -9
- data/lib/workos/types/directory_users_order.rb +0 -9
- data/lib/workos/types/dsync_deactivated_data_state.rb +0 -9
- data/lib/workos/types/dsync_deactivated_data_type.rb +0 -9
- data/lib/workos/types/feature_flags_order.rb +0 -9
- data/lib/workos/types/groups_order.rb +0 -9
- data/lib/workos/types/organizations_api_keys_order.rb +0 -9
- data/lib/workos/types/organizations_feature_flags_order.rb +0 -9
- data/lib/workos/types/organizations_order.rb +0 -9
- data/lib/workos/types/permissions_order.rb +0 -9
- data/lib/workos/types/radar_type.rb +0 -9
- data/lib/workos/types/user_management_invitations_order.rb +0 -9
- data/lib/workos/types/user_management_multi_factor_authentication_order.rb +0 -9
- data/lib/workos/types/user_management_organization_membership_groups_order.rb +0 -9
- data/lib/workos/types/user_management_organization_membership_order.rb +0 -9
- data/lib/workos/types/user_management_users_authorized_applications_order.rb +0 -9
- data/lib/workos/types/user_management_users_feature_flags_order.rb +0 -9
- data/lib/workos/types/user_management_users_order.rb +0 -9
- data/lib/workos/types/webhook_endpoint_json_status.rb +0 -9
- data/lib/workos/types/webhooks_order.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}/update_user_organization_membership.rb +0 -0
|
@@ -5,30 +5,30 @@
|
|
|
5
5
|
module WorkOS
|
|
6
6
|
class VaultMetadataRead < WorkOS::Types::BaseModel
|
|
7
7
|
HASH_ATTRS = {
|
|
8
|
+
object: :object,
|
|
8
9
|
id: :id,
|
|
9
10
|
event: :event,
|
|
10
11
|
data: :data,
|
|
11
12
|
created_at: :created_at,
|
|
12
|
-
context: :context
|
|
13
|
-
object: :object
|
|
13
|
+
context: :context
|
|
14
14
|
}.freeze
|
|
15
15
|
|
|
16
16
|
attr_accessor \
|
|
17
|
+
:object,
|
|
17
18
|
:id,
|
|
18
19
|
:event,
|
|
19
20
|
:data,
|
|
20
21
|
:created_at,
|
|
21
|
-
:context
|
|
22
|
-
:object
|
|
22
|
+
:context
|
|
23
23
|
|
|
24
24
|
def initialize(json)
|
|
25
25
|
hash = self.class.normalize(json)
|
|
26
|
+
@object = hash[:object]
|
|
26
27
|
@id = hash[:id]
|
|
27
28
|
@event = hash[:event]
|
|
28
29
|
@data = hash[:data] ? WorkOS::VaultMetadataReadData.new(hash[:data]) : nil
|
|
29
30
|
@created_at = hash[:created_at]
|
|
30
31
|
@context = hash[:context] ? WorkOS::EventContext.new(hash[:context]) : nil
|
|
31
|
-
@object = hash[:object]
|
|
32
32
|
end
|
|
33
33
|
end
|
|
34
34
|
end
|
|
@@ -5,30 +5,30 @@
|
|
|
5
5
|
module WorkOS
|
|
6
6
|
class VaultNamesListed < WorkOS::Types::BaseModel
|
|
7
7
|
HASH_ATTRS = {
|
|
8
|
+
object: :object,
|
|
8
9
|
id: :id,
|
|
9
10
|
event: :event,
|
|
10
11
|
data: :data,
|
|
11
12
|
created_at: :created_at,
|
|
12
|
-
context: :context
|
|
13
|
-
object: :object
|
|
13
|
+
context: :context
|
|
14
14
|
}.freeze
|
|
15
15
|
|
|
16
16
|
attr_accessor \
|
|
17
|
+
:object,
|
|
17
18
|
:id,
|
|
18
19
|
:event,
|
|
19
20
|
:data,
|
|
20
21
|
:created_at,
|
|
21
|
-
:context
|
|
22
|
-
:object
|
|
22
|
+
:context
|
|
23
23
|
|
|
24
24
|
def initialize(json)
|
|
25
25
|
hash = self.class.normalize(json)
|
|
26
|
+
@object = hash[:object]
|
|
26
27
|
@id = hash[:id]
|
|
27
28
|
@event = hash[:event]
|
|
28
29
|
@data = hash[:data] ? WorkOS::VaultNamesListedData.new(hash[:data]) : nil
|
|
29
30
|
@created_at = hash[:created_at]
|
|
30
31
|
@context = hash[:context] ? WorkOS::EventContext.new(hash[:context]) : nil
|
|
31
|
-
@object = hash[:object]
|
|
32
32
|
end
|
|
33
33
|
end
|
|
34
34
|
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
5
|
+
module WorkOS
|
|
6
|
+
class VaultObject < WorkOS::Types::BaseModel
|
|
7
|
+
HASH_ATTRS = {
|
|
8
|
+
id: :id,
|
|
9
|
+
metadata: :metadata,
|
|
10
|
+
name: :name,
|
|
11
|
+
value: :value
|
|
12
|
+
}.freeze
|
|
13
|
+
|
|
14
|
+
attr_accessor \
|
|
15
|
+
:id,
|
|
16
|
+
:metadata,
|
|
17
|
+
:name,
|
|
18
|
+
:value
|
|
19
|
+
|
|
20
|
+
def initialize(json)
|
|
21
|
+
hash = self.class.normalize(json)
|
|
22
|
+
@id = hash[:id]
|
|
23
|
+
@metadata = hash[:metadata] ? WorkOS::ObjectMetadata.new(hash[:metadata]) : nil
|
|
24
|
+
@name = hash[:name]
|
|
25
|
+
@value = hash[:value]
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
5
|
+
module WorkOS
|
|
6
|
+
class VersionListResponse < WorkOS::Types::BaseModel
|
|
7
|
+
HASH_ATTRS = {
|
|
8
|
+
data: :data,
|
|
9
|
+
list_metadata: :list_metadata
|
|
10
|
+
}.freeze
|
|
11
|
+
|
|
12
|
+
attr_accessor \
|
|
13
|
+
:data,
|
|
14
|
+
:list_metadata
|
|
15
|
+
|
|
16
|
+
def initialize(json)
|
|
17
|
+
hash = self.class.normalize(json)
|
|
18
|
+
@data = (hash[:data] || []).map { |item| item ? WorkOS::ObjectVersion.new(item) : nil }
|
|
19
|
+
@list_metadata = hash[:list_metadata] ? WorkOS::ListMetadata.new(hash[:list_metadata]) : nil
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
data/lib/workos/vault.rb
CHANGED
|
@@ -1,176 +1,309 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
# AES-GCM encrypt/decrypt (H18). The Vault HTTP API is not in the OpenAPI spec
|
|
6
|
-
# and the AES-GCM helpers are inherently client-side, so this stays
|
|
7
|
-
# hand-maintained regardless of spec coverage.
|
|
8
|
-
require "base64"
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
9
5
|
require "json"
|
|
6
|
+
require "base64"
|
|
10
7
|
require "openssl"
|
|
11
8
|
require "securerandom"
|
|
12
9
|
|
|
13
10
|
module WorkOS
|
|
14
|
-
# WorkOS Vault: KV secret storage, server-managed key wrapping, and
|
|
15
|
-
# client-side AES-GCM encrypt/decrypt.
|
|
16
|
-
#
|
|
17
|
-
# @example Store and retrieve a secret
|
|
18
|
-
# client.vault.create_object(name: "api-key", value: "sk_...", key_context: { "tenant" => "t1" })
|
|
19
|
-
# obj = client.vault.read_object_by_name(name: "api-key")
|
|
20
|
-
# obj.value # => "sk_..."
|
|
21
|
-
#
|
|
22
|
-
# @example Client-side encrypt/decrypt
|
|
23
|
-
# encrypted = client.vault.encrypt(data: "plaintext", key_context: { "tenant" => "t1" })
|
|
24
|
-
# client.vault.decrypt(encrypted_data: encrypted)
|
|
25
11
|
class Vault
|
|
26
|
-
DEFAULT_RESPONSE_LIMIT = 10
|
|
27
|
-
|
|
28
|
-
DataKey = Data.define(:id, :key) do
|
|
29
|
-
def self.from_response(hash)
|
|
30
|
-
new(id: hash["id"], key: hash["data_key"])
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
DataKeyPair = Data.define(:context, :data_key, :encrypted_keys) do
|
|
35
|
-
def self.from_response(hash)
|
|
36
|
-
new(
|
|
37
|
-
context: hash["context"],
|
|
38
|
-
data_key: DataKey.new(id: hash["id"], key: hash["data_key"]),
|
|
39
|
-
encrypted_keys: hash["encrypted_keys"]
|
|
40
|
-
)
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
ObjectUpdateBy = Data.define(:id, :name) do
|
|
45
|
-
def self.from_hash(hash)
|
|
46
|
-
return nil if hash.nil?
|
|
47
|
-
new(id: hash["id"], name: hash["name"])
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
ObjectMetadata = Data.define(:context, :environment_id, :id, :key_id, :updated_at, :updated_by, :version_id) do
|
|
52
|
-
def self.from_hash(hash)
|
|
53
|
-
new(
|
|
54
|
-
context: hash["context"],
|
|
55
|
-
environment_id: hash["environment_id"],
|
|
56
|
-
id: hash["id"],
|
|
57
|
-
key_id: hash["key_id"],
|
|
58
|
-
updated_at: hash["updated_at"],
|
|
59
|
-
updated_by: ObjectUpdateBy.from_hash(hash["updated_by"]),
|
|
60
|
-
version_id: hash["version_id"]
|
|
61
|
-
)
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
VaultObject = Data.define(:id, :name, :value, :metadata) do
|
|
66
|
-
def self.from_hash(hash)
|
|
67
|
-
new(
|
|
68
|
-
id: hash["id"],
|
|
69
|
-
name: hash["name"],
|
|
70
|
-
value: hash["value"],
|
|
71
|
-
metadata: hash["metadata"] ? ObjectMetadata.from_hash(hash["metadata"]) : nil
|
|
72
|
-
)
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
ObjectDigest = Data.define(:id, :name, :updated_at) do
|
|
77
|
-
def self.from_hash(hash)
|
|
78
|
-
new(id: hash["id"], name: hash["name"], updated_at: hash["updated_at"])
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
ObjectVersion = Data.define(:id, :created_at, :current_version) do
|
|
83
|
-
def self.from_hash(hash)
|
|
84
|
-
new(id: hash["id"], created_at: hash["created_at"], current_version: hash["current_version"])
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
12
|
def initialize(client)
|
|
89
13
|
@client = client
|
|
90
14
|
end
|
|
91
15
|
|
|
92
|
-
#
|
|
93
|
-
|
|
94
|
-
#
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
16
|
+
# Create a data key
|
|
17
|
+
# @param context [Hash{String => String}] Map of values used to determine the encryption key.
|
|
18
|
+
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
19
|
+
# @return [WorkOS::CreateDataKeyResponse]
|
|
20
|
+
def create_data_key(
|
|
21
|
+
context:,
|
|
22
|
+
request_options: {}
|
|
23
|
+
)
|
|
24
|
+
body = {
|
|
25
|
+
"context" => context
|
|
26
|
+
}
|
|
27
|
+
response = @client.request(
|
|
28
|
+
method: :post,
|
|
29
|
+
path: "/vault/v1/keys/data-key",
|
|
30
|
+
auth: true,
|
|
31
|
+
body: body,
|
|
32
|
+
request_options: request_options
|
|
33
|
+
)
|
|
34
|
+
result = WorkOS::CreateDataKeyResponse.new(response.body)
|
|
35
|
+
result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
|
|
36
|
+
result
|
|
98
37
|
end
|
|
99
38
|
|
|
100
|
-
#
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
39
|
+
# Decrypt a data key
|
|
40
|
+
# @param keys [String] Base64-encoded encrypted data key to decrypt.
|
|
41
|
+
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
42
|
+
# @return [WorkOS::DecryptResponse]
|
|
43
|
+
def create_decrypt(
|
|
44
|
+
keys:,
|
|
45
|
+
request_options: {}
|
|
46
|
+
)
|
|
47
|
+
body = {
|
|
48
|
+
"keys" => keys
|
|
49
|
+
}
|
|
50
|
+
response = @client.request(
|
|
51
|
+
method: :post,
|
|
52
|
+
path: "/vault/v1/keys/decrypt",
|
|
53
|
+
auth: true,
|
|
54
|
+
body: body,
|
|
55
|
+
request_options: request_options
|
|
56
|
+
)
|
|
57
|
+
result = WorkOS::DecryptResponse.new(response.body)
|
|
58
|
+
result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
|
|
59
|
+
result
|
|
104
60
|
end
|
|
105
61
|
|
|
106
|
-
#
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
62
|
+
# Re-encrypt a data key
|
|
63
|
+
# @param context [Hash{String => String}] Map of values used to determine the new encryption key.
|
|
64
|
+
# @param encrypted_keys [String] Base64-encoded encrypted data key blob to re-encrypt.
|
|
65
|
+
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
66
|
+
# @return [WorkOS::CreateDataKeyResponse]
|
|
67
|
+
def create_rekey(
|
|
68
|
+
context:,
|
|
69
|
+
encrypted_keys:,
|
|
70
|
+
request_options: {}
|
|
71
|
+
)
|
|
72
|
+
body = {
|
|
73
|
+
"context" => context,
|
|
74
|
+
"encrypted_keys" => encrypted_keys
|
|
75
|
+
}
|
|
76
|
+
response = @client.request(
|
|
77
|
+
method: :post,
|
|
78
|
+
path: "/vault/v1/keys/rekey",
|
|
79
|
+
auth: true,
|
|
80
|
+
body: body,
|
|
81
|
+
request_options: request_options
|
|
82
|
+
)
|
|
83
|
+
result = WorkOS::CreateDataKeyResponse.new(response.body)
|
|
84
|
+
result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
|
|
85
|
+
result
|
|
110
86
|
end
|
|
111
87
|
|
|
112
|
-
# List
|
|
113
|
-
# @
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
88
|
+
# List objects
|
|
89
|
+
# @param limit [Integer, nil] Upper limit on the number of objects to return.
|
|
90
|
+
# @param before [String, nil] Cursor for the previous page of results.
|
|
91
|
+
# @param after [String, nil] Cursor for the next page of results.
|
|
92
|
+
# @param order [WorkOS::Types::VaultOrder, nil] Sort direction for results.
|
|
93
|
+
# @param search [String, nil] Filter results by name or structured search JSON.
|
|
94
|
+
# @param updated_after [String, nil] ISO 8601 timestamp to filter by last modified time.
|
|
95
|
+
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
96
|
+
# @return [WorkOS::Types::ListStruct<WorkOS::ObjectSummary>]
|
|
97
|
+
def list_kv(
|
|
98
|
+
limit: 10,
|
|
99
|
+
before: nil,
|
|
100
|
+
after: nil,
|
|
101
|
+
order: nil,
|
|
102
|
+
search: nil,
|
|
103
|
+
updated_after: nil,
|
|
104
|
+
request_options: {}
|
|
105
|
+
)
|
|
106
|
+
params = {
|
|
107
|
+
"limit" => limit,
|
|
108
|
+
"before" => before,
|
|
109
|
+
"after" => after,
|
|
110
|
+
"order" => order,
|
|
111
|
+
"search" => search,
|
|
112
|
+
"updatedAfter" => updated_after
|
|
113
|
+
}.compact
|
|
114
|
+
response = @client.request(
|
|
115
|
+
method: :get,
|
|
116
|
+
path: "/vault/v1/kv",
|
|
117
|
+
auth: true,
|
|
118
|
+
params: params,
|
|
119
|
+
request_options: request_options
|
|
120
|
+
)
|
|
121
|
+
fetch_next = ->(cursor) {
|
|
122
|
+
list_kv(
|
|
123
|
+
limit: limit,
|
|
124
|
+
before: before,
|
|
125
|
+
after: cursor,
|
|
126
|
+
order: order,
|
|
127
|
+
search: search,
|
|
128
|
+
updated_after: updated_after,
|
|
129
|
+
request_options: request_options
|
|
130
|
+
)
|
|
131
|
+
}
|
|
132
|
+
WorkOS::Types::ListStruct.from_response(
|
|
133
|
+
response,
|
|
134
|
+
model: WorkOS::ObjectSummary,
|
|
135
|
+
filters: {limit: limit, before: before, order: order, search: search, updated_after: updated_after},
|
|
136
|
+
fetch_next: fetch_next
|
|
137
|
+
)
|
|
119
138
|
end
|
|
120
139
|
|
|
121
|
-
#
|
|
122
|
-
# @
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
140
|
+
# Create an object
|
|
141
|
+
# @param key_context [Hash{String => String}] Map of values used to determine the encryption key.
|
|
142
|
+
# @param name [String] Unique name for the object.
|
|
143
|
+
# @param value [String] Plaintext data to encrypt and store.
|
|
144
|
+
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
145
|
+
# @return [WorkOS::ObjectMetadata]
|
|
146
|
+
def create_kv(
|
|
147
|
+
key_context:,
|
|
148
|
+
name:,
|
|
149
|
+
value:,
|
|
150
|
+
request_options: {}
|
|
151
|
+
)
|
|
152
|
+
body = {
|
|
153
|
+
"key_context" => key_context,
|
|
154
|
+
"name" => name,
|
|
155
|
+
"value" => value
|
|
156
|
+
}
|
|
157
|
+
response = @client.request(
|
|
158
|
+
method: :post,
|
|
159
|
+
path: "/vault/v1/kv",
|
|
160
|
+
auth: true,
|
|
161
|
+
body: body,
|
|
162
|
+
request_options: request_options
|
|
163
|
+
)
|
|
164
|
+
result = WorkOS::ObjectMetadata.new(response.body)
|
|
165
|
+
result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
|
|
166
|
+
result
|
|
127
167
|
end
|
|
128
168
|
|
|
129
|
-
#
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
169
|
+
# Read an object by name
|
|
170
|
+
# @param name [String] Unique name of the object.
|
|
171
|
+
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
172
|
+
# @return [WorkOS::VaultObject]
|
|
173
|
+
def get_name(
|
|
174
|
+
name:,
|
|
175
|
+
request_options: {}
|
|
176
|
+
)
|
|
177
|
+
response = @client.request(
|
|
178
|
+
method: :get,
|
|
179
|
+
path: "/vault/v1/kv/name/#{WorkOS::Util.encode_path(name)}",
|
|
180
|
+
auth: true,
|
|
181
|
+
request_options: request_options
|
|
182
|
+
)
|
|
183
|
+
result = WorkOS::VaultObject.new(response.body)
|
|
184
|
+
result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
|
|
185
|
+
result
|
|
134
186
|
end
|
|
135
187
|
|
|
136
|
-
#
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
188
|
+
# Read an object by ID
|
|
189
|
+
# @param id [String] Unique identifier of the object.
|
|
190
|
+
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
191
|
+
# @return [WorkOS::VaultObject]
|
|
192
|
+
def get_kv(
|
|
193
|
+
id:,
|
|
194
|
+
request_options: {}
|
|
195
|
+
)
|
|
196
|
+
response = @client.request(
|
|
197
|
+
method: :get,
|
|
198
|
+
path: "/vault/v1/kv/#{WorkOS::Util.encode_path(id)}",
|
|
199
|
+
auth: true,
|
|
200
|
+
request_options: request_options
|
|
201
|
+
)
|
|
202
|
+
result = WorkOS::VaultObject.new(response.body)
|
|
203
|
+
result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
|
|
204
|
+
result
|
|
141
205
|
end
|
|
142
206
|
|
|
143
|
-
#
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
207
|
+
# Update an object
|
|
208
|
+
# @param id [String] Unique identifier of the object.
|
|
209
|
+
# @param value [String] New plaintext value.
|
|
210
|
+
# @param version_check [String, nil] ID of the expected current version for optimistic locking.
|
|
211
|
+
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
212
|
+
# @return [WorkOS::ObjectWithoutValue]
|
|
213
|
+
def update_kv(
|
|
214
|
+
id:,
|
|
215
|
+
value:,
|
|
216
|
+
version_check: nil,
|
|
217
|
+
request_options: {}
|
|
218
|
+
)
|
|
219
|
+
body = {
|
|
220
|
+
"value" => value,
|
|
221
|
+
"version_check" => version_check
|
|
222
|
+
}.compact
|
|
223
|
+
response = @client.request(
|
|
224
|
+
method: :put,
|
|
225
|
+
path: "/vault/v1/kv/#{WorkOS::Util.encode_path(id)}",
|
|
226
|
+
auth: true,
|
|
227
|
+
body: body,
|
|
228
|
+
request_options: request_options
|
|
229
|
+
)
|
|
230
|
+
result = WorkOS::ObjectWithoutValue.new(response.body)
|
|
231
|
+
result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
|
|
232
|
+
result
|
|
147
233
|
end
|
|
148
234
|
|
|
149
|
-
#
|
|
235
|
+
# Delete an object
|
|
236
|
+
# @param id [String] Unique identifier of the object.
|
|
237
|
+
# @param version_check [String, nil] Expected current version for optimistic locking.
|
|
238
|
+
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
239
|
+
# @return [WorkOS::DeleteObjectResponse]
|
|
240
|
+
def delete_kv(
|
|
241
|
+
id:,
|
|
242
|
+
version_check: nil,
|
|
243
|
+
request_options: {}
|
|
244
|
+
)
|
|
245
|
+
params = {
|
|
246
|
+
"version_check" => version_check
|
|
247
|
+
}.compact
|
|
248
|
+
response = @client.request(
|
|
249
|
+
method: :delete,
|
|
250
|
+
path: "/vault/v1/kv/#{WorkOS::Util.encode_path(id)}",
|
|
251
|
+
auth: true,
|
|
252
|
+
params: params,
|
|
253
|
+
request_options: request_options
|
|
254
|
+
)
|
|
255
|
+
result = WorkOS::DeleteObjectResponse.new(response.body)
|
|
256
|
+
result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
|
|
257
|
+
result
|
|
258
|
+
end
|
|
150
259
|
|
|
151
|
-
#
|
|
152
|
-
# @
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
260
|
+
# Describe an object
|
|
261
|
+
# @param id [String] Unique identifier of the object.
|
|
262
|
+
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
263
|
+
# @return [WorkOS::ObjectWithoutValue]
|
|
264
|
+
def list_kv_metadata(
|
|
265
|
+
id:,
|
|
266
|
+
request_options: {}
|
|
267
|
+
)
|
|
268
|
+
response = @client.request(
|
|
269
|
+
method: :get,
|
|
270
|
+
path: "/vault/v1/kv/#{WorkOS::Util.encode_path(id)}/metadata",
|
|
271
|
+
auth: true,
|
|
272
|
+
request_options: request_options
|
|
273
|
+
)
|
|
274
|
+
result = WorkOS::ObjectWithoutValue.new(response.body)
|
|
275
|
+
result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
|
|
276
|
+
result
|
|
157
277
|
end
|
|
158
278
|
|
|
159
|
-
#
|
|
160
|
-
# @
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
279
|
+
# List object versions
|
|
280
|
+
# @param id [String] Unique identifier of the object.
|
|
281
|
+
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
282
|
+
# @return [WorkOS::Types::ListStruct<WorkOS::ObjectVersion>]
|
|
283
|
+
def list_kv_versions(
|
|
284
|
+
id:,
|
|
285
|
+
request_options: {}
|
|
286
|
+
)
|
|
287
|
+
response = @client.request(
|
|
288
|
+
method: :get,
|
|
289
|
+
path: "/vault/v1/kv/#{WorkOS::Util.encode_path(id)}/versions",
|
|
290
|
+
auth: true,
|
|
291
|
+
request_options: request_options
|
|
292
|
+
)
|
|
293
|
+
WorkOS::Types::ListStruct.from_response(
|
|
294
|
+
response,
|
|
295
|
+
model: WorkOS::ObjectVersion,
|
|
296
|
+
filters: {id: id}
|
|
297
|
+
)
|
|
165
298
|
end
|
|
166
299
|
|
|
167
|
-
#
|
|
300
|
+
# @oagen-ignore-start — client-side AES-GCM encrypt/decrypt (H18, hand-maintained)
|
|
168
301
|
|
|
169
302
|
# Encrypt data locally using AES-GCM with a data key derived from the context.
|
|
170
303
|
# Returns base64(IV || TAG || LEB128(len(keyBlob)) || keyBlob || ciphertext).
|
|
171
|
-
def encrypt(data:,
|
|
172
|
-
pair = create_data_key(
|
|
173
|
-
key = Base64.decode64(pair.data_key
|
|
304
|
+
def encrypt(data:, context:, associated_data: nil)
|
|
305
|
+
pair = create_data_key(context: context)
|
|
306
|
+
key = Base64.decode64(pair.data_key)
|
|
174
307
|
key_blob = Base64.decode64(pair.encrypted_keys)
|
|
175
308
|
prefix = encode_u32_leb128(key_blob.bytesize)
|
|
176
309
|
iv, ciphertext, tag = aes_gcm_encrypt(data.b, key, associated_data&.b)
|
|
@@ -186,8 +319,8 @@ module WorkOS
|
|
|
186
319
|
keys_index = 28 + leb_len
|
|
187
320
|
key_blob = payload.byteslice(keys_index, key_len)
|
|
188
321
|
ciphertext = payload.byteslice(keys_index + key_len, payload.bytesize - (keys_index + key_len))
|
|
189
|
-
|
|
190
|
-
key = Base64.decode64(data_key
|
|
322
|
+
dk = create_decrypt(keys: Base64.strict_encode64(key_blob))
|
|
323
|
+
key = Base64.decode64(dk.data_key)
|
|
191
324
|
aes_gcm_decrypt(ciphertext, key, iv, tag, associated_data&.b)
|
|
192
325
|
end
|
|
193
326
|
|
|
@@ -237,5 +370,6 @@ module WorkOS
|
|
|
237
370
|
end
|
|
238
371
|
raise ArgumentError, "LEB128 not terminated"
|
|
239
372
|
end
|
|
373
|
+
# @oagen-ignore-end
|
|
240
374
|
end
|
|
241
375
|
end
|
data/lib/workos/version.rb
CHANGED
|
@@ -2,12 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
# This file is auto-generated by oagen. Do not edit.
|
|
4
4
|
|
|
5
|
-
require "json"
|
|
6
|
-
|
|
7
5
|
module WorkOS
|
|
8
|
-
class WebhookEndpoint
|
|
9
|
-
include HashProvider
|
|
10
|
-
|
|
6
|
+
class WebhookEndpoint < WorkOS::Types::BaseModel
|
|
11
7
|
HASH_ATTRS = {
|
|
12
8
|
object: :object,
|
|
13
9
|
id: :id,
|
|
@@ -30,8 +26,7 @@ module WorkOS
|
|
|
30
26
|
:updated_at
|
|
31
27
|
|
|
32
28
|
def initialize(json)
|
|
33
|
-
hash =
|
|
34
|
-
hash = hash.transform_keys(&:to_sym) if hash.keys.first.is_a?(String)
|
|
29
|
+
hash = self.class.normalize(json)
|
|
35
30
|
@object = hash[:object]
|
|
36
31
|
@id = hash[:id]
|
|
37
32
|
@endpoint_url = hash[:endpoint_url]
|