descope 1.0.6 → 1.0.7

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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yaml +2 -2
  3. data/.github/workflows/publish-gem.yaml +10 -3
  4. data/.gitignore +2 -0
  5. data/.ruby-version +1 -1
  6. data/Gemfile +7 -7
  7. data/Gemfile.lock +68 -55
  8. data/README.md +159 -51
  9. data/examples/ruby-on-rails-api/descope/Gemfile +8 -8
  10. data/examples/ruby-on-rails-api/descope/Gemfile.lock +1 -1
  11. data/examples/ruby-on-rails-api/descope/package-lock.json +187 -131
  12. data/examples/ruby-on-rails-api/descope/package.json +1 -1
  13. data/examples/ruby-on-rails-api/descope/yarn.lock +182 -84
  14. data/lib/descope/api/v1/auth/enchantedlink.rb +3 -1
  15. data/lib/descope/api/v1/auth/magiclink.rb +3 -1
  16. data/lib/descope/api/v1/auth/otp.rb +3 -1
  17. data/lib/descope/api/v1/auth/password.rb +6 -2
  18. data/lib/descope/api/v1/auth/totp.rb +3 -1
  19. data/lib/descope/api/v1/auth.rb +47 -12
  20. data/lib/descope/api/v1/management/common.rb +20 -5
  21. data/lib/descope/api/v1/management/sso_application.rb +236 -0
  22. data/lib/descope/api/v1/management/sso_settings.rb +2 -24
  23. data/lib/descope/api/v1/management/user.rb +151 -13
  24. data/lib/descope/api/v1/management.rb +2 -0
  25. data/lib/descope/api/v1/session.rb +37 -4
  26. data/lib/descope/mixins/common.rb +1 -0
  27. data/lib/descope/mixins/http.rb +60 -9
  28. data/lib/descope/mixins/initializer.rb +2 -1
  29. data/lib/descope/mixins/logging.rb +12 -4
  30. data/lib/descope/version.rb +1 -1
  31. data/spec/descope/api/v1/auth_spec.rb +29 -0
  32. data/spec/descope/api/v1/auth_token_extraction_spec.rb +126 -0
  33. data/spec/descope/api/v1/session_refresh_spec.rb +98 -0
  34. data/spec/factories/user.rb +1 -1
  35. data/spec/integration/lib.descope/api/v1/auth/enchantedlink_spec.rb +1 -1
  36. data/spec/integration/lib.descope/api/v1/auth/magiclink_spec.rb +1 -1
  37. data/spec/integration/lib.descope/api/v1/auth/otp_spec.rb +1 -1
  38. data/spec/integration/lib.descope/api/v1/auth/session_spec.rb +49 -0
  39. data/spec/integration/lib.descope/api/v1/auth/totp_spec.rb +1 -1
  40. data/spec/integration/lib.descope/api/v1/management/access_key_spec.rb +3 -0
  41. data/spec/integration/lib.descope/api/v1/management/audit_spec.rb +5 -3
  42. data/spec/integration/lib.descope/api/v1/management/authz_spec.rb +2 -0
  43. data/spec/integration/lib.descope/api/v1/management/flow_spec.rb +3 -1
  44. data/spec/integration/lib.descope/api/v1/management/permissions_spec.rb +4 -2
  45. data/spec/integration/lib.descope/api/v1/management/project_spec.rb +2 -0
  46. data/spec/integration/lib.descope/api/v1/management/roles_spec.rb +2 -0
  47. data/spec/integration/lib.descope/api/v1/management/user_spec.rb +55 -6
  48. data/spec/lib.descope/api/v1/auth/enchantedlink_spec.rb +11 -2
  49. data/spec/lib.descope/api/v1/auth/password_spec.rb +10 -1
  50. data/spec/lib.descope/api/v1/auth_spec.rb +167 -5
  51. data/spec/lib.descope/api/v1/cookie_domain_fix_integration_spec.rb +245 -0
  52. data/spec/lib.descope/api/v1/management/sso_application_spec.rb +217 -0
  53. data/spec/lib.descope/api/v1/management/sso_settings_spec.rb +2 -2
  54. data/spec/lib.descope/api/v1/management/user_spec.rb +134 -46
  55. data/spec/lib.descope/api/v1/session_spec.rb +119 -6
  56. data/spec/lib.descope/mixins/http_spec.rb +218 -0
  57. data/spec/support/client_config.rb +0 -1
  58. data/spec/support/utils.rb +6 -0
  59. metadata +13 -8
@@ -37,7 +37,7 @@
37
37
  "devDependencies": {
38
38
  "dotenv": "^16.4.5",
39
39
  "env": "^0.0.2",
40
- "esbuild": "^0.20.2",
40
+ "esbuild": "^0.25.0",
41
41
  "esbuild-envfile-plugin": "^1.0.5"
42
42
  }
43
43
  }
@@ -102,30 +102,150 @@
102
102
  "@descope/web-js-sdk" "1.10.28"
103
103
  tslib "2.6.2"
104
104
 
105
- "@descope/web-js-sdk@>=1":
106
- version "1.10.29"
107
- resolved "https://registry.npmjs.org/@descope/web-js-sdk/-/web-js-sdk-1.10.29.tgz"
108
- integrity sha512-423ORqAJSfLJfsCfctDwUCsgzSTeSdKaSiuwK1pE5eq4A9w+MFDh6k8wcCe0T2miLJast4ztHZg1ue4ArC4I6Q==
105
+ "@descope/web-js-sdk@1.10.28":
106
+ version "1.10.28"
107
+ resolved "https://registry.npmjs.org/@descope/web-js-sdk/-/web-js-sdk-1.10.28.tgz"
108
+ integrity sha512-pBmNFX0B+laUWTQ97b99uSZVD+l1T5KftBAokvIVsvSLqnY0qBcz4HIoT/+8BlcBdP4BwPYUrjuTvlmP7i9NuQ==
109
109
  dependencies:
110
110
  "@descope/core-js-sdk" "2.12.0"
111
111
  "@fingerprintjs/fingerprintjs-pro" "3.9.2"
112
112
  js-cookie "3.0.5"
113
113
  tslib "2.6.2"
114
114
 
115
- "@descope/web-js-sdk@1.10.28":
116
- version "1.10.28"
117
- resolved "https://registry.npmjs.org/@descope/web-js-sdk/-/web-js-sdk-1.10.28.tgz"
118
- integrity sha512-pBmNFX0B+laUWTQ97b99uSZVD+l1T5KftBAokvIVsvSLqnY0qBcz4HIoT/+8BlcBdP4BwPYUrjuTvlmP7i9NuQ==
115
+ "@descope/web-js-sdk@>=1":
116
+ version "1.10.29"
117
+ resolved "https://registry.npmjs.org/@descope/web-js-sdk/-/web-js-sdk-1.10.29.tgz"
118
+ integrity sha512-423ORqAJSfLJfsCfctDwUCsgzSTeSdKaSiuwK1pE5eq4A9w+MFDh6k8wcCe0T2miLJast4ztHZg1ue4ArC4I6Q==
119
119
  dependencies:
120
120
  "@descope/core-js-sdk" "2.12.0"
121
121
  "@fingerprintjs/fingerprintjs-pro" "3.9.2"
122
122
  js-cookie "3.0.5"
123
123
  tslib "2.6.2"
124
124
 
125
- "@esbuild/darwin-arm64@0.20.2":
126
- version "0.20.2"
127
- resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz"
128
- integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==
125
+ "@esbuild/aix-ppc64@0.25.0":
126
+ version "0.25.0"
127
+ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz#499600c5e1757a524990d5d92601f0ac3ce87f64"
128
+ integrity sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==
129
+
130
+ "@esbuild/android-arm64@0.25.0":
131
+ version "0.25.0"
132
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz#b9b8231561a1dfb94eb31f4ee056b92a985c324f"
133
+ integrity sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==
134
+
135
+ "@esbuild/android-arm@0.25.0":
136
+ version "0.25.0"
137
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz#ca6e7888942505f13e88ac9f5f7d2a72f9facd2b"
138
+ integrity sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==
139
+
140
+ "@esbuild/android-x64@0.25.0":
141
+ version "0.25.0"
142
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz#e765ea753bac442dfc9cb53652ce8bd39d33e163"
143
+ integrity sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==
144
+
145
+ "@esbuild/darwin-arm64@0.25.0":
146
+ version "0.25.0"
147
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz#fa394164b0d89d4fdc3a8a21989af70ef579fa2c"
148
+ integrity sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==
149
+
150
+ "@esbuild/darwin-x64@0.25.0":
151
+ version "0.25.0"
152
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz#91979d98d30ba6e7d69b22c617cc82bdad60e47a"
153
+ integrity sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==
154
+
155
+ "@esbuild/freebsd-arm64@0.25.0":
156
+ version "0.25.0"
157
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz#b97e97073310736b430a07b099d837084b85e9ce"
158
+ integrity sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==
159
+
160
+ "@esbuild/freebsd-x64@0.25.0":
161
+ version "0.25.0"
162
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz#f3b694d0da61d9910ec7deff794d444cfbf3b6e7"
163
+ integrity sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==
164
+
165
+ "@esbuild/linux-arm64@0.25.0":
166
+ version "0.25.0"
167
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz#f921f699f162f332036d5657cad9036f7a993f73"
168
+ integrity sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==
169
+
170
+ "@esbuild/linux-arm@0.25.0":
171
+ version "0.25.0"
172
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz#cc49305b3c6da317c900688995a4050e6cc91ca3"
173
+ integrity sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==
174
+
175
+ "@esbuild/linux-ia32@0.25.0":
176
+ version "0.25.0"
177
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz#3e0736fcfab16cff042dec806247e2c76e109e19"
178
+ integrity sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==
179
+
180
+ "@esbuild/linux-loong64@0.25.0":
181
+ version "0.25.0"
182
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz#ea2bf730883cddb9dfb85124232b5a875b8020c7"
183
+ integrity sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==
184
+
185
+ "@esbuild/linux-mips64el@0.25.0":
186
+ version "0.25.0"
187
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz#4cababb14eede09248980a2d2d8b966464294ff1"
188
+ integrity sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==
189
+
190
+ "@esbuild/linux-ppc64@0.25.0":
191
+ version "0.25.0"
192
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz#8860a4609914c065373a77242e985179658e1951"
193
+ integrity sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==
194
+
195
+ "@esbuild/linux-riscv64@0.25.0":
196
+ version "0.25.0"
197
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz#baf26e20bb2d38cfb86ee282dff840c04f4ed987"
198
+ integrity sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==
199
+
200
+ "@esbuild/linux-s390x@0.25.0":
201
+ version "0.25.0"
202
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz#8323afc0d6cb1b6dc6e9fd21efd9e1542c3640a4"
203
+ integrity sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==
204
+
205
+ "@esbuild/linux-x64@0.25.0":
206
+ version "0.25.0"
207
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz#08fcf60cb400ed2382e9f8e0f5590bac8810469a"
208
+ integrity sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==
209
+
210
+ "@esbuild/netbsd-arm64@0.25.0":
211
+ version "0.25.0"
212
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz#935c6c74e20f7224918fbe2e6c6fe865b6c6ea5b"
213
+ integrity sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==
214
+
215
+ "@esbuild/netbsd-x64@0.25.0":
216
+ version "0.25.0"
217
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz#414677cef66d16c5a4d210751eb2881bb9c1b62b"
218
+ integrity sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==
219
+
220
+ "@esbuild/openbsd-arm64@0.25.0":
221
+ version "0.25.0"
222
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz#8fd55a4d08d25cdc572844f13c88d678c84d13f7"
223
+ integrity sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==
224
+
225
+ "@esbuild/openbsd-x64@0.25.0":
226
+ version "0.25.0"
227
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz#0c48ddb1494bbc2d6bcbaa1429a7f465fa1dedde"
228
+ integrity sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==
229
+
230
+ "@esbuild/sunos-x64@0.25.0":
231
+ version "0.25.0"
232
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz#86ff9075d77962b60dd26203d7352f92684c8c92"
233
+ integrity sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==
234
+
235
+ "@esbuild/win32-arm64@0.25.0":
236
+ version "0.25.0"
237
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz#849c62327c3229467f5b5cd681bf50588442e96c"
238
+ integrity sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==
239
+
240
+ "@esbuild/win32-ia32@0.25.0":
241
+ version "0.25.0"
242
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz#f62eb480cd7cca088cb65bb46a6db25b725dc079"
243
+ integrity sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==
244
+
245
+ "@esbuild/win32-x64@0.25.0":
246
+ version "0.25.0"
247
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz#c8e119a30a7c8d60b9d2e22d2073722dde3b710b"
248
+ integrity sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==
129
249
 
130
250
  "@fingerprintjs/fingerprintjs-pro@3.9.2":
131
251
  version "3.9.2"
@@ -177,25 +297,6 @@
177
297
  resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz"
178
298
  integrity sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==
179
299
 
180
- "@types/prop-types@*":
181
- version "15.7.11"
182
- resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz"
183
- integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==
184
-
185
- "@types/react@>=17":
186
- version "18.2.48"
187
- resolved "https://registry.npmjs.org/@types/react/-/react-18.2.48.tgz"
188
- integrity sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==
189
- dependencies:
190
- "@types/prop-types" "*"
191
- "@types/scheduler" "*"
192
- csstype "^3.0.2"
193
-
194
- "@types/scheduler@*":
195
- version "0.16.8"
196
- resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz"
197
- integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==
198
-
199
300
  abbrev@1:
200
301
  version "1.1.1"
201
302
  resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
@@ -238,13 +339,13 @@ brace-expansion@^1.1.7:
238
339
  concat-map "0.0.1"
239
340
 
240
341
  braces@~3.0.2:
241
- version "3.0.2"
242
- resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
243
- integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
342
+ version "3.0.3"
343
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
344
+ integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
244
345
  dependencies:
245
- fill-range "^7.0.1"
346
+ fill-range "^7.1.1"
246
347
 
247
- chokidar@^3.5.2, "chokidar@>=3.0.0 <4.0.0":
348
+ "chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.2:
248
349
  version "3.6.0"
249
350
  resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
250
351
  integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
@@ -264,11 +365,6 @@ concat-map@0.0.1:
264
365
  resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
265
366
  integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
266
367
 
267
- csstype@^3.0.2:
268
- version "3.1.3"
269
- resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
270
- integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
271
-
272
368
  debug@^4:
273
369
  version "4.3.4"
274
370
  resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
@@ -276,16 +372,16 @@ debug@^4:
276
372
  dependencies:
277
373
  ms "2.1.2"
278
374
 
279
- dotenv@^16.4.5:
280
- version "16.4.5"
281
- resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz"
282
- integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==
283
-
284
375
  dotenv@16.0.3:
285
376
  version "16.0.3"
286
377
  resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz"
287
378
  integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==
288
379
 
380
+ dotenv@^16.4.5:
381
+ version "16.4.5"
382
+ resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz"
383
+ integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==
384
+
289
385
  env@^0.0.2:
290
386
  version "0.0.2"
291
387
  resolved "https://registry.npmjs.org/env/-/env-0.0.2.tgz"
@@ -298,39 +394,41 @@ esbuild-envfile-plugin@^1.0.5:
298
394
  dependencies:
299
395
  dotenv "16.0.3"
300
396
 
301
- esbuild@^0.20.2:
302
- version "0.20.2"
303
- resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz"
304
- integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==
397
+ esbuild@^0.25.0:
398
+ version "0.25.0"
399
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.0.tgz#0de1787a77206c5a79eeb634a623d39b5006ce92"
400
+ integrity sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==
305
401
  optionalDependencies:
306
- "@esbuild/aix-ppc64" "0.20.2"
307
- "@esbuild/android-arm" "0.20.2"
308
- "@esbuild/android-arm64" "0.20.2"
309
- "@esbuild/android-x64" "0.20.2"
310
- "@esbuild/darwin-arm64" "0.20.2"
311
- "@esbuild/darwin-x64" "0.20.2"
312
- "@esbuild/freebsd-arm64" "0.20.2"
313
- "@esbuild/freebsd-x64" "0.20.2"
314
- "@esbuild/linux-arm" "0.20.2"
315
- "@esbuild/linux-arm64" "0.20.2"
316
- "@esbuild/linux-ia32" "0.20.2"
317
- "@esbuild/linux-loong64" "0.20.2"
318
- "@esbuild/linux-mips64el" "0.20.2"
319
- "@esbuild/linux-ppc64" "0.20.2"
320
- "@esbuild/linux-riscv64" "0.20.2"
321
- "@esbuild/linux-s390x" "0.20.2"
322
- "@esbuild/linux-x64" "0.20.2"
323
- "@esbuild/netbsd-x64" "0.20.2"
324
- "@esbuild/openbsd-x64" "0.20.2"
325
- "@esbuild/sunos-x64" "0.20.2"
326
- "@esbuild/win32-arm64" "0.20.2"
327
- "@esbuild/win32-ia32" "0.20.2"
328
- "@esbuild/win32-x64" "0.20.2"
329
-
330
- fill-range@^7.0.1:
331
- version "7.0.1"
332
- resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
333
- integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
402
+ "@esbuild/aix-ppc64" "0.25.0"
403
+ "@esbuild/android-arm" "0.25.0"
404
+ "@esbuild/android-arm64" "0.25.0"
405
+ "@esbuild/android-x64" "0.25.0"
406
+ "@esbuild/darwin-arm64" "0.25.0"
407
+ "@esbuild/darwin-x64" "0.25.0"
408
+ "@esbuild/freebsd-arm64" "0.25.0"
409
+ "@esbuild/freebsd-x64" "0.25.0"
410
+ "@esbuild/linux-arm" "0.25.0"
411
+ "@esbuild/linux-arm64" "0.25.0"
412
+ "@esbuild/linux-ia32" "0.25.0"
413
+ "@esbuild/linux-loong64" "0.25.0"
414
+ "@esbuild/linux-mips64el" "0.25.0"
415
+ "@esbuild/linux-ppc64" "0.25.0"
416
+ "@esbuild/linux-riscv64" "0.25.0"
417
+ "@esbuild/linux-s390x" "0.25.0"
418
+ "@esbuild/linux-x64" "0.25.0"
419
+ "@esbuild/netbsd-arm64" "0.25.0"
420
+ "@esbuild/netbsd-x64" "0.25.0"
421
+ "@esbuild/openbsd-arm64" "0.25.0"
422
+ "@esbuild/openbsd-x64" "0.25.0"
423
+ "@esbuild/sunos-x64" "0.25.0"
424
+ "@esbuild/win32-arm64" "0.25.0"
425
+ "@esbuild/win32-ia32" "0.25.0"
426
+ "@esbuild/win32-x64" "0.25.0"
427
+
428
+ fill-range@^7.1.1:
429
+ version "7.1.1"
430
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
431
+ integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
334
432
  dependencies:
335
433
  to-regex-range "^5.0.1"
336
434
 
@@ -474,7 +572,7 @@ pstree.remy@^1.1.8:
474
572
  resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz"
475
573
  integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==
476
574
 
477
- react-dom@^18.2.0, react-dom@>=16.8:
575
+ react-dom@^18.2.0:
478
576
  version "18.2.0"
479
577
  resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz"
480
578
  integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
@@ -497,7 +595,7 @@ react-router@6.22.3:
497
595
  dependencies:
498
596
  "@remix-run/router" "1.15.3"
499
597
 
500
- "react@^16.9.0 || ^17.0.0 || ^18", react@^18.2.0, react@>=16.8, react@>=17:
598
+ react@^18.2.0:
501
599
  version "18.2.0"
502
600
  resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
503
601
  integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
@@ -511,17 +609,17 @@ readdirp@~3.6.0:
511
609
  dependencies:
512
610
  picomatch "^2.2.1"
513
611
 
514
- redux-thunk@^3.1.0, redux-thunk@3.1.0:
612
+ redux-thunk@3.1.0, redux-thunk@^3.1.0:
515
613
  version "3.1.0"
516
614
  resolved "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz"
517
615
  integrity sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==
518
616
 
519
- redux@^5.0.0, redux@^5.0.1, redux@5.0.1:
617
+ redux@5.0.1, redux@^5.0.1:
520
618
  version "5.0.1"
521
619
  resolved "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz"
522
620
  integrity sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==
523
621
 
524
- reselect@^5.0.1, reselect@5.1.0:
622
+ reselect@5.1.0, reselect@^5.0.1:
525
623
  version "5.1.0"
526
624
  resolved "https://registry.npmjs.org/reselect/-/reselect-5.1.0.tgz"
527
625
  integrity sha512-aw7jcGLDpSgNDyWBQLv2cedml85qd95/iszJjN988zX1t7AVRJi19d9kto5+W7oCfQ94gyo40dVbT6g2k4/kXg==
@@ -582,7 +680,7 @@ touch@^3.1.0:
582
680
  dependencies:
583
681
  nopt "~1.0.10"
584
682
 
585
- tslib@^2.4.1, tslib@2.6.2:
683
+ tslib@2.6.2, tslib@^2.4.1:
586
684
  version "2.6.2"
587
685
  resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
588
686
  integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
@@ -67,7 +67,9 @@ module Descope
67
67
  def enchanted_link_get_session(pending_ref = nil)
68
68
  # @see https://docs.descope.com/api/openapi/enchantedlink/operation/GetEnchantedLinkSession/
69
69
  res = post(GET_SESSION_ENCHANTEDLINK_AUTH_PATH, { pendingRef: pending_ref })
70
- generate_jwt_response(response_body: res, refresh_cookie: res['refreshJwt'])
70
+ cookies = res.fetch(COOKIE_DATA_NAME, nil) || res.fetch('cookies', {})
71
+ refresh_cookie = cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil) || res.fetch('refreshJwt', nil)
72
+ generate_jwt_response(response_body: res, refresh_cookie:)
71
73
  end
72
74
 
73
75
  private
@@ -42,7 +42,9 @@ module Descope
42
42
  def magiclink_verify_token(token = nil)
43
43
  validate_token_not_empty(token)
44
44
  res = post(VERIFY_MAGICLINK_AUTH_PATH, { token: })
45
- generate_jwt_response(response_body: res)
45
+ cookies = res.fetch(COOKIE_DATA_NAME, nil) || res.fetch('cookies', {})
46
+ refresh_cookie = cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil) || res.fetch('refreshJwt', nil)
47
+ generate_jwt_response(response_body: res, refresh_cookie:)
46
48
  end
47
49
 
48
50
  def magiclink_update_user_email(login_id: nil, email: nil, uri: nil, add_to_login_ids: nil, on_merge_use_existing: nil, provider_id: nil, template_id: nil, template_options: nil, refresh_token: nil)
@@ -63,7 +63,9 @@ module Descope
63
63
  code:
64
64
  }
65
65
  res = post(uri, request_params)
66
- generate_jwt_response(response_body: res, refresh_cookie: res.fetch('refreshJwt', {}))
66
+ cookies = res.fetch(COOKIE_DATA_NAME, nil) || res.fetch('cookies', {})
67
+ refresh_cookie = cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil) || res.fetch('refreshJwt', nil)
68
+ generate_jwt_response(response_body: res, refresh_cookie:)
67
69
  end
68
70
 
69
71
  def otp_update_user_email(login_id: nil, email: nil, refresh_token: nil, add_to_login_ids: false,
@@ -22,7 +22,9 @@ module Descope
22
22
 
23
23
  request_params[:user] = password_user_compose_update_body(**user) unless user.nil?
24
24
  res = post(SIGN_UP_PASSWORD_PATH, request_params)
25
- generate_jwt_response(response_body: res)
25
+ cookies = res.fetch(COOKIE_DATA_NAME, nil) || res.fetch('cookies', {})
26
+ refresh_cookie = cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil) || res.fetch('refreshJwt', nil)
27
+ generate_jwt_response(response_body: res, refresh_cookie:)
26
28
  end
27
29
 
28
30
  def password_sign_in(login_id: nil, password: nil, sso_app_id: nil)
@@ -38,7 +40,9 @@ module Descope
38
40
  ssoAppId: sso_app_id
39
41
  }
40
42
  res = post(SIGN_IN_PASSWORD_PATH, request_params)
41
- generate_jwt_response(response_body: res)
43
+ cookies = res.fetch(COOKIE_DATA_NAME, nil) || res.fetch('cookies', {})
44
+ refresh_cookie = cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil) || res.fetch('refreshJwt', nil)
45
+ generate_jwt_response(response_body: res, refresh_cookie:)
42
46
  end
43
47
 
44
48
  def password_replace(login_id: nil, old_password: nil, new_password: nil)
@@ -17,7 +17,9 @@ module Descope
17
17
  uri = VERIFY_TOTP_PATH
18
18
  body = totp_compose_signin_body(login_id, code, login_options)
19
19
  res = post(uri, body, {}, nil)
20
- generate_jwt_response(response_body: res, refresh_cookie: res.fetch('refreshJwt', {}))
20
+ cookies = res.fetch(COOKIE_DATA_NAME, nil) || res.fetch('cookies', {})
21
+ refresh_cookie = cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil) || res.fetch('refreshJwt', nil)
22
+ generate_jwt_response(response_body: res, refresh_cookie:)
21
23
  end
22
24
 
23
25
  def totp_sign_up(login_id: nil, user: nil, sso_app_id: nil)
@@ -34,7 +34,6 @@ module Descope
34
34
  end
35
35
 
36
36
  jwt_response = generate_auth_info(response_body, refresh_cookie, true, audience)
37
- @logger.debug "jwt_response: #{jwt_response}"
38
37
  jwt_response['user'] = response_body.key?('user') ? response_body['user'] : {}
39
38
  jwt_response['firstSeen'] = response_body.key?('firstSeen') ? response_body['firstSeen'] : true
40
39
 
@@ -54,7 +53,7 @@ module Descope
54
53
  raise AuthException.new('Access key should be a string!', code: 400)
55
54
  end
56
55
 
57
- res = post(EXCHANGE_AUTH_ACCESS_KEY_PATH, { loginOptions: login_options, audience: }, {}, access_key)
56
+ res = post(EXCHANGE_AUTH_ACCESS_KEY_PATH, { loginOptions: login_options, audience: audience }, {}, access_key)
58
57
  generate_auth_info(res, nil, false, audience)
59
58
  end
60
59
 
@@ -62,6 +61,8 @@ module Descope
62
61
  validate_refresh_token_not_nil(refresh_token)
63
62
  res = post(SELECT_TENANT_PATH, { tenantId: tenant_id }, {}, refresh_token)
64
63
  @logger.debug "select_tenant response: #{res}"
64
+ cookies = res.fetch('cookies')
65
+ generate_jwt_response(response_body: res, refresh_cookie: cookies.fetch(REFRESH_SESSION_COOKIE_NAME, nil))
65
66
  generate_jwt_response(
66
67
  response_body: res,
67
68
  refresh_cookie: res['refreshJwt']
@@ -71,7 +72,7 @@ module Descope
71
72
  def validate_permissions(jwt_response: nil, permissions: nil)
72
73
  # Validate that a jwt_response has been granted the specified permissions.
73
74
  # For a multi-tenant environment use validate_tenant_permissions function
74
- validate_tenant_permissions(jwt_response:, permissions:)
75
+ validate_tenant_permissions(jwt_response: jwt_response, permissions: permissions)
75
76
  end
76
77
 
77
78
  # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/AbcSize, Metrics/MethodLength
@@ -122,7 +123,7 @@ module Descope
122
123
  def validate_roles(jwt_response: nil, roles: nil)
123
124
  # Validate that a jwt_response has been granted the specified roles.
124
125
  # For a multi-tenant environment use validate_tenant_roles function
125
- validate_tenant_roles(jwt_response:, tenant: '', roles:)
126
+ validate_tenant_roles(jwt_response: jwt_response, tenant: '', roles: roles)
126
127
  end
127
128
 
128
129
  def validate_tenant_roles(jwt_response: nil, tenant: nil, roles: nil)
@@ -231,24 +232,58 @@ module Descope
231
232
  private
232
233
 
233
234
  def generate_auth_info(response_body, refresh_token, user_jwt, audience = nil)
234
- @logger.debug "generating auth info: #{response_body}, #{refresh_token}, #{user_jwt}, #{audience}"
235
+ @logger.debug "generating auth info: response_body: #{response_body}, refresh_token: #{refresh_token}, user_jwt: #{user_jwt}, audience: #{audience}"
235
236
  jwt_response = {}
236
237
 
237
238
  # validate the session token if sessionJwt is not empty
238
239
  st_jwt = response_body.fetch('sessionJwt', '')
239
240
  unless st_jwt.empty?
240
- @logger.debug "validating session token with refresh_token: #{refresh_token}" if st_jwt
241
- jwt_response[SESSION_TOKEN_NAME] = validate_token(st_jwt, audience) if st_jwt
241
+ @logger.debug 'found sessionJwt in response body, adding to jwt_response'
242
+ jwt_response[SESSION_TOKEN_NAME] = validate_token(st_jwt, audience)
243
+ end
244
+
245
+ # Check for session token in cookies if not found in response body
246
+ cookies = response_body.fetch('cookies', {})
247
+ if jwt_response[SESSION_TOKEN_NAME].nil?
248
+ cookies.each do |cookie_name, cookie_value|
249
+ if cookie_name == SESSION_COOKIE_NAME
250
+ @logger.debug "found session token in cookies with name #{cookie_name}, adding to jwt_response"
251
+ jwt_response[SESSION_TOKEN_NAME] = validate_token(cookie_value, audience)
252
+ break
253
+ end
254
+ end
242
255
  end
243
256
 
244
257
  # validate refresh token if refresh_token was passed or if refreshJwt is not empty
245
258
  rt_jwt = response_body.fetch('refreshJwt', '')
246
259
 
247
- if !refresh_token.nil? || !refresh_token.to_s.empty?
248
- @logger.debug "validating refresh token: #{refresh_token}" if refresh_token
249
- jwt_response[REFRESH_SESSION_TOKEN_NAME] = validate_token(refresh_token, audience)
250
- elsif !rt_jwt.empty?
260
+ if !rt_jwt.empty?
261
+ @logger.debug 'found refreshJwt in response body, adding to jwt_response'
262
+ @logger.debug 'validating refreshJwt token...'
251
263
  jwt_response[REFRESH_SESSION_TOKEN_NAME] = validate_token(rt_jwt, audience)
264
+ else
265
+ # Check cookies for refresh token
266
+ refresh_cookie_found = false
267
+ cookies.each do |cookie_name, cookie_value|
268
+ if cookie_name == REFRESH_SESSION_COOKIE_NAME && !cookie_value.to_s.empty?
269
+ @logger.debug "found refresh token in cookies with name #{cookie_name}, adding to jwt_response"
270
+ jwt_response[REFRESH_SESSION_TOKEN_NAME] = validate_token(cookie_value, audience)
271
+ refresh_cookie_found = true
272
+ break
273
+ end
274
+ end
275
+
276
+ # If not found in cookies, check if refresh_token parameter was passed
277
+ if !refresh_cookie_found && refresh_token && !refresh_token.to_s.empty?
278
+ @logger.debug 'refresh token not found in cookies, but refresh_token was passed, adding to jwt_response'
279
+ @logger.debug 'validating passed-in refresh token...'
280
+ jwt_response[REFRESH_SESSION_TOKEN_NAME] = validate_token(refresh_token, audience)
281
+ end
282
+ end
283
+
284
+ if jwt_response[REFRESH_SESSION_TOKEN_NAME].nil?
285
+ @logger.debug "Error: Could not find refreshJwt in response body: #{response_body} / cookies: #{cookies} / passed in refresh_token ->#{refresh_token}<-"
286
+ raise Descope::AuthException.new('Could not find refreshJwt in response body / cookies / passed in refresh_token', code: 500)
252
287
  end
253
288
 
254
289
  jwt_response = adjust_properties(jwt_response, user_jwt)
@@ -452,7 +487,7 @@ module Descope
452
487
  def exchange_token(uri, code)
453
488
  raise Descope::ArgumentException.new("Code can't be empty", code: 400) if code.nil? || code.empty?
454
489
 
455
- res = post(uri, { code: })
490
+ res = post(uri, { code: code })
456
491
  generate_jwt_response(
457
492
  response_body: res,
458
493
  refresh_cookie: res['refreshJwt']
@@ -17,6 +17,7 @@ module Descope
17
17
 
18
18
  # user
19
19
  USER_CREATE_PATH = '/v1/mgmt/user/create'
20
+ TEST_USER_CREATE_PATH = '/v1/mgmt/user/create/test'
20
21
  USER_CREATE_BATCH_PATH = '/v1/mgmt/user/create/batch'
21
22
  USER_UPDATE_PATH = '/v1/mgmt/user/update'
22
23
  USER_DELETE_PATH = '/v1/mgmt/user/delete'
@@ -37,6 +38,8 @@ module Descope
37
38
  USER_SET_TEMPORARY_PASSWORD_PATH = '/v1/mgmt/user/password/set/temporary'
38
39
  USER_SET_ACTIVE_PASSWORD_PATH = '/v1/mgmt/user/password/set/active'
39
40
  USER_SET_PASSWORD_PATH = '/v1/mgmt/user/password/set'
41
+ USER_SEARCH_PATH = "/v2/mgmt/user/search"
42
+ TEST_USERS_SEARCH_PATH = "/v2/mgmt/user/search/test"
40
43
  USER_EXPIRE_PASSWORD_PATH = '/v1/mgmt/user/password/expire'
41
44
  USER_ADD_TENANT_PATH = '/v1/mgmt/user/update/tenant/add'
42
45
  USER_REMOVE_TENANT_PATH = '/v1/mgmt/user/update/tenant/remove'
@@ -44,6 +47,7 @@ module Descope
44
47
  USER_GENERATE_MAGIC_LINK_FOR_TEST_PATH = '/v1/mgmt/tests/generate/magiclink'
45
48
  USER_GENERATE_ENCHANTED_LINK_FOR_TEST_PATH = '/v1/mgmt/tests/generate/enchantedlink'
46
49
  USER_GENERATE_EMBEDDED_LINK_PATH = '/v1/mgmt/user/signin/embeddedlink'
50
+ USER_PATCH_PATH = '/v1/mgmt/user/patch'
47
51
 
48
52
  # access key
49
53
  ACCESS_KEY_CREATE_PATH = '/v1/mgmt/accesskey/create'
@@ -54,13 +58,24 @@ module Descope
54
58
  ACCESS_KEY_ACTIVATE_PATH = '/v1/mgmt/accesskey/activate'
55
59
  ACCESS_KEY_DELETE_PATH = '/v1/mgmt/accesskey/delete'
56
60
 
57
- # sso
61
+ # sso application
62
+ SSO_APPLICATION_OIDC_CREATE_PATH = '/v1/mgmt/sso/idp/app/oidc/create'
63
+ SSO_APPLICATION_SAML_CREATE_PATH = '/v1/mgmt/sso/idp/app/saml/create'
64
+ SSO_APPLICATION_OIDC_UPDATE_PATH = '/v1/mgmt/sso/idp/app/oidc/update'
65
+ SSO_APPLICATION_SAML_UPDATE_PATH = '/v1/mgmt/sso/idp/app/saml/update'
66
+ SSO_APPLICATION_DELETE_PATH = '/v1/mgmt/sso/idp/app/delete'
67
+ SSO_APPLICATION_LOAD_PATH = '/v1/mgmt/sso/idp/app/load'
68
+ SSO_APPLICATION_LOAD_ALL_PATH = '/v1/mgmt/sso/idp/apps/load'
69
+
70
+ # sso settings
58
71
  SSO_SETTINGS_PATH = '/v2/mgmt/sso/settings'
72
+ SSO_METADATA_PATH = '/v1/mgmt/sso/metadata'
73
+ SSO_MAPPING_PATH = '/v1/mgmt/sso/mapping'
74
+ SSO_LOAD_SETTINGS_PATH = '/v2/mgmt/sso/settings' # v2 only
59
75
  SSO_OIDC_PATH = '/v1/mgmt/sso/oidc' # configure ssp settings via oidc
60
- SSO_OIDC_CREATE_APP_PATH = '/v1/mgmt/sso/idp/app/oidc/create'
61
- SSO_OIDC_UPDATE_APP_PATH = '/v1/mgmt/sso/idp/app/oidc/create'
62
- SSO_SAML_PATH = '/v1/mgmt/sso/saml' # configure ssp settings via saml
63
- SSO_SAML_METADATA_PATH = '/v1/mgmt/sso/saml/metadata' # configure ssp settings via saml metadata
76
+ SSO_CONFIGURE_OIDC_SETTINGS_PATH = '/v1/mgmt/sso/oidc'
77
+ SSO_CONFIGURE_SAML_SETTINGS_PATH = '/v1/mgmt/sso/saml'
78
+ SSO_CONFIGURE_SAML_METADATA_PATH = '/v1/mgmt/sso/saml/metadata'
64
79
 
65
80
  # SCIM
66
81
  SCIM_GROUPS_PATH = '/scim/v2/Groups'