workos 2.2.0 → 2.4.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/Gemfile.lock +2 -2
- data/lib/workos/audit_trail.rb +1 -0
- data/lib/workos/challenge.rb +2 -1
- data/lib/workos/connection.rb +1 -0
- data/lib/workos/deprecated_hash_wrapper.rb +76 -0
- data/lib/workos/directory.rb +1 -0
- data/lib/workos/directory_group.rb +26 -2
- data/lib/workos/directory_sync.rb +11 -8
- data/lib/workos/directory_user.rb +16 -2
- data/lib/workos/factor.rb +2 -6
- data/lib/workos/hash_provider.rb +19 -0
- data/lib/workos/organization.rb +1 -0
- data/lib/workos/organizations.rb +1 -0
- data/lib/workos/profile.rb +1 -0
- data/lib/workos/profile_and_token.rb +1 -0
- data/lib/workos/sso.rb +1 -0
- data/lib/workos/types/challenge_struct.rb +1 -1
- data/lib/workos/types/directory_group_struct.rb +6 -0
- data/lib/workos/types/directory_user_struct.rb +2 -0
- data/lib/workos/types/factor_struct.rb +0 -1
- data/lib/workos/types/passwordless_session_struct.rb +2 -0
- data/lib/workos/types/verify_factor_struct.rb +1 -3
- data/lib/workos/verify_factor.rb +1 -0
- data/lib/workos/version.rb +1 -1
- data/lib/workos/webhook.rb +1 -0
- data/lib/workos.rb +2 -0
- data/spec/lib/workos/directory_sync_spec.rb +29 -18
- data/spec/lib/workos/directory_user_spec.rb +36 -0
- data/spec/lib/workos/mfa_spec.rb +31 -1
- data/spec/support/fixtures/vcr_cassettes/directory_sync/get_group.yml +47 -29
- data/spec/support/fixtures/vcr_cassettes/directory_sync/get_user.yml +28 -31
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_after.yml +46 -32
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_before.yml +47 -31
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_directory.yml +46 -34
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_limit.yml +41 -31
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_no_options.yml +36 -26
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_user.yml +38 -28
- data/spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_totp_valid.yml +1 -1
- data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_generic_valid.yml +1 -1
- data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_sms_valid.yml +1 -1
- data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_totp_valid.yml +1 -1
- data/spec/support/fixtures/vcr_cassettes/mfa/get_factor_valid.yml +1 -1
- data/spec/support/fixtures/vcr_cassettes/mfa/verify_factor_generic_valid_is_false.yml +82 -0
- metadata +9 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b8ce6f7bddb9f3bbee9713d7ec1674c487f1c9f963e7e57ee8e6b99b26e183a
|
4
|
+
data.tar.gz: de86e65fad32c780bc23ba9a2e2e7e611af89c2025f768d96ca51a59b5c23218
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82b37f71d2b099ccfde1f6d47f5a43392f275e093d130156796079be0f2ada5f8e787143991aa9b2d65878c5cd4ab052b5c81f60fe43e46e59619714c17b08c4
|
7
|
+
data.tar.gz: f02fbd38fedce2ac51834fb10196b6c79a1ed29013afb7f681ec9329df0e571035330f2a6f52bdb0c963bb0be5ade92b389962609f2d87cba8fd83bbca471a60
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
workos (2.
|
4
|
+
workos (2.4.0)
|
5
5
|
sorbet-runtime (~> 0.5)
|
6
6
|
|
7
7
|
GEM
|
@@ -60,7 +60,7 @@ GEM
|
|
60
60
|
simplecov_json_formatter (0.1.2)
|
61
61
|
sorbet (0.5.6388)
|
62
62
|
sorbet-static (= 0.5.6388)
|
63
|
-
sorbet-runtime (0.5.
|
63
|
+
sorbet-runtime (0.5.10090)
|
64
64
|
sorbet-static (0.5.6388-universal-darwin-14)
|
65
65
|
sorbet-static (0.5.6388-universal-darwin-15)
|
66
66
|
sorbet-static (0.5.6388-universal-darwin-16)
|
data/lib/workos/audit_trail.rb
CHANGED
@@ -65,6 +65,7 @@ module WorkOS
|
|
65
65
|
# @option options [String] before Event ID to look before
|
66
66
|
# @option options [String] after Event ID to look after
|
67
67
|
# @option options [Integer] limit Number of Events to return
|
68
|
+
# @option options [String] order The order in which to paginate records
|
68
69
|
# @option options [Array<String>] group List of Groups to filter for
|
69
70
|
# @option options [Array<String>] action List of Actions to filter for
|
70
71
|
# @option options [Array<String>] action_type List of Action Types to
|
data/lib/workos/challenge.rb
CHANGED
@@ -6,6 +6,7 @@ module WorkOS
|
|
6
6
|
# a WorkOS DirectoryUser resource. This class is not meant to be instantiated
|
7
7
|
# in DirectoryUser space, and is instantiated internally but exposed.
|
8
8
|
class Challenge
|
9
|
+
include HashProvider
|
9
10
|
extend T::Sig
|
10
11
|
|
11
12
|
attr_accessor :id, :object, :expires_at, :code, :authentication_factor_id, :updated_at, :created_at
|
@@ -15,7 +16,7 @@ module WorkOS
|
|
15
16
|
raw = parse_json(json)
|
16
17
|
@id = T.let(raw.id, String)
|
17
18
|
@object = T.let(raw.object, String)
|
18
|
-
@expires_at = raw.expires_at
|
19
|
+
@expires_at = T.let(raw.expires_at, String)
|
19
20
|
@code = raw.code
|
20
21
|
@authentication_factor_id = T.let(raw.authentication_factor_id, String)
|
21
22
|
@created_at = T.let(raw.created_at, String)
|
data/lib/workos/connection.rb
CHANGED
@@ -0,0 +1,76 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module WorkOS
|
4
|
+
# A Temporary wrapper class for a Hash, currently the base class for
|
5
|
+
# WorOS::DirectoryGroup and WorkOS::DirectoryUser. Makes all the Hash
|
6
|
+
# methods available to those classes, but will also emit a deprecation
|
7
|
+
# warning whenever any of them are used.
|
8
|
+
#
|
9
|
+
# Once we deprecate Hash compatibility, this model can be deleted.
|
10
|
+
class DeprecatedHashWrapper < Hash
|
11
|
+
(public_instance_methods - Object.methods).each do |method_name|
|
12
|
+
define_method method_name do |*args, &block|
|
13
|
+
print_deprecation_warning(method_name)
|
14
|
+
super(*args, &block)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# call the original implementation of :replace in Hash,
|
19
|
+
# so we don't show the deprecation warning
|
20
|
+
def replace_without_warning(new_hash)
|
21
|
+
method(:replace).super_method&.call(new_hash)
|
22
|
+
end
|
23
|
+
|
24
|
+
def [](attribute_name)
|
25
|
+
usage = "#{object_name}.#{attribute_name}"
|
26
|
+
warning_message = "WARNING: The Hash style access for #{class_name} attributes is deprecated
|
27
|
+
and will be removed in a future version. Please use `#{usage}` or equivalent accessor.\n"
|
28
|
+
|
29
|
+
print_deprecation_warning('[]', warning_message)
|
30
|
+
|
31
|
+
super(attribute_name.to_sym)
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def deprecation_warning(method_name)
|
37
|
+
usage = "#{object_name}.to_h.#{method_name}"
|
38
|
+
|
39
|
+
"WARNING: Hash compatibility for #{class_name} is deprecated and will be removed
|
40
|
+
in a future version. Please use `#{usage}` to access methods on the attribute Hash object.\n"
|
41
|
+
end
|
42
|
+
|
43
|
+
def print_deprecation_warning(method_name, warning_message = deprecation_warning(method_name))
|
44
|
+
if RUBY_VERSION > '3'
|
45
|
+
warn warning_message, category: :deprecated
|
46
|
+
else
|
47
|
+
warn warning_message
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def class_name
|
52
|
+
self.class.name
|
53
|
+
end
|
54
|
+
|
55
|
+
# We want to do class_name.demodulize.underscore here, but that's not available in Ruby 1.9, so
|
56
|
+
# implementing the demodulize and underscore methods here.
|
57
|
+
def object_name
|
58
|
+
i = class_name.rindex('::')
|
59
|
+
object_name = i ? class_name[(i + 2)..-1] : class_name
|
60
|
+
underscore(object_name)
|
61
|
+
end
|
62
|
+
|
63
|
+
def underscore(camel_cased_word)
|
64
|
+
return camel_cased_word.to_s unless /[A-Z-]|::/.match?(camel_cased_word)
|
65
|
+
|
66
|
+
word = camel_cased_word.to_s.gsub('::', '/')
|
67
|
+
word.gsub!(/(?:(?<=([A-Za-z\d]))|\b)((?=a)b)(?=\b|[^a-z])/) do
|
68
|
+
"#{Regexp.last_match(1) && '_'}#{Regexp.last_match(2).downcase}"
|
69
|
+
end
|
70
|
+
word.gsub!(/([A-Z]+)(?=[A-Z][a-z])|([a-z\d])(?=[A-Z])/) { (Regexp.last_match(1) || Regexp.last_match(2)) << '_' }
|
71
|
+
word.tr!('-', '_')
|
72
|
+
word.downcase!
|
73
|
+
word
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
data/lib/workos/directory.rb
CHANGED
@@ -6,6 +6,7 @@ module WorkOS
|
|
6
6
|
# a WorkOS Directory resource. This class is not meant to be instantiated
|
7
7
|
# in user space, and is instantiated internally but exposed.
|
8
8
|
class Directory
|
9
|
+
include HashProvider
|
9
10
|
extend T::Sig
|
10
11
|
|
11
12
|
attr_accessor :id, :domain, :name, :type, :state, :organization_id, :created_at, :updated_at
|
@@ -5,23 +5,41 @@ module WorkOS
|
|
5
5
|
# The DirectoryGroup class provides a lightweight wrapper around
|
6
6
|
# a WorkOS DirectoryGroup resource. This class is not meant to be instantiated
|
7
7
|
# in user space, and is instantiated internally but exposed.
|
8
|
-
class DirectoryGroup
|
8
|
+
class DirectoryGroup < DeprecatedHashWrapper
|
9
|
+
include HashProvider
|
9
10
|
extend T::Sig
|
10
11
|
|
11
|
-
attr_accessor :id, :name
|
12
|
+
attr_accessor :id, :directory_id, :idp_id, :name, :created_at, :updated_at,
|
13
|
+
:raw_attributes, :organization_id
|
12
14
|
|
15
|
+
# rubocop:disable Metrics/AbcSize
|
13
16
|
sig { params(json: String).void }
|
14
17
|
def initialize(json)
|
15
18
|
raw = parse_json(json)
|
16
19
|
|
17
20
|
@id = T.let(raw.id, String)
|
21
|
+
@directory_id = T.let(raw.directory_id, String)
|
22
|
+
@organization_id = raw.organization_id
|
23
|
+
@idp_id = T.let(raw.idp_id, String)
|
18
24
|
@name = T.let(raw.name, String)
|
25
|
+
@created_at = T.let(raw.created_at, String)
|
26
|
+
@updated_at = T.let(raw.updated_at, String)
|
27
|
+
@raw_attributes = raw.raw_attributes
|
28
|
+
|
29
|
+
replace_without_warning(to_json)
|
19
30
|
end
|
31
|
+
# rubocop:enable Metrics/AbcSize
|
20
32
|
|
21
33
|
def to_json(*)
|
22
34
|
{
|
23
35
|
id: id,
|
36
|
+
directory_id: directory_id,
|
37
|
+
organization_id: organization_id,
|
38
|
+
idp_id: idp_id,
|
24
39
|
name: name,
|
40
|
+
created_at: created_at,
|
41
|
+
updated_at: updated_at,
|
42
|
+
raw_attributes: raw_attributes,
|
25
43
|
}
|
26
44
|
end
|
27
45
|
|
@@ -37,7 +55,13 @@ module WorkOS
|
|
37
55
|
|
38
56
|
WorkOS::Types::DirectoryGroupStruct.new(
|
39
57
|
id: hash[:id],
|
58
|
+
directory_id: hash[:directory_id],
|
59
|
+
organization_id: hash[:organization_id],
|
60
|
+
idp_id: hash[:idp_id],
|
40
61
|
name: hash[:name],
|
62
|
+
created_at: hash[:created_at],
|
63
|
+
updated_at: hash[:updated_at],
|
64
|
+
raw_attributes: hash[:raw_attributes],
|
41
65
|
)
|
42
66
|
end
|
43
67
|
end
|
@@ -22,6 +22,7 @@ module WorkOS
|
|
22
22
|
# retrieved.
|
23
23
|
# @option options [String] search A search term for direcory names.
|
24
24
|
# @option options [String] limit Maximum number of records to return.
|
25
|
+
# @option options [String] order The order in which to paginate records
|
25
26
|
# @option options [String] before Pagination cursor to receive records
|
26
27
|
# before a provided Directory ID.
|
27
28
|
# @option options [String] after Pagination cursor to receive records
|
@@ -91,12 +92,13 @@ module WorkOS
|
|
91
92
|
# @option options [String] user The ID of the directory user whose
|
92
93
|
# directory groups will be retrieved.
|
93
94
|
# @option options [String] limit Maximum number of records to return.
|
95
|
+
# @option options [String] order The order in which to paginate records
|
94
96
|
# @option options [String] before Pagination cursor to receive records
|
95
97
|
# before a provided Directory Group ID.
|
96
98
|
# @option options [String] after Pagination cursor to receive records
|
97
99
|
# before a provided Directory Group ID.
|
98
100
|
#
|
99
|
-
# @return [
|
101
|
+
# @return [WorkOS::DirectoryGroup]
|
100
102
|
sig do
|
101
103
|
params(
|
102
104
|
options: T::Hash[Symbol, String],
|
@@ -130,12 +132,13 @@ module WorkOS
|
|
130
132
|
# @option options [String] user The ID of the directory group whose
|
131
133
|
# directory users will be retrieved.
|
132
134
|
# @option options [String] limit Maximum number of records to return.
|
135
|
+
# @option options [String] order The order in which to paginate records
|
133
136
|
# @option options [String] before Pagination cursor to receive records
|
134
137
|
# before a provided Directory User ID.
|
135
138
|
# @option options [String] after Pagination cursor to receive records
|
136
139
|
# before a provided Directory User ID.
|
137
140
|
#
|
138
|
-
# @return [
|
141
|
+
# @return [WorkOS::DirectoryUser]
|
139
142
|
sig do
|
140
143
|
params(
|
141
144
|
options: T::Hash[Symbol, String],
|
@@ -165,8 +168,8 @@ module WorkOS
|
|
165
168
|
#
|
166
169
|
# @param [String] id The ID of the directory group.
|
167
170
|
#
|
168
|
-
# @return
|
169
|
-
sig { params(id: String).returns(
|
171
|
+
# @return WorkOS::DirectoryGroup
|
172
|
+
sig { params(id: String).returns(WorkOS::DirectoryGroup) }
|
170
173
|
def get_group(id)
|
171
174
|
response = execute_request(
|
172
175
|
request: get_request(
|
@@ -175,15 +178,15 @@ module WorkOS
|
|
175
178
|
),
|
176
179
|
)
|
177
180
|
|
178
|
-
|
181
|
+
::WorkOS::DirectoryGroup.new(response.body)
|
179
182
|
end
|
180
183
|
|
181
184
|
# Retrieve the directory user with the given ID.
|
182
185
|
#
|
183
186
|
# @param [String] id The ID of the directory user.
|
184
187
|
#
|
185
|
-
# @return
|
186
|
-
sig { params(id: String).returns(
|
188
|
+
# @return WorkOS::DirectoryUser
|
189
|
+
sig { params(id: String).returns(WorkOS::DirectoryUser) }
|
187
190
|
def get_user(id)
|
188
191
|
response = execute_request(
|
189
192
|
request: get_request(
|
@@ -192,7 +195,7 @@ module WorkOS
|
|
192
195
|
),
|
193
196
|
)
|
194
197
|
|
195
|
-
|
198
|
+
::WorkOS::DirectoryUser.new(response.body)
|
196
199
|
end
|
197
200
|
|
198
201
|
# Delete the directory with the given ID.
|
@@ -5,11 +5,12 @@ module WorkOS
|
|
5
5
|
# The DirectoryUser class provides a lightweight wrapper around
|
6
6
|
# a WorkOS DirectoryUser resource. This class is not meant to be instantiated
|
7
7
|
# in DirectoryUser space, and is instantiated internally but exposed.
|
8
|
-
class DirectoryUser
|
8
|
+
class DirectoryUser < DeprecatedHashWrapper
|
9
|
+
include HashProvider
|
9
10
|
extend T::Sig
|
10
11
|
|
11
12
|
attr_accessor :id, :idp_id, :emails, :first_name, :last_name, :username, :state,
|
12
|
-
:groups, :custom_attributes, :raw_attributes
|
13
|
+
:groups, :custom_attributes, :raw_attributes, :directory_id, :organization_id
|
13
14
|
|
14
15
|
# rubocop:disable Metrics/AbcSize
|
15
16
|
sig { params(json: String).void }
|
@@ -17,6 +18,8 @@ module WorkOS
|
|
17
18
|
raw = parse_json(json)
|
18
19
|
|
19
20
|
@id = T.let(raw.id, String)
|
21
|
+
@directory_id = T.let(raw.directory_id, String)
|
22
|
+
@organization_id = raw.organization_id
|
20
23
|
@idp_id = T.let(raw.idp_id, String)
|
21
24
|
@emails = T.let(raw.emails, Array)
|
22
25
|
@first_name = raw.first_name
|
@@ -26,12 +29,16 @@ module WorkOS
|
|
26
29
|
@groups = T.let(raw.groups, Array)
|
27
30
|
@custom_attributes = raw.custom_attributes
|
28
31
|
@raw_attributes = raw.raw_attributes
|
32
|
+
|
33
|
+
replace_without_warning(to_json)
|
29
34
|
end
|
30
35
|
# rubocop:enable Metrics/AbcSize
|
31
36
|
|
32
37
|
def to_json(*)
|
33
38
|
{
|
34
39
|
id: id,
|
40
|
+
directory_id: directory_id,
|
41
|
+
organization_id: organization_id,
|
35
42
|
idp_id: idp_id,
|
36
43
|
emails: emails,
|
37
44
|
first_name: first_name,
|
@@ -44,6 +51,11 @@ module WorkOS
|
|
44
51
|
}
|
45
52
|
end
|
46
53
|
|
54
|
+
def primary_email
|
55
|
+
primary_email = (emails || []).find { |email| email[:primary] }
|
56
|
+
return primary_email[:value] if primary_email
|
57
|
+
end
|
58
|
+
|
47
59
|
private
|
48
60
|
|
49
61
|
sig do
|
@@ -56,6 +68,8 @@ module WorkOS
|
|
56
68
|
|
57
69
|
WorkOS::Types::DirectoryUserStruct.new(
|
58
70
|
id: hash[:id],
|
71
|
+
directory_id: hash[:directory_id],
|
72
|
+
organization_id: hash[:organization_id],
|
59
73
|
idp_id: hash[:idp_id],
|
60
74
|
emails: hash[:emails],
|
61
75
|
first_name: hash[:first_name],
|
data/lib/workos/factor.rb
CHANGED
@@ -6,15 +6,14 @@ module WorkOS
|
|
6
6
|
# a WorkOS DirectoryUser resource. This class is not meant to be instantiated
|
7
7
|
# in DirectoryUser space, and is instantiated internally but exposed.
|
8
8
|
class Factor
|
9
|
-
|
9
|
+
include HashProvider
|
10
10
|
extend T::Sig
|
11
|
-
attr_accessor :id, :
|
11
|
+
attr_accessor :id, :object, :type, :sms, :totp, :updated_at, :created_at
|
12
12
|
|
13
13
|
sig { params(json: String).void }
|
14
14
|
def initialize(json)
|
15
15
|
raw = parse_json(json)
|
16
16
|
@id = T.let(raw.id, String)
|
17
|
-
@environment_id = T.let(raw.environment_id, String)
|
18
17
|
@object = T.let(raw.object, String)
|
19
18
|
@type = T.let(raw.type, String)
|
20
19
|
@created_at = T.let(raw.created_at, String)
|
@@ -26,7 +25,6 @@ module WorkOS
|
|
26
25
|
def to_json(*)
|
27
26
|
{
|
28
27
|
id: id,
|
29
|
-
environment_id: environment_id,
|
30
28
|
object: object,
|
31
29
|
type: type,
|
32
30
|
totp: totp,
|
@@ -44,7 +42,6 @@ module WorkOS
|
|
44
42
|
|
45
43
|
WorkOS::Types::FactorStruct.new(
|
46
44
|
id: hash[:id],
|
47
|
-
environment_id: hash[:environment_id],
|
48
45
|
object: hash[:object],
|
49
46
|
type: hash[:type],
|
50
47
|
totp: hash[:totp],
|
@@ -53,6 +50,5 @@ module WorkOS
|
|
53
50
|
updated_at: hash[:updated_at],
|
54
51
|
)
|
55
52
|
end
|
56
|
-
# rubocop:enable Metrics/AbcSize
|
57
53
|
end
|
58
54
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# typed: true
|
3
|
+
|
4
|
+
module WorkOS
|
5
|
+
# Module to include an explicit method for converting a model into a Hash containing
|
6
|
+
# its attributes. Default implementation will simply call to_json. Individual classes
|
7
|
+
# may override.
|
8
|
+
module HashProvider
|
9
|
+
include Kernel
|
10
|
+
|
11
|
+
def to_json(*)
|
12
|
+
raise 'Must be implemented by including class.'
|
13
|
+
end
|
14
|
+
|
15
|
+
def to_h
|
16
|
+
to_json
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/workos/organization.rb
CHANGED
@@ -6,6 +6,7 @@ module WorkOS
|
|
6
6
|
# a WorkOS Organization resource. This class is not meant to be instantiated
|
7
7
|
# in user space, and is instantiated internally but exposed.
|
8
8
|
class Organization
|
9
|
+
include HashProvider
|
9
10
|
extend T::Sig
|
10
11
|
|
11
12
|
attr_accessor :id, :domains, :name, :allow_profiles_outside_organization, :created_at, :updated_at
|
data/lib/workos/organizations.rb
CHANGED
@@ -21,6 +21,7 @@ module WorkOS
|
|
21
21
|
# @param [String] after A pagination argument used to request
|
22
22
|
# organizations after the provided Organization ID.
|
23
23
|
# @param [Integer] limit A pagination argument used to limit the number
|
24
|
+
# @param [String] order The order in which to paginate records
|
24
25
|
# of listed Organizations that are returned.
|
25
26
|
sig do
|
26
27
|
params(
|
data/lib/workos/profile.rb
CHANGED
data/lib/workos/sso.rb
CHANGED
@@ -163,6 +163,7 @@ module WorkOS
|
|
163
163
|
# @option options [String] organization_id The id of the organization
|
164
164
|
# of the connections to be retrieved.
|
165
165
|
# @option options [String] limit Maximum number of records to return.
|
166
|
+
# @option options [String] order The order in which to paginate records
|
166
167
|
# @option options [String] before Pagination cursor to receive records
|
167
168
|
# before a provided Connection ID.
|
168
169
|
# @option options [String] after Pagination cursor to receive records
|
@@ -8,7 +8,7 @@ module WorkOS
|
|
8
8
|
class ChallengeStruct < T::Struct
|
9
9
|
const :id, String
|
10
10
|
const :object, String
|
11
|
-
const :expires_at,
|
11
|
+
const :expires_at, String
|
12
12
|
const :code, T.nilable(String)
|
13
13
|
const :authentication_factor_id, String
|
14
14
|
const :created_at, String
|
@@ -7,7 +7,13 @@ module WorkOS
|
|
7
7
|
# for the DirectoryGroup class
|
8
8
|
class DirectoryGroupStruct < T::Struct
|
9
9
|
const :id, String
|
10
|
+
const :directory_id, String
|
11
|
+
const :organization_id, T.nilable(String)
|
12
|
+
const :idp_id, String
|
10
13
|
const :name, String
|
14
|
+
const :created_at, String
|
15
|
+
const :updated_at, String
|
16
|
+
const :raw_attributes, T::Hash[Symbol, Object]
|
11
17
|
end
|
12
18
|
end
|
13
19
|
end
|
@@ -7,6 +7,8 @@ module WorkOS
|
|
7
7
|
# for the DirectoryUser class
|
8
8
|
class DirectoryUserStruct < T::Struct
|
9
9
|
const :id, String
|
10
|
+
const :directory_id, String
|
11
|
+
const :organization_id, T.nilable(String)
|
10
12
|
const :idp_id, String
|
11
13
|
const :emails, T::Array[T.untyped]
|
12
14
|
const :first_name, T.nilable(String)
|
@@ -7,9 +7,7 @@ module WorkOS
|
|
7
7
|
# for the Factor class
|
8
8
|
class VerifyFactorStruct < T::Struct
|
9
9
|
const :challenge, T.nilable(T::Hash[Symbol, Object])
|
10
|
-
const :valid, T
|
11
|
-
const :code, T.nilable(String)
|
12
|
-
const :message, T.nilable(String)
|
10
|
+
const :valid, T::Boolean
|
13
11
|
end
|
14
12
|
end
|
15
13
|
end
|
data/lib/workos/verify_factor.rb
CHANGED
data/lib/workos/version.rb
CHANGED
data/lib/workos/webhook.rb
CHANGED
data/lib/workos.rb
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
require 'workos/version'
|
5
5
|
require 'sorbet-runtime'
|
6
6
|
require 'json'
|
7
|
+
require 'workos/hash_provider'
|
7
8
|
|
8
9
|
# Use the WorkOS module to authenticate your
|
9
10
|
# requests to the WorkOS API. The gem will read
|
@@ -48,6 +49,7 @@ module WorkOS
|
|
48
49
|
autoload :Factor, 'workos/factor'
|
49
50
|
autoload :Challenge, 'workos/challenge'
|
50
51
|
autoload :VerifyFactor, 'workos/verify_factor'
|
52
|
+
autoload :DeprecatedHashWrapper, 'workos/deprecated_hash_wrapper'
|
51
53
|
|
52
54
|
|
53
55
|
# Errors
|