workos 7.1.1 → 8.0.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/docs.yml +46 -0
- data/.gitignore +2 -0
- data/.last-synced-sha +1 -1
- data/.oagen-manifest.json +61 -40
- data/.release-please-manifest.json +1 -1
- data/.yardopts +6 -0
- data/CHANGELOG.md +38 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +33 -2
- data/lib/workos/api_keys/api_key.rb +1 -1
- data/lib/workos/api_keys/api_key_created_data.rb +1 -1
- data/lib/workos/api_keys/organization_api_key.rb +43 -0
- data/lib/workos/{types/events_order.rb → api_keys/organization_api_key_owner.rb} +1 -3
- data/lib/workos/api_keys/organization_api_key_with_value.rb +46 -0
- data/lib/workos/{types/audit_logs_order.rb → api_keys/organization_api_key_with_value_owner.rb} +1 -3
- data/lib/workos/api_keys.rb +46 -46
- data/lib/workos/audit_logs.rb +6 -6
- data/lib/workos/authorization/user_organization_membership_base_list_data.rb +5 -2
- data/lib/workos/authorization/{role_assignment.rb → user_role_assignment.rb} +5 -2
- data/lib/workos/authorization/{role_assignment_resource.rb → user_role_assignment_resource.rb} +1 -1
- data/lib/workos/authorization.rb +250 -138
- data/lib/workos/base_client.rb +6 -1
- data/lib/workos/client.rb +4 -4
- data/lib/workos/connect.rb +2 -2
- data/lib/workos/directory_sync/directory_user.rb +3 -0
- data/lib/workos/directory_sync/directory_user_with_groups.rb +4 -1
- data/lib/workos/directory_sync/dsync_user_updated_data.rb +3 -0
- data/lib/workos/directory_sync.rb +6 -6
- data/lib/workos/encryptors/aes_gcm.rb +35 -3
- data/lib/workos/events.rb +2 -2
- data/lib/workos/feature_flags.rb +6 -6
- data/lib/workos/groups.rb +5 -5
- data/lib/workos/multi_factor_auth.rb +3 -3
- data/lib/workos/organization_domains.rb +1 -1
- data/lib/workos/organizations.rb +2 -2
- data/lib/workos/radar.rb +2 -2
- data/lib/workos/sso/profile.rb +3 -0
- data/lib/workos/sso.rb +4 -4
- data/lib/workos/types/event_context_actor_source.rb +2 -1
- data/lib/workos/types/{applications_order.rb → pagination_order.rb} +1 -1
- data/lib/workos/types/{vault_byok_key_verification_completed_data_key_provider.rb → vault_byok_key_provider.rb} +1 -1
- data/lib/workos/user_management/create_user_api_key.rb +25 -0
- data/lib/workos/user_management/organization_membership.rb +5 -2
- data/lib/workos/user_management/user_api_key.rb +43 -0
- data/lib/workos/user_management/user_api_key_created_data_owner.rb +25 -0
- data/lib/workos/{api_keys/api_key_with_value_owner.rb → user_management/user_api_key_owner.rb} +1 -1
- data/lib/workos/{types/webhooks_order.rb → user_management/user_api_key_revoked_data_owner.rb} +1 -3
- data/lib/workos/{api_keys/api_key_with_value.rb → user_management/user_api_key_with_value.rb} +2 -2
- data/lib/workos/{types/groups_order.rb → user_management/user_api_key_with_value_owner.rb} +1 -3
- data/lib/workos/user_management/user_organization_membership.rb +5 -2
- data/lib/workos/user_management.rb +181 -75
- data/lib/workos/user_management_organization_membership_groups.rb +2 -2
- data/lib/workos/vault/vault_byok_key_deleted.rb +34 -0
- data/lib/workos/vault/vault_byok_key_deleted_data.rb +22 -0
- data/lib/workos/version.rb +1 -1
- data/lib/workos/webhooks.rb +3 -3
- data/rbi/workos/api_key.rbi +2 -2
- data/rbi/workos/api_key_created_data.rbi +2 -2
- data/rbi/workos/api_key_revoked_data.rbi +2 -2
- data/rbi/workos/api_keys.rbi +17 -17
- data/rbi/workos/authorization.rbi +127 -27
- data/rbi/workos/client.rbi +3 -3
- data/rbi/workos/create_user_api_key.rbi +36 -0
- data/rbi/workos/directory_user.rbi +6 -0
- data/rbi/workos/directory_user_with_groups.rbi +6 -0
- data/rbi/workos/dsync_user_updated_data.rbi +6 -0
- data/rbi/workos/organization_api_key.rbi +72 -0
- data/rbi/workos/{api_key_with_value_owner.rbi → organization_api_key_owner.rbi} +1 -1
- data/rbi/workos/organization_api_key_with_value.rbi +78 -0
- data/rbi/workos/organization_api_key_with_value_owner.rbi +30 -0
- data/rbi/workos/organization_membership.rbi +6 -0
- data/rbi/workos/profile.rbi +6 -0
- data/rbi/workos/user_api_key.rbi +72 -0
- data/rbi/workos/user_api_key_created_data_owner.rbi +36 -0
- data/rbi/workos/user_api_key_owner.rbi +36 -0
- data/rbi/workos/user_api_key_revoked_data_owner.rbi +36 -0
- data/rbi/workos/{api_key_with_value.rbi → user_api_key_with_value.rbi} +3 -3
- data/rbi/workos/user_api_key_with_value_owner.rbi +36 -0
- data/rbi/workos/user_management.rbi +91 -14
- data/rbi/workos/user_organization_membership.rbi +6 -0
- data/rbi/workos/user_organization_membership_base_list_data.rbi +6 -0
- data/rbi/workos/{role_assignment.rbi → user_role_assignment.rbi} +9 -3
- data/rbi/workos/{role_assignment_resource.rbi → user_role_assignment_resource.rbi} +1 -1
- data/rbi/workos/vault_byok_key_deleted.rbi +54 -0
- data/rbi/workos/vault_byok_key_deleted_data.rbi +30 -0
- data/script/docs +16 -0
- data/script/docs-serve +12 -0
- data/script/llms-txt +37 -0
- data/test/workos/test_api_keys.rb +17 -17
- data/test/workos/test_audit_logs.rb +2 -2
- data/test/workos/test_authorization.rb +102 -20
- data/test/workos/test_encryptors_aes_gcm.rb +21 -0
- data/test/workos/test_model_round_trip.rb +278 -83
- data/test/workos/test_session.rb +68 -0
- data/test/workos/test_user_management.rb +69 -9
- data/test/workos/test_webhooks.rb +2 -2
- metadata +39 -33
- data/lib/workos/types/authorization_order.rb +0 -9
- data/lib/workos/types/connections_order.rb +0 -9
- data/lib/workos/types/directories_order.rb +0 -9
- data/lib/workos/types/directory_groups_order.rb +0 -9
- data/lib/workos/types/directory_users_order.rb +0 -9
- data/lib/workos/types/feature_flags_order.rb +0 -9
- data/lib/workos/types/organizations_api_keys_order.rb +0 -9
- data/lib/workos/types/organizations_feature_flags_order.rb +0 -9
- data/lib/workos/types/organizations_order.rb +0 -9
- data/lib/workos/types/permissions_order.rb +0 -9
- data/lib/workos/types/user_management_invitations_order.rb +0 -9
- data/lib/workos/types/user_management_multi_factor_authentication_order.rb +0 -9
- data/lib/workos/types/user_management_organization_membership_groups_order.rb +0 -9
- data/lib/workos/types/user_management_organization_membership_order.rb +0 -9
- data/lib/workos/types/user_management_users_authorized_applications_order.rb +0 -9
- data/lib/workos/types/user_management_users_feature_flags_order.rb +0 -9
- data/lib/workos/types/user_management_users_order.rb +0 -9
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
5
|
+
module WorkOS
|
|
6
|
+
class OrganizationApiKeyWithValue < WorkOS::Types::BaseModel
|
|
7
|
+
HASH_ATTRS = {
|
|
8
|
+
object: :object,
|
|
9
|
+
id: :id,
|
|
10
|
+
owner: :owner,
|
|
11
|
+
name: :name,
|
|
12
|
+
obfuscated_value: :obfuscated_value,
|
|
13
|
+
last_used_at: :last_used_at,
|
|
14
|
+
permissions: :permissions,
|
|
15
|
+
created_at: :created_at,
|
|
16
|
+
updated_at: :updated_at,
|
|
17
|
+
value: :value
|
|
18
|
+
}.freeze
|
|
19
|
+
|
|
20
|
+
attr_accessor \
|
|
21
|
+
:object,
|
|
22
|
+
:id,
|
|
23
|
+
:owner,
|
|
24
|
+
:name,
|
|
25
|
+
:obfuscated_value,
|
|
26
|
+
:last_used_at,
|
|
27
|
+
:permissions,
|
|
28
|
+
:created_at,
|
|
29
|
+
:updated_at,
|
|
30
|
+
:value
|
|
31
|
+
|
|
32
|
+
def initialize(json)
|
|
33
|
+
hash = self.class.normalize(json)
|
|
34
|
+
@object = hash[:object]
|
|
35
|
+
@id = hash[:id]
|
|
36
|
+
@owner = hash[:owner] ? WorkOS::OrganizationApiKeyWithValueOwner.new(hash[:owner]) : nil
|
|
37
|
+
@name = hash[:name]
|
|
38
|
+
@obfuscated_value = hash[:obfuscated_value]
|
|
39
|
+
@last_used_at = hash[:last_used_at]
|
|
40
|
+
@permissions = hash[:permissions] || []
|
|
41
|
+
@created_at = hash[:created_at]
|
|
42
|
+
@updated_at = hash[:updated_at]
|
|
43
|
+
@value = hash[:value]
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
data/lib/workos/api_keys.rb
CHANGED
|
@@ -10,59 +10,19 @@ module WorkOS
|
|
|
10
10
|
@client = client
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
# Validate API key
|
|
14
|
-
# @param value [String] The value for an API key.
|
|
15
|
-
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
16
|
-
# @return [WorkOS::ApiKeyValidationResponse]
|
|
17
|
-
def create_validation(
|
|
18
|
-
value:,
|
|
19
|
-
request_options: {}
|
|
20
|
-
)
|
|
21
|
-
body = {
|
|
22
|
-
"value" => value
|
|
23
|
-
}.compact
|
|
24
|
-
response = @client.request(
|
|
25
|
-
method: :post,
|
|
26
|
-
path: "/api_keys/validations",
|
|
27
|
-
auth: true,
|
|
28
|
-
body: body,
|
|
29
|
-
request_options: request_options
|
|
30
|
-
)
|
|
31
|
-
result = WorkOS::ApiKeyValidationResponse.new(response.body)
|
|
32
|
-
result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
|
|
33
|
-
result
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
# Delete an API key
|
|
37
|
-
# @param id [String] The unique ID of the API key.
|
|
38
|
-
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
39
|
-
# @return [void]
|
|
40
|
-
def delete_api_key(
|
|
41
|
-
id:,
|
|
42
|
-
request_options: {}
|
|
43
|
-
)
|
|
44
|
-
@client.request(
|
|
45
|
-
method: :delete,
|
|
46
|
-
path: "/api_keys/#{WorkOS::Util.encode_path(id)}",
|
|
47
|
-
auth: true,
|
|
48
|
-
request_options: request_options
|
|
49
|
-
)
|
|
50
|
-
nil
|
|
51
|
-
end
|
|
52
|
-
|
|
53
13
|
# List API keys for an organization
|
|
54
14
|
# @param organization_id [String] Unique identifier of the Organization.
|
|
55
15
|
# @param before [String, nil] An object ID that defines your place in the list. When the ID is not present, you are at the end of the list.
|
|
56
16
|
# @param after [String, nil] An object ID that defines your place in the list. When the ID is not present, you are at the end of the list.
|
|
57
17
|
# @param limit [Integer, nil] Upper limit on the number of objects to return, between `1` and `100`.
|
|
58
|
-
# @param order [WorkOS::Types::
|
|
18
|
+
# @param order [WorkOS::Types::PaginationOrder, nil] Order the results by the creation time.
|
|
59
19
|
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
60
|
-
# @return [WorkOS::Types::ListStruct<WorkOS::
|
|
20
|
+
# @return [WorkOS::Types::ListStruct<WorkOS::OrganizationApiKey>]
|
|
61
21
|
def list_organization_api_keys(
|
|
62
22
|
organization_id:,
|
|
63
23
|
before: nil,
|
|
64
24
|
after: nil,
|
|
65
|
-
limit:
|
|
25
|
+
limit: 10,
|
|
66
26
|
order: "desc",
|
|
67
27
|
request_options: {}
|
|
68
28
|
)
|
|
@@ -91,7 +51,7 @@ module WorkOS
|
|
|
91
51
|
}
|
|
92
52
|
WorkOS::Types::ListStruct.from_response(
|
|
93
53
|
response,
|
|
94
|
-
model: WorkOS::
|
|
54
|
+
model: WorkOS::OrganizationApiKey,
|
|
95
55
|
filters: {organization_id: organization_id, before: before, limit: limit, order: order},
|
|
96
56
|
fetch_next: fetch_next
|
|
97
57
|
)
|
|
@@ -102,7 +62,7 @@ module WorkOS
|
|
|
102
62
|
# @param name [String] The name for the API key.
|
|
103
63
|
# @param permissions [Array<String>, nil] The permission slugs to assign to the API key.
|
|
104
64
|
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
105
|
-
# @return [WorkOS::
|
|
65
|
+
# @return [WorkOS::OrganizationApiKeyWithValue]
|
|
106
66
|
def create_organization_api_key(
|
|
107
67
|
organization_id:,
|
|
108
68
|
name:,
|
|
@@ -120,9 +80,49 @@ module WorkOS
|
|
|
120
80
|
body: body,
|
|
121
81
|
request_options: request_options
|
|
122
82
|
)
|
|
123
|
-
result = WorkOS::
|
|
83
|
+
result = WorkOS::OrganizationApiKeyWithValue.new(response.body)
|
|
124
84
|
result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
|
|
125
85
|
result
|
|
126
86
|
end
|
|
87
|
+
|
|
88
|
+
# Validate API key
|
|
89
|
+
# @param value [String] The value for an API key.
|
|
90
|
+
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
91
|
+
# @return [WorkOS::ApiKeyValidationResponse]
|
|
92
|
+
def create_validation(
|
|
93
|
+
value:,
|
|
94
|
+
request_options: {}
|
|
95
|
+
)
|
|
96
|
+
body = {
|
|
97
|
+
"value" => value
|
|
98
|
+
}
|
|
99
|
+
response = @client.request(
|
|
100
|
+
method: :post,
|
|
101
|
+
path: "/api_keys/validations",
|
|
102
|
+
auth: true,
|
|
103
|
+
body: body,
|
|
104
|
+
request_options: request_options
|
|
105
|
+
)
|
|
106
|
+
result = WorkOS::ApiKeyValidationResponse.new(response.body)
|
|
107
|
+
result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
|
|
108
|
+
result
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Delete an API key
|
|
112
|
+
# @param id [String] The unique ID of the API key.
|
|
113
|
+
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
114
|
+
# @return [void]
|
|
115
|
+
def delete_api_key(
|
|
116
|
+
id:,
|
|
117
|
+
request_options: {}
|
|
118
|
+
)
|
|
119
|
+
@client.request(
|
|
120
|
+
method: :delete,
|
|
121
|
+
path: "/api_keys/#{WorkOS::Util.encode_path(id)}",
|
|
122
|
+
auth: true,
|
|
123
|
+
request_options: request_options
|
|
124
|
+
)
|
|
125
|
+
nil
|
|
126
|
+
end
|
|
127
127
|
end
|
|
128
128
|
end
|
data/lib/workos/audit_logs.rb
CHANGED
|
@@ -41,7 +41,7 @@ module WorkOS
|
|
|
41
41
|
)
|
|
42
42
|
body = {
|
|
43
43
|
"retention_period_in_days" => retention_period_in_days
|
|
44
|
-
}
|
|
44
|
+
}
|
|
45
45
|
response = @client.request(
|
|
46
46
|
method: :put,
|
|
47
47
|
path: "/organizations/#{WorkOS::Util.encode_path(id)}/audit_logs_retention",
|
|
@@ -58,13 +58,13 @@ module WorkOS
|
|
|
58
58
|
# @param before [String, nil] An object ID that defines your place in the list. When the ID is not present, you are at the end of the list.
|
|
59
59
|
# @param after [String, nil] An object ID that defines your place in the list. When the ID is not present, you are at the end of the list.
|
|
60
60
|
# @param limit [Integer, nil] Upper limit on the number of objects to return, between `1` and `100`.
|
|
61
|
-
# @param order [WorkOS::Types::
|
|
61
|
+
# @param order [WorkOS::Types::PaginationOrder, nil] Order the results by the creation time.
|
|
62
62
|
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
63
63
|
# @return [WorkOS::Types::ListStruct<WorkOS::AuditLogActionJson>]
|
|
64
64
|
def list_actions(
|
|
65
65
|
before: nil,
|
|
66
66
|
after: nil,
|
|
67
|
-
limit:
|
|
67
|
+
limit: 10,
|
|
68
68
|
order: "desc",
|
|
69
69
|
request_options: {}
|
|
70
70
|
)
|
|
@@ -103,14 +103,14 @@ module WorkOS
|
|
|
103
103
|
# @param before [String, nil] An object ID that defines your place in the list. When the ID is not present, you are at the end of the list.
|
|
104
104
|
# @param after [String, nil] An object ID that defines your place in the list. When the ID is not present, you are at the end of the list.
|
|
105
105
|
# @param limit [Integer, nil] Upper limit on the number of objects to return, between `1` and `100`.
|
|
106
|
-
# @param order [WorkOS::Types::
|
|
106
|
+
# @param order [WorkOS::Types::PaginationOrder, nil] Order the results by the creation time.
|
|
107
107
|
# @param request_options [Hash] (see WorkOS::Types::RequestOptions)
|
|
108
108
|
# @return [WorkOS::Types::ListStruct<WorkOS::AuditLogSchemaJson>]
|
|
109
109
|
def list_action_schemas(
|
|
110
110
|
action_name:,
|
|
111
111
|
before: nil,
|
|
112
112
|
after: nil,
|
|
113
|
-
limit:
|
|
113
|
+
limit: 10,
|
|
114
114
|
order: "desc",
|
|
115
115
|
request_options: {}
|
|
116
116
|
)
|
|
@@ -189,7 +189,7 @@ module WorkOS
|
|
|
189
189
|
body = {
|
|
190
190
|
"organization_id" => organization_id,
|
|
191
191
|
"event" => event
|
|
192
|
-
}
|
|
192
|
+
}
|
|
193
193
|
response = @client.request(
|
|
194
194
|
method: :post,
|
|
195
195
|
path: "/audit_logs/events",
|
|
@@ -14,7 +14,8 @@ module WorkOS
|
|
|
14
14
|
organization_name: :organization_name,
|
|
15
15
|
custom_attributes: :custom_attributes,
|
|
16
16
|
created_at: :created_at,
|
|
17
|
-
updated_at: :updated_at
|
|
17
|
+
updated_at: :updated_at,
|
|
18
|
+
user: :user
|
|
18
19
|
}.freeze
|
|
19
20
|
|
|
20
21
|
attr_accessor \
|
|
@@ -27,7 +28,8 @@ module WorkOS
|
|
|
27
28
|
:organization_name,
|
|
28
29
|
:custom_attributes,
|
|
29
30
|
:created_at,
|
|
30
|
-
:updated_at
|
|
31
|
+
:updated_at,
|
|
32
|
+
:user
|
|
31
33
|
|
|
32
34
|
def initialize(json)
|
|
33
35
|
hash = self.class.normalize(json)
|
|
@@ -41,6 +43,7 @@ module WorkOS
|
|
|
41
43
|
@custom_attributes = hash[:custom_attributes] || {}
|
|
42
44
|
@created_at = hash[:created_at]
|
|
43
45
|
@updated_at = hash[:updated_at]
|
|
46
|
+
@user = hash[:user] ? WorkOS::User.new(hash[:user]) : nil
|
|
44
47
|
end
|
|
45
48
|
end
|
|
46
49
|
end
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
# This file is auto-generated by oagen. Do not edit.
|
|
4
4
|
|
|
5
5
|
module WorkOS
|
|
6
|
-
class
|
|
6
|
+
class UserRoleAssignment < WorkOS::Types::BaseModel
|
|
7
7
|
HASH_ATTRS = {
|
|
8
8
|
object: :object,
|
|
9
9
|
id: :id,
|
|
10
|
+
organization_membership_id: :organization_membership_id,
|
|
10
11
|
role: :role,
|
|
11
12
|
resource: :resource,
|
|
12
13
|
created_at: :created_at,
|
|
@@ -16,6 +17,7 @@ module WorkOS
|
|
|
16
17
|
attr_accessor \
|
|
17
18
|
:object,
|
|
18
19
|
:id,
|
|
20
|
+
:organization_membership_id,
|
|
19
21
|
:role,
|
|
20
22
|
:resource,
|
|
21
23
|
:created_at,
|
|
@@ -25,8 +27,9 @@ module WorkOS
|
|
|
25
27
|
hash = self.class.normalize(json)
|
|
26
28
|
@object = hash[:object]
|
|
27
29
|
@id = hash[:id]
|
|
30
|
+
@organization_membership_id = hash[:organization_membership_id]
|
|
28
31
|
@role = hash[:role] ? WorkOS::SlimRole.new(hash[:role]) : nil
|
|
29
|
-
@resource = hash[:resource] ? WorkOS::
|
|
32
|
+
@resource = hash[:resource] ? WorkOS::UserRoleAssignmentResource.new(hash[:resource]) : nil
|
|
30
33
|
@created_at = hash[:created_at]
|
|
31
34
|
@updated_at = hash[:updated_at]
|
|
32
35
|
end
|