auth0 5.18.0 → 5.19.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.
Files changed (344) hide show
  1. checksums.yaml +4 -4
  2. data/.version +1 -1
  3. data/CHANGELOG.md +24 -0
  4. data/README.md +13 -1
  5. data/auth0.gemspec +2 -4
  6. data/lib/auth0/api/v2/users.rb +4 -4
  7. data/lib/auth0/mixins/httpproxy.rb +47 -33
  8. data/lib/auth0/mixins/token_management.rb +17 -14
  9. data/lib/auth0/version.rb +1 -1
  10. metadata +8 -342
  11. data/.bundle/config +0 -4
  12. data/.devcontainer/Dockerfile +0 -19
  13. data/.devcontainer/devcontainer.json +0 -37
  14. data/.env.example +0 -2
  15. data/.github/CODEOWNERS +0 -1
  16. data/.github/ISSUE_TEMPLATE/Bug Report.yml +0 -67
  17. data/.github/ISSUE_TEMPLATE/Feature Request.yml +0 -53
  18. data/.github/ISSUE_TEMPLATE/config.yml +0 -8
  19. data/.github/PULL_REQUEST_TEMPLATE.md +0 -35
  20. data/.github/actions/get-prerelease/action.yml +0 -30
  21. data/.github/actions/get-release-notes/action.yml +0 -42
  22. data/.github/actions/get-version/action.yml +0 -21
  23. data/.github/actions/release-create/action.yml +0 -47
  24. data/.github/actions/rl-scanner/action.yml +0 -71
  25. data/.github/actions/rubygems-publish/action.yml +0 -30
  26. data/.github/actions/setup/action.yml +0 -32
  27. data/.github/actions/tag-exists/action.yml +0 -36
  28. data/.github/dependabot.yml +0 -13
  29. data/.github/stale.yml +0 -20
  30. data/.github/workflows/codeql.yml +0 -53
  31. data/.github/workflows/matrix.json +0 -3
  32. data/.github/workflows/release.yml +0 -36
  33. data/.github/workflows/rl-scanner.yml +0 -65
  34. data/.github/workflows/ruby-release.yml +0 -72
  35. data/.github/workflows/semgrep.yml +0 -40
  36. data/.github/workflows/snyk.yml +0 -40
  37. data/.github/workflows/test.yml +0 -69
  38. data/.gitignore +0 -18
  39. data/.rspec +0 -3
  40. data/.rubocop.yml +0 -10
  41. data/.rubocop_todo.yml +0 -5
  42. data/.semgrepignore +0 -6
  43. data/.shiprc +0 -8
  44. data/.snyk +0 -11
  45. data/CODE_OF_CONDUCT.md +0 -3
  46. data/DEPLOYMENT.md +0 -61
  47. data/DEVELOPMENT.md +0 -35
  48. data/Dockerfile +0 -5
  49. data/EXAMPLES.md +0 -222
  50. data/Gemfile +0 -20
  51. data/Gemfile.lock +0 -305
  52. data/Guardfile +0 -37
  53. data/RUBYGEM.md +0 -9
  54. data/Rakefile +0 -31
  55. data/codecov.yml +0 -22
  56. data/examples/ruby-api/.env.example +0 -2
  57. data/examples/ruby-api/.gitignore +0 -80
  58. data/examples/ruby-api/Gemfile +0 -9
  59. data/examples/ruby-api/Gemfile.lock +0 -33
  60. data/examples/ruby-api/README.md +0 -24
  61. data/examples/ruby-api/config.ru +0 -2
  62. data/examples/ruby-api/main.rb +0 -33
  63. data/examples/ruby-on-rails-api/.env.example +0 -2
  64. data/examples/ruby-on-rails-api/.gitignore +0 -18
  65. data/examples/ruby-on-rails-api/Gemfile +0 -48
  66. data/examples/ruby-on-rails-api/README.md +0 -25
  67. data/examples/ruby-on-rails-api/Rakefile +0 -6
  68. data/examples/ruby-on-rails-api/app/assets/images/.keep +0 -0
  69. data/examples/ruby-on-rails-api/app/assets/javascripts/application.js +0 -16
  70. data/examples/ruby-on-rails-api/app/assets/stylesheets/application.css +0 -15
  71. data/examples/ruby-on-rails-api/app/controllers/application_controller.rb +0 -8
  72. data/examples/ruby-on-rails-api/app/controllers/concerns/.keep +0 -0
  73. data/examples/ruby-on-rails-api/app/controllers/ping_controller.rb +0 -6
  74. data/examples/ruby-on-rails-api/app/controllers/secured_ping_controller.rb +0 -11
  75. data/examples/ruby-on-rails-api/app/helpers/application_helper.rb +0 -3
  76. data/examples/ruby-on-rails-api/app/mailers/.keep +0 -0
  77. data/examples/ruby-on-rails-api/app/models/.keep +0 -0
  78. data/examples/ruby-on-rails-api/app/models/User.rb +0 -5
  79. data/examples/ruby-on-rails-api/app/models/concerns/.keep +0 -0
  80. data/examples/ruby-on-rails-api/app/views/layouts/application.html.erb +0 -14
  81. data/examples/ruby-on-rails-api/bin/bundle +0 -3
  82. data/examples/ruby-on-rails-api/bin/rails +0 -4
  83. data/examples/ruby-on-rails-api/bin/rake +0 -4
  84. data/examples/ruby-on-rails-api/bin/setup +0 -29
  85. data/examples/ruby-on-rails-api/config/application.rb +0 -23
  86. data/examples/ruby-on-rails-api/config/boot.rb +0 -4
  87. data/examples/ruby-on-rails-api/config/database.yml +0 -27
  88. data/examples/ruby-on-rails-api/config/environment.rb +0 -5
  89. data/examples/ruby-on-rails-api/config/environments/development.rb +0 -37
  90. data/examples/ruby-on-rails-api/config/environments/production.rb +0 -83
  91. data/examples/ruby-on-rails-api/config/environments/test.rb +0 -41
  92. data/examples/ruby-on-rails-api/config/initializers/backtrace_silencers.rb +0 -7
  93. data/examples/ruby-on-rails-api/config/initializers/cookies_serializer.rb +0 -3
  94. data/examples/ruby-on-rails-api/config/initializers/dotenv.rb +0 -4
  95. data/examples/ruby-on-rails-api/config/initializers/filter_parameter_logging.rb +0 -4
  96. data/examples/ruby-on-rails-api/config/initializers/inflections.rb +0 -16
  97. data/examples/ruby-on-rails-api/config/initializers/knock.rb +0 -35
  98. data/examples/ruby-on-rails-api/config/initializers/mime_types.rb +0 -4
  99. data/examples/ruby-on-rails-api/config/initializers/session_store.rb +0 -3
  100. data/examples/ruby-on-rails-api/config/initializers/wrap_parameters.rb +0 -14
  101. data/examples/ruby-on-rails-api/config/locales/en.yml +0 -23
  102. data/examples/ruby-on-rails-api/config/routes.rb +0 -58
  103. data/examples/ruby-on-rails-api/config/secrets.yml +0 -28
  104. data/examples/ruby-on-rails-api/config.ru +0 -4
  105. data/examples/ruby-on-rails-api/db/schema.rb +0 -15
  106. data/examples/ruby-on-rails-api/db/seeds.rb +0 -7
  107. data/examples/ruby-on-rails-api/lib/assets/.keep +0 -0
  108. data/examples/ruby-on-rails-api/lib/tasks/.keep +0 -0
  109. data/examples/ruby-on-rails-api/log/.keep +0 -0
  110. data/examples/ruby-on-rails-api/public/404.html +0 -67
  111. data/examples/ruby-on-rails-api/public/422.html +0 -67
  112. data/examples/ruby-on-rails-api/public/500.html +0 -66
  113. data/examples/ruby-on-rails-api/public/favicon.ico +0 -0
  114. data/examples/ruby-on-rails-api/public/robots.txt +0 -5
  115. data/examples/ruby-on-rails-api/test/controllers/.keep +0 -0
  116. data/examples/ruby-on-rails-api/test/fixtures/.keep +0 -0
  117. data/examples/ruby-on-rails-api/test/helpers/.keep +0 -0
  118. data/examples/ruby-on-rails-api/test/integration/.keep +0 -0
  119. data/examples/ruby-on-rails-api/test/mailers/.keep +0 -0
  120. data/examples/ruby-on-rails-api/test/models/.keep +0 -0
  121. data/examples/ruby-on-rails-api/test/ping_controller_test.rb +0 -8
  122. data/examples/ruby-on-rails-api/test/secured_ping_controller_test.rb +0 -26
  123. data/examples/ruby-on-rails-api/test/test_helper.rb +0 -16
  124. data/opslevel.yml +0 -5
  125. data/publish_rubygem.sh +0 -10
  126. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_change_password/should_trigger_a_password_reset.yml +0 -93
  127. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_incorrect_email.yml +0 -85
  128. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_incorrect_password.yml +0 -85
  129. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_invalid_audience.yml +0 -86
  130. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_login_successfully_with_a_custom_audience.yml +0 -87
  131. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_login_successfully_with_a_default_scope.yml +0 -88
  132. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_saml_metadata/should_retrieve_SAML_metadata.yml +0 -110
  133. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_userinfo/should_fail_as_not_authorized.yml +0 -94
  134. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_userinfo/should_return_the_userinfo.yml +0 -176
  135. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_wsfed_metadata/should_retrieve_WSFED_metadata.yml +0 -98
  136. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/create_test_user.yml +0 -93
  137. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/delete_test_user.yml +0 -72
  138. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Blacklists/_add_token_to_blacklist/should_add_a_token_to_the_blacklist.yml +0 -74
  139. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Blacklists/_blacklisted_tokens/should_get_the_added_token_from_the_blacklist.yml +0 -74
  140. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_at_least_1_result.yml +0 -78
  141. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_the_test_client_grant.yml +0 -78
  142. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_delete_client_grant/should_delete_the_test_client_grant.yml +0 -72
  143. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_patch_client_grant/should_update_the_test_client_grant.yml +0 -76
  144. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/create_test_client.yml +0 -80
  145. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/create_test_client_grant.yml +0 -76
  146. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/delete_test_client.yml +0 -72
  147. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/delete_test_client_grant.yml +0 -72
  148. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/_filters/should_exclude_and_include_fields_properly.yml +0 -78
  149. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/_filters/should_include_the_specified_fields.yml +0 -74
  150. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/should_get_the_test_client.yml +0 -78
  151. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_exclude_fields_not_specified.yml +0 -79
  152. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_exclude_the_specified_fields.yml +0 -272
  153. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_include_the_specified_fields.yml +0 -88
  154. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_paginate_results.yml +0 -79
  155. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/should_get_at_least_one_client.yml +0 -271
  156. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_delete_client/should_delete_the_test_client_without_an_error.yml +0 -72
  157. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_patch_client/should_update_the_client_with_the_correct_attributes.yml +0 -81
  158. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/create_test_client.yml +0 -81
  159. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/_filters/should_exclude_the_fields_indicated.yml +0 -74
  160. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/_filters/should_include_the_fields_indicated.yml +0 -74
  161. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/should_find_the_correct_connection.yml +0 -74
  162. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_include_previously-created_connection_when_filtered.yml +0 -78
  163. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_should_exclude_the_fields_indicated_from_filtered_results.yml +0 -78
  164. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_should_include_the_fields_indicated_from_filtered_results.yml +0 -78
  165. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/should_include_the_previously_created_connection.yml +0 -79
  166. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/should_not_be_empty.yml +0 -79
  167. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_delete_connection/should_delete_the_connection.yml +0 -74
  168. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_delete_connection_user/should_delete_the_user_created.yml +0 -148
  169. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_update_connection/should_update_the_connection.yml +0 -76
  170. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/create_test_connection.yml +0 -76
  171. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/create_test_user.yml +0 -76
  172. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/create_test_credential.yml +0 -72
  173. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/create_test_user.yml +0 -76
  174. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/delete_test_user.yml +0 -72
  175. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_configure_provider/should_configure_a_new_email_provider.yml +0 -72
  176. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_delete_provider/should_delete_the_existing_email_provider_without_an_error.yml +0 -72
  177. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_delete_provider/should_throw_an_error_trying_to_get_the_email_provider.yml +0 -69
  178. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/_filters/should_get_the_existing_email_provider_with_specific_fields.yml +0 -69
  179. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/_filters/should_get_the_existing_email_provider_without_specific_fields.yml +0 -69
  180. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/should_get_the_existing_email_provider.yml +0 -69
  181. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_update_provider/should_update_the_existing_email_provider.yml +0 -71
  182. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/delete_existing_provider.yml +0 -72
  183. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_export_users_and_get_job/should_create_an_export_users_job_successfully.yml +0 -76
  184. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_export_users_and_get_job/should_get_the_export_users_job.yml +0 -147
  185. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_import_users_and_get_job/should_create_an_import_users_job_successfully.yml +0 -81
  186. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_import_users_and_get_job/should_get_the_import_users_job.yml +0 -152
  187. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_create_a_new_verification_email_job.yml +0 -149
  188. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_get_the_completed_verification_email.yml +0 -220
  189. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_reject_an_invalid_client_id.yml +0 -146
  190. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/delete_imported_user.yml +0 -143
  191. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/search_for_connection_id.yml +0 -79
  192. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_log/should_match_the_created_log_entry.yml +0 -293
  193. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_log/should_not_be_empty.yml +0 -293
  194. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_exclude_fields_not_specified.yml +0 -74
  195. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_exclude_the_specified_fields.yml +0 -75
  196. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_have_one_log_entry.yml +0 -77
  197. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_include_the_specified_fields.yml +0 -74
  198. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_from/should_take_one_log_entry.yml +0 -298
  199. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/create_test_user.yml +0 -76
  200. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_disabled_rule.yml +0 -72
  201. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_enabled_rule.yml +0 -72
  202. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_user.yml +0 -72
  203. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_delete_resource_server/should_delete_the_test_server_without_an_error.yml +0 -72
  204. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_patch_resource_server/should_update_the_resource_server_with_the_correct_attributes.yml +0 -76
  205. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_server/should_get_the_test_server.yml +0 -74
  206. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_get_the_test_server.yml +0 -182
  207. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_return_at_least_1_result.yml +0 -182
  208. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_return_the_first_page_of_one_result.yml +0 -171
  209. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/create_test_server.yml +0 -76
  210. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/delete_test_server.yml +0 -72
  211. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_add_role_permissions/should_add_a_Permission_to_the_Role_successfully.yml +0 -76
  212. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_add_role_users/should_add_a_User_to_the_Role_successfully.yml +0 -76
  213. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_delete_role/should_delete_the_Role_successfully.yml +0 -74
  214. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role/should_get_the_Role_successfully.yml +0 -75
  215. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_permissions/should_get_exactly_1_Permission.yml +0 -74
  216. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_permissions/should_get_the_added_Permission_from_the_Role_successfully.yml +0 -74
  217. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_users/should_get_exactly_1_User.yml +0 -74
  218. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_users/should_get_the_added_User_from_the_Role_successfully.yml +0 -74
  219. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_roles/should_get_the_Role_successfully.yml +0 -75
  220. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_remove_role_permissions/should_remove_a_Permission_from_the_Role_successfully.yml +0 -74
  221. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_update_role/should_update_the_Role_successfully.yml +0 -76
  222. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_api.yml +0 -76
  223. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_role.yml +0 -77
  224. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_user.yml +0 -76
  225. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/delete_test_api.yml +0 -72
  226. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/delete_test_user.yml +0 -72
  227. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_delete_rule/should_delete_the_test_disabled_rule_without_an_error.yml +0 -72
  228. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_delete_rule/should_delete_the_test_enabled_rule_without_an_error.yml +0 -72
  229. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_exclude_the_fields_not_specified.yml +0 -75
  230. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_exclude_the_specified_fields.yml +0 -75
  231. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_include_the_specified_fields.yml +0 -74
  232. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/should_get_a_specific_rule.yml +0 -75
  233. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_exclude_fields_not_specified.yml +0 -116
  234. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_include_the_specified_fields.yml +0 -118
  235. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_at_least_1_disabled_rule.yml +0 -95
  236. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_at_least_1_enabled_rule.yml +0 -104
  237. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_paginated_results.yml +0 -157
  238. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/should_return_at_least_1_rule.yml +0 -120
  239. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_update_rule/should_update_the_disabled_rule_to_be_enabled.yml +0 -77
  240. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/create_test_disabled_rule.yml +0 -78
  241. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/create_test_enabled_rule.yml +0 -78
  242. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Stats/_active_users/should_have_at_least_one_active_user.yml +0 -74
  243. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Stats/_daily_stats/should_have_at_least_one_stats_entry_for_the_timeframe.yml +0 -74
  244. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings/should_get_the_tenant_settings.yml +0 -108
  245. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings_with_specific_fields/should_exclude_a_field_not_requested.yml +0 -74
  246. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings_with_specific_fields/should_include_the_field_requested.yml +0 -74
  247. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_update_tenant_settings/should_revert_the_tenant_name.yml +0 -110
  248. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_update_tenant_settings/should_update_the_tenant_settings_with_a_new_tenant_name.yml +0 -110
  249. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/_post_email_verification/should_create_an_email_verification_ticket.yml +0 -76
  250. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/_post_password_change/should_create_a_password_change_ticket.yml +0 -76
  251. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/create_test_user.yml +0 -76
  252. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/delete_test_user.yml +0 -72
  253. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_add_user_permissions/should_add_a_Permissions_for_a_User_successfully.yml +0 -71
  254. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_add_user_roles/should_add_a_Role_to_a_User_successfully.yml +0 -74
  255. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user/should_delete_the_User_successfully.yml +0 -72
  256. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user/should_delete_the_secondary_User_successfully.yml +0 -72
  257. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user_provider/should_attempt_to_delete_the_MFA_provider_for_the_User.yml +0 -72
  258. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_enrollments/should_get_Enrollments_for_a_User_successfully.yml +0 -74
  259. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_permissions/should_get_exactly_1_Permission_for_a_User_successfully.yml +0 -74
  260. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_permissions/should_get_the_correct_Permission_for_a_User_successfully.yml +0 -74
  261. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_roles/should_get_Roles_for_a_User_successfully.yml +0 -75
  262. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_invalidate_browsers/should_invalidate_MFA_browsers_for_the_User_successfully.yml +0 -74
  263. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_link_user_account/should_link_two_Users_successfully.yml +0 -76
  264. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_patch_user/should_patch_the_User_successfully.yml +0 -78
  265. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_remove_user_permissions/should_remove_a_Permission_from_a_User_successfully.yml +0 -74
  266. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_remove_user_roles/should_remove_a_Role_from_a_User_successfully.yml +0 -74
  267. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_unlink_user_account/should_unlink_two_Users_successfully.yml +0 -74
  268. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_exclude_fields_not_indicated.yml +0 -74
  269. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_exclude_the_fields_indicated.yml +0 -74
  270. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_include_the_fields_indicated.yml +0 -74
  271. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/should_retrieve_the_created_user.yml +0 -74
  272. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user_logs/should_get_Logs_for_a_User_successfully.yml +0 -81
  273. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/is_expected_to_find_a_user_with_a_v2_search_engine_query.yml +0 -74
  274. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/is_expected_to_find_a_user_with_a_v3_search_engine_query.yml +0 -74
  275. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_exclude_the_indicated_fields_when_paginated.yml +0 -74
  276. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_include_the_indicated_fields_when_paginated.yml +0 -74
  277. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_not_include_other_fields_when_paginated.yml +0 -74
  278. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_return_the_correct_number_of_results_when_paginated.yml +0 -74
  279. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/should_have_at_least_one_user.yml +0 -75
  280. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_secondary_test_user.yml +0 -76
  281. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_api.yml +0 -76
  282. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_role.yml +0 -77
  283. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_user.yml +0 -76
  284. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/delete_test_api.yml +0 -72
  285. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/delete_test_role.yml +0 -74
  286. data/spec/integration/lib/auth0/api/api_authentication_spec.rb +0 -120
  287. data/spec/integration/lib/auth0/api/v2/api_blacklist_spec.rb +0 -27
  288. data/spec/integration/lib/auth0/api/v2/api_client_grants_spec.rb +0 -66
  289. data/spec/integration/lib/auth0/api/v2/api_clients_spec.rb +0 -166
  290. data/spec/integration/lib/auth0/api/v2/api_connections_spec.rb +0 -159
  291. data/spec/integration/lib/auth0/api/v2/api_email_spec.rb +0 -86
  292. data/spec/integration/lib/auth0/api/v2/api_jobs_spec.rb +0 -124
  293. data/spec/integration/lib/auth0/api/v2/api_logs_spec.rb +0 -91
  294. data/spec/integration/lib/auth0/api/v2/api_resource_servers_spec.rb +0 -130
  295. data/spec/integration/lib/auth0/api/v2/api_roles_spec.rb +0 -145
  296. data/spec/integration/lib/auth0/api/v2/api_rules_spec.rb +0 -177
  297. data/spec/integration/lib/auth0/api/v2/api_stats_spec.rb +0 -22
  298. data/spec/integration/lib/auth0/api/v2/api_tenants_spec.rb +0 -59
  299. data/spec/integration/lib/auth0/api/v2/api_tickets_spec.rb +0 -59
  300. data/spec/integration/lib/auth0/api/v2/api_user_blocks_spec.rb +0 -76
  301. data/spec/integration/lib/auth0/api/v2/api_users_spec.rb +0 -273
  302. data/spec/integration/lib/auth0/auth0_client_spec.rb +0 -90
  303. data/spec/lib/auth0/api/authentication_endpoints_spec.rb +0 -750
  304. data/spec/lib/auth0/api/v2/actions_spec.rb +0 -322
  305. data/spec/lib/auth0/api/v2/anomaly_spec.rb +0 -26
  306. data/spec/lib/auth0/api/v2/attack_protection_spec.rb +0 -132
  307. data/spec/lib/auth0/api/v2/blacklists_spec.rb +0 -25
  308. data/spec/lib/auth0/api/v2/branding_spec.rb +0 -71
  309. data/spec/lib/auth0/api/v2/client_grants_spec.rb +0 -106
  310. data/spec/lib/auth0/api/v2/clients_spec.rb +0 -155
  311. data/spec/lib/auth0/api/v2/connections_spec.rb +0 -164
  312. data/spec/lib/auth0/api/v2/device_credentials_spec.rb +0 -102
  313. data/spec/lib/auth0/api/v2/emails_spec.rb +0 -47
  314. data/spec/lib/auth0/api/v2/grants_spec.rb +0 -91
  315. data/spec/lib/auth0/api/v2/guardian_spec.rb +0 -154
  316. data/spec/lib/auth0/api/v2/jobs_spec.rb +0 -158
  317. data/spec/lib/auth0/api/v2/log_streams_spec.rb +0 -84
  318. data/spec/lib/auth0/api/v2/logs_spec.rb +0 -48
  319. data/spec/lib/auth0/api/v2/organizations_spec.rb +0 -708
  320. data/spec/lib/auth0/api/v2/prompts_spec.rb +0 -88
  321. data/spec/lib/auth0/api/v2/refresh_tokens_spec.rb +0 -51
  322. data/spec/lib/auth0/api/v2/resource_servers_spec.rb +0 -86
  323. data/spec/lib/auth0/api/v2/roles_spec.rb +0 -366
  324. data/spec/lib/auth0/api/v2/rules_spec.rb +0 -95
  325. data/spec/lib/auth0/api/v2/sessions_spec.rb +0 -71
  326. data/spec/lib/auth0/api/v2/stats_spec.rb +0 -22
  327. data/spec/lib/auth0/api/v2/tenants_spec.rb +0 -26
  328. data/spec/lib/auth0/api/v2/tickets_spec.rb +0 -118
  329. data/spec/lib/auth0/api/v2/user_blocks_spec.rb +0 -52
  330. data/spec/lib/auth0/api/v2/users_by_email_spec.rb +0 -21
  331. data/spec/lib/auth0/api/v2/users_spec.rb +0 -904
  332. data/spec/lib/auth0/client_spec.rb +0 -223
  333. data/spec/lib/auth0/mixins/httpproxy_spec.rb +0 -596
  334. data/spec/lib/auth0/mixins/initializer_spec.rb +0 -172
  335. data/spec/lib/auth0/mixins/token_management_spec.rb +0 -136
  336. data/spec/lib/auth0/mixins/validation_spec.rb +0 -562
  337. data/spec/spec_helper.rb +0 -70
  338. data/spec/support/credentials.rb +0 -11
  339. data/spec/support/dummy_class.rb +0 -18
  340. data/spec/support/dummy_class_for_proxy.rb +0 -5
  341. data/spec/support/dummy_class_for_restclient.rb +0 -2
  342. data/spec/support/dummy_class_for_tokens.rb +0 -20
  343. data/spec/support/import_users.json +0 -13
  344. data/spec/support/stub_response.rb +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6bc03a5197ed3cf51db9076e4d7429e56a418f94eb440b7f69c1542f1014a7cf
4
- data.tar.gz: bb4f921acd2af07f5139b0920064265a539e61862827dac10e5f39988297fbf4
3
+ metadata.gz: b8ae1bb70a0b39ac31708c2fdf869efddacfff7f068db020ea65c4a5039b4ff8
4
+ data.tar.gz: ca7b78cb1d13e258c4881575a672b5ed2ea9d41d66c408839deedb7ae993c632
5
5
  SHA512:
6
- metadata.gz: '08beebcb81144352182b6af63c5745d55abcf22ef30fee4928141a89c24f61cd5d81414f63f76f6cf6bd9935b5c49d5fe83b92b29298800fefd4a5bd1a2efa87'
7
- data.tar.gz: ac02d18db80d57720502db87c88ab4c3f8d07ef00d2f9792e8e41ae383d5d28082523f2d7cd735cfb2b6f7ec94d39ab8a42856b86fae151b838ad0569cc82dcb
6
+ metadata.gz: f7f19b4eef6c03108c991ed6db9bdfe6c8c1237685ff2d3651e594c9fde0ac499785fc1b2db2e702c3dfc0b49d386966b482d42f69e7179ab04eb5914fcbd877
7
+ data.tar.gz: f6b3d618c83c9a0fed4edc11b5046a9170921ad2762bb4c5479558540f20f64367e3fa62bb8a3cd2769da7f22be338cddbfff29c57f9b94862b9c096acef5e65
data/.version CHANGED
@@ -1 +1 @@
1
- v5.18.0
1
+ v5.19.0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Change Log
2
2
 
3
+ ## [v5.19.0](https://github.com/auth0/ruby-auth0/tree/v5.19.0) (2026-05-08)
4
+ [Full Changelog](https://github.com/auth0/ruby-auth0/compare/v5.18.1...v5.19.0)
5
+
6
+ **Added**
7
+ - Make Auth0::Client#get_token public [\#725](https://github.com/auth0/ruby-auth0/pull/725) ([ttstarck](https://github.com/ttstarck))
8
+
9
+ **Fixed**
10
+ - Ship only runtime files in packaged gem to eliminate scanner false positives [\#721](https://github.com/auth0/ruby-auth0/pull/721) ([tmertens](https://github.com/tmertens))
11
+
12
+ ## [v5.18.1](https://github.com/auth0/ruby-auth0/tree/v5.18.1) (2026-03-13)
13
+ [Full Changelog](https://github.com/auth0/ruby-auth0/compare/v5.18.0...v5.18.1)
14
+
15
+ **Changed**
16
+ - chore(deps): bump zache from 0.15.0 to 0.15.2 [\#691](https://github.com/auth0/ruby-auth0/pull/691) ([dependabot[bot]](https://github.com/apps/dependabot))
17
+ - chore(deps): bump jwt from 2.9.3 to 2.10.2 [\#682](https://github.com/auth0/ruby-auth0/pull/682) ([dependabot[bot]](https://github.com/apps/dependabot))
18
+ - chore(deps): bump addressable from 2.8.7 to 2.8.8 [\#686](https://github.com/auth0/ruby-auth0/pull/686) ([dependabot[bot]](https://github.com/apps/dependabot))
19
+ - chore(deps): bump zache from 0.13.2 to 0.15.0 [\#649](https://github.com/auth0/ruby-auth0/pull/649) ([dependabot[bot]](https://github.com/apps/dependabot))
20
+
21
+ **Fixed**
22
+ - fix deleting array content when passing an array as payload [\#697](https://github.com/auth0/ruby-auth0/pull/697) ([carlastabile](https://github.com/carlastabile))
23
+
24
+ **Security**
25
+ - fix(deps): upgrade dev dependencies to resolve Snyk security vulnerab… [\#704](https://github.com/auth0/ruby-auth0/pull/704) ([arpit-jn](https://github.com/arpit-jn))
26
+
3
27
  ## [v5.18.0](https://github.com/auth0/ruby-auth0/tree/v5.18.0) (2024-11-25)
4
28
  [Full Changelog](https://github.com/auth0/ruby-auth0/compare/v5.17.0...v5.18.0)
5
29
 
data/README.md CHANGED
@@ -7,11 +7,23 @@ Ruby API client for the [Auth0](https://auth0.com) platform.
7
7
  [![codecov](https://codecov.io/gh/auth0/ruby-auth0/branch/master/graph/badge.svg)](https://codecov.io/gh/auth0/ruby-auth0)
8
8
  [![Yard Docs](http://img.shields.io/badge/yard-docs-blue.svg)](http://www.rubydoc.info/github/auth0/ruby-auth0/master/frames)
9
9
  [![MIT licensed](https://img.shields.io/dub/l/vibe-d.svg?style=flat)](https://github.com/auth0/ruby-auth0/blob/master/LICENSE)
10
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/auth0/ruby-auth0)
10
11
 
11
12
  <div>
12
13
  📚 <a href="#documentation">Documentation</a> - 🚀 <a href="#getting-started">Getting started</a> - 💻 <a href="#api-reference">API reference</a> - 💬 <a href="#feedback">Feedback</a>
13
14
  </div>
14
15
 
16
+ > [!NOTE]
17
+ > **[v6.0.0.beta.0](https://github.com/auth0/ruby-auth0/releases/tag/v6.0.0.beta.0) is now available!** This release features a completely rewritten Management API client, auto-generated from the Auth0 OpenAPI spec using [Fern](https://buildwithfern.com/), with strongly-typed responses, built-in pagination, and automatic token management.
18
+ >
19
+ > ```bash
20
+ > gem install auth0 --pre
21
+ > ```
22
+ >
23
+ > We'd love your feedback - please [open an issue](https://github.com/auth0/ruby-auth0/issues/new) if you encounter any problems.
24
+ >
25
+ > 📖 [Migration Guide](https://github.com/auth0/ruby-auth0/blob/v6/v6_MIGRATION_GUIDE.md) ・ [Changelog](https://github.com/auth0/ruby-auth0/blob/v6/CHANGELOG.md) ・ [API Reference](https://github.com/auth0/ruby-auth0/blob/v6/reference.md)
26
+
15
27
  ## Documentation
16
28
 
17
29
  - [API documentation](https://www.rubydoc.info/gems/auth0) - documentation auto-generated from the code comments that explains all the available features
@@ -127,4 +139,4 @@ Please do not report security vulnerabilities on the public GitHub issue tracker
127
139
  </p>
128
140
  <p align="center">
129
141
  This project is licensed under the MIT license. See the <a href="https://github.com/auth0/ruby-auth0/blob/master/LICENSE"> LICENSE</a> file for more info.
130
- </p>
142
+ </p>
data/auth0.gemspec CHANGED
@@ -11,9 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.summary = 'Auth0 API Client'
12
12
  s.description = 'Ruby toolkit for Auth0 API https://auth0.com.'
13
13
 
14
- s.files = `git ls-files`.split("\n")
15
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
- s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
14
+ s.files = Dir['lib/**/*.rb'] + %w[LICENSE README.md CHANGELOG.md auth0.gemspec .version]
17
15
  s.require_paths = ['lib']
18
16
 
19
17
  s.add_runtime_dependency 'rest-client', '~> 2.1'
@@ -26,7 +24,7 @@ Gem::Specification.new do |s|
26
24
  s.add_development_dependency 'rake', '~> 13.0'
27
25
  s.add_development_dependency 'fuubar', '~> 2.0'
28
26
  s.add_development_dependency 'guard-rspec', '~> 4.5' unless ENV['CIRCLECI']
29
- s.add_development_dependency 'dotenv-rails', '~> 2.0'
27
+ s.add_development_dependency 'dotenv', '~> 3.0'
30
28
  s.add_development_dependency 'rspec', '~> 3.11'
31
29
  s.add_development_dependency 'simplecov', '~> 0.9'
32
30
  s.add_development_dependency 'faker', '~> 2.0'
@@ -1,7 +1,7 @@
1
1
  module Auth0
2
2
  module Api
3
3
  module V2
4
- # Methods to use the users endpoints
4
+ # Methods to use the users' endpoints
5
5
  module Users
6
6
  include Auth0::Mixins::Validation
7
7
 
@@ -94,10 +94,10 @@ module Auth0
94
94
  # Some considerations:
95
95
  # The properties of the new object will replace the old ones.
96
96
  # The metadata fields are an exception to this rule (user_metadata and app_metadata). These properties are
97
- # merged instead of being replaced but be careful, the merge only occurs on the first level.
97
+ # merged instead of being replaced, but be careful, the merge only occurs on the first level.
98
98
  # If you are updating email_verified, phone_verified, username or password you need to specify the connection
99
99
  # property too.
100
- # If your are updating email or phone_number you need to specify the connection and the client_id properties.
100
+ # If you are updating email or phone_number you need to specify the connection and the client_id properties.
101
101
  # @see https://auth0.com/docs/api/v2#!/Users/patch_users_by_id
102
102
  # @param user_id [string] The user_id of the user to update.
103
103
  # @param body [hash] The optional parameters to update.
@@ -137,7 +137,7 @@ module Auth0
137
137
  # update:current_user_identities scope. In this case only the link_with param is required in the body,
138
138
  # containing the JWT obtained upon the secondary account's authentication.
139
139
  # 2. With an API V2 generated token with update:users scope. In this case you need to send provider and user_id
140
- # in the body. Optionally you can also send the connection_id param which is suitable for identifying a
140
+ # in the body. Optionally, you can also send the connection_id param, which is suitable for identifying a
141
141
  # particular database connection for the 'auth0' provider.
142
142
  # @see https://auth0.com/docs/api/v2#!/Users/post_identities
143
143
  # @param user_id [string] The user_id of the primary identity where you are linking the secondary account to.
@@ -1,6 +1,8 @@
1
- require "addressable/uri"
2
- require "retryable"
3
- require_relative "../exception.rb"
1
+ # frozen_string_literal: true
2
+
3
+ require 'addressable/uri'
4
+ require 'retryable'
5
+ require_relative '../exception'
4
6
 
5
7
  module Auth0
6
8
  module Mixins
@@ -8,6 +10,7 @@ module Auth0
8
10
  # for now, if you want to feel free to use your own http client
9
11
  module HTTPProxy
10
12
  attr_accessor :headers, :base_uri, :timeout, :retry_count
13
+
11
14
  DEFAULT_RETRIES = 3
12
15
  MAX_ALLOWED_RETRIES = 10
13
16
  MAX_REQUEST_RETRY_JITTER = 250
@@ -16,10 +19,10 @@ module Auth0
16
19
  BASE_DELAY = 100
17
20
 
18
21
  # proxying requests from instance methods to HTTP class methods
19
- %i(get post post_file post_form put patch delete delete_with_body).each do |method|
22
+ %i[get post post_file post_form put patch delete delete_with_body].each do |method|
20
23
  define_method(method) do |uri, body = {}, extra_headers = {}|
21
- body = body.delete_if { |_, v| v.nil? }
22
- token = get_token()
24
+ body = safe_merge_body(body, extra_headers)
25
+ token = get_token
23
26
  authorization_header(token) unless token.nil?
24
27
  request_with_retry(method, uri, body, extra_headers)
25
28
  end
@@ -27,8 +30,8 @@ module Auth0
27
30
 
28
31
  def retry_options
29
32
  sleep_timer = lambda do |attempt|
30
- wait = BASE_DELAY * (2**attempt-1) # Exponential delay with each subsequent request attempt.
31
- wait += rand(wait+1..wait+MAX_REQUEST_RETRY_JITTER) # Add jitter to the delay window.
33
+ wait = BASE_DELAY * (2**attempt - 1) # Exponential delay with each subsequent request attempt.
34
+ wait += rand(wait + 1..wait + MAX_REQUEST_RETRY_JITTER) # Add jitter to the delay window.
32
35
  wait = [MAX_REQUEST_RETRY_DELAY, wait].min # Cap delay at MAX_REQUEST_RETRY_DELAY.
33
36
  wait = [MIN_REQUEST_RETRY_DELAY, wait].max # Ensure delay is no less than MIN_REQUEST_RETRY_DELAY.
34
37
  wait / 1000.to_f.round(2) # convert ms to seconds
@@ -55,6 +58,7 @@ module Auth0
55
58
 
56
59
  def add_headers(h = {})
57
60
  raise ArgumentError, 'Headers must be an object which responds to #to_hash' unless h.respond_to?(:to_hash)
61
+
58
62
  @headers ||= {}
59
63
  @headers.merge!(h.to_hash)
60
64
  end
@@ -72,28 +76,29 @@ module Auth0
72
76
  end
73
77
 
74
78
  def request(method, uri, body = {}, extra_headers = {})
75
- result = if method == :get
76
- @headers ||= {}
77
- get_headers = @headers.merge({params: body}).merge(extra_headers)
78
- call(:get, encode_uri(uri), timeout, get_headers)
79
- elsif method == :delete
80
- @headers ||= {}
81
- delete_headers = @headers.merge({ params: body })
82
- call(:delete, encode_uri(uri), timeout, delete_headers)
83
- elsif method == :delete_with_body
84
- call(:delete, encode_uri(uri), timeout, headers, body.to_json)
85
- elsif method == :post_file
86
- body.merge!(multipart: true)
87
- # Ignore the default Content-Type headers and let the HTTP client define them
88
- post_file_headers = headers.except('Content-Type') if headers != nil
89
- # Actual call with the altered headers
90
- call(:post, encode_uri(uri), timeout, post_file_headers, body)
91
- elsif method == :post_form
92
- form_post_headers = headers.except('Content-Type') if headers != nil
93
- call(:post, encode_uri(uri), timeout, form_post_headers, body.compact)
94
- else
95
- call(method, encode_uri(uri), timeout, headers, body.to_json)
96
- end
79
+ result = case method
80
+ when :get
81
+ @headers ||= {}
82
+ get_headers = @headers.merge({ params: body }).merge(extra_headers)
83
+ call(:get, encode_uri(uri), timeout, get_headers)
84
+ when :delete
85
+ @headers ||= {}
86
+ delete_headers = @headers.merge({ params: body })
87
+ call(:delete, encode_uri(uri), timeout, delete_headers)
88
+ when :delete_with_body
89
+ call(:delete, encode_uri(uri), timeout, headers, body.to_json)
90
+ when :post_file
91
+ body.merge!(multipart: true)
92
+ # Ignore the default Content-Type headers and let the HTTP client define them
93
+ post_file_headers = headers.except('Content-Type') unless headers.nil?
94
+ # Actual call with the altered headers
95
+ call(:post, encode_uri(uri), timeout, post_file_headers, body)
96
+ when :post_form
97
+ form_post_headers = headers.except('Content-Type') unless headers.nil?
98
+ call(:post, encode_uri(uri), timeout, form_post_headers, body.compact)
99
+ else
100
+ call(method, encode_uri(uri), timeout, headers, body.to_json)
101
+ end
97
102
 
98
103
  case result.code
99
104
  when 200...226 then safe_parse_json(result.body)
@@ -101,7 +106,8 @@ module Auth0
101
106
  when 401 then raise Auth0::Unauthorized.new(result.body, code: result.code, headers: result.headers)
102
107
  when 403 then raise Auth0::AccessDenied.new(result.body, code: result.code, headers: result.headers)
103
108
  when 404 then raise Auth0::NotFound.new(result.body, code: result.code, headers: result.headers)
104
- when 429 then raise Auth0::RateLimitEncountered.new(result.body, code: result.code, headers: result.headers)
109
+ when 429 then raise Auth0::RateLimitEncountered.new(result.body, code: result.code,
110
+ headers: result.headers)
105
111
  when 500 then raise Auth0::ServerError.new(result.body, code: result.code, headers: result.headers)
106
112
  else raise Auth0::Unsupported.new(result.body, code: result.code, headers: result.headers)
107
113
  end
@@ -118,11 +124,19 @@ module Auth0
118
124
  rescue RestClient::Exception => e
119
125
  case e
120
126
  when RestClient::RequestTimeout
121
- raise Auth0::RequestTimeout.new(e.message)
127
+ raise Auth0::RequestTimeout, e.message
122
128
  else
123
- return e.response
129
+ e.response
124
130
  end
125
131
  end
132
+
133
+ private
134
+
135
+ def safe_merge_body(body, extra = {})
136
+ return body unless body.is_a?(Hash)
137
+ merged = extra.any? ? body.merge(extra) : body
138
+ merged.compact
139
+ end
126
140
  end
127
141
  end
128
142
  end
@@ -1,22 +1,14 @@
1
1
  module Auth0
2
2
  module Mixins
3
3
  module TokenManagement
4
-
5
- private
6
-
7
- def initialize_token(options)
8
- @token = options[:access_token] || options[:token]
9
- # default expiry to an hour if a token was given but no expires_at
10
- @token_expires_at = @token ? options[:token_expires_at] || Time.now.to_i + 3600 : nil
11
-
12
- @audience = options[:api_identifier] || "https://#{@domain}/api/v2/"
13
- get_token() if @token.nil?
14
- end
15
4
 
5
+ # Get the Client's api token (or generate a new one if it has expired).
6
+ #
7
+ # @note This method may perform a network request to refresh an expired token. It is not thread-safe.
8
+ # @return [String] the api token
16
9
  def get_token
17
- # pp @token_expires_at
18
10
  has_expired = @token && @token_expires_at ? @token_expires_at < (Time.now.to_i + 10) : false
19
-
11
+
20
12
  if (@token.nil? || has_expired) && @client_id && (@client_secret || @client_assertion_signing_key)
21
13
  response = api_token(audience: @audience)
22
14
  @token = response.token
@@ -27,6 +19,17 @@ module Auth0
27
19
  @token
28
20
  end
29
21
  end
22
+
23
+ private
24
+
25
+ def initialize_token(options)
26
+ @token = options[:access_token] || options[:token]
27
+ # default expiry to an hour if a token was given but no expires_at
28
+ @token_expires_at = @token ? options[:token_expires_at] || Time.now.to_i + 3600 : nil
29
+
30
+ @audience = options[:api_identifier] || "https://#{@domain}/api/v2/"
31
+ get_token() if @token.nil?
32
+ end
30
33
  end
31
34
  end
32
- end
35
+ end
data/lib/auth0/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # current version of gem
2
2
  module Auth0
3
- VERSION = '5.18.0'.freeze
3
+ VERSION = '5.19.0'.freeze
4
4
  end