zitadel-client 1.3.2 → 1.4.1
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/lib/patch.rb +2 -0
- data/lib/zitadel-client/api/feature_service_api.rb +551 -549
- data/lib/zitadel-client/api/identity_provider_service_api.rb +58 -56
- data/lib/zitadel-client/api/o_i_d_c_service_api.rb +208 -206
- data/lib/zitadel-client/api/organization_service_api.rb +102 -100
- data/lib/zitadel-client/api/s_a_m_l_service_api.rb +107 -105
- data/lib/zitadel-client/api/session_service_api.rb +260 -258
- data/lib/zitadel-client/api/settings_api.rb +93 -91
- data/lib/zitadel-client/api/settings_service_api.rb +436 -434
- data/lib/zitadel-client/api/user_service_api.rb +2296 -2294
- data/lib/zitadel-client/api_client.rb +1 -1
- data/lib/zitadel-client/auth/authenticator.rb +58 -56
- data/lib/zitadel-client/auth/client_credentials_authenticator.rb +49 -49
- data/lib/zitadel-client/auth/no_auth_authenticator.rb +22 -20
- data/lib/zitadel-client/auth/o_auth_authenticator.rb +78 -71
- data/lib/zitadel-client/auth/open_id.rb +35 -33
- data/lib/zitadel-client/auth/personal_access_token_authenticator.rb +24 -22
- data/lib/zitadel-client/auth/web_token_authenticator.rb +134 -132
- data/lib/zitadel-client/configuration.rb +1 -1
- data/lib/zitadel-client/models/feature_service_details.rb +116 -106
- data/lib/zitadel-client/models/feature_service_feature_flag.rb +116 -106
- data/lib/zitadel-client/models/feature_service_get_instance_features_response.rb +113 -103
- data/lib/zitadel-client/models/feature_service_get_organization_features_response.rb +117 -107
- data/lib/zitadel-client/models/feature_service_get_system_features_response.rb +113 -103
- data/lib/zitadel-client/models/feature_service_get_user_features_response.rb +117 -107
- data/lib/zitadel-client/models/feature_service_improved_performance.rb +3 -2
- data/lib/zitadel-client/models/feature_service_improved_performance_feature_flag.rb +113 -103
- data/lib/zitadel-client/models/feature_service_login_v2.rb +117 -107
- data/lib/zitadel-client/models/feature_service_login_v2_feature_flag.rb +113 -103
- data/lib/zitadel-client/models/feature_service_protobuf_any.rb +117 -107
- data/lib/zitadel-client/models/feature_service_reset_instance_features_response.rb +117 -107
- data/lib/zitadel-client/models/feature_service_reset_organization_features_response.rb +117 -107
- data/lib/zitadel-client/models/feature_service_reset_system_features_response.rb +117 -107
- data/lib/zitadel-client/models/feature_service_reset_user_features_response.rb +117 -107
- data/lib/zitadel-client/models/feature_service_rpc_status.rb +117 -107
- data/lib/zitadel-client/models/feature_service_set_instance_features_request.rb +113 -103
- data/lib/zitadel-client/models/feature_service_set_instance_features_response.rb +117 -107
- data/lib/zitadel-client/models/feature_service_set_organization_features_response.rb +117 -107
- data/lib/zitadel-client/models/feature_service_set_system_features_request.rb +113 -103
- data/lib/zitadel-client/models/feature_service_set_system_features_response.rb +117 -107
- data/lib/zitadel-client/models/feature_service_set_user_features_response.rb +117 -107
- data/lib/zitadel-client/models/feature_service_source.rb +3 -2
- data/lib/zitadel-client/models/identity_provider_service_apple_config.rb +116 -106
- data/lib/zitadel-client/models/identity_provider_service_auto_linking_option.rb +3 -2
- data/lib/zitadel-client/models/identity_provider_service_azure_a_d_config.rb +116 -106
- data/lib/zitadel-client/models/identity_provider_service_azure_a_d_tenant.rb +117 -107
- data/lib/zitadel-client/models/identity_provider_service_azure_a_d_tenant_type.rb +3 -2
- data/lib/zitadel-client/models/identity_provider_service_details.rb +116 -106
- data/lib/zitadel-client/models/identity_provider_service_generic_o_i_d_c_config.rb +116 -106
- data/lib/zitadel-client/models/identity_provider_service_get_i_d_p_by_i_d_response.rb +117 -107
- data/lib/zitadel-client/models/identity_provider_service_git_hub_config.rb +117 -107
- data/lib/zitadel-client/models/identity_provider_service_git_hub_enterprise_server_config.rb +113 -103
- data/lib/zitadel-client/models/identity_provider_service_git_lab_config.rb +117 -107
- data/lib/zitadel-client/models/identity_provider_service_git_lab_self_hosted_config.rb +117 -107
- data/lib/zitadel-client/models/identity_provider_service_google_config.rb +117 -107
- data/lib/zitadel-client/models/identity_provider_service_i_d_p.rb +113 -103
- data/lib/zitadel-client/models/identity_provider_service_i_d_p_config.rb +113 -103
- data/lib/zitadel-client/models/identity_provider_service_i_d_p_state.rb +3 -2
- data/lib/zitadel-client/models/identity_provider_service_i_d_p_type.rb +3 -2
- data/lib/zitadel-client/models/identity_provider_service_j_w_t_config.rb +116 -106
- data/lib/zitadel-client/models/identity_provider_service_l_d_a_p_attributes.rb +113 -103
- data/lib/zitadel-client/models/identity_provider_service_l_d_a_p_config.rb +113 -103
- data/lib/zitadel-client/models/identity_provider_service_o_auth_config.rb +113 -103
- data/lib/zitadel-client/models/identity_provider_service_options.rb +113 -103
- data/lib/zitadel-client/models/identity_provider_service_protobuf_any.rb +117 -107
- data/lib/zitadel-client/models/identity_provider_service_rpc_status.rb +117 -107
- data/lib/zitadel-client/models/identity_provider_service_s_a_m_l_binding.rb +3 -2
- data/lib/zitadel-client/models/identity_provider_service_s_a_m_l_config.rb +113 -103
- data/lib/zitadel-client/models/identity_provider_service_s_a_m_l_name_i_d_format.rb +3 -2
- data/lib/zitadel-client/models/o_i_d_c_service_auth_request.rb +113 -103
- data/lib/zitadel-client/models/o_i_d_c_service_authorization_error.rb +113 -103
- data/lib/zitadel-client/models/o_i_d_c_service_authorize_or_deny_device_authorization_request.rb +117 -107
- data/lib/zitadel-client/models/o_i_d_c_service_create_callback_request.rb +117 -107
- data/lib/zitadel-client/models/o_i_d_c_service_create_callback_response.rb +117 -107
- data/lib/zitadel-client/models/o_i_d_c_service_details.rb +116 -106
- data/lib/zitadel-client/models/o_i_d_c_service_device_authorization_request.rb +113 -103
- data/lib/zitadel-client/models/o_i_d_c_service_error_reason.rb +3 -2
- data/lib/zitadel-client/models/o_i_d_c_service_get_auth_request_response.rb +117 -107
- data/lib/zitadel-client/models/o_i_d_c_service_get_device_authorization_request_response.rb +117 -107
- data/lib/zitadel-client/models/o_i_d_c_service_prompt.rb +3 -2
- data/lib/zitadel-client/models/o_i_d_c_service_protobuf_any.rb +117 -107
- data/lib/zitadel-client/models/o_i_d_c_service_rpc_status.rb +117 -107
- data/lib/zitadel-client/models/o_i_d_c_service_session.rb +113 -103
- data/lib/zitadel-client/models/organization_service_add_human_user_request.rb +114 -104
- data/lib/zitadel-client/models/organization_service_add_organization_request.rb +113 -103
- data/lib/zitadel-client/models/organization_service_add_organization_request_admin.rb +117 -107
- data/lib/zitadel-client/models/organization_service_add_organization_response.rb +117 -107
- data/lib/zitadel-client/models/organization_service_add_organization_response_created_admin.rb +117 -107
- data/lib/zitadel-client/models/organization_service_details.rb +116 -106
- data/lib/zitadel-client/models/organization_service_gender.rb +3 -2
- data/lib/zitadel-client/models/organization_service_hashed_password.rb +113 -103
- data/lib/zitadel-client/models/organization_service_i_d_p_link.rb +113 -103
- data/lib/zitadel-client/models/organization_service_list_details.rb +117 -107
- data/lib/zitadel-client/models/organization_service_list_organizations_request.rb +113 -103
- data/lib/zitadel-client/models/organization_service_list_organizations_response.rb +113 -103
- data/lib/zitadel-client/models/organization_service_list_query.rb +117 -107
- data/lib/zitadel-client/models/organization_service_organization_domain_query.rb +113 -103
- data/lib/zitadel-client/models/organization_service_organization_field_name.rb +3 -2
- data/lib/zitadel-client/models/organization_service_organization_i_d_query.rb +113 -103
- data/lib/zitadel-client/models/organization_service_organization_name_query.rb +113 -103
- data/lib/zitadel-client/models/organization_service_organization_state.rb +3 -2
- data/lib/zitadel-client/models/organization_service_organization_state_query.rb +117 -107
- data/lib/zitadel-client/models/organization_service_password.rb +113 -103
- data/lib/zitadel-client/models/organization_service_protobuf_any.rb +117 -107
- data/lib/zitadel-client/models/organization_service_rpc_status.rb +117 -107
- data/lib/zitadel-client/models/organization_service_search_query.rb +113 -103
- data/lib/zitadel-client/models/organization_service_send_email_verification_code.rb +116 -106
- data/lib/zitadel-client/models/organization_service_set_human_email.rb +113 -103
- data/lib/zitadel-client/models/organization_service_set_human_phone.rb +113 -103
- data/lib/zitadel-client/models/organization_service_set_human_profile.rb +114 -104
- data/lib/zitadel-client/models/organization_service_set_metadata_entry.rb +113 -103
- data/lib/zitadel-client/models/organization_service_text_query_method.rb +3 -2
- data/lib/zitadel-client/models/s_a_m_l_service_authorization_error.rb +116 -106
- data/lib/zitadel-client/models/s_a_m_l_service_create_response_request.rb +117 -107
- data/lib/zitadel-client/models/s_a_m_l_service_create_response_response.rb +116 -106
- data/lib/zitadel-client/models/s_a_m_l_service_details.rb +116 -106
- data/lib/zitadel-client/models/s_a_m_l_service_error_reason.rb +3 -2
- data/lib/zitadel-client/models/s_a_m_l_service_get_s_a_m_l_request_response.rb +117 -107
- data/lib/zitadel-client/models/s_a_m_l_service_post_response.rb +117 -107
- data/lib/zitadel-client/models/s_a_m_l_service_protobuf_any.rb +117 -107
- data/lib/zitadel-client/models/s_a_m_l_service_rpc_status.rb +117 -107
- data/lib/zitadel-client/models/s_a_m_l_service_s_a_m_l_request.rb +113 -103
- data/lib/zitadel-client/models/s_a_m_l_service_session.rb +113 -103
- data/lib/zitadel-client/models/session_service_challenges.rb +117 -107
- data/lib/zitadel-client/models/session_service_challenges_web_auth_n.rb +117 -107
- data/lib/zitadel-client/models/session_service_check_i_d_p_intent.rb +113 -103
- data/lib/zitadel-client/models/session_service_check_o_t_p.rb +117 -107
- data/lib/zitadel-client/models/session_service_check_password.rb +116 -106
- data/lib/zitadel-client/models/session_service_check_t_o_t_p.rb +116 -106
- data/lib/zitadel-client/models/session_service_check_user.rb +113 -103
- data/lib/zitadel-client/models/session_service_check_web_auth_n.rb +117 -107
- data/lib/zitadel-client/models/session_service_checks.rb +113 -103
- data/lib/zitadel-client/models/session_service_create_session_request.rb +113 -103
- data/lib/zitadel-client/models/session_service_create_session_response.rb +116 -106
- data/lib/zitadel-client/models/session_service_creation_date_query.rb +116 -106
- data/lib/zitadel-client/models/session_service_creator_query.rb +117 -107
- data/lib/zitadel-client/models/session_service_delete_session_request.rb +117 -107
- data/lib/zitadel-client/models/session_service_delete_session_response.rb +117 -107
- data/lib/zitadel-client/models/session_service_details.rb +116 -106
- data/lib/zitadel-client/models/session_service_factors.rb +113 -103
- data/lib/zitadel-client/models/session_service_get_session_response.rb +117 -107
- data/lib/zitadel-client/models/session_service_i_ds_query.rb +117 -107
- data/lib/zitadel-client/models/session_service_intent_factor.rb +117 -107
- data/lib/zitadel-client/models/session_service_list_details.rb +117 -107
- data/lib/zitadel-client/models/session_service_list_query.rb +117 -107
- data/lib/zitadel-client/models/session_service_list_sessions_request.rb +113 -103
- data/lib/zitadel-client/models/session_service_list_sessions_response.rb +117 -107
- data/lib/zitadel-client/models/session_service_o_t_p_email_send_code.rb +116 -106
- data/lib/zitadel-client/models/session_service_o_t_p_factor.rb +117 -107
- data/lib/zitadel-client/models/session_service_password_factor.rb +117 -107
- data/lib/zitadel-client/models/session_service_protobuf_any.rb +117 -107
- data/lib/zitadel-client/models/session_service_request_challenges.rb +117 -107
- data/lib/zitadel-client/models/session_service_request_challenges_o_t_p_email.rb +117 -107
- data/lib/zitadel-client/models/session_service_request_challenges_o_t_p_s_m_s.rb +117 -107
- data/lib/zitadel-client/models/session_service_request_challenges_web_auth_n.rb +113 -103
- data/lib/zitadel-client/models/session_service_rpc_status.rb +117 -107
- data/lib/zitadel-client/models/session_service_search_query.rb +113 -103
- data/lib/zitadel-client/models/session_service_session.rb +113 -103
- data/lib/zitadel-client/models/session_service_session_field_name.rb +3 -2
- data/lib/zitadel-client/models/session_service_set_session_request.rb +113 -103
- data/lib/zitadel-client/models/session_service_set_session_response.rb +117 -107
- data/lib/zitadel-client/models/session_service_t_o_t_p_factor.rb +117 -107
- data/lib/zitadel-client/models/session_service_timestamp_query_method.rb +3 -2
- data/lib/zitadel-client/models/session_service_user_agent.rb +116 -106
- data/lib/zitadel-client/models/session_service_user_agent_header_values.rb +117 -107
- data/lib/zitadel-client/models/session_service_user_agent_query.rb +117 -107
- data/lib/zitadel-client/models/session_service_user_factor.rb +113 -103
- data/lib/zitadel-client/models/session_service_user_i_d_query.rb +117 -107
- data/lib/zitadel-client/models/session_service_user_verification_requirement.rb +3 -2
- data/lib/zitadel-client/models/session_service_web_auth_n_factor.rb +117 -107
- data/lib/zitadel-client/models/settings_service_auto_linking_option.rb +3 -2
- data/lib/zitadel-client/models/settings_service_branding_settings.rb +113 -103
- data/lib/zitadel-client/models/settings_service_details.rb +116 -106
- data/lib/zitadel-client/models/settings_service_domain_settings.rb +113 -103
- data/lib/zitadel-client/models/settings_service_embedded_iframe_settings.rb +117 -107
- data/lib/zitadel-client/models/settings_service_get_active_identity_providers_response.rb +117 -107
- data/lib/zitadel-client/models/settings_service_get_branding_settings_response.rb +117 -107
- data/lib/zitadel-client/models/settings_service_get_domain_settings_response.rb +117 -107
- data/lib/zitadel-client/models/settings_service_get_general_settings_response.rb +117 -107
- data/lib/zitadel-client/models/settings_service_get_legal_and_support_settings_response.rb +117 -107
- data/lib/zitadel-client/models/settings_service_get_lockout_settings_response.rb +117 -107
- data/lib/zitadel-client/models/settings_service_get_login_settings_response.rb +117 -107
- data/lib/zitadel-client/models/settings_service_get_password_complexity_settings_response.rb +117 -107
- data/lib/zitadel-client/models/settings_service_get_password_expiry_settings_response.rb +117 -107
- data/lib/zitadel-client/models/settings_service_get_security_settings_response.rb +117 -107
- data/lib/zitadel-client/models/settings_service_identity_provider.rb +113 -103
- data/lib/zitadel-client/models/settings_service_identity_provider_type.rb +3 -2
- data/lib/zitadel-client/models/settings_service_legal_and_support_settings.rb +113 -103
- data/lib/zitadel-client/models/settings_service_list_details.rb +117 -107
- data/lib/zitadel-client/models/settings_service_lockout_settings.rb +113 -103
- data/lib/zitadel-client/models/settings_service_login_settings.rb +113 -103
- data/lib/zitadel-client/models/settings_service_multi_factor_type.rb +3 -2
- data/lib/zitadel-client/models/settings_service_options.rb +113 -103
- data/lib/zitadel-client/models/settings_service_passkeys_type.rb +3 -2
- data/lib/zitadel-client/models/settings_service_password_complexity_settings.rb +113 -103
- data/lib/zitadel-client/models/settings_service_password_expiry_settings.rb +113 -103
- data/lib/zitadel-client/models/settings_service_protobuf_any.rb +117 -107
- data/lib/zitadel-client/models/settings_service_resource_owner_type.rb +3 -2
- data/lib/zitadel-client/models/settings_service_rpc_status.rb +117 -107
- data/lib/zitadel-client/models/settings_service_second_factor_type.rb +3 -2
- data/lib/zitadel-client/models/settings_service_security_settings.rb +117 -107
- data/lib/zitadel-client/models/settings_service_set_security_settings_request.rb +117 -107
- data/lib/zitadel-client/models/settings_service_set_security_settings_response.rb +117 -107
- data/lib/zitadel-client/models/settings_service_theme.rb +113 -103
- data/lib/zitadel-client/models/settings_service_theme_mode.rb +3 -2
- data/lib/zitadel-client/models/user_service_access_token_type.rb +3 -2
- data/lib/zitadel-client/models/user_service_add_human_user_request.rb +114 -104
- data/lib/zitadel-client/models/user_service_add_human_user_response.rb +116 -106
- data/lib/zitadel-client/models/user_service_add_i_d_p_link_request.rb +117 -107
- data/lib/zitadel-client/models/user_service_add_i_d_p_link_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_add_o_t_p_email_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_add_o_t_p_s_m_s_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_and_query.rb +117 -107
- data/lib/zitadel-client/models/user_service_auth_factor.rb +113 -103
- data/lib/zitadel-client/models/user_service_auth_factor_state.rb +3 -2
- data/lib/zitadel-client/models/user_service_auth_factor_u2_f.rb +117 -107
- data/lib/zitadel-client/models/user_service_authentication_method_type.rb +3 -2
- data/lib/zitadel-client/models/user_service_create_invite_code_request.rb +117 -107
- data/lib/zitadel-client/models/user_service_create_invite_code_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_create_passkey_registration_link_request.rb +117 -107
- data/lib/zitadel-client/models/user_service_create_passkey_registration_link_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_deactivate_user_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_delete_user_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_details.rb +116 -106
- data/lib/zitadel-client/models/user_service_display_name_query.rb +113 -103
- data/lib/zitadel-client/models/user_service_email_query.rb +113 -103
- data/lib/zitadel-client/models/user_service_first_name_query.rb +113 -103
- data/lib/zitadel-client/models/user_service_gender.rb +3 -2
- data/lib/zitadel-client/models/user_service_get_user_by_i_d_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_hashed_password.rb +113 -103
- data/lib/zitadel-client/models/user_service_human_email.rb +113 -103
- data/lib/zitadel-client/models/user_service_human_m_f_a_init_skipped_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_human_phone.rb +116 -106
- data/lib/zitadel-client/models/user_service_human_profile.rb +114 -104
- data/lib/zitadel-client/models/user_service_human_user.rb +113 -103
- data/lib/zitadel-client/models/user_service_i_d_p_information.rb +113 -103
- data/lib/zitadel-client/models/user_service_i_d_p_intent.rb +113 -103
- data/lib/zitadel-client/models/user_service_i_d_p_l_d_a_p_access_information.rb +117 -107
- data/lib/zitadel-client/models/user_service_i_d_p_link.rb +113 -103
- data/lib/zitadel-client/models/user_service_i_d_p_o_auth_access_information.rb +117 -107
- data/lib/zitadel-client/models/user_service_i_d_p_s_a_m_l_access_information.rb +117 -107
- data/lib/zitadel-client/models/user_service_in_user_emails_query.rb +117 -107
- data/lib/zitadel-client/models/user_service_in_user_i_d_query.rb +117 -107
- data/lib/zitadel-client/models/user_service_l_d_a_p_credentials.rb +113 -103
- data/lib/zitadel-client/models/user_service_last_name_query.rb +113 -103
- data/lib/zitadel-client/models/user_service_list_authentication_factors_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_list_authentication_method_types_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_list_details.rb +117 -107
- data/lib/zitadel-client/models/user_service_list_i_d_p_links_request.rb +117 -107
- data/lib/zitadel-client/models/user_service_list_i_d_p_links_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_list_passkeys_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_list_query.rb +117 -107
- data/lib/zitadel-client/models/user_service_list_users_request.rb +113 -103
- data/lib/zitadel-client/models/user_service_list_users_response.rb +113 -103
- data/lib/zitadel-client/models/user_service_lock_user_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_login_name_query.rb +113 -103
- data/lib/zitadel-client/models/user_service_machine_user.rb +113 -103
- data/lib/zitadel-client/models/user_service_nick_name_query.rb +113 -103
- data/lib/zitadel-client/models/user_service_not_query.rb +117 -107
- data/lib/zitadel-client/models/user_service_notification_type.rb +3 -2
- data/lib/zitadel-client/models/user_service_or_query.rb +117 -107
- data/lib/zitadel-client/models/user_service_organization.rb +117 -107
- data/lib/zitadel-client/models/user_service_organization_id_query.rb +113 -103
- data/lib/zitadel-client/models/user_service_passkey.rb +113 -103
- data/lib/zitadel-client/models/user_service_passkey_authenticator.rb +3 -2
- data/lib/zitadel-client/models/user_service_passkey_registration_code.rb +113 -103
- data/lib/zitadel-client/models/user_service_password.rb +113 -103
- data/lib/zitadel-client/models/user_service_password_reset_request.rb +117 -107
- data/lib/zitadel-client/models/user_service_password_reset_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_phone_query.rb +113 -103
- data/lib/zitadel-client/models/user_service_protobuf_any.rb +117 -107
- data/lib/zitadel-client/models/user_service_reactivate_user_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_redirect_u_r_ls.rb +113 -103
- data/lib/zitadel-client/models/user_service_register_passkey_request.rb +113 -103
- data/lib/zitadel-client/models/user_service_register_passkey_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_register_t_o_t_p_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_register_u2_f_request.rb +117 -107
- data/lib/zitadel-client/models/user_service_register_u2_f_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_remove_i_d_p_link_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_remove_o_t_p_email_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_remove_o_t_p_s_m_s_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_remove_passkey_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_remove_phone_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_remove_t_o_t_p_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_remove_u2_f_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_resend_email_code_request.rb +117 -107
- data/lib/zitadel-client/models/user_service_resend_email_code_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_resend_invite_code_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_resend_phone_code_request.rb +117 -107
- data/lib/zitadel-client/models/user_service_resend_phone_code_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_retrieve_identity_provider_intent_request.rb +116 -106
- data/lib/zitadel-client/models/user_service_retrieve_identity_provider_intent_response.rb +116 -106
- data/lib/zitadel-client/models/user_service_rpc_status.rb +117 -107
- data/lib/zitadel-client/models/user_service_search_query.rb +113 -103
- data/lib/zitadel-client/models/user_service_send_email_code_request.rb +117 -107
- data/lib/zitadel-client/models/user_service_send_email_code_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_send_email_verification_code.rb +116 -106
- data/lib/zitadel-client/models/user_service_send_invite_code.rb +113 -103
- data/lib/zitadel-client/models/user_service_send_passkey_registration_link.rb +116 -106
- data/lib/zitadel-client/models/user_service_send_password_reset_link.rb +113 -103
- data/lib/zitadel-client/models/user_service_set_email_request.rb +113 -103
- data/lib/zitadel-client/models/user_service_set_email_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_set_human_email.rb +113 -103
- data/lib/zitadel-client/models/user_service_set_human_phone.rb +113 -103
- data/lib/zitadel-client/models/user_service_set_human_profile.rb +114 -104
- data/lib/zitadel-client/models/user_service_set_metadata_entry.rb +113 -103
- data/lib/zitadel-client/models/user_service_set_password.rb +113 -103
- data/lib/zitadel-client/models/user_service_set_password_request.rb +113 -103
- data/lib/zitadel-client/models/user_service_set_password_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_set_phone_request.rb +113 -103
- data/lib/zitadel-client/models/user_service_set_phone_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_start_identity_provider_intent_request.rb +113 -103
- data/lib/zitadel-client/models/user_service_start_identity_provider_intent_response.rb +116 -106
- data/lib/zitadel-client/models/user_service_state_query.rb +113 -103
- data/lib/zitadel-client/models/user_service_text_query_method.rb +3 -2
- data/lib/zitadel-client/models/user_service_type.rb +3 -2
- data/lib/zitadel-client/models/user_service_type_query.rb +113 -103
- data/lib/zitadel-client/models/user_service_unlock_user_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_update_human_user_request.rb +113 -103
- data/lib/zitadel-client/models/user_service_update_human_user_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_user.rb +113 -103
- data/lib/zitadel-client/models/user_service_user_field_name.rb +3 -2
- data/lib/zitadel-client/models/user_service_user_name_query.rb +113 -103
- data/lib/zitadel-client/models/user_service_user_state.rb +3 -2
- data/lib/zitadel-client/models/user_service_verify_email_request.rb +113 -103
- data/lib/zitadel-client/models/user_service_verify_email_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_verify_invite_code_request.rb +113 -103
- data/lib/zitadel-client/models/user_service_verify_invite_code_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_verify_passkey_registration_request.rb +113 -103
- data/lib/zitadel-client/models/user_service_verify_passkey_registration_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_verify_phone_request.rb +113 -103
- data/lib/zitadel-client/models/user_service_verify_phone_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_verify_t_o_t_p_registration_request.rb +117 -107
- data/lib/zitadel-client/models/user_service_verify_t_o_t_p_registration_response.rb +117 -107
- data/lib/zitadel-client/models/user_service_verify_u2_f_registration_request.rb +113 -103
- data/lib/zitadel-client/models/user_service_verify_u2_f_registration_response.rb +117 -107
- data/lib/zitadel-client/models/zitadelobjectv2_organization.rb +117 -107
- data/lib/zitadel-client/models/zitadelorgv2_organization.rb +113 -103
- data/lib/zitadel-client/utils/url_util.rb +15 -13
- data/lib/zitadel-client/version.rb +1 -1
- data/lib/zitadel-client/zitadel.rb +11 -11
- data/lib/zitadel_client.rb +0 -5
- data/sig/lib/oauth2/oauth2.rbs +3 -0
- data/sig/lib.rbs +113 -106
- metadata +2 -2
@@ -278,7 +278,7 @@ module ZitadelClient
|
|
278
278
|
end
|
279
279
|
else
|
280
280
|
# models (e.g. Pet) or oneOf
|
281
|
-
klass = ZitadelClient.const_get(return_type)
|
281
|
+
klass = ZitadelClient::Models.const_get(return_type)
|
282
282
|
klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
|
283
283
|
end
|
284
284
|
end
|
@@ -3,74 +3,76 @@
|
|
3
3
|
require 'time'
|
4
4
|
|
5
5
|
module ZitadelClient
|
6
|
-
|
7
|
-
# Abstract base class for authenticators.
|
8
|
-
#
|
9
|
-
# This class defines the basic structure for any authenticator by requiring the implementation
|
10
|
-
# of a method to retrieve authentication headers, and provides a way to store and retrieve the host.
|
11
|
-
#
|
12
|
-
class Authenticator
|
13
|
-
protected
|
14
|
-
|
15
|
-
attr_reader :host
|
16
|
-
|
6
|
+
module Auth
|
17
7
|
##
|
18
|
-
#
|
8
|
+
# Abstract base class for authenticators.
|
19
9
|
#
|
20
|
-
#
|
10
|
+
# This class defines the basic structure for any authenticator by requiring the implementation
|
11
|
+
# of a method to retrieve authentication headers, and provides a way to store and retrieve the host.
|
21
12
|
#
|
22
|
-
|
23
|
-
|
24
|
-
end
|
13
|
+
class Authenticator
|
14
|
+
protected
|
25
15
|
|
26
|
-
|
27
|
-
# Retrieves the authentication headers to be sent with requests.
|
28
|
-
#
|
29
|
-
# Subclasses must override this method to return the appropriate headers.
|
30
|
-
#
|
31
|
-
# @raise [NotImplementedError] Always raised to require implementation in a subclass.
|
32
|
-
#
|
33
|
-
# @return [Hash{String => String}]
|
34
|
-
#
|
35
|
-
def auth_headers
|
36
|
-
# :nocov:
|
37
|
-
raise NotImplementedError,
|
38
|
-
"#{self.class}#get_auth_headers is an abstract method. Please override it in a subclass."
|
39
|
-
# :nocov:
|
40
|
-
end
|
41
|
-
end
|
16
|
+
attr_reader :host
|
42
17
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
18
|
+
##
|
19
|
+
# Initializes the Authenticator with the specified host.
|
20
|
+
#
|
21
|
+
# @param host [String] the base URL or endpoint for the service.
|
22
|
+
#
|
23
|
+
def initialize(host)
|
24
|
+
@host = host
|
25
|
+
end
|
50
26
|
|
51
|
-
|
27
|
+
##
|
28
|
+
# Retrieves the authentication headers to be sent with requests.
|
29
|
+
#
|
30
|
+
# Subclasses must override this method to return the appropriate headers.
|
31
|
+
#
|
32
|
+
# @raise [NotImplementedError] Always raised to require implementation in a subclass.
|
33
|
+
#
|
34
|
+
# @return [Hash{String => String}]
|
35
|
+
#
|
36
|
+
def auth_headers
|
37
|
+
# :nocov:
|
38
|
+
raise NotImplementedError,
|
39
|
+
"#{self.class}#get_auth_headers is an abstract method. Please override it in a subclass."
|
40
|
+
# :nocov:
|
41
|
+
end
|
42
|
+
end
|
52
43
|
|
53
44
|
##
|
54
|
-
#
|
45
|
+
# Abstract builder class for constructing OAuth authenticator instances.
|
55
46
|
#
|
56
|
-
#
|
47
|
+
# This builder provides common configuration options such as the OpenId instance and authentication scopes.
|
57
48
|
#
|
58
|
-
|
59
|
-
|
60
|
-
@auth_scopes = Set.new(%w[openid urn:zitadel:iam:org:project:id:zitadel:aud])
|
61
|
-
end
|
49
|
+
class OAuthAuthenticatorBuilder
|
50
|
+
protected
|
62
51
|
|
63
|
-
|
52
|
+
attr_reader :open_id, :auth_scopes
|
64
53
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
54
|
+
##
|
55
|
+
# Initializes the OAuthAuthenticatorBuilder with a given host.
|
56
|
+
#
|
57
|
+
# @param host [String] the base URL for the OAuth provider.
|
58
|
+
#
|
59
|
+
def initialize(host)
|
60
|
+
@open_id = OpenId.new(host)
|
61
|
+
@auth_scopes = Set.new(%w[openid urn:zitadel:iam:org:project:id:zitadel:aud])
|
62
|
+
end
|
63
|
+
|
64
|
+
public
|
65
|
+
|
66
|
+
##
|
67
|
+
# Sets the authentication scopes for the OAuth authenticator.
|
68
|
+
#
|
69
|
+
# @param scopes [Array<String>] a variable number of scope strings.
|
70
|
+
# @return [self] the builder instance to allow for method chaining.
|
71
|
+
#
|
72
|
+
def scopes(*scopes)
|
73
|
+
@auth_scopes = Set.new(scopes)
|
74
|
+
self
|
75
|
+
end
|
74
76
|
end
|
75
77
|
end
|
76
78
|
end
|
@@ -1,62 +1,62 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'oauth2'
|
4
|
-
|
5
3
|
module ZitadelClient
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
# @param open_id [OpenId] The OpenId instance with OAuth endpoint info.
|
11
|
-
# @param client_id [String] The OAuth client identifier.
|
12
|
-
# @param client_secret [String] The OAuth client secret.
|
13
|
-
# @param auth_scopes [Set<String>] The scope(s) for the token request.
|
14
|
-
def initialize(open_id, client_id, client_secret, auth_scopes)
|
15
|
-
# noinspection RubyArgCount
|
16
|
-
super(open_id, auth_scopes, OAuth2::Client.new(client_id, client_secret, {
|
17
|
-
site: open_id.host_endpoint,
|
18
|
-
token_url: open_id.token_endpoint
|
19
|
-
}))
|
20
|
-
end
|
21
|
-
|
22
|
-
# Returns a new builder for constructing a ClientCredentialsAuthenticator.
|
23
|
-
#
|
24
|
-
# @param host [String] The OAuth provider's base URL.
|
25
|
-
# @param client_id [String] The OAuth client identifier.
|
26
|
-
# @param client_secret [String] The OAuth client secret.
|
27
|
-
# @return [ClientCredentialsAuthenticatorBuilder] A builder instance.
|
28
|
-
def self.builder(host, client_id, client_secret)
|
29
|
-
ClientCredentialsAuthenticatorBuilder.new(host, client_id, client_secret)
|
30
|
-
end
|
31
|
-
|
32
|
-
protected
|
33
|
-
|
34
|
-
# Overrides the base get_grant to return client credentials grant parameters.
|
35
|
-
|
36
|
-
# @return [OAuth2::AccessToken] A hash containing the grant type.
|
37
|
-
def get_grant(client, auth_scopes)
|
38
|
-
client.client_credentials.get_token({ scope: auth_scopes })
|
39
|
-
end
|
40
|
-
|
41
|
-
# Builder class for ClientCredentialsAuthenticator.
|
42
|
-
class ClientCredentialsAuthenticatorBuilder < OAuthAuthenticatorBuilder
|
43
|
-
# Initializes the builder with host, client ID, and client secret.
|
4
|
+
module Auth
|
5
|
+
# ClientCredentialsAuthenticator implements the client credentials flow.
|
6
|
+
class ClientCredentialsAuthenticator < ZitadelClient::Auth::OAuthAuthenticator
|
7
|
+
# Constructs a ClientCredentialsAuthenticator using client credentials flow.
|
44
8
|
#
|
45
|
-
# @param
|
9
|
+
# @param open_id [OpenId] The OpenId instance with OAuth endpoint info.
|
46
10
|
# @param client_id [String] The OAuth client identifier.
|
47
11
|
# @param client_secret [String] The OAuth client secret.
|
48
|
-
|
12
|
+
# @param auth_scopes [Set<String>] The scope(s) for the token request.
|
13
|
+
def initialize(open_id, client_id, client_secret, auth_scopes)
|
49
14
|
# noinspection RubyArgCount
|
50
|
-
super(
|
51
|
-
|
52
|
-
|
15
|
+
super(open_id, auth_scopes, OAuth2::Client.new(client_id, client_secret, {
|
16
|
+
site: open_id.host_endpoint,
|
17
|
+
token_url: open_id.token_endpoint
|
18
|
+
}))
|
53
19
|
end
|
54
20
|
|
55
|
-
#
|
21
|
+
# Returns a new builder for constructing a ClientCredentialsAuthenticator.
|
56
22
|
#
|
57
|
-
# @
|
58
|
-
|
59
|
-
|
23
|
+
# @param host [String] The OAuth provider's base URL.
|
24
|
+
# @param client_id [String] The OAuth client identifier.
|
25
|
+
# @param client_secret [String] The OAuth client secret.
|
26
|
+
# @return [ClientCredentialsAuthenticatorBuilder] A builder instance.
|
27
|
+
def self.builder(host, client_id, client_secret)
|
28
|
+
ClientCredentialsAuthenticatorBuilder.new(host, client_id, client_secret)
|
29
|
+
end
|
30
|
+
|
31
|
+
protected
|
32
|
+
|
33
|
+
# Overrides the base get_grant to return client credentials grant parameters.
|
34
|
+
|
35
|
+
# @return [OAuth2::AccessToken] A hash containing the grant type.
|
36
|
+
def get_grant(client, auth_scopes)
|
37
|
+
client.client_credentials.get_token({ scope: auth_scopes })
|
38
|
+
end
|
39
|
+
|
40
|
+
# Builder class for ClientCredentialsAuthenticator.
|
41
|
+
class ClientCredentialsAuthenticatorBuilder < OAuthAuthenticatorBuilder
|
42
|
+
# Initializes the builder with host, client ID, and client secret.
|
43
|
+
#
|
44
|
+
# @param host [String] The OAuth provider's base URL.
|
45
|
+
# @param client_id [String] The OAuth client identifier.
|
46
|
+
# @param client_secret [String] The OAuth client secret.
|
47
|
+
def initialize(host, client_id, client_secret)
|
48
|
+
# noinspection RubyArgCount
|
49
|
+
super(host)
|
50
|
+
@client_id = client_id
|
51
|
+
@client_secret = client_secret
|
52
|
+
end
|
53
|
+
|
54
|
+
# Constructs and returns a ClientCredentialsAuthenticator using the configured parameters.
|
55
|
+
#
|
56
|
+
# @return [ClientCredentialsAuthenticator] A configured instance.
|
57
|
+
def build
|
58
|
+
ClientCredentialsAuthenticator.new(open_id, @client_id, @client_secret, auth_scopes)
|
59
|
+
end
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
@@ -1,31 +1,33 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module ZitadelClient
|
4
|
-
|
5
|
-
# A simple authenticator that performs no authentication.
|
6
|
-
#
|
7
|
-
# This authenticator is useful for cases where no token or credentials are required.
|
8
|
-
# It simply returns an empty dictionary for authentication headers.
|
9
|
-
#
|
10
|
-
class NoAuthAuthenticator < Authenticator
|
4
|
+
module Auth
|
11
5
|
##
|
12
|
-
#
|
6
|
+
# A simple authenticator that performs no authentication.
|
13
7
|
#
|
14
|
-
#
|
8
|
+
# This authenticator is useful for cases where no token or credentials are required.
|
9
|
+
# It simply returns an empty dictionary for authentication headers.
|
15
10
|
#
|
16
|
-
|
17
|
-
|
18
|
-
|
11
|
+
class NoAuthAuthenticator < Authenticator
|
12
|
+
##
|
13
|
+
# Initializes the NoAuthAuthenticator with a default host.
|
14
|
+
#
|
15
|
+
# @param host [String] the base URL for the service. Defaults to "http://localhost".
|
16
|
+
#
|
17
|
+
def initialize(host = 'http://localhost')
|
18
|
+
super
|
19
|
+
end
|
19
20
|
|
20
|
-
|
21
|
+
protected
|
21
22
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
23
|
+
##
|
24
|
+
# Returns an empty dictionary since no authentication is performed.
|
25
|
+
#
|
26
|
+
# @return [Hash{String => String}] an empty hash.
|
27
|
+
#
|
28
|
+
def auth_headers
|
29
|
+
{}
|
30
|
+
end
|
29
31
|
end
|
30
32
|
end
|
31
33
|
end
|
@@ -3,88 +3,95 @@
|
|
3
3
|
require 'time'
|
4
4
|
require 'oauth2'
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
# Attributes:
|
11
|
-
# open_id: An object providing OAuth endpoint information.
|
12
|
-
# auth_session: An OAuth2Session instance used for fetching tokens.
|
13
|
-
#
|
14
|
-
class OAuthAuthenticator < Authenticator
|
15
|
-
protected
|
6
|
+
OAuth2.configure do |config|
|
7
|
+
# noinspection RubyResolve
|
8
|
+
config.silence_extra_tokens_warning = true
|
9
|
+
end
|
16
10
|
|
11
|
+
module ZitadelClient
|
12
|
+
module Auth
|
17
13
|
##
|
18
|
-
#
|
14
|
+
# Base class for OAuth-based authentication using an OAuth2 client.
|
19
15
|
#
|
20
|
-
#
|
21
|
-
#
|
16
|
+
# Attributes:
|
17
|
+
# open_id: An object providing OAuth endpoint information.
|
18
|
+
# auth_session: An OAuth2Session instance used for fetching tokens.
|
22
19
|
#
|
23
|
-
|
24
|
-
|
25
|
-
@open_id = open_id
|
26
|
-
@token = nil
|
27
|
-
@auth_session = auth_session
|
28
|
-
@auth_scopes = auth_scopes.to_a.join(' ')
|
29
|
-
end
|
20
|
+
class OAuthAuthenticator < Authenticator
|
21
|
+
protected
|
30
22
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
token =
|
23
|
+
##
|
24
|
+
# Constructs an OAuthAuthenticator.
|
25
|
+
#
|
26
|
+
# @param open_id [OpenId] An object that must implement `get_host_endpoint` and `get_token_endpoint`.
|
27
|
+
# @param auth_session [OAuth2Session] The OAuth2Session instance used for token requests.
|
28
|
+
#
|
29
|
+
def initialize(open_id, auth_scopes, auth_session)
|
30
|
+
super(open_id.host_endpoint)
|
31
|
+
@open_id = open_id
|
32
|
+
@token = nil
|
33
|
+
@auth_session = auth_session
|
34
|
+
@auth_scopes = auth_scopes.to_a.join(' ')
|
41
35
|
end
|
42
36
|
|
43
|
-
|
37
|
+
##
|
38
|
+
# Returns the current access token, refreshing it if necessary.
|
39
|
+
#
|
40
|
+
# @return [String] The current access token.
|
41
|
+
#
|
42
|
+
def auth_token
|
43
|
+
token = @token
|
44
|
+
if token.nil? || token.expired?
|
45
|
+
refresh_token
|
46
|
+
token = @token
|
47
|
+
end
|
44
48
|
|
45
|
-
|
46
|
-
end
|
49
|
+
raise 'Token is nil after refresh' if token.nil?
|
47
50
|
|
48
|
-
|
49
|
-
|
50
|
-
#
|
51
|
-
# @return [Hash{String => String}] A hash containing the 'Authorization' header.
|
52
|
-
#
|
53
|
-
def auth_headers
|
54
|
-
{ 'Authorization' => "Bearer #{auth_token}" }
|
55
|
-
end
|
51
|
+
token.token
|
52
|
+
end
|
56
53
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
#
|
66
|
-
# @param auth_client [OAuth2::Client] The OAuth2 client instance.
|
67
|
-
# @param [String] auth_scopes
|
68
|
-
# @return [OAuth2::AccessToken] A hash of parameters used to fetch a token.
|
69
|
-
#
|
70
|
-
def get_grant(auth_client, auth_scopes)
|
71
|
-
# :nocov:
|
72
|
-
raise NotImplementedError, "#{self.class}#get_grant must be implemented"
|
73
|
-
# :nocov:
|
74
|
-
end
|
54
|
+
##
|
55
|
+
# Retrieves authentication headers.
|
56
|
+
#
|
57
|
+
# @return [Hash{String => String}] A hash containing the 'Authorization' header.
|
58
|
+
#
|
59
|
+
def auth_headers
|
60
|
+
{ 'Authorization' => "Bearer #{auth_token}" }
|
61
|
+
end
|
75
62
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
@
|
86
|
-
|
87
|
-
|
63
|
+
##
|
64
|
+
# Builds and returns a hash of grant parameters required for the token request.
|
65
|
+
#
|
66
|
+
# The base class will invoke this method by passing its OAuth2 client.
|
67
|
+
# The subclass implementation should return the result of either:
|
68
|
+
# client.client_credentials.get_token(scope: scopes)
|
69
|
+
# or
|
70
|
+
# client.assertion.get_token(claims)
|
71
|
+
#
|
72
|
+
# @param auth_client [OAuth2::Client] The OAuth2 client instance.
|
73
|
+
# @param [String] auth_scopes
|
74
|
+
# @return [OAuth2::AccessToken] A hash of parameters used to fetch a token.
|
75
|
+
#
|
76
|
+
def get_grant(auth_client, auth_scopes)
|
77
|
+
# :nocov:
|
78
|
+
raise NotImplementedError, "#{self.class}#get_grant must be implemented"
|
79
|
+
# :nocov:
|
80
|
+
end
|
81
|
+
|
82
|
+
##
|
83
|
+
# Refreshes the access token using the OAuth flow.
|
84
|
+
#
|
85
|
+
# It uses `get_grant` to obtain all necessary parameters for the token request.
|
86
|
+
#
|
87
|
+
# @return [OAuth2::AccessToken] A new Token instance.
|
88
|
+
# @raise [RuntimeError] if the token refresh fails.
|
89
|
+
#
|
90
|
+
def refresh_token
|
91
|
+
@token = get_grant(@auth_session, @auth_scopes)
|
92
|
+
rescue StandardError => e
|
93
|
+
raise ZitadelError.new("Failed to refresh token: #{e.message}"), cause: e
|
94
|
+
end
|
88
95
|
end
|
89
96
|
end
|
90
97
|
end
|
@@ -5,46 +5,48 @@ require 'uri'
|
|
5
5
|
require 'net/http'
|
6
6
|
|
7
7
|
module ZitadelClient
|
8
|
-
|
9
|
-
# OpenId retrieves OpenID Connect configuration from a given host.
|
10
|
-
#
|
11
|
-
# It builds the well-known configuration URL from the provided hostname,
|
12
|
-
# fetches the configuration, and extracts the token endpoint.
|
13
|
-
#
|
14
|
-
class OpenId
|
15
|
-
attr_accessor :token_endpoint, :host_endpoint
|
16
|
-
|
8
|
+
module Auth
|
17
9
|
##
|
18
|
-
#
|
10
|
+
# OpenId retrieves OpenID Connect configuration from a given host.
|
19
11
|
#
|
20
|
-
#
|
21
|
-
#
|
12
|
+
# It builds the well-known configuration URL from the provided hostname,
|
13
|
+
# fetches the configuration, and extracts the token endpoint.
|
22
14
|
#
|
23
|
-
|
24
|
-
|
25
|
-
hostname = "https://#{hostname}" unless hostname.start_with?('http://', 'https://')
|
26
|
-
@host_endpoint = hostname
|
27
|
-
well_known_url = self.class.build_well_known_url(hostname)
|
15
|
+
class OpenId
|
16
|
+
attr_accessor :token_endpoint, :host_endpoint
|
28
17
|
|
29
|
-
|
30
|
-
|
31
|
-
|
18
|
+
##
|
19
|
+
# Initializes a new OpenId instance.
|
20
|
+
#
|
21
|
+
# @param hostname [String] the hostname for the OpenID provider.
|
22
|
+
# @raise [RuntimeError] if the OpenID configuration cannot be fetched or the token_endpoint is missing.
|
23
|
+
#
|
24
|
+
# noinspection HttpUrlsUsage
|
25
|
+
def initialize(hostname)
|
26
|
+
hostname = "https://#{hostname}" unless hostname.start_with?('http://', 'https://')
|
27
|
+
@host_endpoint = hostname
|
28
|
+
well_known_url = self.class.build_well_known_url(hostname)
|
32
29
|
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
uri = URI.parse(well_known_url)
|
31
|
+
response = Net::HTTP.get_response(uri)
|
32
|
+
raise "Failed to fetch OpenID configuration: HTTP #{response.code}" unless response.code.to_i == 200
|
36
33
|
|
37
|
-
|
38
|
-
|
34
|
+
config = JSON.parse(response.body)
|
35
|
+
token_endpoint = config['token_endpoint']
|
36
|
+
raise 'token_endpoint not found in OpenID configuration' unless token_endpoint
|
39
37
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
38
|
+
@token_endpoint = token_endpoint
|
39
|
+
end
|
40
|
+
|
41
|
+
##
|
42
|
+
# Builds the well-known OpenID configuration URL for the given hostname.
|
43
|
+
#
|
44
|
+
# @param hostname [String] the hostname for the OpenID provider.
|
45
|
+
# @return [String] the well-known configuration URL.
|
46
|
+
#
|
47
|
+
def self.build_well_known_url(hostname)
|
48
|
+
URI.join(hostname, '/.well-known/openid-configuration').to_s
|
49
|
+
end
|
48
50
|
end
|
49
51
|
end
|
50
52
|
end
|
@@ -1,33 +1,35 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module ZitadelClient
|
4
|
-
|
5
|
-
# Personal Access Token Authenticator.
|
6
|
-
#
|
7
|
-
# Uses a static personal access token for API authentication.
|
8
|
-
#
|
9
|
-
class PersonalAccessTokenAuthenticator < Authenticator
|
4
|
+
module Auth
|
10
5
|
##
|
11
|
-
#
|
6
|
+
# Personal Access Token Authenticator.
|
12
7
|
#
|
13
|
-
#
|
14
|
-
# @param token [String] the personal access token.
|
8
|
+
# Uses a static personal access token for API authentication.
|
15
9
|
#
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
10
|
+
class PersonalAccessTokenAuthenticator < Authenticator
|
11
|
+
##
|
12
|
+
# Initializes the PersonalAccessTokenAuthenticator with host and token.
|
13
|
+
#
|
14
|
+
# @param host [String] the base URL for the service.
|
15
|
+
# @param token [String] the personal access token.
|
16
|
+
#
|
17
|
+
def initialize(host, token)
|
18
|
+
# noinspection RubyArgCount
|
19
|
+
super(ZitadelClient::Utils::UrlUtil.build_hostname(host))
|
20
|
+
@token = token
|
21
|
+
end
|
21
22
|
|
22
|
-
|
23
|
+
protected
|
23
24
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
##
|
26
|
+
# Returns the authentication headers using the personal access token.
|
27
|
+
#
|
28
|
+
# @return [Hash{String => String}] a hash containing the 'Authorization' header.
|
29
|
+
#
|
30
|
+
def auth_headers
|
31
|
+
{ 'Authorization' => "Bearer #{@token}" }
|
32
|
+
end
|
31
33
|
end
|
32
34
|
end
|
33
35
|
end
|