clerk-sdk-ruby 2.4.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d51d412f89ce080c43ba0aae47f5fcdb70e5875dd37824dd492cd3d8c669f0c
4
- data.tar.gz: fc772bc04d89b46c6c1e35335f4bdbb24fef2fe10d6589b8a94dd5996658d668
3
+ metadata.gz: f70d13c92fd01f471cd31373b72a5c4aa73784cbc4f8259dff001ed54d6bd5b0
4
+ data.tar.gz: 4d63622da821f4bdca7eaff4efa7d698c7666b8068f0de5add37b309e28e9dd6
5
5
  SHA512:
6
- metadata.gz: ca2fc569dce78598d650d34354d3cb0b92afd8782dc039988c38d5090122740c624780f4f8facfb7fa59902c30b6463adc8c94f40dbdff2717afa8a2a6d568b3
7
- data.tar.gz: 5174ca1905a8ebbce46f582e2aac5ba961093a2139d5fe9022b7009050e794df03c904b6de51edab5d6c94a039c08a7623cda1aa4bdc6294c8c547330fbf238c
6
+ metadata.gz: 4ce27dae71ef8f6e6335981041f40881273dc106e06973b288a1c9a089bf35bc03eaa9f561f6c4ca7b21431d7707043365fc77c8306241a85e5e60cd87667d5a
7
+ data.tar.gz: 8fc64101a4bde21a7ce0e137b395125554150a48bb7c93b83d595b106be7d0eb92b40d299685e98623f35f022a623bdcf6f2818dacd488d91f600aa32200a899
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  ## unreleased
2
2
 
3
+ ## 2.5.0 - 2022-09-20
4
+
5
+ - feat: Add support for disabling the middleware on specific routes [https://github.com/clerkinc/clerk-sdk-ruby/pull/19]
6
+
7
+ ## 2.4.0 - 2022-09-05
8
+
9
+ - feat: Add support for the users.disable_mfa endpoint
10
+
3
11
  ## 2.3.0 - 2022-08-30
4
12
 
5
13
  - feat: Add support for the users.verify_password endpoint
data/README.md CHANGED
@@ -82,6 +82,7 @@ Clerk.configure do |c|
82
82
  c.base_url = "https://..." # if omitted: "https://api.clerk.dev/v1/"
83
83
  c.logger = Logger.new(STDOUT) # if omitted, no logging
84
84
  c.middleware_cache_store = ActiveSupport::Cache::FileStore.new("/tmp/clerk_middleware_cache") # if omitted: no caching
85
+ c.excluded_routes ["/foo", "/bar/*"]
85
86
  end
86
87
  ```
87
88
 
@@ -60,11 +60,34 @@ module Clerk
60
60
  class RackMiddlewareV2
61
61
  def initialize(app)
62
62
  @app = app
63
+ @excluded_routes = {}
64
+ @excluded_routes_wildcards = []
65
+
66
+ Clerk.configuration.excluded_routes.each do |route|
67
+ route = route.strip
68
+
69
+ if route.ends_with?("/*")
70
+ @excluded_routes_wildcards << route[0..-2]
71
+ else
72
+ @excluded_routes[route] = true
73
+ end
74
+ end
75
+
76
+ @excluded_routes_wildcards.uniq!
63
77
  end
64
78
 
65
79
  def call(env)
66
80
  env = env
67
81
  req = Rack::Request.new(env)
82
+
83
+ if @excluded_routes[req.path]
84
+ return @app.call(env)
85
+ end
86
+
87
+ @excluded_routes_wildcards.each do |route|
88
+ return @app.call(env) if req.path.starts_with?(route)
89
+ end
90
+
68
91
  env["clerk"] = Clerk::ProxyV2.new
69
92
  header_token = req.env["HTTP_AUTHORIZATION"]
70
93
  header_token = header_token.strip.sub(/\ABearer /, '') if header_token
data/lib/clerk/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Clerk
4
- VERSION = "2.4.0"
4
+ VERSION = "2.5.0"
5
5
  end
data/lib/clerk.rb CHANGED
@@ -18,9 +18,33 @@ module Clerk
18
18
  PRODUCTION_BASE_URL = "https://api.clerk.dev/v1/".freeze
19
19
  attr_accessor :api_key, :base_url, :logger, :middleware_cache_store
20
20
 
21
+ # An array of route paths on which the middleware will not execute.
22
+ #
23
+ # Only request paths that match _exactly_ one of the routes will be skipped.
24
+ # As a special case, if a route ends with '/*', then all request paths that
25
+ # match the route's prefix will be skipped.
26
+ #
27
+ # For example, given the following configuration:
28
+ #
29
+ # excluded_routes = ["/foo", "/bar/*"]
30
+ #
31
+ # the following requests will be excluded:
32
+ #
33
+ # - /foo
34
+ # - /bar/baz
35
+ # - /bar/abc/xyz
36
+ #
37
+ # while the following requests will NOT be excluded:
38
+ #
39
+ # - /foo/bar
40
+ # - /bar
41
+ #
42
+ attr_accessor :excluded_routes
43
+
21
44
  def initialize
22
45
  @base_url = ENV.fetch("CLERK_API_BASE", PRODUCTION_BASE_URL)
23
46
  @api_key = ENV["CLERK_API_KEY"]
47
+ @excluded_routes = []
24
48
  end
25
49
  end
26
50
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clerk-sdk-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clerk
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-09-05 00:00:00.000000000 Z
11
+ date: 2022-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -127,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
127
  - !ruby/object:Gem::Version
128
128
  version: '0'
129
129
  requirements: []
130
- rubygems_version: 3.2.32
130
+ rubygems_version: 3.2.5
131
131
  signing_key:
132
132
  specification_version: 4
133
133
  summary: Clerk SDK for Ruby.