kinde_sdk 1.2.3 → 1.7.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/app/assets/stylesheets/kinde/ruby/sdk/application.css +15 -0
- data/app/controllers/kinde_sdk/auth_controller.rb +301 -0
- data/app/helpers/auth_helper.rb +88 -0
- data/config/routes.rb +9 -0
- data/kinde_api/Gemfile +9 -0
- data/kinde_api/README.md +316 -47
- data/kinde_api/Rakefile +10 -0
- data/kinde_api/docs/APIsApi.md +569 -60
- data/kinde_api/docs/AddAPIScopeRequest.md +20 -0
- data/kinde_api/docs/AddAPIsRequest.md +4 -4
- data/kinde_api/docs/AddOrganizationUsersRequestUsersInner.md +1 -1
- data/kinde_api/docs/AddRoleScopeRequest.md +18 -0
- data/kinde_api/docs/AddRoleScopeResponse.md +20 -0
- data/kinde_api/docs/ApplicationsApi.md +465 -38
- data/kinde_api/docs/AuthorizeAppApiResponse.md +24 -0
- data/kinde_api/docs/BillingAgreementsApi.md +157 -0
- data/kinde_api/docs/BillingEntitlementsApi.md +89 -0
- data/kinde_api/docs/BillingMeterUsageApi.md +77 -0
- data/kinde_api/docs/BusinessApi.md +27 -66
- data/kinde_api/docs/CallbacksApi.md +25 -25
- data/kinde_api/docs/Category.md +20 -0
- data/kinde_api/docs/ConnectedAppsApi.md +8 -8
- data/kinde_api/docs/Connection.md +22 -0
- data/kinde_api/docs/ConnectionConnection.md +24 -0
- data/kinde_api/docs/ConnectionsApi.md +439 -0
- data/kinde_api/docs/CreateApiScopesResponse.md +22 -0
- data/kinde_api/docs/CreateApiScopesResponseScope.md +18 -0
- data/kinde_api/docs/CreateApisResponse.md +22 -0
- data/kinde_api/docs/CreateApisResponseApi.md +18 -0
- data/kinde_api/docs/CreateApplicationRequest.md +3 -3
- data/kinde_api/docs/CreateApplicationResponseApplication.md +4 -4
- data/kinde_api/docs/CreateBillingAgreementRequest.md +24 -0
- data/kinde_api/docs/CreateCategoryRequest.md +20 -0
- data/kinde_api/docs/CreateCategoryResponse.md +22 -0
- data/kinde_api/docs/CreateCategoryResponseCategory.md +18 -0
- data/kinde_api/docs/CreateConnectionRequest.md +28 -0
- data/kinde_api/docs/CreateConnectionRequestOptions.md +51 -0
- data/kinde_api/docs/CreateConnectionRequestOptionsOneOf.md +22 -0
- data/kinde_api/docs/CreateConnectionRequestOptionsOneOf1.md +34 -0
- data/kinde_api/docs/CreateConnectionRequestOptionsOneOf2.md +44 -0
- data/kinde_api/docs/CreateConnectionResponse.md +22 -0
- data/kinde_api/docs/CreateConnectionResponseConnection.md +18 -0
- data/kinde_api/docs/CreateEnvironmentVariableRequest.md +22 -0
- data/kinde_api/docs/CreateEnvironmentVariableResponse.md +22 -0
- data/kinde_api/docs/CreateEnvironmentVariableResponseEnvironmentVariable.md +18 -0
- data/kinde_api/docs/CreateIdentityResponse.md +22 -0
- data/kinde_api/docs/CreateIdentityResponseIdentity.md +18 -0
- data/kinde_api/docs/CreateMeterUsageRecordRequest.md +26 -0
- data/kinde_api/docs/CreateMeterUsageRecordResponse.md +20 -0
- data/kinde_api/docs/CreateOrganizationRequest.md +17 -7
- data/kinde_api/docs/CreateOrganizationResponse.md +4 -4
- data/kinde_api/docs/CreateOrganizationResponseOrganization.md +4 -2
- data/kinde_api/docs/CreatePropertyRequest.md +30 -0
- data/kinde_api/docs/CreatePropertyResponse.md +22 -0
- data/kinde_api/docs/CreatePropertyResponseProperty.md +18 -0
- data/kinde_api/docs/CreateRolesResponse.md +22 -0
- data/kinde_api/docs/CreateRolesResponseRole.md +18 -0
- data/kinde_api/docs/CreateUserIdentityRequest.md +24 -0
- data/kinde_api/docs/CreateUserRequest.md +3 -1
- data/kinde_api/docs/CreateUserRequestIdentitiesInner.md +3 -1
- data/kinde_api/docs/CreateUserRequestIdentitiesInnerDetails.md +7 -1
- data/kinde_api/docs/CreateUserRequestProfile.md +3 -1
- data/kinde_api/docs/CreateUserResponse.md +1 -1
- data/kinde_api/docs/CreateWebHookRequest.md +24 -0
- data/kinde_api/docs/CreateWebhookResponse.md +22 -0
- data/kinde_api/docs/CreateWebhookResponseWebhook.md +20 -0
- data/kinde_api/docs/DeleteApiResponse.md +20 -0
- data/kinde_api/docs/DeleteEnvironmentVariableResponse.md +20 -0
- data/kinde_api/docs/DeleteRoleScopeResponse.md +20 -0
- data/kinde_api/docs/DeleteWebhookResponse.md +20 -0
- data/kinde_api/docs/EnvironmentVariable.md +26 -0
- data/kinde_api/docs/EnvironmentVariablesApi.md +356 -0
- data/kinde_api/docs/EnvironmentsApi.md +281 -5
- data/kinde_api/docs/EventType.md +26 -0
- data/kinde_api/docs/FeatureFlagsApi.md +4 -4
- data/kinde_api/docs/GetApiResponse.md +22 -0
- data/kinde_api/docs/GetApiResponseApi.md +28 -0
- data/kinde_api/docs/GetApiResponseApiApplicationsInner.md +24 -0
- data/kinde_api/docs/GetApiResponseApiScopesInner.md +20 -0
- data/kinde_api/docs/GetApiScopeResponse.md +22 -0
- data/kinde_api/docs/GetApiScopesResponse.md +22 -0
- data/kinde_api/docs/GetApiScopesResponseScopesInner.md +22 -0
- data/kinde_api/docs/GetApisResponse.md +24 -0
- data/kinde_api/docs/GetApisResponseApisInner.md +26 -0
- data/kinde_api/docs/GetApisResponseApisInnerScopesInner.md +20 -0
- data/kinde_api/docs/GetApplicationResponseApplication.md +11 -5
- data/kinde_api/docs/GetBillingAgreementsResponse.md +24 -0
- data/kinde_api/docs/GetBillingAgreementsResponseAgreementsInner.md +26 -0
- data/kinde_api/docs/GetBillingAgreementsResponseAgreementsInnerEntitlementsInner.md +20 -0
- data/kinde_api/docs/GetBillingEntitlementsResponse.md +26 -0
- data/kinde_api/docs/GetBillingEntitlementsResponseEntitlementsInner.md +32 -0
- data/kinde_api/docs/GetBillingEntitlementsResponsePlansInner.md +20 -0
- data/kinde_api/docs/GetBusinessResponse.md +22 -0
- data/kinde_api/docs/GetBusinessResponseBusiness.md +38 -0
- data/kinde_api/docs/GetCategoriesResponse.md +24 -0
- data/kinde_api/docs/GetConnectionsResponse.md +24 -0
- data/kinde_api/docs/GetEnvironmentResponse.md +22 -0
- data/kinde_api/docs/GetEnvironmentResponseEnvironment.md +68 -0
- data/kinde_api/docs/GetEnvironmentResponseEnvironmentBackgroundColor.md +22 -0
- data/kinde_api/docs/GetEnvironmentResponseEnvironmentLinkColor.md +22 -0
- data/kinde_api/docs/GetEnvironmentVariableResponse.md +22 -0
- data/kinde_api/docs/GetEnvironmentVariablesResponse.md +24 -0
- data/kinde_api/docs/GetEventResponse.md +22 -0
- data/kinde_api/docs/GetEventResponseEvent.md +26 -0
- data/kinde_api/docs/GetEventTypesResponse.md +22 -0
- data/kinde_api/docs/GetIdentitiesResponse.md +24 -0
- data/kinde_api/docs/GetIndustriesResponse.md +22 -0
- data/kinde_api/docs/GetIndustriesResponseIndustriesInner.md +20 -0
- data/kinde_api/docs/GetOrganizationResponse.md +72 -0
- data/kinde_api/docs/GetOrganizationResponseBilling.md +20 -0
- data/kinde_api/docs/GetOrganizationResponseBillingAgreementsInner.md +20 -0
- data/kinde_api/docs/GetOrganizationUsersResponse.md +2 -2
- data/kinde_api/docs/GetOrganizationsResponse.md +4 -4
- data/kinde_api/docs/GetPropertiesResponse.md +24 -0
- data/kinde_api/docs/GetPropertyValuesResponse.md +24 -0
- data/kinde_api/docs/GetRoleResponse.md +22 -0
- data/kinde_api/docs/GetRoleResponseRole.md +26 -0
- data/kinde_api/docs/GetTimezonesResponse.md +22 -0
- data/kinde_api/docs/GetTimezonesResponseTimezonesInner.md +20 -0
- data/kinde_api/docs/GetUserMfaResponse.md +22 -0
- data/kinde_api/docs/GetUserMfaResponseMfa.md +30 -0
- data/kinde_api/docs/GetUserSessionsResponse.md +24 -0
- data/kinde_api/docs/GetUserSessionsResponseSessionsInner.md +40 -0
- data/kinde_api/docs/GetWebhooksResponse.md +22 -0
- data/kinde_api/docs/IdentitiesApi.md +219 -0
- data/kinde_api/docs/Identity.md +34 -0
- data/kinde_api/docs/IndustriesApi.md +14 -21
- data/kinde_api/docs/LogoutRedirectUrls.md +6 -2
- data/kinde_api/docs/MFAApi.md +77 -0
- data/kinde_api/docs/NotFoundResponse.md +18 -0
- data/kinde_api/docs/NotFoundResponseErrors.md +20 -0
- data/kinde_api/docs/OAuthApi.md +32 -97
- data/kinde_api/docs/OrganizationItemSchema.md +28 -0
- data/kinde_api/docs/OrganizationUser.md +17 -11
- data/kinde_api/docs/OrganizationsApi.md +1440 -210
- data/kinde_api/docs/Permissions.md +1 -1
- data/kinde_api/docs/PermissionsApi.md +7 -7
- data/kinde_api/docs/PropertiesApi.md +297 -0
- data/kinde_api/docs/Property.md +28 -0
- data/kinde_api/docs/PropertyCategoriesApi.md +227 -0
- data/kinde_api/docs/PropertyValue.md +26 -0
- data/kinde_api/docs/ReadEnvLogoResponse.md +22 -0
- data/kinde_api/docs/ReadEnvLogoResponseLogosInner.md +20 -0
- data/kinde_api/docs/ReadLogoResponse.md +22 -0
- data/kinde_api/docs/ReadLogoResponseLogosInner.md +22 -0
- data/kinde_api/docs/ReplaceConnectionRequest.md +24 -0
- data/kinde_api/docs/ReplaceConnectionRequestOptions.md +51 -0
- data/kinde_api/docs/ReplaceConnectionRequestOptionsOneOf.md +32 -0
- data/kinde_api/docs/ReplaceConnectionRequestOptionsOneOf1.md +40 -0
- data/kinde_api/docs/ReplaceMFARequest.md +20 -0
- data/kinde_api/docs/ReplaceOrganizationMFARequest.md +18 -0
- data/kinde_api/docs/RolePermissionsResponse.md +24 -0
- data/kinde_api/docs/RoleScopesResponse.md +22 -0
- data/kinde_api/docs/Roles.md +4 -2
- data/kinde_api/docs/RolesApi.md +338 -54
- data/kinde_api/docs/Scopes.md +24 -0
- data/kinde_api/docs/SearchApi.md +89 -0
- data/kinde_api/docs/SearchUsersResponse.md +22 -0
- data/kinde_api/docs/SearchUsersResponseResultsInner.md +46 -0
- data/kinde_api/docs/SetUserPasswordRequest.md +26 -0
- data/kinde_api/docs/SubscribersApi.md +4 -4
- data/kinde_api/docs/SuccessResponse.md +2 -2
- data/kinde_api/docs/TimezonesApi.md +14 -21
- data/kinde_api/docs/TokenIntrospect.md +5 -5
- data/kinde_api/docs/UpdateAPIApplicationsRequestApplicationsInner.md +4 -4
- data/kinde_api/docs/UpdateAPIScopeRequest.md +18 -0
- data/kinde_api/docs/UpdateApplicationRequest.md +5 -1
- data/kinde_api/docs/UpdateApplicationTokensRequest.md +26 -0
- data/kinde_api/docs/UpdateApplicationsPropertyRequest.md +18 -0
- data/kinde_api/docs/UpdateApplicationsPropertyRequestValue.md +49 -0
- data/kinde_api/docs/UpdateBusinessRequest.md +36 -0
- data/kinde_api/docs/UpdateCategoryRequest.md +18 -0
- data/kinde_api/docs/UpdateConnectionRequest.md +24 -0
- data/kinde_api/docs/UpdateEnvironmentVariableRequest.md +22 -0
- data/kinde_api/docs/UpdateEnvironmentVariableResponse.md +20 -0
- data/kinde_api/docs/UpdateIdentityRequest.md +18 -0
- data/kinde_api/docs/UpdateOrganizationPropertiesRequest.md +18 -0
- data/kinde_api/docs/UpdateOrganizationRequest.md +27 -15
- data/kinde_api/docs/UpdateOrganizationSessionsRequest.md +24 -0
- data/kinde_api/docs/UpdateOrganizationUsersRequestUsersInner.md +2 -2
- data/kinde_api/docs/UpdateOrganizationUsersResponse.md +3 -1
- data/kinde_api/docs/UpdatePropertyRequest.md +24 -0
- data/kinde_api/docs/UpdateUserRequest.md +5 -1
- data/kinde_api/docs/UpdateUserResponse.md +1 -1
- data/kinde_api/docs/UpdateWebHookRequest.md +22 -0
- data/kinde_api/docs/UpdateWebhookResponse.md +22 -0
- data/kinde_api/docs/UpdateWebhookResponseWebhook.md +18 -0
- data/kinde_api/docs/User.md +6 -2
- data/kinde_api/docs/UserProfileV2.md +17 -13
- data/kinde_api/docs/UsersApi.md +893 -99
- data/kinde_api/docs/UsersResponseUsersInner.md +6 -2
- data/kinde_api/docs/Webhook.md +28 -0
- data/kinde_api/docs/WebhooksApi.md +423 -0
- data/kinde_api/git_push.sh +57 -0
- data/kinde_api/kinde_api.gemspec +38 -0
- data/kinde_api/lib/kinde_api/api/apis_api.rb +640 -127
- data/kinde_api/lib/kinde_api/api/applications_api.rb +524 -112
- data/kinde_api/lib/kinde_api/api/billing_agreements_api.rb +166 -0
- data/kinde_api/lib/kinde_api/api/billing_entitlements_api.rb +105 -0
- data/kinde_api/lib/kinde_api/api/billing_meter_usage_api.rb +90 -0
- data/kinde_api/lib/kinde_api/api/business_api.rb +61 -126
- data/kinde_api/lib/kinde_api/api/callbacks_api.rb +152 -172
- data/kinde_api/lib/kinde_api/api/connected_apps_api.rb +57 -67
- data/kinde_api/lib/kinde_api/api/connections_api.rb +433 -0
- data/kinde_api/lib/kinde_api/api/environment_variables_api.rb +347 -0
- data/kinde_api/lib/kinde_api/api/environments_api.rb +327 -78
- data/kinde_api/lib/kinde_api/api/feature_flags_api.rb +68 -88
- data/kinde_api/lib/kinde_api/api/frontend/billing_api.rb +148 -0
- data/kinde_api/lib/kinde_api/api/frontend/feature_flags_api.rb +85 -0
- data/kinde_api/lib/kinde_api/api/frontend/o_auth_api.rb +241 -0
- data/kinde_api/lib/kinde_api/api/frontend/permissions_api.rb +85 -0
- data/kinde_api/lib/kinde_api/api/frontend/properties_api.rb +85 -0
- data/kinde_api/lib/kinde_api/api/frontend/roles_api.rb +85 -0
- data/kinde_api/lib/kinde_api/api/frontend/self_serve_portal_api.rb +89 -0
- data/kinde_api/lib/kinde_api/api/identities_api.rb +222 -0
- data/kinde_api/lib/kinde_api/api/industries_api.rb +29 -34
- data/kinde_api/lib/kinde_api/api/mfa_api.rb +90 -0
- data/kinde_api/lib/kinde_api/api/o_auth_api.rb +104 -129
- data/kinde_api/lib/kinde_api/api/organizations_api.rb +1689 -544
- data/kinde_api/lib/kinde_api/api/permissions_api.rb +76 -80
- data/kinde_api/lib/kinde_api/api/properties_api.rb +300 -0
- data/kinde_api/lib/kinde_api/api/property_categories_api.rb +237 -0
- data/kinde_api/lib/kinde_api/api/roles_api.rb +432 -166
- data/kinde_api/lib/kinde_api/api/search_api.rb +97 -0
- data/kinde_api/lib/kinde_api/api/subscribers_api.rb +59 -60
- data/kinde_api/lib/kinde_api/api/timezones_api.rb +29 -34
- data/kinde_api/lib/kinde_api/api/users_api.rb +900 -150
- data/kinde_api/lib/kinde_api/api/webhooks_api.rb +404 -0
- data/kinde_api/lib/kinde_api/api_client.rb +79 -68
- data/kinde_api/lib/kinde_api/api_error.rb +16 -16
- data/kinde_api/lib/kinde_api/configuration.rb +101 -24
- data/kinde_api/lib/kinde_api/models/add_api_scope_request.rb +235 -0
- data/kinde_api/lib/kinde_api/models/add_apis_request.rb +54 -49
- data/kinde_api/lib/kinde_api/models/add_organization_users_request.rb +40 -42
- data/kinde_api/lib/kinde_api/models/add_organization_users_request_users_inner.rb +53 -51
- data/kinde_api/lib/kinde_api/models/add_organization_users_response.rb +52 -50
- data/kinde_api/lib/kinde_api/models/add_role_scope_request.rb +225 -0
- data/kinde_api/lib/kinde_api/models/add_role_scope_response.rb +230 -0
- data/kinde_api/lib/kinde_api/models/api_result.rb +38 -40
- data/kinde_api/lib/kinde_api/models/applications.rb +55 -50
- data/kinde_api/lib/kinde_api/models/authorize_app_api_response.rb +250 -0
- data/kinde_api/lib/kinde_api/models/category.rb +228 -0
- data/kinde_api/lib/kinde_api/models/connected_apps_access_token.rb +44 -45
- data/kinde_api/lib/kinde_api/models/connected_apps_auth_url.rb +44 -45
- data/kinde_api/lib/kinde_api/models/connection.rb +239 -0
- data/kinde_api/lib/kinde_api/models/connection_connection.rb +246 -0
- data/kinde_api/lib/kinde_api/models/create_api_scopes_response.rb +239 -0
- data/kinde_api/lib/kinde_api/models/create_api_scopes_response_scope.rb +220 -0
- data/kinde_api/lib/kinde_api/models/create_apis_response.rb +239 -0
- data/kinde_api/lib/kinde_api/models/create_apis_response_api.rb +220 -0
- data/kinde_api/lib/kinde_api/models/create_application_request.rb +60 -52
- data/kinde_api/lib/kinde_api/models/create_application_response.rb +50 -49
- data/kinde_api/lib/kinde_api/models/create_application_response_application.rb +51 -50
- data/kinde_api/lib/kinde_api/models/create_billing_agreement_request.rb +260 -0
- data/kinde_api/lib/kinde_api/models/create_category_request.rb +274 -0
- data/kinde_api/lib/kinde_api/models/create_category_response.rb +237 -0
- data/kinde_api/lib/kinde_api/models/create_category_response_category.rb +220 -0
- data/kinde_api/lib/kinde_api/models/create_connection_request.rb +306 -0
- data/kinde_api/lib/kinde_api/models/create_connection_request_options.rb +106 -0
- data/kinde_api/lib/kinde_api/models/create_connection_request_options_one_of.rb +241 -0
- data/kinde_api/lib/kinde_api/models/create_connection_request_options_one_of1.rb +303 -0
- data/kinde_api/lib/kinde_api/models/create_connection_request_options_one_of2.rb +333 -0
- data/kinde_api/lib/kinde_api/models/create_connection_response.rb +237 -0
- data/kinde_api/lib/kinde_api/models/create_connection_response_connection.rb +220 -0
- data/kinde_api/lib/kinde_api/models/create_environment_variable_request.rb +250 -0
- data/kinde_api/lib/kinde_api/models/create_environment_variable_response.rb +239 -0
- data/kinde_api/lib/kinde_api/models/create_environment_variable_response_environment_variable.rb +220 -0
- data/kinde_api/lib/kinde_api/models/create_feature_flag_request.rb +87 -77
- data/kinde_api/lib/kinde_api/models/create_identity_response.rb +237 -0
- data/kinde_api/lib/kinde_api/models/create_identity_response_identity.rb +220 -0
- data/kinde_api/lib/kinde_api/models/create_meter_usage_record_request.rb +309 -0
- data/kinde_api/lib/kinde_api/models/create_meter_usage_record_response.rb +230 -0
- data/kinde_api/lib/kinde_api/models/create_organization_request.rb +175 -100
- data/kinde_api/lib/kinde_api/models/create_organization_response.rb +57 -50
- data/kinde_api/lib/kinde_api/models/create_organization_response_organization.rb +49 -42
- data/kinde_api/lib/kinde_api/models/create_organization_user_permission_request.rb +38 -41
- data/kinde_api/lib/kinde_api/models/create_organization_user_role_request.rb +38 -41
- data/kinde_api/lib/kinde_api/models/create_permission_request.rb +50 -49
- data/kinde_api/lib/kinde_api/models/create_property_request.rb +356 -0
- data/kinde_api/lib/kinde_api/models/create_property_response.rb +237 -0
- data/kinde_api/lib/kinde_api/models/create_property_response_property.rb +220 -0
- data/kinde_api/lib/kinde_api/models/create_role_request.rb +56 -53
- data/kinde_api/lib/kinde_api/models/create_roles_response.rb +239 -0
- data/kinde_api/lib/kinde_api/models/create_roles_response_role.rb +220 -0
- data/kinde_api/lib/kinde_api/models/create_subscriber_success_response.rb +38 -41
- data/kinde_api/lib/kinde_api/models/create_subscriber_success_response_subscriber.rb +38 -41
- data/kinde_api/lib/kinde_api/models/create_user_identity_request.rb +284 -0
- data/kinde_api/lib/kinde_api/models/create_user_request.rb +62 -50
- data/kinde_api/lib/kinde_api/models/create_user_request_identities_inner.rb +60 -52
- data/kinde_api/lib/kinde_api/models/create_user_request_identities_inner_details.rb +67 -40
- data/kinde_api/lib/kinde_api/models/create_user_request_profile.rb +54 -45
- data/kinde_api/lib/kinde_api/models/create_user_response.rb +53 -51
- data/kinde_api/lib/kinde_api/models/create_web_hook_request.rb +268 -0
- data/kinde_api/lib/kinde_api/models/create_webhook_response.rb +239 -0
- data/kinde_api/lib/kinde_api/models/create_webhook_response_webhook.rb +228 -0
- data/kinde_api/lib/kinde_api/models/delete_api_response.rb +228 -0
- data/kinde_api/lib/kinde_api/models/delete_environment_variable_response.rb +230 -0
- data/kinde_api/lib/kinde_api/models/delete_role_scope_response.rb +230 -0
- data/kinde_api/lib/kinde_api/models/delete_webhook_response.rb +230 -0
- data/kinde_api/lib/kinde_api/models/environment_variable.rb +261 -0
- data/kinde_api/lib/kinde_api/models/error.rb +44 -44
- data/kinde_api/lib/kinde_api/models/error_response.rb +40 -42
- data/kinde_api/lib/kinde_api/models/event_type.rb +255 -0
- data/kinde_api/lib/kinde_api/models/frontend/error.rb +230 -0
- data/kinde_api/lib/kinde_api/models/frontend/error_response.rb +221 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_entitlement_response.rb +228 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_entitlement_response_data.rb +229 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_entitlement_response_data_entitlement.rb +295 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_entitlements_response.rb +228 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_entitlements_response_data.rb +244 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_entitlements_response_data_entitlements_inner.rb +294 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_entitlements_response_data_plans_inner.rb +240 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_entitlements_response_metadata.rb +230 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_feature_flags_response.rb +219 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_feature_flags_response_data.rb +222 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_feature_flags_response_data_feature_flags_inner.rb +259 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_feature_flags_response_data_feature_flags_inner_value.rb +108 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_user_permissions_response.rb +228 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_user_permissions_response_data.rb +232 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_user_permissions_response_data_permissions_inner.rb +240 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_user_permissions_response_metadata.rb +230 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_user_properties_response.rb +228 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_user_properties_response_data.rb +222 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_user_properties_response_data_properties_inner.rb +249 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_user_properties_response_data_properties_inner_value.rb +107 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_user_properties_response_metadata.rb +230 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_user_roles_response.rb +228 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_user_roles_response_data.rb +232 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_user_roles_response_data_roles_inner.rb +240 -0
- data/kinde_api/lib/kinde_api/models/frontend/get_user_roles_response_metadata.rb +230 -0
- data/kinde_api/lib/kinde_api/models/frontend/portal_link.rb +220 -0
- data/kinde_api/lib/kinde_api/models/frontend/token_error_response.rb +230 -0
- data/kinde_api/lib/kinde_api/models/frontend/token_introspect.rb +262 -0
- data/kinde_api/lib/kinde_api/models/frontend/user_profile_v2.rb +323 -0
- data/kinde_api/lib/kinde_api/models/get_api_response.rb +239 -0
- data/kinde_api/lib/kinde_api/models/get_api_response_api.rb +272 -0
- data/kinde_api/lib/kinde_api/models/get_api_response_api_applications_inner.rb +285 -0
- data/kinde_api/lib/kinde_api/models/get_api_response_api_scopes_inner.rb +230 -0
- data/kinde_api/lib/kinde_api/models/get_api_scope_response.rb +239 -0
- data/kinde_api/lib/kinde_api/models/get_api_scopes_response.rb +241 -0
- data/kinde_api/lib/kinde_api/models/get_api_scopes_response_scopes_inner.rb +240 -0
- data/kinde_api/lib/kinde_api/models/get_apis_response.rb +251 -0
- data/kinde_api/lib/kinde_api/models/get_apis_response_apis_inner.rb +261 -0
- data/kinde_api/lib/kinde_api/models/get_apis_response_apis_inner_scopes_inner.rb +228 -0
- data/kinde_api/lib/kinde_api/models/get_application_response.rb +50 -49
- data/kinde_api/lib/kinde_api/models/get_application_response_application.rb +126 -57
- data/kinde_api/lib/kinde_api/models/get_applications_response.rb +57 -54
- data/kinde_api/lib/kinde_api/models/get_billing_agreements_response.rb +252 -0
- data/kinde_api/lib/kinde_api/models/get_billing_agreements_response_agreements_inner.rb +262 -0
- data/kinde_api/lib/kinde_api/models/get_billing_agreements_response_agreements_inner_entitlements_inner.rb +230 -0
- data/kinde_api/lib/kinde_api/models/get_billing_entitlements_response.rb +264 -0
- data/kinde_api/lib/kinde_api/models/get_billing_entitlements_response_entitlements_inner.rb +290 -0
- data/kinde_api/lib/kinde_api/models/get_billing_entitlements_response_plans_inner.rb +229 -0
- data/kinde_api/lib/kinde_api/models/get_business_response.rb +239 -0
- data/kinde_api/lib/kinde_api/models/get_business_response_business.rb +326 -0
- data/kinde_api/lib/kinde_api/models/get_categories_response.rb +251 -0
- data/kinde_api/lib/kinde_api/models/get_connections_response.rb +251 -0
- data/kinde_api/lib/kinde_api/models/get_environment_feature_flags_response.rb +57 -54
- data/kinde_api/lib/kinde_api/models/get_environment_response.rb +239 -0
- data/kinde_api/lib/kinde_api/models/get_environment_response_environment.rb +526 -0
- data/kinde_api/lib/kinde_api/models/get_environment_response_environment_background_color.rb +237 -0
- data/kinde_api/lib/kinde_api/models/get_environment_response_environment_link_color.rb +237 -0
- data/kinde_api/lib/kinde_api/models/get_environment_variable_response.rb +239 -0
- data/kinde_api/lib/kinde_api/models/get_environment_variables_response.rb +251 -0
- data/kinde_api/lib/kinde_api/models/get_event_response.rb +239 -0
- data/kinde_api/lib/kinde_api/models/get_event_response_event.rb +257 -0
- data/kinde_api/lib/kinde_api/models/get_event_types_response.rb +241 -0
- data/kinde_api/lib/kinde_api/models/get_identities_response.rb +251 -0
- data/kinde_api/lib/kinde_api/models/get_industries_response.rb +241 -0
- data/kinde_api/lib/kinde_api/models/get_industries_response_industries_inner.rb +230 -0
- data/kinde_api/lib/kinde_api/models/get_organization_feature_flags_response.rb +52 -50
- data/kinde_api/lib/kinde_api/models/get_organization_feature_flags_response_feature_flags_value.rb +52 -52
- data/kinde_api/lib/kinde_api/models/get_organization_response.rb +547 -0
- data/kinde_api/lib/kinde_api/models/get_organization_response_billing.rb +232 -0
- data/kinde_api/lib/kinde_api/models/get_organization_response_billing_agreements_inner.rb +230 -0
- data/kinde_api/lib/kinde_api/models/get_organization_users_response.rb +57 -54
- data/kinde_api/lib/kinde_api/models/get_organizations_response.rb +57 -54
- data/kinde_api/lib/kinde_api/models/get_organizations_user_permissions_response.rb +52 -50
- data/kinde_api/lib/kinde_api/models/get_organizations_user_roles_response.rb +57 -54
- data/kinde_api/lib/kinde_api/models/get_permissions_response.rb +57 -54
- data/kinde_api/lib/kinde_api/models/get_properties_response.rb +251 -0
- data/kinde_api/lib/kinde_api/models/get_property_values_response.rb +251 -0
- data/kinde_api/lib/kinde_api/models/get_redirect_callback_urls_response.rb +40 -42
- data/kinde_api/lib/kinde_api/models/get_role_response.rb +239 -0
- data/kinde_api/lib/kinde_api/models/get_role_response_role.rb +260 -0
- data/kinde_api/lib/kinde_api/models/get_roles_response.rb +57 -54
- data/kinde_api/lib/kinde_api/models/get_subscriber_response.rb +52 -50
- data/kinde_api/lib/kinde_api/models/get_subscribers_response.rb +57 -54
- data/kinde_api/lib/kinde_api/models/get_timezones_response.rb +241 -0
- data/kinde_api/lib/kinde_api/models/get_timezones_response_timezones_inner.rb +230 -0
- data/kinde_api/lib/kinde_api/models/get_user_mfa_response.rb +237 -0
- data/kinde_api/lib/kinde_api/models/get_user_mfa_response_mfa.rb +280 -0
- data/kinde_api/lib/kinde_api/models/get_user_sessions_response.rb +248 -0
- data/kinde_api/lib/kinde_api/models/get_user_sessions_response_sessions_inner.rb +331 -0
- data/kinde_api/lib/kinde_api/models/get_webhooks_response.rb +241 -0
- data/kinde_api/lib/kinde_api/models/identity.rb +300 -0
- data/kinde_api/lib/kinde_api/models/logout_redirect_urls.rb +60 -42
- data/kinde_api/lib/kinde_api/models/not_found_response.rb +219 -0
- data/kinde_api/lib/kinde_api/models/not_found_response_errors.rb +228 -0
- data/kinde_api/lib/kinde_api/models/organization_item_schema.rb +272 -0
- data/kinde_api/lib/kinde_api/models/organization_user.rb +122 -62
- data/kinde_api/lib/kinde_api/models/organization_user_permission.rb +73 -59
- data/kinde_api/lib/kinde_api/models/organization_user_permission_roles_inner.rb +47 -46
- data/kinde_api/lib/kinde_api/models/organization_user_role.rb +55 -50
- data/kinde_api/lib/kinde_api/models/organization_user_role_permissions.rb +55 -50
- data/kinde_api/lib/kinde_api/models/organization_user_role_permissions_permissions.rb +38 -41
- data/kinde_api/lib/kinde_api/models/permissions.rb +57 -54
- data/kinde_api/lib/kinde_api/models/property.rb +264 -0
- data/kinde_api/lib/kinde_api/models/property_value.rb +257 -0
- data/kinde_api/lib/kinde_api/models/read_env_logo_response.rb +242 -0
- data/kinde_api/lib/kinde_api/models/read_env_logo_response_logos_inner.rb +230 -0
- data/kinde_api/lib/kinde_api/models/read_logo_response.rb +242 -0
- data/kinde_api/lib/kinde_api/models/read_logo_response_logos_inner.rb +240 -0
- data/kinde_api/lib/kinde_api/models/redirect_callback_urls.rb +40 -42
- data/kinde_api/lib/kinde_api/models/replace_connection_request.rb +251 -0
- data/kinde_api/lib/kinde_api/models/replace_connection_request_options.rb +106 -0
- data/kinde_api/lib/kinde_api/models/replace_connection_request_options_one_of.rb +293 -0
- data/kinde_api/lib/kinde_api/models/replace_connection_request_options_one_of1.rb +313 -0
- data/kinde_api/lib/kinde_api/models/replace_logout_redirect_urls_request.rb +40 -42
- data/kinde_api/lib/kinde_api/models/replace_mfa_request.rb +276 -0
- data/kinde_api/lib/kinde_api/models/replace_organization_mfa_request.rb +249 -0
- data/kinde_api/lib/kinde_api/models/replace_redirect_callback_urls_request.rb +40 -42
- data/kinde_api/lib/kinde_api/models/role.rb +63 -53
- data/kinde_api/lib/kinde_api/models/role_permissions_response.rb +251 -0
- data/kinde_api/lib/kinde_api/models/role_scopes_response.rb +241 -0
- data/kinde_api/lib/kinde_api/models/roles.rb +68 -53
- data/kinde_api/lib/kinde_api/models/scopes.rb +250 -0
- data/kinde_api/lib/kinde_api/models/search_users_response.rb +241 -0
- data/kinde_api/lib/kinde_api/models/search_users_response_results_inner.rb +374 -0
- data/kinde_api/lib/kinde_api/models/set_user_password_request.rb +311 -0
- data/kinde_api/lib/kinde_api/models/subscriber.rb +63 -54
- data/kinde_api/lib/kinde_api/models/subscribers_subscriber.rb +71 -58
- data/kinde_api/lib/kinde_api/models/success_response.rb +47 -46
- data/kinde_api/lib/kinde_api/models/token_error_response.rb +44 -45
- data/kinde_api/lib/kinde_api/models/token_introspect.rb +63 -58
- data/kinde_api/lib/kinde_api/models/update_api_applications_request.rb +42 -44
- data/kinde_api/lib/kinde_api/models/update_api_applications_request_applications_inner.rb +48 -49
- data/kinde_api/lib/kinde_api/models/update_api_scope_request.rb +220 -0
- data/kinde_api/lib/kinde_api/models/update_application_request.rb +78 -54
- data/kinde_api/lib/kinde_api/models/update_application_tokens_request.rb +260 -0
- data/kinde_api/lib/kinde_api/models/update_applications_property_request.rb +224 -0
- data/kinde_api/lib/kinde_api/models/update_applications_property_request_value.rb +106 -0
- data/kinde_api/lib/kinde_api/models/update_business_request.rb +320 -0
- data/kinde_api/lib/kinde_api/models/update_category_request.rb +220 -0
- data/kinde_api/lib/kinde_api/models/update_connection_request.rb +251 -0
- data/kinde_api/lib/kinde_api/models/update_environement_feature_flag_override_request.rb +40 -43
- data/kinde_api/lib/kinde_api/models/update_environment_variable_request.rb +240 -0
- data/kinde_api/lib/kinde_api/models/update_environment_variable_response.rb +230 -0
- data/kinde_api/lib/kinde_api/models/update_identity_request.rb +220 -0
- data/kinde_api/lib/kinde_api/models/update_organization_properties_request.rb +225 -0
- data/kinde_api/lib/kinde_api/models/update_organization_request.rb +209 -91
- data/kinde_api/lib/kinde_api/models/update_organization_sessions_request.rb +284 -0
- data/kinde_api/lib/kinde_api/models/update_organization_users_request.rb +40 -42
- data/kinde_api/lib/kinde_api/models/update_organization_users_request_users_inner.rb +59 -55
- data/kinde_api/lib/kinde_api/models/update_organization_users_response.rb +76 -57
- data/kinde_api/lib/kinde_api/models/update_property_request.rb +265 -0
- data/kinde_api/lib/kinde_api/models/update_role_permissions_request.rb +40 -42
- data/kinde_api/lib/kinde_api/models/update_role_permissions_request_permissions_inner.rb +44 -45
- data/kinde_api/lib/kinde_api/models/update_role_permissions_response.rb +66 -56
- data/kinde_api/lib/kinde_api/models/update_roles_request.rb +61 -56
- data/kinde_api/lib/kinde_api/models/update_user_request.rb +75 -52
- data/kinde_api/lib/kinde_api/models/update_user_response.rb +75 -67
- data/kinde_api/lib/kinde_api/models/update_web_hook_request.rb +243 -0
- data/kinde_api/lib/kinde_api/models/update_webhook_response.rb +237 -0
- data/kinde_api/lib/kinde_api/models/update_webhook_response_webhook.rb +219 -0
- data/kinde_api/lib/kinde_api/models/user.rb +138 -97
- data/kinde_api/lib/kinde_api/models/user_identities_inner.rb +47 -46
- data/kinde_api/lib/kinde_api/models/user_identity.rb +44 -45
- data/kinde_api/lib/kinde_api/models/user_identity_result.rb +38 -41
- data/kinde_api/lib/kinde_api/models/user_profile_v2.rb +113 -79
- data/kinde_api/lib/kinde_api/models/users_response.rb +57 -54
- data/kinde_api/lib/kinde_api/models/users_response_users_inner.rb +138 -98
- data/kinde_api/lib/kinde_api/models/webhook.rb +267 -0
- data/kinde_api/lib/kinde_api/version.rb +12 -12
- data/kinde_api/lib/kinde_api.rb +188 -36
- data/kinde_api/spec/api/billing_agreements_api_spec.rb +62 -0
- data/kinde_api/spec/api/billing_entitlements_api_spec.rb +52 -0
- data/kinde_api/spec/api/billing_meter_usage_api_spec.rb +47 -0
- data/kinde_api/spec/api/connections_api_spec.rb +112 -0
- data/kinde_api/spec/api/environment_variables_api_spec.rb +95 -0
- data/kinde_api/spec/api/identities_api_spec.rb +72 -0
- data/kinde_api/spec/api/mfa_api_spec.rb +47 -0
- data/kinde_api/spec/api/properties_api_spec.rb +87 -0
- data/kinde_api/spec/api/property_categories_api_spec.rb +75 -0
- data/kinde_api/spec/api/search_api_spec.rb +52 -0
- data/kinde_api/spec/api/webhooks_api_spec.rb +106 -0
- data/kinde_api/spec/api_client_spec.rb +27 -21
- data/kinde_api/spec/configuration_spec.rb +14 -14
- data/kinde_api/spec/models/add_api_scope_request_spec.rb +40 -0
- data/kinde_api/spec/models/add_role_scope_request_spec.rb +34 -0
- data/kinde_api/spec/models/add_role_scope_response_spec.rb +40 -0
- data/kinde_api/spec/models/authorize_app_api_response_spec.rb +52 -0
- data/kinde_api/spec/models/category_spec.rb +40 -0
- data/kinde_api/spec/models/connection_connection_spec.rb +52 -0
- data/kinde_api/spec/models/connection_spec.rb +46 -0
- data/kinde_api/spec/models/create_api_scopes_response_scope_spec.rb +34 -0
- data/kinde_api/spec/models/create_api_scopes_response_spec.rb +46 -0
- data/kinde_api/spec/models/create_apis_response_api_spec.rb +34 -0
- data/kinde_api/spec/models/create_apis_response_spec.rb +46 -0
- data/kinde_api/spec/models/create_billing_agreement_request_spec.rb +52 -0
- data/kinde_api/spec/models/create_category_request_spec.rb +44 -0
- data/kinde_api/spec/models/create_category_response_category_spec.rb +34 -0
- data/kinde_api/spec/models/create_category_response_spec.rb +46 -0
- data/kinde_api/spec/models/create_connection_request_options_one_of1_spec.rb +82 -0
- data/kinde_api/spec/models/create_connection_request_options_one_of2_spec.rb +100 -0
- data/kinde_api/spec/models/create_connection_request_options_one_of_spec.rb +46 -0
- data/kinde_api/spec/models/create_connection_request_options_spec.rb +31 -0
- data/kinde_api/spec/models/create_connection_request_spec.rb +68 -0
- data/kinde_api/spec/models/create_connection_response_connection_spec.rb +34 -0
- data/kinde_api/spec/models/create_connection_response_spec.rb +46 -0
- data/kinde_api/spec/models/create_environment_variable_request_spec.rb +46 -0
- data/kinde_api/spec/models/create_environment_variable_response_environment_variable_spec.rb +34 -0
- data/kinde_api/spec/models/create_environment_variable_response_spec.rb +46 -0
- data/kinde_api/spec/models/create_identity_response_identity_spec.rb +34 -0
- data/kinde_api/spec/models/create_identity_response_spec.rb +46 -0
- data/kinde_api/spec/models/create_meter_usage_record_request_spec.rb +62 -0
- data/kinde_api/spec/models/create_meter_usage_record_response_spec.rb +40 -0
- data/kinde_api/spec/models/create_property_request_spec.rb +78 -0
- data/kinde_api/spec/models/create_property_response_property_spec.rb +34 -0
- data/kinde_api/spec/models/create_property_response_spec.rb +46 -0
- data/kinde_api/spec/models/create_roles_response_role_spec.rb +34 -0
- data/kinde_api/spec/models/create_roles_response_spec.rb +46 -0
- data/kinde_api/spec/models/create_user_identity_request_spec.rb +56 -0
- data/kinde_api/spec/models/create_web_hook_request_spec.rb +52 -0
- data/kinde_api/spec/models/create_webhook_response_spec.rb +46 -0
- data/kinde_api/spec/models/create_webhook_response_webhook_spec.rb +40 -0
- data/kinde_api/spec/models/delete_api_response_spec.rb +40 -0
- data/kinde_api/spec/models/delete_environment_variable_response_spec.rb +40 -0
- data/kinde_api/spec/models/delete_role_scope_response_spec.rb +40 -0
- data/kinde_api/spec/models/delete_webhook_response_spec.rb +40 -0
- data/kinde_api/spec/models/environment_variable_spec.rb +58 -0
- data/kinde_api/spec/models/event_type_spec.rb +58 -0
- data/kinde_api/spec/models/get_api_response_api_applications_inner_spec.rb +56 -0
- data/kinde_api/spec/models/get_api_response_api_scopes_inner_spec.rb +40 -0
- data/kinde_api/spec/models/get_api_response_api_spec.rb +64 -0
- data/kinde_api/spec/models/get_api_response_spec.rb +46 -0
- data/kinde_api/spec/models/get_api_scope_response_spec.rb +46 -0
- data/kinde_api/spec/models/get_api_scopes_response_scopes_inner_spec.rb +46 -0
- data/kinde_api/spec/models/get_api_scopes_response_spec.rb +46 -0
- data/kinde_api/spec/models/get_apis_response_apis_inner_scopes_inner_spec.rb +40 -0
- data/kinde_api/spec/models/get_apis_response_apis_inner_spec.rb +58 -0
- data/kinde_api/spec/models/get_apis_response_spec.rb +52 -0
- data/kinde_api/spec/models/get_billing_agreements_response_agreements_inner_entitlements_inner_spec.rb +40 -0
- data/kinde_api/spec/models/get_billing_agreements_response_agreements_inner_spec.rb +58 -0
- data/kinde_api/spec/models/get_billing_agreements_response_spec.rb +52 -0
- data/kinde_api/spec/models/get_billing_entitlements_response_entitlements_inner_spec.rb +76 -0
- data/kinde_api/spec/models/get_billing_entitlements_response_plans_inner_spec.rb +40 -0
- data/kinde_api/spec/models/get_billing_entitlements_response_spec.rb +58 -0
- data/kinde_api/spec/models/get_business_response_business_spec.rb +94 -0
- data/kinde_api/spec/models/get_business_response_spec.rb +46 -0
- data/kinde_api/spec/models/get_categories_response_spec.rb +52 -0
- data/kinde_api/spec/models/get_connections_response_spec.rb +52 -0
- data/kinde_api/spec/models/get_environment_response_environment_background_color_spec.rb +46 -0
- data/kinde_api/spec/models/get_environment_response_environment_link_color_spec.rb +46 -0
- data/kinde_api/spec/models/get_environment_response_environment_spec.rb +192 -0
- data/kinde_api/spec/models/get_environment_response_spec.rb +46 -0
- data/kinde_api/spec/models/get_environment_variable_response_spec.rb +46 -0
- data/kinde_api/spec/models/get_environment_variables_response_spec.rb +52 -0
- data/kinde_api/spec/models/get_event_response_event_spec.rb +58 -0
- data/kinde_api/spec/models/get_event_response_spec.rb +46 -0
- data/kinde_api/spec/models/get_event_types_response_spec.rb +46 -0
- data/kinde_api/spec/models/get_identities_response_spec.rb +52 -0
- data/kinde_api/spec/models/get_industries_response_industries_inner_spec.rb +40 -0
- data/kinde_api/spec/models/get_industries_response_spec.rb +46 -0
- data/kinde_api/spec/models/get_organization_response_billing_agreements_inner_spec.rb +40 -0
- data/kinde_api/spec/models/get_organization_response_billing_spec.rb +40 -0
- data/kinde_api/spec/models/get_organization_response_spec.rb +204 -0
- data/kinde_api/spec/models/get_properties_response_spec.rb +52 -0
- data/kinde_api/spec/models/get_property_values_response_spec.rb +52 -0
- data/kinde_api/spec/models/get_role_response_role_spec.rb +58 -0
- data/kinde_api/spec/models/get_role_response_spec.rb +46 -0
- data/kinde_api/spec/models/get_timezones_response_spec.rb +46 -0
- data/kinde_api/spec/models/get_timezones_response_timezones_inner_spec.rb +40 -0
- data/kinde_api/spec/models/get_user_mfa_response_mfa_spec.rb +70 -0
- data/kinde_api/spec/models/get_user_mfa_response_spec.rb +46 -0
- data/kinde_api/spec/models/get_user_sessions_response_sessions_inner_spec.rb +100 -0
- data/kinde_api/spec/models/get_user_sessions_response_spec.rb +52 -0
- data/kinde_api/spec/models/get_webhooks_response_spec.rb +46 -0
- data/kinde_api/spec/models/identity_spec.rb +82 -0
- data/kinde_api/spec/models/not_found_response_errors_spec.rb +40 -0
- data/kinde_api/spec/models/not_found_response_spec.rb +34 -0
- data/kinde_api/spec/models/organization_item_schema_spec.rb +64 -0
- data/kinde_api/spec/models/property_spec.rb +64 -0
- data/kinde_api/spec/models/property_value_spec.rb +58 -0
- data/kinde_api/spec/models/read_env_logo_response_logos_inner_spec.rb +40 -0
- data/kinde_api/spec/models/read_env_logo_response_spec.rb +46 -0
- data/kinde_api/spec/models/read_logo_response_logos_inner_spec.rb +46 -0
- data/kinde_api/spec/models/read_logo_response_spec.rb +46 -0
- data/kinde_api/spec/models/replace_connection_request_options_one_of1_spec.rb +88 -0
- data/kinde_api/spec/models/replace_connection_request_options_one_of_spec.rb +76 -0
- data/kinde_api/spec/models/replace_connection_request_options_spec.rb +31 -0
- data/kinde_api/spec/models/replace_connection_request_spec.rb +52 -0
- data/kinde_api/spec/models/replace_mfa_request_spec.rb +48 -0
- data/kinde_api/spec/models/replace_organization_mfa_request_spec.rb +38 -0
- data/kinde_api/spec/models/role_permissions_response_spec.rb +52 -0
- data/kinde_api/spec/models/role_scopes_response_spec.rb +46 -0
- data/kinde_api/spec/models/scopes_spec.rb +52 -0
- data/kinde_api/spec/models/search_users_response_results_inner_spec.rb +118 -0
- data/kinde_api/spec/models/search_users_response_spec.rb +46 -0
- data/kinde_api/spec/models/set_user_password_request_spec.rb +66 -0
- data/kinde_api/spec/models/update_api_scope_request_spec.rb +34 -0
- data/kinde_api/spec/models/update_application_tokens_request_spec.rb +58 -0
- data/kinde_api/spec/models/update_applications_property_request_spec.rb +34 -0
- data/kinde_api/spec/models/update_applications_property_request_value_spec.rb +31 -0
- data/kinde_api/spec/models/update_business_request_spec.rb +88 -0
- data/kinde_api/spec/models/update_category_request_spec.rb +34 -0
- data/kinde_api/spec/models/update_connection_request_spec.rb +52 -0
- data/kinde_api/spec/models/update_environment_variable_request_spec.rb +46 -0
- data/kinde_api/spec/models/update_environment_variable_response_spec.rb +40 -0
- data/kinde_api/spec/models/update_identity_request_spec.rb +34 -0
- data/kinde_api/spec/models/update_organization_properties_request_spec.rb +34 -0
- data/kinde_api/spec/models/update_organization_sessions_request_spec.rb +56 -0
- data/kinde_api/spec/models/update_property_request_spec.rb +52 -0
- data/kinde_api/spec/models/update_web_hook_request_spec.rb +46 -0
- data/kinde_api/spec/models/update_webhook_response_spec.rb +46 -0
- data/kinde_api/spec/models/update_webhook_response_webhook_spec.rb +34 -0
- data/kinde_api/spec/models/webhook_spec.rb +64 -0
- data/kinde_api/spec/spec_helper.rb +63 -61
- data/lib/kinde_sdk/client/entitlements.rb +86 -0
- data/lib/kinde_sdk/client/feature_flags.rb +246 -10
- data/lib/kinde_sdk/client/permissions.rb +197 -6
- data/lib/kinde_sdk/client/roles.rb +218 -0
- data/lib/kinde_sdk/client.rb +354 -14
- data/lib/kinde_sdk/configuration.rb +11 -1
- data/lib/kinde_sdk/current.rb +16 -0
- data/lib/kinde_sdk/engine.rb +11 -0
- data/lib/kinde_sdk/errors.rb +7 -0
- data/lib/kinde_sdk/internal/frontend_client.rb +111 -0
- data/lib/kinde_sdk/middleware.rb +16 -0
- data/lib/kinde_sdk/token_manager.rb +85 -0
- data/lib/kinde_sdk/token_store.rb +29 -0
- data/lib/kinde_sdk/version.rb +1 -1
- data/lib/kinde_sdk.rb +160 -25
- data/spec/examples.txt +29 -0
- data/spec/kinde_sdk_spec.rb +317 -98
- data/spec/spec_helper.rb +7 -4
- metadata +666 -10
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
=begin
|
|
2
|
+
#Kinde Management API
|
|
2
3
|
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
#
|
|
4
|
+
# Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1
|
|
7
|
+
Contact: support@kinde.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
OpenAPI Generator version: 6.4.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
12
|
|
|
13
13
|
# load the gem
|
|
14
14
|
require 'kinde_api'
|
|
@@ -55,55 +55,57 @@ RSpec.configure do |config|
|
|
|
55
55
|
mocks.verify_partial_doubles = true
|
|
56
56
|
end
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
#
|
|
62
|
-
#
|
|
63
|
-
#
|
|
64
|
-
#
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
#
|
|
69
|
-
#
|
|
70
|
-
#
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
#
|
|
74
|
-
#
|
|
75
|
-
#
|
|
76
|
-
#
|
|
77
|
-
#
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
#
|
|
81
|
-
#
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
#
|
|
85
|
-
#
|
|
86
|
-
#
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
#
|
|
95
|
-
#
|
|
96
|
-
#
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
#
|
|
100
|
-
#
|
|
101
|
-
#
|
|
102
|
-
#
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
#
|
|
106
|
-
#
|
|
107
|
-
#
|
|
108
|
-
#
|
|
58
|
+
# The settings below are suggested to provide a good initial experience
|
|
59
|
+
# with RSpec, but feel free to customize to your heart's content.
|
|
60
|
+
=begin
|
|
61
|
+
# These two settings work together to allow you to limit a spec run
|
|
62
|
+
# to individual examples or groups you care about by tagging them with
|
|
63
|
+
# `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
|
64
|
+
# get run.
|
|
65
|
+
config.filter_run :focus
|
|
66
|
+
config.run_all_when_everything_filtered = true
|
|
67
|
+
|
|
68
|
+
# Allows RSpec to persist some state between runs in order to support
|
|
69
|
+
# the `--only-failures` and `--next-failure` CLI options. We recommend
|
|
70
|
+
# you configure your source control system to ignore this file.
|
|
71
|
+
config.example_status_persistence_file_path = "spec/examples.txt"
|
|
72
|
+
|
|
73
|
+
# Limits the available syntax to the non-monkey patched syntax that is
|
|
74
|
+
# recommended. For more details, see:
|
|
75
|
+
# - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
|
|
76
|
+
# - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
|
77
|
+
# - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
|
|
78
|
+
config.disable_monkey_patching!
|
|
79
|
+
|
|
80
|
+
# This setting enables warnings. It's recommended, but in some cases may
|
|
81
|
+
# be too noisy due to issues in dependencies.
|
|
82
|
+
config.warnings = true
|
|
83
|
+
|
|
84
|
+
# Many RSpec users commonly either run the entire suite or an individual
|
|
85
|
+
# file, and it's useful to allow more verbose output when running an
|
|
86
|
+
# individual spec file.
|
|
87
|
+
if config.files_to_run.one?
|
|
88
|
+
# Use the documentation formatter for detailed output,
|
|
89
|
+
# unless a formatter has already been configured
|
|
90
|
+
# (e.g. via a command-line flag).
|
|
91
|
+
config.default_formatter = 'doc'
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# Print the 10 slowest examples and example groups at the
|
|
95
|
+
# end of the spec run, to help surface which specs are running
|
|
96
|
+
# particularly slow.
|
|
97
|
+
config.profile_examples = 10
|
|
98
|
+
|
|
99
|
+
# Run specs in random order to surface order dependencies. If you find an
|
|
100
|
+
# order dependency and want to debug it, you can fix the order by providing
|
|
101
|
+
# the seed, which is printed after each run.
|
|
102
|
+
# --seed 1234
|
|
103
|
+
config.order = :random
|
|
104
|
+
|
|
105
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
|
106
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
|
107
|
+
# test failures related to randomization by passing the same `--seed` value
|
|
108
|
+
# as the one that triggered the failure.
|
|
109
|
+
Kernel.srand config.seed
|
|
110
|
+
=end
|
|
109
111
|
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
module KindeSdk
|
|
2
|
+
class Client
|
|
3
|
+
module Entitlements
|
|
4
|
+
# Get all entitlements for the authenticated user
|
|
5
|
+
# Matches the JavaScript SDK API: getEntitlements(options?)
|
|
6
|
+
#
|
|
7
|
+
# @param options [Hash] Options for retrieving entitlements
|
|
8
|
+
# @option options [Boolean] :force_api (false) If true, calls the API to get fresh entitlements,
|
|
9
|
+
# otherwise uses existing getAllEntitlements method
|
|
10
|
+
# @return [Array] Array of entitlement objects
|
|
11
|
+
def get_entitlements(options = {})
|
|
12
|
+
# Entitlements are always fetched from API (they don't exist in tokens)
|
|
13
|
+
# The options parameter is kept for consistency with other methods
|
|
14
|
+
getAllEntitlements
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Check if user has billing entitlements
|
|
18
|
+
# Matches the JavaScript SDK API: hasBillingEntitlements(params)
|
|
19
|
+
#
|
|
20
|
+
# @param billing_entitlements [Array<String>] Array of billing entitlement price names to check
|
|
21
|
+
# @param options [Hash] Options for retrieving entitlements
|
|
22
|
+
# @return [Boolean] True if user has all specified billing entitlements, false otherwise
|
|
23
|
+
def has_billing_entitlements?(billing_entitlements, options = {})
|
|
24
|
+
return true if billing_entitlements.nil? || billing_entitlements.empty?
|
|
25
|
+
|
|
26
|
+
begin
|
|
27
|
+
entitlements = get_entitlements(options)
|
|
28
|
+
billing_entitlements_array = Array(billing_entitlements)
|
|
29
|
+
|
|
30
|
+
# Extract price names from entitlements (billing entitlements use price_name)
|
|
31
|
+
entitlement_price_names = entitlements.map do |ent|
|
|
32
|
+
ent.respond_to?(:price_name) ? ent.price_name : ent['price_name']
|
|
33
|
+
end.compact
|
|
34
|
+
|
|
35
|
+
billing_entitlements_array.all? { |price_name| entitlement_price_names.include?(price_name) }
|
|
36
|
+
rescue StandardError => e
|
|
37
|
+
log_error("Error checking billing entitlements: #{e.message}")
|
|
38
|
+
false
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Check if user has feature entitlements
|
|
43
|
+
#
|
|
44
|
+
# @param entitlement_keys [Array<String>] Array of entitlement feature keys to check
|
|
45
|
+
# @param options [Hash] Options for retrieving entitlements
|
|
46
|
+
# @return [Boolean] True if user has all specified entitlements, false otherwise
|
|
47
|
+
def has_entitlements?(entitlement_keys, options = {})
|
|
48
|
+
return true if entitlement_keys.nil? || entitlement_keys.empty?
|
|
49
|
+
|
|
50
|
+
begin
|
|
51
|
+
entitlements = get_entitlements(options)
|
|
52
|
+
entitlement_keys_array = Array(entitlement_keys)
|
|
53
|
+
|
|
54
|
+
# Extract feature keys from entitlements
|
|
55
|
+
entitlement_feature_keys = entitlements.map do |ent|
|
|
56
|
+
ent.respond_to?(:feature_key) ? ent.feature_key : ent['feature_key']
|
|
57
|
+
end.compact
|
|
58
|
+
|
|
59
|
+
entitlement_keys_array.all? { |key| entitlement_feature_keys.include?(key) }
|
|
60
|
+
rescue StandardError => e
|
|
61
|
+
log_error("Error checking entitlements: #{e.message}")
|
|
62
|
+
false
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# JavaScript SDK compatible aliases
|
|
67
|
+
alias_method :hasBillingEntitlements, :has_billing_entitlements?
|
|
68
|
+
alias_method :hasEntitlements, :has_entitlements?
|
|
69
|
+
|
|
70
|
+
private
|
|
71
|
+
|
|
72
|
+
# Configurable logging that works with or without Rails
|
|
73
|
+
def log_error(message)
|
|
74
|
+
if defined?(Rails) && Rails.logger
|
|
75
|
+
Rails.logger.error(message)
|
|
76
|
+
elsif @logger
|
|
77
|
+
@logger.error(message)
|
|
78
|
+
elsif respond_to?(:logger) && logger
|
|
79
|
+
logger.error(message)
|
|
80
|
+
else
|
|
81
|
+
$stderr.puts "[KindeSdk] ERROR: #{message}"
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -1,7 +1,168 @@
|
|
|
1
1
|
module KindeSdk
|
|
2
2
|
class Client
|
|
3
3
|
module FeatureFlags
|
|
4
|
-
|
|
4
|
+
# Get all feature flags for the authenticated user
|
|
5
|
+
# Matches the JavaScript SDK API: getFlags(options?)
|
|
6
|
+
#
|
|
7
|
+
# @param options [Hash] Options for retrieving feature flags
|
|
8
|
+
# @option options [Boolean] :force_api (false) If true, calls the API to get fresh flags,
|
|
9
|
+
# otherwise extracts from token claims. Useful for ensuring latest flags but may incur additional API calls
|
|
10
|
+
# @option options [Symbol] :token_type (:access_token) The token type to use for soft check (:access_token or :id_token)
|
|
11
|
+
# @return [Array] Array of flag objects with key, value, and type
|
|
12
|
+
# @example
|
|
13
|
+
# # Soft check (from token)
|
|
14
|
+
# client.get_flags
|
|
15
|
+
# # => [{ key: "feature_a", value: true, type: "boolean" }]
|
|
16
|
+
#
|
|
17
|
+
# # Hard check (from API)
|
|
18
|
+
# client.get_flags(force_api: true)
|
|
19
|
+
# # => [{ key: "feature_a", value: true, type: "boolean" }]
|
|
20
|
+
def get_flags(options = {})
|
|
21
|
+
# Handle legacy positional argument for backward compatibility
|
|
22
|
+
if options.is_a?(Symbol)
|
|
23
|
+
options = { token_type: options }
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Extract options with defaults - use member variable if not overridden
|
|
27
|
+
force_api = options[:force_api] || @force_api || false
|
|
28
|
+
token_type = options[:token_type] || :access_token
|
|
29
|
+
|
|
30
|
+
if force_api
|
|
31
|
+
# Hard check - call API for fresh flags
|
|
32
|
+
get_flags_from_api
|
|
33
|
+
else
|
|
34
|
+
# Soft check - extract from token claims
|
|
35
|
+
get_flags_from_token(token_type)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Get a specific feature flag
|
|
40
|
+
# Supports both new API-style calls and legacy 3-parameter calls
|
|
41
|
+
#
|
|
42
|
+
# @param name [String] The flag name/key to retrieve
|
|
43
|
+
# @param options_or_opts [Hash] Options for retrieving flags OR legacy opts hash
|
|
44
|
+
# @param flag_type [String, nil] Legacy flag type parameter (for 3-param calls)
|
|
45
|
+
# @return [Hash, nil] Flag object or nil if not found
|
|
46
|
+
def get_flag(name, options_or_opts = {}, flag_type = nil)
|
|
47
|
+
# Handle legacy 3-parameter signature: get_flag(name, opts, flag_type)
|
|
48
|
+
if flag_type || (options_or_opts.is_a?(Hash) && options_or_opts.key?(:default_value) && !options_or_opts.key?(:force_api))
|
|
49
|
+
return get_flag_legacy(name, options_or_opts, flag_type)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
get_flag_new_api(name, options_or_opts)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Check if user has specific feature flags
|
|
56
|
+
#
|
|
57
|
+
# @param flag_conditions [Array] Array of flag keys or flag condition objects
|
|
58
|
+
# @param options [Hash] Options for retrieving flags (same as get_flags)
|
|
59
|
+
# @return [Boolean] True if user has all specified flags, false otherwise
|
|
60
|
+
def has_feature_flags?(flag_conditions, options = {})
|
|
61
|
+
return true if flag_conditions.nil? || flag_conditions.empty?
|
|
62
|
+
|
|
63
|
+
flags = get_flags(options)
|
|
64
|
+
flag_conditions_array = Array(flag_conditions)
|
|
65
|
+
|
|
66
|
+
flag_conditions_array.all? { |condition| check_flag_condition(condition, flags) }
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Legacy methods for backward compatibility
|
|
70
|
+
def get_boolean_flag(name, default_value = nil)
|
|
71
|
+
flag_getter_wrapper(name, "b", default_value)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def get_string_flag(name, default_value = nil)
|
|
75
|
+
flag_getter_wrapper(name, "s", default_value)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def get_integer_flag(name, default_value = nil)
|
|
79
|
+
flag_getter_wrapper(name, "i", default_value)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# PHP SDK compatible alias
|
|
83
|
+
def getFlags
|
|
84
|
+
# Use client's force_api setting, default to true for PHP SDK compatibility
|
|
85
|
+
force_api_setting = @force_api.nil? ? true : @force_api
|
|
86
|
+
get_flags(force_api: force_api_setting)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# JavaScript SDK compatible alias
|
|
90
|
+
alias_method :hasFeatureFlags, :has_feature_flags?
|
|
91
|
+
|
|
92
|
+
private
|
|
93
|
+
|
|
94
|
+
# New API-style get_flag implementation
|
|
95
|
+
# Handles the modern get_flag(name, options) signature
|
|
96
|
+
#
|
|
97
|
+
# @param name [String] The flag name/key to retrieve
|
|
98
|
+
# @param options [Hash] Options for retrieving flags
|
|
99
|
+
# @return [Hash, nil] Flag object or nil if not found
|
|
100
|
+
def get_flag_new_api(name, options)
|
|
101
|
+
flags = get_flags(options)
|
|
102
|
+
flag = find_flag_by_key(flags, name)
|
|
103
|
+
|
|
104
|
+
return nil unless flag
|
|
105
|
+
|
|
106
|
+
{
|
|
107
|
+
code: get_flag_key(flag),
|
|
108
|
+
type: get_flag_type(flag),
|
|
109
|
+
value: get_flag_value(flag),
|
|
110
|
+
is_default: false
|
|
111
|
+
}
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# Check a single flag condition against available flags
|
|
115
|
+
#
|
|
116
|
+
# @param condition [Hash, String] Flag condition to check
|
|
117
|
+
# @param flags [Array] Available flags to check against
|
|
118
|
+
# @return [Boolean] True if condition is met, false otherwise
|
|
119
|
+
def check_flag_condition(condition, flags)
|
|
120
|
+
if condition.is_a?(Hash) && condition.key?(:flag) && condition.key?(:value)
|
|
121
|
+
# Custom condition with specific value
|
|
122
|
+
flag = find_flag_by_key(flags, condition[:flag])
|
|
123
|
+
flag && get_flag_value(flag) == condition[:value]
|
|
124
|
+
else
|
|
125
|
+
# Simple existence check
|
|
126
|
+
!!find_flag_by_key(flags, condition.to_s)
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# Find a flag by its key in the flags array
|
|
131
|
+
#
|
|
132
|
+
# @param flags [Array] Array of flag objects
|
|
133
|
+
# @param key [String] The key to search for
|
|
134
|
+
# @return [Hash, nil] Flag object if found, nil otherwise
|
|
135
|
+
def find_flag_by_key(flags, key)
|
|
136
|
+
flags.find { |f| get_flag_key(f) == key.to_s }
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# Extract the key from a flag object (handles both symbol and string keys)
|
|
140
|
+
#
|
|
141
|
+
# @param flag [Hash] Flag object
|
|
142
|
+
# @return [String] The flag key
|
|
143
|
+
def get_flag_key(flag)
|
|
144
|
+
flag[:key] || flag['key']
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# Extract the value from a flag object (handles both symbol and string keys)
|
|
148
|
+
#
|
|
149
|
+
# @param flag [Hash] Flag object
|
|
150
|
+
# @return [Object] The flag value
|
|
151
|
+
def get_flag_value(flag)
|
|
152
|
+
flag[:value] || flag['value']
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# Extract the type from a flag object (handles both symbol and string keys)
|
|
156
|
+
#
|
|
157
|
+
# @param flag [Hash] Flag object
|
|
158
|
+
# @return [String] The flag type
|
|
159
|
+
def get_flag_type(flag)
|
|
160
|
+
flag[:type] || flag['type']
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
# Legacy get_flag implementation for backward compatibility
|
|
164
|
+
# Handles the 3-parameter signature: get_flag(name, opts, flag_type)
|
|
165
|
+
def get_flag_legacy(name, opts = {}, flag_type = nil)
|
|
5
166
|
res = get_claim("feature_flags")&.dig(:value, name)
|
|
6
167
|
return try_default_flag(flag_type, name, opts) unless res
|
|
7
168
|
|
|
@@ -20,22 +181,84 @@ module KindeSdk
|
|
|
20
181
|
}
|
|
21
182
|
end
|
|
22
183
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
184
|
+
# Get feature flags from token claims (soft check)
|
|
185
|
+
# Matches JavaScript logic: token.feature_flags || token["x-hasura-feature-flags"] || null
|
|
186
|
+
#
|
|
187
|
+
# @param token_type [Symbol] The token type to use
|
|
188
|
+
# @return [Array] Array of flag objects
|
|
189
|
+
def get_flags_from_token(token_type = :access_token)
|
|
190
|
+
# First try standard feature_flags claim
|
|
191
|
+
flags = get_claim("feature_flags", token_type)&.dig(:value)
|
|
192
|
+
|
|
193
|
+
# Fallback to Hasura-specific flags (matches JS SDK)
|
|
194
|
+
if flags.nil? || flags.empty?
|
|
195
|
+
flags = get_claim("x-hasura-feature-flags", token_type)&.dig(:value)
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
return [] if flags.nil? || flags.empty?
|
|
26
199
|
|
|
27
|
-
|
|
28
|
-
|
|
200
|
+
# Convert from token format to consistent array format
|
|
201
|
+
if flags.is_a?(Hash)
|
|
202
|
+
flags.map do |key, value|
|
|
203
|
+
{
|
|
204
|
+
key: key.to_s,
|
|
205
|
+
value: value.is_a?(Hash) ? value['v'] : value,
|
|
206
|
+
type: value.is_a?(Hash) ? map_flag_type(value['t']) : 'string'
|
|
207
|
+
}
|
|
208
|
+
end
|
|
209
|
+
else
|
|
210
|
+
[]
|
|
211
|
+
end
|
|
29
212
|
end
|
|
30
213
|
|
|
31
|
-
|
|
32
|
-
|
|
214
|
+
# Get feature flags from API (hard check)
|
|
215
|
+
# Matches JavaScript API endpoint and data extraction exactly
|
|
216
|
+
#
|
|
217
|
+
# @return [Array] Array of flag objects
|
|
218
|
+
def get_flags_from_api
|
|
219
|
+
unless token_store.bearer_token
|
|
220
|
+
return []
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
begin
|
|
224
|
+
# Use the same pagination pattern as getAllEntitlements
|
|
225
|
+
all_flags = paginate_all_results('feature_flags') do |starting_after|
|
|
226
|
+
user_feature_flags(page_size: 100, starting_after: starting_after)
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
# Extract flag data (matches JS: feature_flags?.map((flag) => ({ key, value, type })))
|
|
230
|
+
all_flags.map do |flag|
|
|
231
|
+
{
|
|
232
|
+
key: flag.respond_to?(:key) ? flag.key : flag['key'],
|
|
233
|
+
value: flag.respond_to?(:value) ? flag.value : flag['value'],
|
|
234
|
+
type: flag.respond_to?(:type) ? flag.type : flag['type']
|
|
235
|
+
}
|
|
236
|
+
end.compact
|
|
237
|
+
rescue KindeSdk::APIError => e
|
|
238
|
+
log_error("API Error getting feature flags: #{e.message}")
|
|
239
|
+
# Graceful fallback to token-based flags (matches JS behavior)
|
|
240
|
+
get_flags_from_token
|
|
241
|
+
rescue StandardError => e
|
|
242
|
+
log_error("Unexpected error getting feature flags from API: #{e.message}")
|
|
243
|
+
# Graceful fallback to token-based flags
|
|
244
|
+
get_flags_from_token
|
|
245
|
+
end
|
|
33
246
|
end
|
|
34
247
|
|
|
35
|
-
|
|
248
|
+
# Map token flag type codes to full names
|
|
249
|
+
def map_flag_type(type_code)
|
|
250
|
+
case type_code
|
|
251
|
+
when "b" then "boolean"
|
|
252
|
+
when "s" then "string"
|
|
253
|
+
when "i" then "integer"
|
|
254
|
+
when "o" then "object"
|
|
255
|
+
else "string"
|
|
256
|
+
end
|
|
257
|
+
end
|
|
36
258
|
|
|
259
|
+
# Legacy helper methods
|
|
37
260
|
def flag_getter_wrapper(name, type, default_value = nil)
|
|
38
|
-
v =
|
|
261
|
+
v = get_flag_legacy(name, { default_value: default_value }, type)[:value]
|
|
39
262
|
raise ArgumentError, "Flag #{name} value type is different from requested type" unless check_type(v, type)
|
|
40
263
|
|
|
41
264
|
v
|
|
@@ -59,6 +282,19 @@ module KindeSdk
|
|
|
59
282
|
def check_type(value, type)
|
|
60
283
|
type == "s" && value.is_a?(String) || type == "b" && (value == false || value == true) || type == "i" && value.is_a?(Integer)
|
|
61
284
|
end
|
|
285
|
+
|
|
286
|
+
# Configurable logging that works with or without Rails
|
|
287
|
+
def log_error(message)
|
|
288
|
+
if defined?(Rails) && Rails.logger
|
|
289
|
+
Rails.logger.error(message)
|
|
290
|
+
elsif @logger
|
|
291
|
+
@logger.error(message)
|
|
292
|
+
elsif respond_to?(:logger) && logger
|
|
293
|
+
logger.error(message)
|
|
294
|
+
else
|
|
295
|
+
$stderr.puts "[KindeSdk] ERROR: #{message}"
|
|
296
|
+
end
|
|
297
|
+
end
|
|
62
298
|
end
|
|
63
299
|
end
|
|
64
300
|
end
|