clerk-sdk-ruby 2.6.0 → 2.8.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/.gitignore +2 -0
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +3 -2
- data/lib/clerk/authenticatable.rb +14 -1
- data/lib/clerk/rack_middleware_v2.rb +19 -1
- data/lib/clerk/resources/email_addresses.rb +17 -0
- data/lib/clerk/resources/organizations.rb +8 -0
- data/lib/clerk/resources/phone_numbers.rb +17 -0
- data/lib/clerk/resources/users.rb +4 -0
- data/lib/clerk/resources.rb +2 -0
- data/lib/clerk/sdk.rb +10 -0
- data/lib/clerk/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 055dee5554e9405faf7a77400bd0428eb2ddb6d869abf51af5dc698c69492eb9
|
4
|
+
data.tar.gz: '09e4d7369cda1a8630776a6308b326630e4ffbce8f9ac9b62977201bf774e8a7'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c05c73eb36c646f37264b72c09c3101173c241acbda0a55c0c1d6a8ef10562b1cb244f1d977ecf19bd20ef9020eda8307fb9ddb2359c58ce8c65428ac88ba62d
|
7
|
+
data.tar.gz: 4825ec3bd309908efd7bb08553e68e7d5794701a098df9ad2a4aa8032d78f326c6809d13612a07e08ced54ebaa7768f8089d30213250e4f60299af5fd41ccf90
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
## unreleased
|
2
2
|
|
3
|
+
## 2.8.0 - 2022-11-29
|
4
|
+
|
5
|
+
- feat: Add support for the users.verify_totp endpoint
|
6
|
+
|
7
|
+
## 2.7.0 - 2022-11-02
|
8
|
+
|
9
|
+
- feat: Add `#clerk_organization` and `#clerk_organization_id` helpers to fetch the current user's active organization [https://github.com/clerkinc/clerk-sdk-ruby/pull/22]
|
10
|
+
- feat: Implement Organization Metadata update endpoint [https://github.com/clerkinc/clerk-sdk-ruby/pull/21]
|
11
|
+
|
3
12
|
## 2.6.0 - 2022-11-01
|
4
13
|
|
5
14
|
- feat: Implement Organization endpoints [https://github.com/clerkinc/clerk-sdk-ruby/pull/20]
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
clerk-sdk-ruby (2.
|
4
|
+
clerk-sdk-ruby (2.7.0)
|
5
5
|
faraday (~> 1.4.1)
|
6
6
|
jwt (~> 2.2)
|
7
7
|
|
@@ -30,6 +30,7 @@ GEM
|
|
30
30
|
timecop (0.9.4)
|
31
31
|
|
32
32
|
PLATFORMS
|
33
|
+
universal-darwin-21
|
33
34
|
x86_64-linux
|
34
35
|
|
35
36
|
DEPENDENCIES
|
@@ -40,4 +41,4 @@ DEPENDENCIES
|
|
40
41
|
timecop (~> 0.9.4)
|
41
42
|
|
42
43
|
BUNDLED WITH
|
43
|
-
2.
|
44
|
+
2.3.25
|
@@ -49,6 +49,18 @@ module Clerk
|
|
49
49
|
request.env["clerk"].user_id
|
50
50
|
end
|
51
51
|
|
52
|
+
# Makes a request to the Clerk API to fetch the data of the authenticated
|
53
|
+
# session's organization. If caching is configured (see
|
54
|
+
# Config.middleware_cache_store), subsequent calls will return the cached
|
55
|
+
# object.
|
56
|
+
def clerk_organization
|
57
|
+
request.env["clerk"].org
|
58
|
+
end
|
59
|
+
|
60
|
+
def clerk_organization_id
|
61
|
+
request.env["clerk"].org_id
|
62
|
+
end
|
63
|
+
|
52
64
|
def clerk_user_signed_in?
|
53
65
|
!!clerk_verified_session_claims
|
54
66
|
end
|
@@ -69,7 +81,8 @@ module Clerk
|
|
69
81
|
helper_method :clerk_session, :clerk_reverify_session!,
|
70
82
|
:clerk_verified_session_claims, :clerk_verified_session_token,
|
71
83
|
:clerk_user, :clerk_user_id, :clerk_user_signed_in?, :clerk_sign_in_url,
|
72
|
-
:clerk_sign_up_url, :clerk_user_profile_url
|
84
|
+
:clerk_sign_up_url, :clerk_user_profile_url,
|
85
|
+
:clerk_organization, :clerk_organization_id
|
73
86
|
end
|
74
87
|
end
|
75
88
|
end
|
@@ -36,6 +36,18 @@ module Clerk
|
|
36
36
|
@session_claims["sub"]
|
37
37
|
end
|
38
38
|
|
39
|
+
def org
|
40
|
+
return nil if org_id.nil?
|
41
|
+
|
42
|
+
@org ||= fetch_org(org_id)
|
43
|
+
end
|
44
|
+
|
45
|
+
def org_id
|
46
|
+
return nil if user_id.nil?
|
47
|
+
|
48
|
+
@session_claims["org_id"]
|
49
|
+
end
|
50
|
+
|
39
51
|
private
|
40
52
|
|
41
53
|
def fetch_user(user_id)
|
@@ -44,6 +56,12 @@ module Clerk
|
|
44
56
|
end
|
45
57
|
end
|
46
58
|
|
59
|
+
def fetch_org(org_id)
|
60
|
+
cached_fetch("clerk_org:#{org_id}") do
|
61
|
+
sdk.organizations.find(org_id)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
47
65
|
def cached_fetch(key, &block)
|
48
66
|
if store = Clerk.configuration.middleware_cache_store
|
49
67
|
store.fetch(key, expires_in: CACHE_TTL, &block)
|
@@ -105,7 +123,7 @@ module Clerk
|
|
105
123
|
rescue JWT::DecodeError
|
106
124
|
return signed_out(env) # malformed JSON authorization header
|
107
125
|
end
|
108
|
-
|
126
|
+
|
109
127
|
token = verify_token(header_token)
|
110
128
|
return signed_in(env, token, header_token) if token
|
111
129
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "forwardable"
|
2
|
+
require_relative "plural_resource"
|
3
|
+
|
4
|
+
module Clerk
|
5
|
+
module Resources
|
6
|
+
class EmailAddresses
|
7
|
+
extend Forwardable
|
8
|
+
|
9
|
+
def initialize(client)
|
10
|
+
@client = client
|
11
|
+
@resource = PluralResource.new(client, "email_addresses")
|
12
|
+
end
|
13
|
+
|
14
|
+
def_delegators :@resource, :find, :create, :update, :delete
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -13,6 +13,14 @@ module Clerk
|
|
13
13
|
|
14
14
|
def_delegators :@resource, :all, :find, :create, :update, :delete
|
15
15
|
|
16
|
+
def update_metadata(org_id, private_metadata: {}, public_metadata: {})
|
17
|
+
data = {}
|
18
|
+
data["private_metadata"] = private_metadata.to_json if !private_metadata.empty?
|
19
|
+
data["public_metadata"] = public_metadata.to_json if !public_metadata.empty?
|
20
|
+
|
21
|
+
@client.request(:patch, "#{@resource.resource_path(org_id)}/metadata", body: data)
|
22
|
+
end
|
23
|
+
|
16
24
|
#
|
17
25
|
# Invitations
|
18
26
|
#
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "forwardable"
|
2
|
+
require_relative "plural_resource"
|
3
|
+
|
4
|
+
module Clerk
|
5
|
+
module Resources
|
6
|
+
class PhoneNumbers
|
7
|
+
extend Forwardable
|
8
|
+
|
9
|
+
def initialize(client)
|
10
|
+
@client = client
|
11
|
+
@resource = PluralResource.new(client, "phone_numbers")
|
12
|
+
end
|
13
|
+
|
14
|
+
def_delegators :@resource, :find, :create, :update, :delete
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -21,6 +21,10 @@ module Clerk
|
|
21
21
|
@client.request(:post, "#{@resource.resource_path(user_id)}/verify_password", body: { password: password })
|
22
22
|
end
|
23
23
|
|
24
|
+
def verify_totp(user_id, totp_or_backup_code)
|
25
|
+
@client.request(:post, "#{@resource.resource_path(user_id)}/verify_totp", body: { code: totp_or_backup_code })
|
26
|
+
end
|
27
|
+
|
24
28
|
def disable_mfa(user_id)
|
25
29
|
@client.request(:delete, "#{@resource.resource_path(user_id)}/mfa")
|
26
30
|
end
|
data/lib/clerk/resources.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
require_relative "resources/allowlist_identifiers"
|
2
2
|
require_relative "resources/allowlist"
|
3
3
|
require_relative "resources/clients"
|
4
|
+
require_relative "resources/email_addresses"
|
4
5
|
require_relative "resources/emails"
|
5
6
|
require_relative "resources/organizations"
|
7
|
+
require_relative "resources/phone_numbers"
|
6
8
|
require_relative "resources/sessions"
|
7
9
|
require_relative "resources/sms_messages"
|
8
10
|
require_relative "resources/users"
|
data/lib/clerk/sdk.rb
CHANGED
@@ -9,8 +9,10 @@ require "jwt"
|
|
9
9
|
require_relative "resources/allowlist_identifiers"
|
10
10
|
require_relative "resources/allowlist"
|
11
11
|
require_relative "resources/clients"
|
12
|
+
require_relative "resources/email_addresses"
|
12
13
|
require_relative "resources/emails"
|
13
14
|
require_relative "resources/organizations"
|
15
|
+
require_relative "resources/phone_numbers"
|
14
16
|
require_relative "resources/sessions"
|
15
17
|
require_relative "resources/sms_messages"
|
16
18
|
require_relative "resources/users"
|
@@ -111,6 +113,10 @@ module Clerk
|
|
111
113
|
Resources::Clients.new(self)
|
112
114
|
end
|
113
115
|
|
116
|
+
def email_addresses
|
117
|
+
Resources::EmailAddresses.new(self)
|
118
|
+
end
|
119
|
+
|
114
120
|
def emails
|
115
121
|
Resources::Emails.new(self)
|
116
122
|
end
|
@@ -119,6 +125,10 @@ module Clerk
|
|
119
125
|
Resources::Organizations.new(self)
|
120
126
|
end
|
121
127
|
|
128
|
+
def phone_numbers
|
129
|
+
Resources::PhoneNumbers.new(self)
|
130
|
+
end
|
131
|
+
|
122
132
|
def sessions
|
123
133
|
Resources::Sessions.new(self)
|
124
134
|
end
|
data/lib/clerk/version.rb
CHANGED
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
|
+
version: 2.8.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-11-
|
11
|
+
date: 2022-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -97,9 +97,11 @@ files:
|
|
97
97
|
- lib/clerk/resources/allowlist.rb
|
98
98
|
- lib/clerk/resources/allowlist_identifiers.rb
|
99
99
|
- lib/clerk/resources/clients.rb
|
100
|
+
- lib/clerk/resources/email_addresses.rb
|
100
101
|
- lib/clerk/resources/emails.rb
|
101
102
|
- lib/clerk/resources/jwks.rb
|
102
103
|
- lib/clerk/resources/organizations.rb
|
104
|
+
- lib/clerk/resources/phone_numbers.rb
|
103
105
|
- lib/clerk/resources/plural_resource.rb
|
104
106
|
- lib/clerk/resources/sessions.rb
|
105
107
|
- lib/clerk/resources/singular_resource.rb
|
@@ -130,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
132
|
- !ruby/object:Gem::Version
|
131
133
|
version: '0'
|
132
134
|
requirements: []
|
133
|
-
rubygems_version: 3.
|
135
|
+
rubygems_version: 3.3.7
|
134
136
|
signing_key:
|
135
137
|
specification_version: 4
|
136
138
|
summary: Clerk SDK for Ruby.
|