descope 1.0.5 → 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 (89) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yaml +2 -2
  3. data/.github/workflows/publish-gem.yaml +39 -7
  4. data/.gitignore +2 -0
  5. data/.ruby-version +1 -1
  6. data/Gemfile +7 -7
  7. data/Gemfile.lock +70 -65
  8. data/README.md +175 -52
  9. data/descope.gemspec +25 -20
  10. data/examples/ruby/.ruby-version +1 -0
  11. data/examples/ruby/access_key_app.rb +4 -3
  12. data/examples/ruby/enchantedlink_app.rb +1 -0
  13. data/examples/ruby/magiclink_app.rb +1 -0
  14. data/examples/ruby/management/.ruby-version +1 -0
  15. data/examples/ruby/management/Gemfile +2 -2
  16. data/examples/ruby/management/access_key_app.rb +2 -0
  17. data/examples/ruby/management/audit_app.rb +32 -8
  18. data/examples/ruby/management/authz_app.rb +1 -0
  19. data/examples/ruby/management/flow_app.rb +1 -0
  20. data/examples/ruby/management/permission_app.rb +3 -2
  21. data/examples/ruby/management/role_app.rb +3 -2
  22. data/examples/ruby/management/tenant_app.rb +1 -0
  23. data/examples/ruby/management/user_app.rb +1 -0
  24. data/examples/ruby/oauth_app.rb +1 -0
  25. data/examples/ruby/otp_app.rb +38 -12
  26. data/examples/ruby/password_app.rb +8 -7
  27. data/examples/ruby/saml_app.rb +1 -0
  28. data/examples/ruby/version_check.rb +17 -0
  29. data/examples/ruby-on-rails-api/descope/Gemfile +9 -7
  30. data/examples/ruby-on-rails-api/descope/Gemfile.lock +121 -90
  31. data/examples/ruby-on-rails-api/descope/README.md +18 -18
  32. data/examples/ruby-on-rails-api/descope/app/assets/builds/application.css +20092 -23
  33. data/examples/ruby-on-rails-api/descope/app/assets/builds/application.js +0 -1
  34. data/examples/ruby-on-rails-api/descope/app/assets/builds/components/index.js +0 -14
  35. data/examples/ruby-on-rails-api/descope/package-lock.json +1073 -19302
  36. data/examples/ruby-on-rails-api/descope/package.json +8 -16
  37. data/examples/ruby-on-rails-api/descope/yarn.lock +557 -10641
  38. data/lib/descope/api/v1/auth/enchantedlink.rb +3 -1
  39. data/lib/descope/api/v1/auth/magiclink.rb +3 -1
  40. data/lib/descope/api/v1/auth/otp.rb +24 -15
  41. data/lib/descope/api/v1/auth/password.rb +6 -2
  42. data/lib/descope/api/v1/auth/totp.rb +3 -1
  43. data/lib/descope/api/v1/auth.rb +64 -32
  44. data/lib/descope/api/v1/management/audit.rb +24 -0
  45. data/lib/descope/api/v1/management/common.rb +21 -5
  46. data/lib/descope/api/v1/management/sso_application.rb +236 -0
  47. data/lib/descope/api/v1/management/sso_settings.rb +2 -24
  48. data/lib/descope/api/v1/management/user.rb +151 -13
  49. data/lib/descope/api/v1/management.rb +2 -0
  50. data/lib/descope/api/v1/session.rb +37 -4
  51. data/lib/descope/mixins/common.rb +6 -2
  52. data/lib/descope/mixins/http.rb +60 -9
  53. data/lib/descope/mixins/initializer.rb +2 -1
  54. data/lib/descope/mixins/logging.rb +12 -4
  55. data/lib/descope/mixins/validation.rb +21 -6
  56. data/lib/descope/version.rb +1 -1
  57. data/spec/descope/api/v1/auth_spec.rb +29 -0
  58. data/spec/descope/api/v1/auth_token_extraction_spec.rb +126 -0
  59. data/spec/descope/api/v1/session_refresh_spec.rb +98 -0
  60. data/spec/factories/user.rb +1 -1
  61. data/spec/integration/lib.descope/api/v1/auth/enchantedlink_spec.rb +1 -1
  62. data/spec/integration/lib.descope/api/v1/auth/magiclink_spec.rb +1 -1
  63. data/spec/integration/lib.descope/api/v1/auth/otp_spec.rb +73 -8
  64. data/spec/integration/lib.descope/api/v1/auth/session_spec.rb +49 -0
  65. data/spec/integration/lib.descope/api/v1/auth/totp_spec.rb +1 -1
  66. data/spec/integration/lib.descope/api/v1/management/access_key_spec.rb +3 -0
  67. data/spec/integration/lib.descope/api/v1/management/audit_spec.rb +38 -0
  68. data/spec/integration/lib.descope/api/v1/management/authz_spec.rb +2 -0
  69. data/spec/integration/lib.descope/api/v1/management/flow_spec.rb +3 -1
  70. data/spec/integration/lib.descope/api/v1/management/permissions_spec.rb +4 -2
  71. data/spec/integration/lib.descope/api/v1/management/project_spec.rb +2 -0
  72. data/spec/integration/lib.descope/api/v1/management/roles_spec.rb +3 -1
  73. data/spec/integration/lib.descope/api/v1/management/user_spec.rb +55 -6
  74. data/spec/lib.descope/api/v1/auth/enchantedlink_spec.rb +11 -2
  75. data/spec/lib.descope/api/v1/auth/otp_spec.rb +176 -18
  76. data/spec/lib.descope/api/v1/auth/password_spec.rb +10 -1
  77. data/spec/lib.descope/api/v1/auth_spec.rb +168 -6
  78. data/spec/lib.descope/api/v1/cookie_domain_fix_integration_spec.rb +245 -0
  79. data/spec/lib.descope/api/v1/management/audit_spec.rb +92 -0
  80. data/spec/lib.descope/api/v1/management/sso_application_spec.rb +217 -0
  81. data/spec/lib.descope/api/v1/management/sso_settings_spec.rb +2 -2
  82. data/spec/lib.descope/api/v1/management/user_spec.rb +134 -46
  83. data/spec/lib.descope/api/v1/session_spec.rb +119 -6
  84. data/spec/lib.descope/mixins/http_spec.rb +218 -0
  85. data/spec/support/client_config.rb +0 -1
  86. data/spec/support/utils.rb +6 -0
  87. metadata +34 -137
  88. data/examples/ruby-on-rails-api/descope/app/assets/builds/reportWebVitals.js +0 -211
  89. data/examples/ruby-on-rails-api/descope/app/assets/builds/reportWebVitals.js.map +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cec3cb315d2015591a727a55440f878d49df010ad72f31522eb93bf927bc1cf8
4
- data.tar.gz: e207e1b64908011868e269257d2879d2ebc112025e56cea97a15aed0eefc8dbc
3
+ metadata.gz: b839423c554d63097d253ea7a62954d531d9a3b1b262dad0e82c22b52afa7b6f
4
+ data.tar.gz: '008848b04a02f4e47c138ebb4bfa46a4a8e5b1a796c21acf0d627ca28abe2071'
5
5
  SHA512:
6
- metadata.gz: 46585ad1d53f2383c9458d310ae8e41a13bb3da9c72479b5ebd4e91f73544f8d4cb7dca8e3e2b4704e87f4532046a014bb4b5f3c7206d53a1a37da1634e152e9
7
- data.tar.gz: 47383953f8613b0ae07e3ced035d5f06392faeec4b7cb0756bdc2dc7793c75c607f99b54bd46ea292cfb62ce55767e0b364ba04c39a46718e3507693262e0599
6
+ metadata.gz: 1f3f9a015891fc9aa23c16a9274ab8529965f833223316f5c40c89e2b704ee69c5af7f9ffafab9b104e88085826c459c1f5ae41ea8488a6cc797a55a95c85d25
7
+ data.tar.gz: 4abc42cc41567a3c0a4079112dab7b3b9786e19f7c39f03447528cdfe44d7722404a55f4cb24e95d028ebbf4cb5860576577f82d1d4a3aa8935d0a06f5cb1329
@@ -22,9 +22,9 @@ jobs:
22
22
  runs-on: ubuntu-latest
23
23
  steps:
24
24
  - name: Checkout Code
25
- uses: actions/checkout@v4
25
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
26
26
 
27
- - uses: ruby/setup-ruby@v1
27
+ - uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
28
28
  with:
29
29
  # We are not letting this step to run bundle install, we will do it later
30
30
  bundler-cache: false
@@ -4,19 +4,18 @@ on:
4
4
  release:
5
5
  types: [published]
6
6
 
7
- permissions:
8
- contents: read
9
- pull-requests: read # to detect changes files
10
-
11
7
  jobs:
12
- publish-gem:
8
+ release:
13
9
  name: Publish Ruby Gem
14
10
  runs-on: ubuntu-latest
15
11
  steps:
16
12
  - name: Checkout Code
17
- uses: actions/checkout@v4
13
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
14
+ with:
15
+ ref: main
16
+ fetch-depth: 0
18
17
 
19
- - uses: ruby/setup-ruby@v1
18
+ - uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
20
19
  with:
21
20
  # We are not letting this step to run bundle install, we will do it later
22
21
  bundler-cache: false
@@ -24,6 +23,39 @@ jobs:
24
23
  - name: Install dependencies
25
24
  run: bundle install
26
25
 
26
+ - name: Get token
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
40
+ run: |
41
+ git config --global user.name 'github-actions'
42
+ git config --global user.email 'github-actions@github.com'
43
+ git checkout main
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 }}
58
+
27
59
  - name: Publish to RubyGems
28
60
  run: |
29
61
  mkdir -p $HOME/.gem
data/.gitignore CHANGED
@@ -13,6 +13,8 @@ bin/*
13
13
  *.idea/*
14
14
  *.iml
15
15
  .DS_Store
16
+ .history
17
+ .vscode
16
18
  # Used by dotenv library to load environment variables.
17
19
  # .env
18
20
 
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.3.0
1
+ 3.4.5
data/Gemfile CHANGED
@@ -4,17 +4,17 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  group :development do
7
- gem 'rubocop', '1.60.2', require: false
8
- gem 'rubocop-rails', '2.23.1', require: false
7
+ gem 'rubocop', '1.79.0', require: false
8
+ gem 'rubocop-rails', '2.32.0', require: false
9
9
  end
10
10
 
11
11
  group :test do
12
- gem 'factory_bot', '6.4.6', require: false
12
+ gem 'factory_bot', '6.5.4', require: false
13
13
  gem 'faker', require: false
14
- gem 'rack-test', '2.1.0', require: false
14
+ gem 'rack-test', '2.2.0', require: false
15
15
  gem 'rotp', '6.3.0', require: false
16
- gem 'rspec', '3.13.0', require: false
17
- gem 'selenium-webdriver', '4.17.0', require: false
16
+ gem 'rspec', '3.13.1', require: false
17
+ gem 'selenium-webdriver', '4.34.0', require: false
18
18
  gem 'simplecov', '0.22.0', require: false
19
- gem 'super_diff', '0.11.0', require: false
19
+ gem 'super_diff', '0.16.0', require: false
20
20
  end
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- descope (1.0.5)
4
+ descope (1.0.6)
5
5
  addressable (~> 2.8)
6
6
  jwt (~> 2.7)
7
7
  rest-client (~> 2.1)
@@ -11,108 +11,114 @@ PATH
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- activesupport (7.1.3.2)
14
+ activesupport (7.2.2.1)
15
15
  base64
16
+ benchmark (>= 0.3)
16
17
  bigdecimal
17
- concurrent-ruby (~> 1.0, >= 1.0.2)
18
+ concurrent-ruby (~> 1.0, >= 1.3.1)
18
19
  connection_pool (>= 2.2.5)
19
20
  drb
20
21
  i18n (>= 1.6, < 2)
22
+ logger (>= 1.4.2)
21
23
  minitest (>= 5.1)
22
- mutex_m
23
- tzinfo (~> 2.0)
24
+ securerandom (>= 0.3)
25
+ tzinfo (~> 2.0, >= 2.0.5)
24
26
  addressable (2.8.6)
25
27
  public_suffix (>= 2.0.2, < 6.0)
26
- ast (2.4.2)
28
+ ast (2.4.3)
27
29
  attr_extras (7.1.0)
28
- base64 (0.2.0)
29
- bigdecimal (3.1.7)
30
- concurrent-ruby (1.2.3)
31
- connection_pool (2.4.1)
32
- diff-lcs (1.5.1)
30
+ base64 (0.3.0)
31
+ benchmark (0.4.1)
32
+ bigdecimal (3.2.2)
33
+ concurrent-ruby (1.3.5)
34
+ connection_pool (2.5.3)
35
+ diff-lcs (1.6.2)
33
36
  docile (1.4.0)
34
37
  domain_name (0.6.20240107)
35
- drb (2.2.1)
36
- factory_bot (6.4.6)
37
- activesupport (>= 5.0.0)
38
- faker (3.2.3)
38
+ drb (2.2.3)
39
+ factory_bot (6.5.4)
40
+ activesupport (>= 6.1.0)
41
+ faker (3.3.1)
39
42
  i18n (>= 1.8.11, < 2)
40
- fuubar (2.5.1)
41
- rspec-core (~> 3.0)
42
- ruby-progressbar (~> 1.4)
43
43
  http-accept (1.7.0)
44
44
  http-cookie (1.0.5)
45
45
  domain_name (~> 0.5)
46
- i18n (1.14.4)
46
+ i18n (1.14.7)
47
47
  concurrent-ruby (~> 1.0)
48
- json (2.7.1)
48
+ json (2.13.2)
49
49
  jwt (2.8.1)
50
50
  base64
51
- language_server-protocol (3.17.0.3)
51
+ language_server-protocol (3.17.0.5)
52
+ lint_roller (1.1.0)
53
+ logger (1.7.0)
52
54
  mime-types (3.5.2)
53
55
  mime-types-data (~> 3.2015)
54
56
  mime-types-data (3.2024.0305)
55
- minitest (5.22.3)
56
- mutex_m (0.2.0)
57
+ minitest (5.25.5)
57
58
  netrc (0.11.0)
58
- optimist (3.1.0)
59
- parallel (1.24.0)
60
- parser (3.3.0.5)
59
+ optimist (3.2.1)
60
+ parallel (1.27.0)
61
+ parser (3.3.9.0)
61
62
  ast (~> 2.4.1)
62
63
  racc
63
64
  patience_diff (1.2.0)
64
65
  optimist (~> 3.0)
65
- public_suffix (5.0.4)
66
- racc (1.7.3)
67
- rack (3.0.9.1)
68
- rack-test (2.1.0)
66
+ prism (1.4.0)
67
+ public_suffix (5.0.5)
68
+ racc (1.8.1)
69
+ rack (3.1.16)
70
+ rack-test (2.2.0)
69
71
  rack (>= 1.3)
70
72
  rainbow (3.1.1)
71
- rake (13.1.0)
72
- regexp_parser (2.9.0)
73
+ regexp_parser (2.11.2)
73
74
  rest-client (2.1.0)
74
75
  http-accept (>= 1.7.0, < 2.0)
75
76
  http-cookie (>= 1.0.2, < 2.0)
76
77
  mime-types (>= 1.16, < 4.0)
77
78
  netrc (~> 0.8)
78
79
  retryable (3.0.5)
79
- rexml (3.2.6)
80
+ rexml (3.4.1)
80
81
  rotp (6.3.0)
81
- rspec (3.13.0)
82
+ rspec (3.13.1)
82
83
  rspec-core (~> 3.13.0)
83
84
  rspec-expectations (~> 3.13.0)
84
85
  rspec-mocks (~> 3.13.0)
85
- rspec-core (3.13.0)
86
+ rspec-core (3.13.4)
86
87
  rspec-support (~> 3.13.0)
87
- rspec-expectations (3.13.0)
88
+ rspec-expectations (3.13.5)
88
89
  diff-lcs (>= 1.2.0, < 2.0)
89
90
  rspec-support (~> 3.13.0)
90
- rspec-mocks (3.13.0)
91
+ rspec-mocks (3.13.5)
91
92
  diff-lcs (>= 1.2.0, < 2.0)
92
93
  rspec-support (~> 3.13.0)
93
- rspec-support (3.13.1)
94
- rubocop (1.60.2)
94
+ rspec-support (3.13.4)
95
+ rubocop (1.79.0)
95
96
  json (~> 2.3)
96
- language_server-protocol (>= 3.17.0)
97
+ language_server-protocol (~> 3.17.0.2)
98
+ lint_roller (~> 1.1.0)
97
99
  parallel (~> 1.10)
98
100
  parser (>= 3.3.0.2)
99
101
  rainbow (>= 2.2.2, < 4.0)
100
- regexp_parser (>= 1.8, < 3.0)
101
- rexml (>= 3.2.5, < 4.0)
102
- rubocop-ast (>= 1.30.0, < 2.0)
102
+ regexp_parser (>= 2.9.3, < 3.0)
103
+ rubocop-ast (>= 1.46.0, < 2.0)
103
104
  ruby-progressbar (~> 1.7)
104
- unicode-display_width (>= 2.4.0, < 3.0)
105
- rubocop-ast (1.31.2)
106
- parser (>= 3.3.0.4)
107
- rubocop-rails (2.23.1)
105
+ tsort (>= 0.2.0)
106
+ unicode-display_width (>= 2.4.0, < 4.0)
107
+ rubocop-ast (1.46.0)
108
+ parser (>= 3.3.7.2)
109
+ prism (~> 1.4)
110
+ rubocop-rails (2.32.0)
108
111
  activesupport (>= 4.2.0)
112
+ lint_roller (~> 1.1)
109
113
  rack (>= 1.1)
110
- rubocop (>= 1.33.0, < 2.0)
111
- rubocop-ast (>= 1.30.0, < 2.0)
114
+ rubocop (>= 1.75.0, < 2.0)
115
+ rubocop-ast (>= 1.44.0, < 2.0)
112
116
  ruby-progressbar (1.13.0)
113
- rubyzip (2.3.2)
114
- selenium-webdriver (4.17.0)
117
+ rubyzip (2.4.1)
118
+ securerandom (0.4.1)
119
+ selenium-webdriver (4.34.0)
115
120
  base64 (~> 0.2)
121
+ logger (~> 1.4)
116
122
  rexml (~> 3.2, >= 3.2.5)
117
123
  rubyzip (>= 1.2.2, < 3.0)
118
124
  websocket (~> 1.0)
@@ -122,36 +128,35 @@ GEM
122
128
  simplecov_json_formatter (~> 0.1)
123
129
  simplecov-html (0.12.3)
124
130
  simplecov_json_formatter (0.1.4)
125
- super_diff (0.11.0)
131
+ super_diff (0.16.0)
126
132
  attr_extras (>= 6.2.4)
127
133
  diff-lcs
128
134
  patience_diff
135
+ tsort (0.2.0)
129
136
  tzinfo (2.0.6)
130
137
  concurrent-ruby (~> 1.0)
131
- unicode-display_width (2.5.0)
132
- websocket (1.2.10)
138
+ unicode-display_width (2.6.0)
139
+ websocket (1.2.11)
133
140
  zache (0.13.1)
134
141
 
135
142
  PLATFORMS
136
143
  arm64-darwin-23
144
+ arm64-darwin-24
145
+ arm64-darwin-25
137
146
  x86_64-linux
138
147
 
139
148
  DEPENDENCIES
140
- bundler
141
- concurrent-ruby (~> 1.1)
142
149
  descope!
143
- factory_bot (= 6.4.6)
150
+ factory_bot (= 6.5.4)
144
151
  faker
145
- fuubar (~> 2.0)
146
- rack-test (= 2.1.0)
147
- rake (~> 13.0)
152
+ rack-test (= 2.2.0)
148
153
  rotp (= 6.3.0)
149
- rspec (= 3.13.0)
150
- rubocop (= 1.60.2)
151
- rubocop-rails (= 2.23.1)
152
- selenium-webdriver (= 4.17.0)
154
+ rspec (= 3.13.1)
155
+ rubocop (= 1.79.0)
156
+ rubocop-rails (= 2.32.0)
157
+ selenium-webdriver (= 4.34.0)
153
158
  simplecov (= 0.22.0)
154
- super_diff (= 0.11.0)
159
+ super_diff (= 0.16.0)
155
160
 
156
161
  BUNDLED WITH
157
162
  2.5.6