auth0 4.7.0 → 4.12.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 (185) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +23 -0
  3. data/.env.example +2 -0
  4. data/.github/CODEOWNERS +1 -0
  5. data/.github/stale.yml +20 -0
  6. data/.gitignore +0 -1
  7. data/.rubocop.yml +2 -0
  8. data/CHANGELOG.md +83 -0
  9. data/DEPLOYMENT.md +25 -3
  10. data/Gemfile +3 -1
  11. data/Gemfile.lock +231 -0
  12. data/README.md +114 -25
  13. data/auth0.gemspec +6 -6
  14. data/codecov.yml +22 -0
  15. data/deploy_documentation.sh +1 -1
  16. data/lib/auth0.rb +1 -0
  17. data/lib/auth0/algorithm.rb +5 -0
  18. data/lib/auth0/api/authentication_endpoints.rb +38 -2
  19. data/lib/auth0/api/v2.rb +6 -0
  20. data/lib/auth0/api/v2/anomaly.rb +36 -0
  21. data/lib/auth0/api/v2/client_grants.rb +5 -1
  22. data/lib/auth0/api/v2/guardian.rb +142 -0
  23. data/lib/auth0/api/v2/jobs.rb +22 -3
  24. data/lib/auth0/api/v2/roles.rb +172 -0
  25. data/lib/auth0/api/v2/users.rb +115 -4
  26. data/lib/auth0/exception.rb +35 -7
  27. data/lib/auth0/mixins.rb +8 -3
  28. data/lib/auth0/mixins/httpproxy.rb +11 -8
  29. data/lib/auth0/mixins/permission_struct.rb +3 -0
  30. data/lib/auth0/mixins/validation.rb +340 -0
  31. data/lib/auth0/version.rb +1 -1
  32. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Anomaly/_check_if_ip_is_blocked/should_return_200_response_code.yml +65 -0
  33. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Anomaly/_remove_ip_block/should_remove_an_IP_successfully.yml +60 -0
  34. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_at_least_1_result.yml +1 -1
  35. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_the_first_page_of_one_result.yml +1 -1
  36. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_the_test_client_grant.yml +1 -1
  37. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_delete_client_grant/should_delete_the_test_client_grant.yml +1 -1
  38. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_patch_client_grant/should_update_the_test_client_grant.yml +1 -1
  39. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/create_test_client.yml +1 -1
  40. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/create_test_client_grant.yml +1 -1
  41. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/delete_test_client.yml +1 -1
  42. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/delete_test_client_grant.yml +1 -1
  43. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/_filters/should_exclude_and_include_fields_properly.yml +1 -1
  44. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/_filters/should_include_the_specified_fields.yml +1 -1
  45. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/should_get_the_test_client.yml +1 -1
  46. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_exclude_fields_not_specified.yml +1 -1
  47. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_exclude_the_specified_fields.yml +1 -1
  48. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_include_the_specified_fields.yml +1 -1
  49. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_paginate_results.yml +1 -1
  50. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/should_get_at_least_one_client.yml +1 -1
  51. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_delete_client/should_delete_the_test_client_without_an_error.yml +1 -1
  52. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_patch_client/should_update_the_client_with_the_correct_attributes.yml +1 -1
  53. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/create_test_client.yml +1 -1
  54. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/_filters/should_exclude_the_fields_indicated.yml +1 -1
  55. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/_filters/should_include_the_fields_indicated.yml +1 -1
  56. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/should_find_the_correct_connection.yml +1 -1
  57. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_include_previously-created_connection_when_filtered.yml +1 -1
  58. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_should_exclude_the_fields_indicated_from_filtered_results.yml +1 -1
  59. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_should_include_the_fields_indicated_from_filtered_results.yml +1 -1
  60. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/should_include_the_previously_created_connection.yml +1 -1
  61. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/should_not_be_empty.yml +1 -1
  62. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_delete_connection/should_delete_the_connection.yml +1 -1
  63. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_delete_connection_user/should_delete_the_user_created.yml +2 -2
  64. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_update_connection/should_update_the_connection.yml +1 -1
  65. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/create_test_connection.yml +1 -1
  66. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/create_test_user.yml +1 -1
  67. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/create_test_user.yml +1 -1
  68. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/delete_test_credential.yml +1 -1
  69. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/delete_test_user.yml +1 -1
  70. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_configure_provider/should_configure_a_new_email_provider.yml +1 -1
  71. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_delete_provider/should_delete_the_existing_email_provider_without_an_error.yml +1 -1
  72. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_delete_provider/should_throw_an_error_trying_to_get_the_email_provider.yml +1 -1
  73. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/_filters/should_get_the_existing_email_provider_with_specific_fields.yml +1 -1
  74. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/_filters/should_get_the_existing_email_provider_without_specific_fields.yml +1 -1
  75. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/should_get_the_existing_email_provider.yml +1 -1
  76. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_update_provider/should_update_the_existing_email_provider.yml +1 -1
  77. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/delete_existing_provider.yml +1 -1
  78. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_log/should_match_the_created_log_entry.yml +2 -2
  79. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_log/should_not_be_empty.yml +2 -2
  80. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_exclude_fields_not_specified.yml +1 -1
  81. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_exclude_the_specified_fields.yml +1 -1
  82. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_have_one_log_entry.yml +1 -1
  83. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_include_the_specified_fields.yml +1 -1
  84. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_from/should_take_one_log_entry.yml +2 -2
  85. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/create_test_user.yml +1 -1
  86. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_disabled_rule.yml +1 -1
  87. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_enabled_rule.yml +1 -1
  88. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_user.yml +1 -1
  89. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_add_role_permissions/should_add_a_Permission_to_the_Role_successfully.yml +69 -0
  90. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_add_role_users/should_add_a_User_to_the_Role_successfully.yml +69 -0
  91. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_delete_role/should_delete_the_Role_successfully.yml +62 -0
  92. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role/should_get_the_Role_successfully.yml +67 -0
  93. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_permissions/should_get_exactly_1_Permission.yml +67 -0
  94. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_permissions/should_get_the_added_Permission_from_the_Role_successfully.yml +67 -0
  95. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_users/should_get_exactly_1_User.yml +67 -0
  96. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_users/should_get_the_added_User_from_the_Role_successfully.yml +67 -0
  97. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_roles/should_get_the_Role_successfully.yml +67 -0
  98. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_remove_role_permissions/should_remove_a_Permission_from_the_Role_successfully.yml +64 -0
  99. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_update_role/should_update_the_Role_successfully.yml +69 -0
  100. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_api.yml +69 -0
  101. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_role.yml +69 -0
  102. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_user.yml +69 -0
  103. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/delete_test_api.yml +62 -0
  104. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/delete_test_user.yml +62 -0
  105. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_delete_rule/should_delete_the_test_disabled_rule_without_an_error.yml +1 -1
  106. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_delete_rule/should_delete_the_test_enabled_rule_without_an_error.yml +1 -1
  107. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_exclude_the_fields_not_specified.yml +1 -1
  108. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_exclude_the_specified_fields.yml +1 -1
  109. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_include_the_specified_fields.yml +1 -1
  110. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/should_get_a_specific_rule.yml +1 -1
  111. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_exclude_fields_not_specified.yml +1 -1
  112. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_include_the_specified_fields.yml +1 -1
  113. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_at_least_1_disabled_rule.yml +1 -1
  114. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_at_least_1_enabled_rule.yml +1 -1
  115. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_paginated_results.yml +2 -2
  116. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/should_return_at_least_1_rule.yml +1 -1
  117. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_update_rule/should_update_the_disabled_rule_to_be_enabled.yml +1 -1
  118. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/create_test_disabled_rule.yml +1 -1
  119. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/create_test_enabled_rule.yml +1 -1
  120. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Stats/_active_users/should_have_at_least_one_active_user.yml +1 -1
  121. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Stats/_daily_stats/should_have_at_least_one_stats_entry_for_the_timeframe.yml +1 -1
  122. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings/should_get_the_tenant_settings.yml +1 -1
  123. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings_with_specific_fields/should_exclude_a_field_not_requested.yml +1 -1
  124. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings_with_specific_fields/should_include_the_field_requested.yml +1 -1
  125. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_update_tenant_settings/should_revert_the_tenant_name.yml +1 -1
  126. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_update_tenant_settings/should_update_the_tenant_settings_with_a_new_tenant_name.yml +1 -1
  127. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/_post_email_verification/should_create_an_email_verification_ticket.yml +1 -1
  128. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/_post_password_change/should_create_a_password_change_ticket.yml +1 -1
  129. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/create_test_user.yml +1 -1
  130. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/delete_test_user.yml +1 -1
  131. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_add_user_permissions/should_add_a_Permissions_for_a_User_successfully.yml +67 -0
  132. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_add_user_roles/should_add_a_Role_to_a_User_successfully.yml +62 -0
  133. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user/{should_delete_the_user_successfully.yml → should_delete_the_User_successfully.yml} +14 -8
  134. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user/should_delete_the_secondary_User_successfully.yml +60 -0
  135. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user_provider/should_attempt_to_delete_the_MFA_provider_for_the_User.yml +60 -0
  136. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_enrollments/should_get_Enrollments_for_a_User_successfully.yml +65 -0
  137. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_permissions/should_get_exactly_1_Permission_for_a_User_successfully.yml +65 -0
  138. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_permissions/should_get_the_correct_Permission_for_a_User_successfully.yml +65 -0
  139. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_roles/should_get_Roles_for_a_User_successfully.yml +65 -0
  140. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_invalidate_browsers/should_invalidate_MFA_browsers_for_the_User_successfully.yml +62 -0
  141. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_link_user_account/should_link_two_Users_successfully.yml +67 -0
  142. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_patch_user/should_patch_the_User_successfully.yml +68 -0
  143. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_remove_user_permissions/should_remove_a_Permission_from_a_User_successfully.yml +62 -0
  144. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_remove_user_roles/should_remove_a_Role_from_a_User_successfully.yml +62 -0
  145. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_unlink_user_account/should_unlink_two_Users_successfully.yml +65 -0
  146. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_exclude_fields_not_indicated.yml +15 -10
  147. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_exclude_the_fields_indicated.yml +15 -13
  148. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_include_the_fields_indicated.yml +15 -13
  149. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/should_retrieve_the_created_user.yml +15 -16
  150. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user_logs/should_get_Logs_for_a_User_successfully.yml +69 -0
  151. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/is_expected_to_find_a_user_with_a_v2_search_engine_query.yml +14 -8
  152. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/is_expected_to_find_a_user_with_a_v3_search_engine_query.yml +14 -8
  153. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_exclude_the_indicated_fields_when_paginated.yml +13 -7
  154. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_include_the_indicated_fields_when_paginated.yml +13 -7
  155. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_not_include_other_fields_when_paginated.yml +13 -7
  156. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_return_the_correct_number_of_results_when_paginated.yml +13 -7
  157. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/should_have_at_least_one_user.yml +13 -7
  158. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_secondary_test_user.yml +67 -0
  159. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_api.yml +67 -0
  160. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_role.yml +67 -0
  161. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_user.yml +15 -16
  162. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/delete_test_api.yml +60 -0
  163. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/delete_test_role.yml +60 -0
  164. data/spec/integration/lib/auth0/api/v2/api_anomaly_spec.rb +17 -0
  165. data/spec/integration/lib/auth0/api/v2/api_roles_spec.rb +145 -0
  166. data/spec/integration/lib/auth0/api/v2/api_users_spec.rb +150 -32
  167. data/spec/integration/lib/auth0/auth0_client_spec.rb +3 -4
  168. data/spec/lib/auth0/api/authentication_endpoints_spec.rb +37 -10
  169. data/spec/lib/auth0/api/v2/anomaly_spec.rb +26 -0
  170. data/spec/lib/auth0/api/v2/client_grants_spec.rb +17 -0
  171. data/spec/lib/auth0/api/v2/guardian_spec.rb +154 -0
  172. data/spec/lib/auth0/api/v2/jobs_spec.rb +33 -1
  173. data/spec/lib/auth0/api/v2/roles_spec.rb +362 -0
  174. data/spec/lib/auth0/api/v2/users_spec.rb +406 -66
  175. data/spec/lib/auth0/mixins/httpproxy_spec.rb +81 -2
  176. data/spec/lib/auth0/mixins/validation_spec.rb +474 -0
  177. data/spec/spec_helper.rb +11 -7
  178. data/spec/support/credentials.rb +4 -13
  179. data/spec/support/dummy_class.rb +1 -1
  180. data/spec/support/stub_response.rb +1 -1
  181. metadata +145 -23
  182. data/.travis.yml +0 -18
  183. data/build_travis.sh +0 -7
  184. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_patch_user/should_patch_email_verified_and_return_the_updated_data.yml +0 -68
  185. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_patch_user/should_patch_user_metadata_and_return_the_updated_user.yml +0 -69
@@ -0,0 +1,67 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://auth0-sdk-tests.auth0.com/api/v2/resource-servers
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"name":"rubytest-test-api-for-users","scopes":[{"value":"test:scope"}],"identifier":"rubytest-test-api-for-users"}'
9
+ headers:
10
+ Accept:
11
+ - "*/*"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - rest-client/2.0.2 (darwin17.7.0 x86_64) ruby/2.5.1p57
16
+ Content-Type:
17
+ - application/json
18
+ Auth0-Client:
19
+ - eyJuYW1lIjoicnVieS1hdXRoMCIsInZlcnNpb24iOiI0LjcuMCIsImVudiI6eyJydWJ5IjoiMi41LjEifX0=
20
+ Authorization:
21
+ - Bearer API_TOKEN
22
+ Content-Length:
23
+ - '115'
24
+ Host:
25
+ - auth0-sdk-tests.auth0.com
26
+ response:
27
+ status:
28
+ code: 201
29
+ message: Created
30
+ headers:
31
+ Date:
32
+ - Fri, 28 Jun 2019 19:21:58 GMT
33
+ Content-Type:
34
+ - application/json; charset=utf-8
35
+ Transfer-Encoding:
36
+ - chunked
37
+ Connection:
38
+ - keep-alive
39
+ Ot-Tracer-Spanid:
40
+ - 170178dd6862775d
41
+ Ot-Tracer-Traceid:
42
+ - 4ed0639d51fe659e
43
+ Ot-Tracer-Sampled:
44
+ - 'true'
45
+ X-Ratelimit-Limit:
46
+ - '10'
47
+ X-Ratelimit-Remaining:
48
+ - '8'
49
+ X-Ratelimit-Reset:
50
+ - '1561749720'
51
+ Vary:
52
+ - origin,accept-encoding
53
+ Cache-Control:
54
+ - private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
55
+ Content-Encoding:
56
+ - gzip
57
+ Strict-Transport-Security:
58
+ - max-age=15724800
59
+ X-Robots-Tag:
60
+ - noindex, nofollow, nosnippet, noarchive
61
+ body:
62
+ encoding: ASCII-8BIT
63
+ string: !binary |-
64
+ H4sIAAAAAAAAA4WPwY7CMAxE/8VnKrVlG0I/A46rlZWmTmURkipOQQjx75v2gsSFiw/jN6OZJ/AIPXRjo5Qele4ad9S10s2hafd6DzsI5kqFSMvwyCS52o6ZuXIxVYtQkgLxSCGzY0pfUeN9vGN0znMgNNaSCPTOeKEdyIVntDFIicPiwhulEmsGT+g4ScbZpPxA67kQb1+OFwro2VHmta5WP3X9KW+BdxqgP7TrV3gKHCY0fiqtT+e2U6Wf2DhTSf59ws34Zd2+7ug3HV5/r38xxKMfMwEAAA==
65
+ http_version:
66
+ recorded_at: Fri, 28 Jun 2019 19:21:58 GMT
67
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,67 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://auth0-sdk-tests.auth0.com/api/v2/roles
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"description":"Test role description","name":"rubytest-test-role-for-users"}'
9
+ headers:
10
+ Accept:
11
+ - "*/*"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - rest-client/2.0.2 (darwin17.7.0 x86_64) ruby/2.5.1p57
16
+ Content-Type:
17
+ - application/json
18
+ Auth0-Client:
19
+ - eyJuYW1lIjoicnVieS1hdXRoMCIsInZlcnNpb24iOiI0LjcuMCIsImVudiI6eyJydWJ5IjoiMi41LjEifX0=
20
+ Authorization:
21
+ - Bearer API_TOKEN
22
+ Content-Length:
23
+ - '77'
24
+ Host:
25
+ - auth0-sdk-tests.auth0.com
26
+ response:
27
+ status:
28
+ code: 200
29
+ message: OK
30
+ headers:
31
+ Date:
32
+ - Fri, 28 Jun 2019 19:21:58 GMT
33
+ Content-Type:
34
+ - application/json; charset=utf-8
35
+ Transfer-Encoding:
36
+ - chunked
37
+ Connection:
38
+ - keep-alive
39
+ Ot-Tracer-Spanid:
40
+ - 3a61bd25691765ef
41
+ Ot-Tracer-Traceid:
42
+ - '08e5f51838d4ddb6'
43
+ Ot-Tracer-Sampled:
44
+ - 'true'
45
+ X-Ratelimit-Limit:
46
+ - '10'
47
+ X-Ratelimit-Remaining:
48
+ - '7'
49
+ X-Ratelimit-Reset:
50
+ - '1561749721'
51
+ Vary:
52
+ - origin,accept-encoding
53
+ Cache-Control:
54
+ - private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
55
+ Content-Encoding:
56
+ - gzip
57
+ Strict-Transport-Security:
58
+ - max-age=15724800
59
+ X-Robots-Tag:
60
+ - noindex, nofollow, nosnippet, noarchive
61
+ body:
62
+ encoding: ASCII-8BIT
63
+ string: !binary |-
64
+ H4sIAAAAAAAAA6tWykxRslIqys+JN87IDvOoco809TN1syxILVLSUcpLzE0FyZYmVZakFpfoggmg2lTdtPwi3dLi1KJioKqU1OLkosyCksz8PKDiEKAaBZAaBWTxWgC2Xr2LaQAAAA==
65
+ http_version:
66
+ recorded_at: Fri, 28 Jun 2019 19:21:58 GMT
67
+ recorded_with: VCR 4.0.0
@@ -5,22 +5,22 @@ http_interactions:
5
5
  uri: https://auth0-sdk-tests.auth0.com/api/v2/users
6
6
  body:
7
7
  encoding: UTF-8
8
- string: '{"email":"rubytest-rubytest-username@auth0.com","password":"VeR6ItEuZ29m","connection":"Username-Password-Authentication","name":"rubytest-username"}'
8
+ string: '{"email":"rubytest-rubytest-username@auth0.com","password":"KkScYmWePz","connection":"Username-Password-Authentication","name":"rubytest-username"}'
9
9
  headers:
10
10
  Accept:
11
11
  - "*/*"
12
12
  Accept-Encoding:
13
13
  - gzip, deflate
14
14
  User-Agent:
15
- - Ruby/2.3.1
15
+ - rest-client/2.0.2 (darwin17.7.0 x86_64) ruby/2.5.1p57
16
16
  Content-Type:
17
17
  - application/json
18
18
  Auth0-Client:
19
- - eyJuYW1lIjoicnVieS1hdXRoMCIsInZlcnNpb24iOiI0LjUuMCJ9
19
+ - eyJuYW1lIjoicnVieS1hdXRoMCIsInZlcnNpb24iOiI0LjcuMCIsImVudiI6eyJydWJ5IjoiMi41LjEifX0=
20
20
  Authorization:
21
- - Bearer eyJ0eXAiOiJKV1QiLCJhbGc.eyJpc3MiOiJodHRwczovL2F1dGgwLXNkay10ZXN0cy5hdXRoMC5jb20vIiwic3ViIjoiQjRvUEhsMDA3VmExR0JkWlhpU0hhRUNVcVZXa2Q5WGtAY2xpZW50cyIsIm.PxfZjVd4wTb_bFbSTENdTmbj13CDQaPK352w3UNL3i3DnWcVJa6qSiA0hCr_tSU_uC34mHkK52O8tFVeZjxCYSeM9yOZUcKVya5N0I7G90X
21
+ - Bearer API_TOKEN
22
22
  Content-Length:
23
- - '149'
23
+ - '147'
24
24
  Host:
25
25
  - auth0-sdk-tests.auth0.com
26
26
  response:
@@ -29,19 +29,25 @@ http_interactions:
29
29
  message: Created
30
30
  headers:
31
31
  Date:
32
- - Fri, 05 Oct 2018 20:06:26 GMT
32
+ - Fri, 28 Jun 2019 19:21:57 GMT
33
33
  Content-Type:
34
34
  - application/json; charset=utf-8
35
35
  Transfer-Encoding:
36
36
  - chunked
37
37
  Connection:
38
38
  - keep-alive
39
+ Ot-Tracer-Spanid:
40
+ - 5945836377b47fab
41
+ Ot-Tracer-Traceid:
42
+ - '00856f2e13bae885'
43
+ Ot-Tracer-Sampled:
44
+ - 'true'
39
45
  X-Ratelimit-Limit:
40
46
  - '10'
41
47
  X-Ratelimit-Remaining:
42
48
  - '9'
43
49
  X-Ratelimit-Reset:
44
- - '1538769988'
50
+ - '1561749719'
45
51
  Vary:
46
52
  - origin,accept-encoding
47
53
  Cache-Control:
@@ -55,14 +61,7 @@ http_interactions:
55
61
  body:
56
62
  encoding: ASCII-8BIT
57
63
  string: !binary |-
58
- H4sIAAAAAAAAA41Ry2rDMBD8F0Fy8kOS34bQ5tJzoe2lpQRZWjuisWwkOaWk
59
- +fdKzoOcQkGHkTQ7M7t7QNAzuUM10lPzY8HY8AomA1qxHh7ZZLc44kOPAuQf
60
- btkXkvualTZ70LKVIFDdsp2BAE2jYBbEhllXRzEpQ4JDnL1SXOO8pnlU5fjd
61
- lY+S20l78a21o6nj2ESdZntmmfbm8QnGNE84hpakGZSECJoXOeGFA6Sq0rJs
62
- H8wqLfFSr8ZuKVaz1iJZL+iTO1yo6NqNu58kjUN6ikbVuRi+oY108dFM/M2a
63
- puBpSjPAVZKkoijKqmoE97OQ/OvOPKQAZaWVYFD9cUB8UAq4lYNy/LczLXxm
64
- xnwPWoRr5+b5nM2U2yB3Iox62DsffYnrbc3LwCXbnRdw/AwQ1/CPFRz/AIkm
65
- rdkNAgAA
64
+ H4sIAAAAAAAAA41R3WrDIBh9F6G9ahK1jdFA2Xqz68G2m41RrH5pZa0JajpG13efpl0pY4yBF0c9P5/HA4KdNFtUI9evPgL4kF1A78FZuYNb2YcNzlW7QxOUDq7Z36R4NTgt9+BMY0CjupFbDxPUd1oG0EsZoo5iIjLMMsofiagpqcsqFww/R3lyWpqoQ0PeZ6kJY1yXvFmtCMUgsSKiEiJSO6NC79IcmxA6XxeFz9dO7mWQLs1ZnGBB2VRhaMisBE6IpqxiRFURECFmnDc3fj7jeOzm3Xqs54PXaLoY0bu4lLb55eFxf7L0Ebk+7+w6dWHU288+fivGaLDBBAMe1S8HpFprQQXT2ih8OtOye+n9e+t0toihia/kQLku5q9KXLuPOe67vhTrH1pl5Pb8E8fXCVIO/vEXxy+A/S5FFgIAAA==
66
65
  http_version:
67
- recorded_at: Fri, 05 Oct 2018 20:06:26 GMT
66
+ recorded_at: Fri, 28 Jun 2019 19:21:57 GMT
68
67
  recorded_with: VCR 4.0.0
@@ -0,0 +1,60 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: https://auth0-sdk-tests.auth0.com/api/v2/resource-servers/5d1668d6851f980681712383
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - "*/*"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - rest-client/2.0.2 (darwin17.7.0 x86_64) ruby/2.5.1p57
16
+ Content-Type:
17
+ - application/json
18
+ Auth0-Client:
19
+ - eyJuYW1lIjoicnVieS1hdXRoMCIsInZlcnNpb24iOiI0LjcuMCIsImVudiI6eyJydWJ5IjoiMi41LjEifX0=
20
+ Authorization:
21
+ - Bearer API_TOKEN
22
+ Host:
23
+ - auth0-sdk-tests.auth0.com
24
+ response:
25
+ status:
26
+ code: 204
27
+ message: No Content
28
+ headers:
29
+ Date:
30
+ - Fri, 28 Jun 2019 19:22:20 GMT
31
+ Content-Type:
32
+ - application/json; charset=utf-8
33
+ Connection:
34
+ - keep-alive
35
+ Ot-Tracer-Spanid:
36
+ - 558eeafa72b2004a
37
+ Ot-Tracer-Traceid:
38
+ - 3919853d1186f854
39
+ Ot-Tracer-Sampled:
40
+ - 'true'
41
+ X-Ratelimit-Limit:
42
+ - '10'
43
+ X-Ratelimit-Remaining:
44
+ - '8'
45
+ X-Ratelimit-Reset:
46
+ - '1561749742'
47
+ Vary:
48
+ - origin,accept-encoding
49
+ Cache-Control:
50
+ - private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
51
+ Strict-Transport-Security:
52
+ - max-age=15724800
53
+ X-Robots-Tag:
54
+ - noindex, nofollow, nosnippet, noarchive
55
+ body:
56
+ encoding: UTF-8
57
+ string: ''
58
+ http_version:
59
+ recorded_at: Fri, 28 Jun 2019 19:22:20 GMT
60
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,60 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: https://auth0-sdk-tests.auth0.com/api/v2/roles/rol_3hkVHzGY5N5F9per
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - "*/*"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - rest-client/2.0.2 (darwin17.7.0 x86_64) ruby/2.5.1p57
16
+ Content-Type:
17
+ - application/json
18
+ Auth0-Client:
19
+ - eyJuYW1lIjoicnVieS1hdXRoMCIsInZlcnNpb24iOiI0LjcuMCIsImVudiI6eyJydWJ5IjoiMi41LjEifX0=
20
+ Authorization:
21
+ - Bearer API_TOKEN
22
+ Host:
23
+ - auth0-sdk-tests.auth0.com
24
+ response:
25
+ status:
26
+ code: 204
27
+ message: No Content
28
+ headers:
29
+ Date:
30
+ - Fri, 28 Jun 2019 19:22:20 GMT
31
+ Content-Type:
32
+ - application/json; charset=utf-8
33
+ Connection:
34
+ - keep-alive
35
+ Ot-Tracer-Spanid:
36
+ - 22e1927378b4d7bc
37
+ Ot-Tracer-Traceid:
38
+ - 67bc7f5f37455748
39
+ Ot-Tracer-Sampled:
40
+ - 'true'
41
+ X-Ratelimit-Limit:
42
+ - '10'
43
+ X-Ratelimit-Remaining:
44
+ - '7'
45
+ X-Ratelimit-Reset:
46
+ - '1561749743'
47
+ Vary:
48
+ - origin,accept-encoding
49
+ Cache-Control:
50
+ - private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
51
+ Strict-Transport-Security:
52
+ - max-age=15724800
53
+ X-Robots-Tag:
54
+ - noindex, nofollow, nosnippet, noarchive
55
+ body:
56
+ encoding: UTF-8
57
+ string: ''
58
+ http_version:
59
+ recorded_at: Fri, 28 Jun 2019 19:22:20 GMT
60
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+ describe Auth0::Api::V2::Anomaly do
3
+ let(:client) { Auth0Client.new(v2_creds) }
4
+ let(:ip) { '192.0.2.0' }
5
+
6
+ describe '.check_if_ip_is_blocked', vcr: true do
7
+ it 'should return 200 response code' do
8
+ expect { client.check_if_ip_is_blocked(ip) }.to_not raise_error
9
+ end
10
+ end
11
+
12
+ describe '.remove_ip_block', vcr: true do
13
+ it 'should remove an IP successfully' do
14
+ expect { client.remove_ip_block(ip) }.to_not raise_error
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,145 @@
1
+ require 'spec_helper'
2
+
3
+ describe Auth0::Api::V2::Roles do
4
+ attr_reader :client, :test_user, :test_role_name, :test_permission, :test_api, :test_role
5
+
6
+ before(:all) do
7
+ @client ||= Auth0::Client.new(v2_creds)
8
+
9
+ @test_user_name = "#{entity_suffix}-username-for-roles"
10
+ @test_user_email = "#{entity_suffix}-#{@test_user_name}@auth0.com"
11
+
12
+ @test_api_name = "#{entity_suffix}-test-api-for-roles"
13
+
14
+ @test_role_name = "#{entity_suffix}-test-role"
15
+
16
+ @test_permission_name = "#{entity_suffix}-test-permission"
17
+ @test_permission = Permission.new(@test_permission_name, @test_api_name)
18
+
19
+ VCR.use_cassette('Auth0_Api_V2_Roles/create_test_user') do
20
+ @test_user ||= client.create_user(
21
+ @test_user_name,
22
+ email: @test_user_email,
23
+ password: Faker::Internet.password,
24
+ connection: Auth0::Api::AuthenticationEndpoints::UP_AUTH
25
+ )
26
+ end
27
+
28
+ VCR.use_cassette('Auth0_Api_V2_Roles/create_test_api') do
29
+ @test_api ||= client.create_resource_server(
30
+ @test_api_name,
31
+ name: @test_api_name,
32
+ scopes: [{ value: @test_permission_name }]
33
+ )
34
+ end
35
+
36
+ VCR.use_cassette('Auth0_Api_V2_Roles/create_test_role') do
37
+ @test_role ||= client.create_role(
38
+ @test_role_name,
39
+ description: 'Test role description'
40
+ )
41
+ end
42
+ end
43
+
44
+ after(:all) do
45
+ VCR.use_cassette('Auth0_Api_V2_Roles/delete_test_user') do
46
+ client.delete_user test_user['user_id']
47
+ end
48
+
49
+ VCR.use_cassette('Auth0_Api_V2_Roles/delete_test_api') do
50
+ client.delete_resource_server test_api['id']
51
+ end
52
+ end
53
+
54
+ describe '.create_role' do
55
+ it 'should create the Role successfully' do
56
+ expect(test_role).to include('id', 'name', 'description')
57
+ expect(test_role).to include(
58
+ 'name' => @test_role_name,
59
+ 'description' => 'Test role description'
60
+ )
61
+ end
62
+ end
63
+
64
+ describe '.get_role', vcr: true do
65
+ let(:test_get_role) { client.get_role test_role['id'] }
66
+
67
+ it 'should get the Role successfully' do
68
+ expect(test_get_role).to include('id', 'name', 'description')
69
+ expect(test_get_role).to include(
70
+ 'id' => test_role['id'],
71
+ 'name' => @test_role_name,
72
+ 'description' => 'Test role description'
73
+ )
74
+ end
75
+ end
76
+
77
+ describe '.get_roles', vcr: true do
78
+ it 'should get the Role successfully' do
79
+ expect(client.get_roles.count).to be >= 1
80
+ end
81
+ end
82
+
83
+ describe '.update_role', vcr: true do
84
+ it 'should update the Role successfully' do
85
+ expect(
86
+ client.update_role(
87
+ test_role['id'],
88
+ name: 'New name',
89
+ description: 'New description'
90
+ )
91
+ ).to include(
92
+ 'name' => 'New name',
93
+ 'description' => 'New description'
94
+ )
95
+ end
96
+ end
97
+
98
+ describe '.add_role_users', vcr: true do
99
+ it 'should add a User to the Role successfully' do
100
+ expect { client.add_role_users test_role['id'], [test_user['user_id']] }.to_not raise_error
101
+ end
102
+ end
103
+
104
+ describe '.get_role_users', vcr: true do
105
+ let(:test_get_role_users) { client.get_role_users test_role['id'] }
106
+
107
+ it 'should get exactly 1 User' do
108
+ expect(test_get_role_users.count).to equal 1
109
+ end
110
+
111
+ it 'should get the added User from the Role successfully' do
112
+ expect(test_get_role_users[0]['user_id']).to eq(test_user['user_id'])
113
+ end
114
+ end
115
+
116
+ describe '.add_role_permissions', vcr: true do
117
+ it 'should add a Permission to the Role successfully' do
118
+ expect { client.add_role_permissions test_role['id'], [test_permission] }.to_not raise_error
119
+ end
120
+ end
121
+
122
+ describe '.get_role_permissions', vcr: true do
123
+ let(:test_get_role_permissions) { client.get_role_permissions test_role['id'] }
124
+
125
+ it 'should get exactly 1 Permission' do
126
+ expect(test_get_role_permissions.count).to equal 1
127
+ end
128
+
129
+ it 'should get the added Permission from the Role successfully' do
130
+ expect(test_get_role_permissions[0]['permission_name']).to eq("#{entity_suffix}-test-permission")
131
+ end
132
+ end
133
+
134
+ describe '.remove_role_permissions', vcr: true do
135
+ it 'should remove a Permission from the Role successfully' do
136
+ expect { client.remove_role_permissions test_role['id'], [test_permission] }.to_not raise_error
137
+ end
138
+ end
139
+
140
+ describe '.delete_role', vcr: true do
141
+ it 'should delete the Role successfully' do
142
+ expect { client.delete_role test_role['id'] }.to_not raise_error
143
+ end
144
+ end
145
+ end