descope 1.0.7 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yaml +51 -12
- data/.github/workflows/publish-gem.yaml +6 -33
- data/.github/workflows/release-please.yaml +36 -0
- data/.gitignore +3 -2
- data/.release-please-manifest.json +1 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +21 -0
- data/Gemfile +7 -6
- data/Gemfile.lock +33 -32
- data/README.md +11 -0
- data/examples/ruby-on-rails-api/descope/package-lock.json +16 -10
- data/examples/ruby-on-rails-api/descope/yarn.lock +3 -3
- data/lib/descope/mixins/http.rb +2 -2
- data/lib/descope/mixins/initializer.rb +4 -2
- data/lib/descope/version.rb +1 -1
- data/spec/integration/lib.descope/api/v1/auth/enchantedlink_spec.rb +19 -21
- data/spec/integration/lib.descope/api/v1/auth/magiclink_spec.rb +5 -1
- data/spec/integration/lib.descope/api/v1/auth/otp_spec.rb +5 -1
- data/spec/integration/lib.descope/api/v1/auth/session_spec.rb +24 -5
- data/spec/integration/lib.descope/api/v1/auth/totp_spec.rb +5 -1
- data/spec/integration/lib.descope/api/v1/management/access_key_spec.rb +10 -2
- data/spec/integration/lib.descope/api/v1/management/authz_spec.rb +26 -5
- data/spec/integration/lib.descope/api/v1/management/permissions_spec.rb +20 -2
- data/spec/integration/lib.descope/api/v1/management/project_spec.rb +16 -2
- data/spec/integration/lib.descope/api/v1/management/roles_spec.rb +114 -36
- data/spec/integration/lib.descope/api/v1/management/user_spec.rb +20 -3
- data/spec/lib.descope/mixins/http_spec.rb +17 -6
- data/spec/support/utils.rb +15 -0
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: beb56da5c28d3ae76435ec8ffd7641e39b08f89bc67a7f166f1f8278f191186a
|
|
4
|
+
data.tar.gz: e3abb55707b28c5678e09d0b0fcdfb9449b38b32b0d3f28d032ada03cd226acf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fac54ea06b4b828bfc89a342c7acc0bb5ad50b0fea589d0d9860ef69923dc60919fcad3684f3317a51dfdcdc2e46392e0144d21f4f02440964f7155f8a5424fe
|
|
7
|
+
data.tar.gz: 62a41f8f2c5e4df22fbe259bc657608c66e86b9994fd803a4ba1ba7c4075cc376ceef49237256cb18acbb8915163bdf6bef03b66223318509c2fd30970abe2e1
|
data/.github/workflows/ci.yaml
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
name: CI
|
|
2
|
+
permissions:
|
|
3
|
+
contents: read
|
|
2
4
|
|
|
3
5
|
on:
|
|
4
6
|
push:
|
|
@@ -17,26 +19,63 @@ env:
|
|
|
17
19
|
DESCOPE_LOG_LEVEL: ${{ github.event.inputs.DESCOPE_LOG_LEVEL || 'info' }}
|
|
18
20
|
|
|
19
21
|
jobs:
|
|
20
|
-
|
|
21
|
-
name:
|
|
22
|
+
unit-tests:
|
|
23
|
+
name: Unit Tests
|
|
22
24
|
runs-on: ubuntu-latest
|
|
25
|
+
permissions:
|
|
26
|
+
contents: read
|
|
27
|
+
strategy:
|
|
28
|
+
fail-fast: false
|
|
29
|
+
matrix:
|
|
30
|
+
# Run unit tests in parallel across 4 workers
|
|
31
|
+
# NOTE: ci_node_total and ci_node_index must be kept in sync
|
|
32
|
+
ci_node_total: [4]
|
|
33
|
+
ci_node_index: [0, 1, 2, 3]
|
|
23
34
|
steps:
|
|
24
35
|
- name: Checkout Code
|
|
25
|
-
uses: actions/checkout@
|
|
36
|
+
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
26
37
|
|
|
27
|
-
- uses: ruby/setup-ruby@
|
|
38
|
+
- uses: ruby/setup-ruby@8aeb6ff8030dd539317f8e1769a044873b56ea71 # v1.268.0
|
|
28
39
|
with:
|
|
29
|
-
#
|
|
30
|
-
bundler-cache: false
|
|
40
|
+
bundler-cache: true # Cache bundle based on Gemfile.lock
|
|
31
41
|
|
|
32
|
-
- name:
|
|
33
|
-
run: bundle
|
|
42
|
+
- name: Run RSpec Unit Tests (Parallel)
|
|
43
|
+
run: bundle exec parallel_rspec spec/lib.descope -n ${{ matrix.ci_node_total }} --only-group ${{ matrix.ci_node_index }}
|
|
34
44
|
|
|
35
|
-
|
|
36
|
-
|
|
45
|
+
integration-tests:
|
|
46
|
+
name: Integration Tests
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
permissions:
|
|
49
|
+
contents: read
|
|
50
|
+
steps:
|
|
51
|
+
- name: Checkout Code
|
|
52
|
+
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
53
|
+
|
|
54
|
+
- uses: ruby/setup-ruby@8aeb6ff8030dd539317f8e1769a044873b56ea71 # v1.268.0
|
|
55
|
+
with:
|
|
56
|
+
bundler-cache: true # Cache bundle based on Gemfile.lock
|
|
57
|
+
|
|
58
|
+
- name: Run Auth Integration Tests
|
|
59
|
+
env:
|
|
60
|
+
DESCOPE_MANAGEMENT_KEY: ${{ secrets.DESCOPE_MANAGEMENT_KEY }}
|
|
61
|
+
DESCOPE_PROJECT_ID: ${{ secrets.DESCOPE_PROJECT_ID }}
|
|
62
|
+
run: bundle exec rspec spec/integration/lib.descope/api/v1/auth
|
|
37
63
|
|
|
38
|
-
- name: Run
|
|
64
|
+
- name: Run Management Integration Tests (excluding global state tests)
|
|
39
65
|
env:
|
|
40
66
|
DESCOPE_MANAGEMENT_KEY: ${{ secrets.DESCOPE_MANAGEMENT_KEY }}
|
|
41
67
|
DESCOPE_PROJECT_ID: ${{ secrets.DESCOPE_PROJECT_ID }}
|
|
42
|
-
run:
|
|
68
|
+
run: |
|
|
69
|
+
bundle exec rspec spec/integration/lib.descope/api/v1/management \
|
|
70
|
+
--exclude-pattern "spec/integration/lib.descope/api/v1/management/project_spec.rb" \
|
|
71
|
+
--exclude-pattern "spec/integration/lib.descope/api/v1/management/authz_spec.rb"
|
|
72
|
+
|
|
73
|
+
- name: Run Global State Integration Tests (project & authz)
|
|
74
|
+
env:
|
|
75
|
+
DESCOPE_MANAGEMENT_KEY: ${{ secrets.DESCOPE_MANAGEMENT_KEY }}
|
|
76
|
+
DESCOPE_PROJECT_ID: ${{ secrets.DESCOPE_PROJECT_ID }}
|
|
77
|
+
AUTHZ_FULL_TEST: "true"
|
|
78
|
+
run: |
|
|
79
|
+
bundle exec rspec spec/integration/lib.descope/api/v1/management/project_spec.rb \
|
|
80
|
+
spec/integration/lib.descope/api/v1/management/authz_spec.rb
|
|
81
|
+
|
|
@@ -10,12 +10,12 @@ jobs:
|
|
|
10
10
|
runs-on: ubuntu-latest
|
|
11
11
|
steps:
|
|
12
12
|
- name: Checkout Code
|
|
13
|
-
uses: actions/checkout@
|
|
13
|
+
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
14
14
|
with:
|
|
15
15
|
ref: main
|
|
16
16
|
fetch-depth: 0
|
|
17
17
|
|
|
18
|
-
- uses: ruby/setup-ruby@
|
|
18
|
+
- uses: ruby/setup-ruby@8aeb6ff8030dd539317f8e1769a044873b56ea71 # v1.268.0
|
|
19
19
|
with:
|
|
20
20
|
# We are not letting this step to run bundle install, we will do it later
|
|
21
21
|
bundler-cache: false
|
|
@@ -23,38 +23,11 @@ jobs:
|
|
|
23
23
|
- name: Install dependencies
|
|
24
24
|
run: bundle install
|
|
25
25
|
|
|
26
|
-
- name:
|
|
27
|
-
id: get_token
|
|
28
|
-
uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a # v2.1.0
|
|
29
|
-
with:
|
|
30
|
-
private_key: ${{ secrets.RELEASE_APP_PEM }}
|
|
31
|
-
app_id: ${{ secrets.RELEASE_APP_ID }}
|
|
32
|
-
|
|
33
|
-
- name: Bump version
|
|
34
|
-
run: |
|
|
35
|
-
NEW_VERSION=$(echo ${{ github.event.release.tag_name }} | sed 's/^v//') # strip the 'v' from the tag if present
|
|
36
|
-
sed -i "s/^ VERSION = '.*'/ VERSION = '${NEW_VERSION}'/g" lib/descope/version.rb
|
|
37
|
-
echo -e "Updated version file:\n $(cat lib/descope/version.rb)"
|
|
38
|
-
|
|
39
|
-
- name: Commit changes
|
|
26
|
+
- name: Verify version
|
|
40
27
|
run: |
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
git add ./lib/descope/version.rb
|
|
45
|
-
git commit -m "Bump version to $NEW_VERSION"
|
|
46
|
-
git push origin main
|
|
47
|
-
env:
|
|
48
|
-
GITHUB_TOKEN: ${{ steps.get_token.outputs.token }}
|
|
49
|
-
|
|
50
|
-
- name: Repoint the tag to latest commit
|
|
51
|
-
run: |
|
|
52
|
-
git tag -d ${{ github.event.release.tag_name }}
|
|
53
|
-
git tag ${{ github.event.release.tag_name }} -m "Release $NEW_VERSION"
|
|
54
|
-
git push origin :${{ github.event.release.tag_name }}
|
|
55
|
-
git push
|
|
56
|
-
env:
|
|
57
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
28
|
+
echo "Version file contents:"
|
|
29
|
+
cat lib/descope/version.rb
|
|
30
|
+
echo "Release tag: ${{ github.event.release.tag_name }}"
|
|
58
31
|
|
|
59
32
|
- name: Publish to RubyGems
|
|
60
33
|
run: |
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Release Please
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
release-please:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- name: Get token
|
|
16
|
+
id: get_token
|
|
17
|
+
uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a # v2.1.0
|
|
18
|
+
with:
|
|
19
|
+
private_key: ${{ secrets.RELEASE_APP_PEM }}
|
|
20
|
+
app_id: ${{ secrets.RELEASE_APP_ID }}
|
|
21
|
+
|
|
22
|
+
- uses: googleapis/release-please-action@16a9c90856f42705d54a6fda1823352bdc62cf38 # v4.4.0
|
|
23
|
+
id: release
|
|
24
|
+
with:
|
|
25
|
+
# The release-please-config.json and .release-please-manifest.json files
|
|
26
|
+
# are automatically detected in the root of the repository
|
|
27
|
+
token: ${{ steps.get_token.outputs.token }}
|
|
28
|
+
|
|
29
|
+
- name: Show outputs
|
|
30
|
+
if: ${{ steps.release.outputs.release_created }}
|
|
31
|
+
run: |
|
|
32
|
+
echo "Release created: ${{ steps.release.outputs.release_created }}"
|
|
33
|
+
echo "Tag name: ${{ steps.release.outputs.tag_name }}"
|
|
34
|
+
echo "Major: ${{ steps.release.outputs.major }}"
|
|
35
|
+
echo "Minor: ${{ steps.release.outputs.minor }}"
|
|
36
|
+
echo "Patch: ${{ steps.release.outputs.patch }}"
|
data/.gitignore
CHANGED
|
@@ -16,7 +16,7 @@ bin/*
|
|
|
16
16
|
.history
|
|
17
17
|
.vscode
|
|
18
18
|
# Used by dotenv library to load environment variables.
|
|
19
|
-
|
|
19
|
+
.env
|
|
20
20
|
|
|
21
21
|
# Ignore Byebug command history file.
|
|
22
22
|
.byebug_history
|
|
@@ -58,4 +58,5 @@ build-iPhoneSimulator/
|
|
|
58
58
|
.rvmrc
|
|
59
59
|
|
|
60
60
|
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
|
|
61
|
-
# .rubocop-https?--*
|
|
61
|
+
# .rubocop-https?--*
|
|
62
|
+
.secrets
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.4.
|
|
1
|
+
3.4.7
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## [1.1.0](https://github.com/descope/descope-ruby-sdk/compare/descope-v1.0.7...descope/v1.1.0) (2025-12-13)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add release-please workflow for automated releases ([#157](https://github.com/descope/descope-ruby-sdk/issues/157)) ([5bbfb9b](https://github.com/descope/descope-ruby-sdk/commit/5bbfb9be77c753bd1c99060c92d3d1204ce6e803))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* examples/ruby-on-rails-api/descope/Gemfile to reduce vulnerabilities ([#122](https://github.com/descope/descope-ruby-sdk/issues/122)) ([85e77ea](https://github.com/descope/descope-ruby-sdk/commit/85e77ea9a511f208e4818e7231c50416b58f9437))
|
|
14
|
+
* examples/ruby-on-rails-api/descope/Gemfile to reduce vulnerabilities ([#124](https://github.com/descope/descope-ruby-sdk/issues/124)) ([7fcd9f5](https://github.com/descope/descope-ruby-sdk/commit/7fcd9f5ed9e1af7c3adceca403da5585f0768eb9))
|
|
15
|
+
* Parse Set-Cookie headers directly to handle custom domain cookies when RestClient filtering fails ([#150](https://github.com/descope/descope-ruby-sdk/issues/150)) ([bb94536](https://github.com/descope/descope-ruby-sdk/commit/bb945368b76199df3bfa0dbd635756cd28dc2709))
|
|
16
|
+
* resolve integration test failures ([#162](https://github.com/descope/descope-ruby-sdk/issues/162)) ([ea880ea](https://github.com/descope/descope-ruby-sdk/commit/ea880ea91860ef67b97083a8e23c1580df95205b))
|
|
17
|
+
* unparallel tests ([#165](https://github.com/descope/descope-ruby-sdk/issues/165)) ([9a08c74](https://github.com/descope/descope-ruby-sdk/commit/9a08c74a7b8e5e02dc3816aa14b61a533d1c5962))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Performance Improvements
|
|
21
|
+
|
|
22
|
+
* optimize test suite for parallel execution with 3-5x speedup ([#159](https://github.com/descope/descope-ruby-sdk/issues/159)) ([da42969](https://github.com/descope/descope-ruby-sdk/commit/da4296952c936d028d6655bf503fc6dca0e568bb))
|
|
23
|
+
|
|
3
24
|
## [1.0.4](https://github.com/descope/descope-ruby-sdk/compare/descope/v1.0.0...descope/v1.0.4) (2024-02-13)
|
|
4
25
|
|
|
5
26
|
|
data/Gemfile
CHANGED
|
@@ -4,17 +4,18 @@ source 'https://rubygems.org'
|
|
|
4
4
|
gemspec
|
|
5
5
|
|
|
6
6
|
group :development do
|
|
7
|
-
gem 'rubocop', '1.
|
|
8
|
-
gem 'rubocop-rails', '2.
|
|
7
|
+
gem 'rubocop', '1.81.7', require: false
|
|
8
|
+
gem 'rubocop-rails', '2.34.0', require: false
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
group :test do
|
|
12
|
-
gem 'factory_bot', '6.5.
|
|
12
|
+
gem 'factory_bot', '6.5.6', require: false
|
|
13
13
|
gem 'faker', require: false
|
|
14
|
+
gem 'parallel_tests', require: false
|
|
14
15
|
gem 'rack-test', '2.2.0', require: false
|
|
15
16
|
gem 'rotp', '6.3.0', require: false
|
|
16
|
-
gem 'rspec', '3.13.
|
|
17
|
-
gem 'selenium-webdriver', '4.
|
|
17
|
+
gem 'rspec', '3.13.2', require: false
|
|
18
|
+
gem 'selenium-webdriver', '4.38.0', require: false
|
|
18
19
|
gem 'simplecov', '0.22.0', require: false
|
|
19
|
-
gem 'super_diff', '0.
|
|
20
|
+
gem 'super_diff', '0.18.0', require: false
|
|
20
21
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
descope (1.0
|
|
4
|
+
descope (1.1.0)
|
|
5
5
|
addressable (~> 2.8)
|
|
6
6
|
jwt (~> 2.7)
|
|
7
7
|
rest-client (~> 2.1)
|
|
@@ -11,7 +11,7 @@ PATH
|
|
|
11
11
|
GEM
|
|
12
12
|
remote: https://rubygems.org/
|
|
13
13
|
specs:
|
|
14
|
-
activesupport (7.2.
|
|
14
|
+
activesupport (7.2.3)
|
|
15
15
|
base64
|
|
16
16
|
benchmark (>= 0.3)
|
|
17
17
|
bigdecimal
|
|
@@ -28,15 +28,15 @@ GEM
|
|
|
28
28
|
ast (2.4.3)
|
|
29
29
|
attr_extras (7.1.0)
|
|
30
30
|
base64 (0.3.0)
|
|
31
|
-
benchmark (0.
|
|
32
|
-
bigdecimal (3.
|
|
31
|
+
benchmark (0.5.0)
|
|
32
|
+
bigdecimal (3.3.1)
|
|
33
33
|
concurrent-ruby (1.3.5)
|
|
34
|
-
connection_pool (2.5.
|
|
34
|
+
connection_pool (2.5.5)
|
|
35
35
|
diff-lcs (1.6.2)
|
|
36
36
|
docile (1.4.0)
|
|
37
37
|
domain_name (0.6.20240107)
|
|
38
38
|
drb (2.2.3)
|
|
39
|
-
factory_bot (6.5.
|
|
39
|
+
factory_bot (6.5.6)
|
|
40
40
|
activesupport (>= 6.1.0)
|
|
41
41
|
faker (3.3.1)
|
|
42
42
|
i18n (>= 1.8.11, < 2)
|
|
@@ -45,7 +45,7 @@ GEM
|
|
|
45
45
|
domain_name (~> 0.5)
|
|
46
46
|
i18n (1.14.7)
|
|
47
47
|
concurrent-ruby (~> 1.0)
|
|
48
|
-
json (2.
|
|
48
|
+
json (2.18.0)
|
|
49
49
|
jwt (2.8.1)
|
|
50
50
|
base64
|
|
51
51
|
language_server-protocol (3.17.0.5)
|
|
@@ -54,45 +54,47 @@ GEM
|
|
|
54
54
|
mime-types (3.5.2)
|
|
55
55
|
mime-types-data (~> 3.2015)
|
|
56
56
|
mime-types-data (3.2024.0305)
|
|
57
|
-
minitest (5.
|
|
57
|
+
minitest (5.27.0)
|
|
58
58
|
netrc (0.11.0)
|
|
59
59
|
optimist (3.2.1)
|
|
60
60
|
parallel (1.27.0)
|
|
61
|
-
|
|
61
|
+
parallel_tests (5.5.0)
|
|
62
|
+
parallel
|
|
63
|
+
parser (3.3.10.0)
|
|
62
64
|
ast (~> 2.4.1)
|
|
63
65
|
racc
|
|
64
66
|
patience_diff (1.2.0)
|
|
65
67
|
optimist (~> 3.0)
|
|
66
|
-
prism (1.
|
|
68
|
+
prism (1.6.0)
|
|
67
69
|
public_suffix (5.0.5)
|
|
68
70
|
racc (1.8.1)
|
|
69
|
-
rack (3.
|
|
71
|
+
rack (3.2.4)
|
|
70
72
|
rack-test (2.2.0)
|
|
71
73
|
rack (>= 1.3)
|
|
72
74
|
rainbow (3.1.1)
|
|
73
|
-
regexp_parser (2.11.
|
|
75
|
+
regexp_parser (2.11.3)
|
|
74
76
|
rest-client (2.1.0)
|
|
75
77
|
http-accept (>= 1.7.0, < 2.0)
|
|
76
78
|
http-cookie (>= 1.0.2, < 2.0)
|
|
77
79
|
mime-types (>= 1.16, < 4.0)
|
|
78
80
|
netrc (~> 0.8)
|
|
79
81
|
retryable (3.0.5)
|
|
80
|
-
rexml (3.4.
|
|
82
|
+
rexml (3.4.4)
|
|
81
83
|
rotp (6.3.0)
|
|
82
|
-
rspec (3.13.
|
|
84
|
+
rspec (3.13.2)
|
|
83
85
|
rspec-core (~> 3.13.0)
|
|
84
86
|
rspec-expectations (~> 3.13.0)
|
|
85
87
|
rspec-mocks (~> 3.13.0)
|
|
86
|
-
rspec-core (3.13.
|
|
88
|
+
rspec-core (3.13.6)
|
|
87
89
|
rspec-support (~> 3.13.0)
|
|
88
90
|
rspec-expectations (3.13.5)
|
|
89
91
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
90
92
|
rspec-support (~> 3.13.0)
|
|
91
|
-
rspec-mocks (3.13.
|
|
93
|
+
rspec-mocks (3.13.7)
|
|
92
94
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
93
95
|
rspec-support (~> 3.13.0)
|
|
94
|
-
rspec-support (3.13.
|
|
95
|
-
rubocop (1.
|
|
96
|
+
rspec-support (3.13.6)
|
|
97
|
+
rubocop (1.81.7)
|
|
96
98
|
json (~> 2.3)
|
|
97
99
|
language_server-protocol (~> 3.17.0.2)
|
|
98
100
|
lint_roller (~> 1.1.0)
|
|
@@ -100,14 +102,13 @@ GEM
|
|
|
100
102
|
parser (>= 3.3.0.2)
|
|
101
103
|
rainbow (>= 2.2.2, < 4.0)
|
|
102
104
|
regexp_parser (>= 2.9.3, < 3.0)
|
|
103
|
-
rubocop-ast (>= 1.
|
|
105
|
+
rubocop-ast (>= 1.47.1, < 2.0)
|
|
104
106
|
ruby-progressbar (~> 1.7)
|
|
105
|
-
tsort (>= 0.2.0)
|
|
106
107
|
unicode-display_width (>= 2.4.0, < 4.0)
|
|
107
|
-
rubocop-ast (1.
|
|
108
|
+
rubocop-ast (1.48.0)
|
|
108
109
|
parser (>= 3.3.7.2)
|
|
109
110
|
prism (~> 1.4)
|
|
110
|
-
rubocop-rails (2.
|
|
111
|
+
rubocop-rails (2.34.0)
|
|
111
112
|
activesupport (>= 4.2.0)
|
|
112
113
|
lint_roller (~> 1.1)
|
|
113
114
|
rack (>= 1.1)
|
|
@@ -116,11 +117,11 @@ GEM
|
|
|
116
117
|
ruby-progressbar (1.13.0)
|
|
117
118
|
rubyzip (2.4.1)
|
|
118
119
|
securerandom (0.4.1)
|
|
119
|
-
selenium-webdriver (4.
|
|
120
|
+
selenium-webdriver (4.38.0)
|
|
120
121
|
base64 (~> 0.2)
|
|
121
122
|
logger (~> 1.4)
|
|
122
123
|
rexml (~> 3.2, >= 3.2.5)
|
|
123
|
-
rubyzip (>= 1.2.2, <
|
|
124
|
+
rubyzip (>= 1.2.2, < 4.0)
|
|
124
125
|
websocket (~> 1.0)
|
|
125
126
|
simplecov (0.22.0)
|
|
126
127
|
docile (~> 1.1)
|
|
@@ -128,11 +129,10 @@ GEM
|
|
|
128
129
|
simplecov_json_formatter (~> 0.1)
|
|
129
130
|
simplecov-html (0.12.3)
|
|
130
131
|
simplecov_json_formatter (0.1.4)
|
|
131
|
-
super_diff (0.
|
|
132
|
+
super_diff (0.18.0)
|
|
132
133
|
attr_extras (>= 6.2.4)
|
|
133
134
|
diff-lcs
|
|
134
135
|
patience_diff
|
|
135
|
-
tsort (0.2.0)
|
|
136
136
|
tzinfo (2.0.6)
|
|
137
137
|
concurrent-ruby (~> 1.0)
|
|
138
138
|
unicode-display_width (2.6.0)
|
|
@@ -147,16 +147,17 @@ PLATFORMS
|
|
|
147
147
|
|
|
148
148
|
DEPENDENCIES
|
|
149
149
|
descope!
|
|
150
|
-
factory_bot (= 6.5.
|
|
150
|
+
factory_bot (= 6.5.6)
|
|
151
151
|
faker
|
|
152
|
+
parallel_tests
|
|
152
153
|
rack-test (= 2.2.0)
|
|
153
154
|
rotp (= 6.3.0)
|
|
154
|
-
rspec (= 3.13.
|
|
155
|
-
rubocop (= 1.
|
|
156
|
-
rubocop-rails (= 2.
|
|
157
|
-
selenium-webdriver (= 4.
|
|
155
|
+
rspec (= 3.13.2)
|
|
156
|
+
rubocop (= 1.81.7)
|
|
157
|
+
rubocop-rails (= 2.34.0)
|
|
158
|
+
selenium-webdriver (= 4.38.0)
|
|
158
159
|
simplecov (= 0.22.0)
|
|
159
|
-
super_diff (= 0.
|
|
160
|
+
super_diff (= 0.18.0)
|
|
160
161
|
|
|
161
162
|
BUNDLED WITH
|
|
162
163
|
2.5.6
|
data/README.md
CHANGED
|
@@ -37,6 +37,17 @@ Be aware that only the management key is truncated, and the JWT responses are pr
|
|
|
37
37
|
|
|
38
38
|
Do not run with log level debug on Production!
|
|
39
39
|
|
|
40
|
+
### Logging
|
|
41
|
+
|
|
42
|
+
You can customize logging behavior:
|
|
43
|
+
|
|
44
|
+
```ruby
|
|
45
|
+
# Use your application's logger
|
|
46
|
+
descope_client = Descope::Client.new(
|
|
47
|
+
project_id: '<project_id>',
|
|
48
|
+
logger: Rails.logger # or any Logger-compatible object
|
|
49
|
+
)
|
|
50
|
+
```
|
|
40
51
|
|
|
41
52
|
## Authentication Methods
|
|
42
53
|
These sections show how to use the SDK to perform various authentication/authorization functions:
|
|
@@ -73,6 +73,7 @@
|
|
|
73
73
|
"version": "10.0.4",
|
|
74
74
|
"resolved": "https://registry.npmjs.org/immer/-/immer-10.0.4.tgz",
|
|
75
75
|
"integrity": "sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==",
|
|
76
|
+
"peer": true,
|
|
76
77
|
"funding": {
|
|
77
78
|
"type": "opencollective",
|
|
78
79
|
"url": "https://opencollective.com/immer"
|
|
@@ -152,6 +153,7 @@
|
|
|
152
153
|
"version": "10.0.4",
|
|
153
154
|
"resolved": "https://registry.npmjs.org/immer/-/immer-10.0.4.tgz",
|
|
154
155
|
"integrity": "sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==",
|
|
156
|
+
"peer": true,
|
|
155
157
|
"funding": {
|
|
156
158
|
"type": "opencollective",
|
|
157
159
|
"url": "https://opencollective.com/immer"
|
|
@@ -223,6 +225,7 @@
|
|
|
223
225
|
"version": "10.0.4",
|
|
224
226
|
"resolved": "https://registry.npmjs.org/immer/-/immer-10.0.4.tgz",
|
|
225
227
|
"integrity": "sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==",
|
|
228
|
+
"peer": true,
|
|
226
229
|
"funding": {
|
|
227
230
|
"type": "opencollective",
|
|
228
231
|
"url": "https://opencollective.com/immer"
|
|
@@ -721,6 +724,7 @@
|
|
|
721
724
|
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
|
|
722
725
|
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
|
|
723
726
|
"license": "MIT",
|
|
727
|
+
"peer": true,
|
|
724
728
|
"funding": {
|
|
725
729
|
"type": "opencollective",
|
|
726
730
|
"url": "https://opencollective.com/popperjs"
|
|
@@ -736,6 +740,7 @@
|
|
|
736
740
|
"version": "2.2.3",
|
|
737
741
|
"resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.3.tgz",
|
|
738
742
|
"integrity": "sha512-76dll9EnJXg4EVcI5YNxZA/9hSAmZsFqzMmNRHvIlzw2WS/twfcVX3ysYrWGJMClwEmChQFC4yRq74tn6fdzRA==",
|
|
743
|
+
"peer": true,
|
|
739
744
|
"dependencies": {
|
|
740
745
|
"immer": "^10.0.3",
|
|
741
746
|
"redux": "^5.0.1",
|
|
@@ -775,8 +780,7 @@
|
|
|
775
780
|
"node_modules/@types/prop-types": {
|
|
776
781
|
"version": "15.7.11",
|
|
777
782
|
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
|
|
778
|
-
"integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng=="
|
|
779
|
-
"peer": true
|
|
783
|
+
"integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng=="
|
|
780
784
|
},
|
|
781
785
|
"node_modules/@types/react": {
|
|
782
786
|
"version": "18.2.48",
|
|
@@ -792,8 +796,7 @@
|
|
|
792
796
|
"node_modules/@types/scheduler": {
|
|
793
797
|
"version": "0.16.8",
|
|
794
798
|
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
|
|
795
|
-
"integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A=="
|
|
796
|
-
"peer": true
|
|
799
|
+
"integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A=="
|
|
797
800
|
},
|
|
798
801
|
"node_modules/abbrev": {
|
|
799
802
|
"version": "1.1.1",
|
|
@@ -864,9 +867,9 @@
|
|
|
864
867
|
"license": "MIT"
|
|
865
868
|
},
|
|
866
869
|
"node_modules/brace-expansion": {
|
|
867
|
-
"version": "1.1.
|
|
868
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.
|
|
869
|
-
"integrity": "sha512-
|
|
870
|
+
"version": "1.1.12",
|
|
871
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
|
872
|
+
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
|
870
873
|
"license": "MIT",
|
|
871
874
|
"dependencies": {
|
|
872
875
|
"balanced-match": "^1.0.0",
|
|
@@ -916,8 +919,7 @@
|
|
|
916
919
|
"node_modules/csstype": {
|
|
917
920
|
"version": "3.1.3",
|
|
918
921
|
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
|
919
|
-
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
|
|
920
|
-
"peer": true
|
|
922
|
+
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
|
|
921
923
|
},
|
|
922
924
|
"node_modules/debug": {
|
|
923
925
|
"version": "4.3.4",
|
|
@@ -1241,6 +1243,7 @@
|
|
|
1241
1243
|
"resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
|
|
1242
1244
|
"integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
|
|
1243
1245
|
"license": "MIT",
|
|
1246
|
+
"peer": true,
|
|
1244
1247
|
"dependencies": {
|
|
1245
1248
|
"loose-envify": "^1.1.0"
|
|
1246
1249
|
},
|
|
@@ -1253,6 +1256,7 @@
|
|
|
1253
1256
|
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
|
|
1254
1257
|
"integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
|
|
1255
1258
|
"license": "MIT",
|
|
1259
|
+
"peer": true,
|
|
1256
1260
|
"dependencies": {
|
|
1257
1261
|
"loose-envify": "^1.1.0",
|
|
1258
1262
|
"scheduler": "^0.23.0"
|
|
@@ -1306,12 +1310,14 @@
|
|
|
1306
1310
|
"node_modules/redux": {
|
|
1307
1311
|
"version": "5.0.1",
|
|
1308
1312
|
"resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz",
|
|
1309
|
-
"integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w=="
|
|
1313
|
+
"integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==",
|
|
1314
|
+
"peer": true
|
|
1310
1315
|
},
|
|
1311
1316
|
"node_modules/redux-thunk": {
|
|
1312
1317
|
"version": "3.1.0",
|
|
1313
1318
|
"resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz",
|
|
1314
1319
|
"integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==",
|
|
1320
|
+
"peer": true,
|
|
1315
1321
|
"peerDependencies": {
|
|
1316
1322
|
"redux": "^5.0.0"
|
|
1317
1323
|
}
|
|
@@ -331,9 +331,9 @@ bootstrap@^5.3.3:
|
|
|
331
331
|
integrity sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==
|
|
332
332
|
|
|
333
333
|
brace-expansion@^1.1.7:
|
|
334
|
-
version "1.1.
|
|
335
|
-
resolved "https://registry.
|
|
336
|
-
integrity sha512-
|
|
334
|
+
version "1.1.12"
|
|
335
|
+
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843"
|
|
336
|
+
integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
|
|
337
337
|
dependencies:
|
|
338
338
|
balanced-match "^1.0.0"
|
|
339
339
|
concat-map "0.0.1"
|
data/lib/descope/mixins/http.rb
CHANGED
|
@@ -63,9 +63,9 @@ module Descope
|
|
|
63
63
|
# If no cookies found via RestClient, parse Set-Cookie headers directly
|
|
64
64
|
# This handles custom domain cookies that RestClient filters out
|
|
65
65
|
if extracted_cookies.empty? && headers.respond_to?(:[])
|
|
66
|
-
set_cookie_headers = headers['set-cookie'] || headers['Set-Cookie'] || []
|
|
66
|
+
set_cookie_headers = headers[:set_cookie] || headers['set-cookie'] || headers['Set-Cookie'] || []
|
|
67
67
|
set_cookie_headers = [set_cookie_headers] unless set_cookie_headers.is_a?(Array)
|
|
68
|
-
|
|
68
|
+
|
|
69
69
|
set_cookie_headers.each do |cookie_header|
|
|
70
70
|
next unless cookie_header.is_a?(String)
|
|
71
71
|
|
|
@@ -16,8 +16,10 @@ module Descope
|
|
|
16
16
|
@headers['x-descope-project-id'] = @project_id
|
|
17
17
|
@public_key = options[:public_key] || ENV['DESCOPE_PUBLIC_KEY']
|
|
18
18
|
@mlock = Mutex.new
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
@logger = options[:logger] || begin
|
|
20
|
+
log_level = options[:log_level] || ENV['DESCOPE_LOG_LEVEL'] || 'info'
|
|
21
|
+
Descope::Mixins::Logging.logger_for(self.class.name, log_level, @project_id)
|
|
22
|
+
end
|
|
21
23
|
|
|
22
24
|
@logger.debug("Initializing Descope API with project_id: #{@project_id} and base_uri: #{@base_uri}")
|
|
23
25
|
|