workos 4.2.1 → 4.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +13 -0
- data/lib/workos/deprecation.rb +16 -0
- data/lib/workos/events.rb +1 -1
- data/lib/workos/mfa.rb +3 -2
- data/lib/workos/organizations.rb +23 -5
- data/lib/workos/sso.rb +2 -2
- data/lib/workos/version.rb +1 -1
- data/lib/workos.rb +1 -0
- data/spec/lib/workos/event_spec.rb +22 -0
- data/spec/lib/workos/mfa_spec.rb +13 -8
- data/spec/lib/workos/organizations_spec.rb +53 -0
- data/spec/support/fixtures/vcr_cassettes/events/list_events_with_organization_id.yml +80 -0
- data/spec/support/fixtures/vcr_cassettes/organization/create_with_domain_data.yml +82 -0
- data/spec/support/fixtures/vcr_cassettes/organization/create_with_domains.yml +81 -0
- data/spec/support/fixtures/vcr_cassettes/organization/create_without_domains.yml +86 -0
- metadata +13 -4
- /data/spec/support/shared_examples/{client_spec.rb → client.rb} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b0788087be575732297410a9b832a1290f5615b632560366589db388e1b6ec8d
|
4
|
+
data.tar.gz: 97493a7743daa8994b65319882e3c3351361ea2a8a289c425abd6fc04023098f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa8eca58f02a95f137a610033413f408477bdc8bcf66c14ddb9bda85be3e6f2bf008031b5cf7e13fd501962f4ab4c183b73477216879cfe86d9c9c3cf086c123
|
7
|
+
data.tar.gz: f156a6d7a1d032753dc7f79b478acd492f81b164bf974432ae1f3a7c2770145e347c4b501e1aaf42b8716eb67c7401fd167558859645f7090e79f638519ae1b6
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -45,6 +45,19 @@ end
|
|
45
45
|
|
46
46
|
For our SDKs WorkOS follows a Semantic Versioning ([SemVer](https://semver.org/)) process where all releases will have a version X.Y.Z (like 1.0.0) pattern wherein Z would be a bug fix (e.g., 1.0.1), Y would be a minor release (1.1.0) and X would be a major release (2.0.0). We permit any breaking changes to only be released in major versions and strongly recommend reading changelogs before making any major version upgrades.
|
47
47
|
|
48
|
+
## Beta Releases
|
49
|
+
|
50
|
+
WorkOS has features in Beta that can be accessed via Beta releases. We would love for you to try these
|
51
|
+
and share feedback with us before these features reach general availability (GA). To install a Beta version,
|
52
|
+
please follow the [installation steps](#installation) above using the Beta release version.
|
53
|
+
|
54
|
+
> Note: there can be breaking changes between Beta versions. Therefore, we recommend pinning the package version to a
|
55
|
+
> specific version. This way you can install the same version each time without breaking changes unless you are
|
56
|
+
> intentionally looking for the latest Beta version.
|
57
|
+
|
58
|
+
We highly recommend keeping an eye on when the Beta feature you are interested in goes from Beta to stable so that you
|
59
|
+
can move to using the stable version.
|
60
|
+
|
48
61
|
## More Information
|
49
62
|
|
50
63
|
* [Single Sign-On Guide](https://workos.com/docs/sso/guide)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module WorkOS
|
4
|
+
# Provides helpers for working with deprecated SDK and API features.
|
5
|
+
module Deprecation
|
6
|
+
def warn_deprecation(message)
|
7
|
+
full_message = "[DEPRECATION] #{message}"
|
8
|
+
|
9
|
+
if RUBY_VERSION > '3'
|
10
|
+
warn full_message, category: :deprecated
|
11
|
+
else
|
12
|
+
warn full_message
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/workos/events.rb
CHANGED
@@ -15,7 +15,7 @@ module WorkOS
|
|
15
15
|
#
|
16
16
|
# @param [Hash] options An options hash
|
17
17
|
# @option options [String] event The type of event
|
18
|
-
#
|
18
|
+
# @option options [String] organization_id Limit scope of events to an organization
|
19
19
|
# @option options [String] limit Maximum number of records to return.
|
20
20
|
# @option options [String] after Pagination cursor to receive records
|
21
21
|
# after a provided Event ID.
|
data/lib/workos/mfa.rb
CHANGED
@@ -8,7 +8,8 @@ module WorkOS
|
|
8
8
|
# MFA platform. You'll need a valid API key
|
9
9
|
module MFA
|
10
10
|
class << self
|
11
|
-
include Client
|
11
|
+
include Client, Deprecation
|
12
|
+
|
12
13
|
def delete_factor(id:)
|
13
14
|
response = execute_request(
|
14
15
|
request: delete_request(
|
@@ -101,7 +102,7 @@ module WorkOS
|
|
101
102
|
authentication_challenge_id: nil,
|
102
103
|
code: nil
|
103
104
|
)
|
104
|
-
|
105
|
+
warn_deprecation '`verify_factor` is deprecated. Please use `verify_challenge` instead.'
|
105
106
|
|
106
107
|
verify_challenge(
|
107
108
|
authentication_challenge_id: authentication_challenge_id,
|
data/lib/workos/organizations.rb
CHANGED
@@ -7,6 +7,7 @@ module WorkOS
|
|
7
7
|
module Organizations
|
8
8
|
class << self
|
9
9
|
include Client
|
10
|
+
include Deprecation
|
10
11
|
|
11
12
|
# Retrieve a list of organizations that have connections configured
|
12
13
|
# within your WorkOS dashboard.
|
@@ -70,16 +71,28 @@ module WorkOS
|
|
70
71
|
|
71
72
|
# Create an organization
|
72
73
|
#
|
73
|
-
# @param [Array<
|
74
|
-
#
|
74
|
+
# @param [Array<Hash>] domain_data List of domain hashes describing an orgnaization domain.
|
75
|
+
# @option domain_data [String] domain The domain that belongs to the organization.
|
76
|
+
# @option domain_data [String] state The state of the domain. "verified" or "pending"
|
77
|
+
# @param [Array<String>] domains List of domains that belong to the organization.
|
78
|
+
# Deprecated: Use domain_data instead.
|
75
79
|
# @param [String] name A unique, descriptive name for the organization
|
76
80
|
# @param [Boolean, nil] allow_profiles_outside_organization Whether Connections
|
77
81
|
# within the Organization allow profiles that are outside of the Organization's configured User Email Domains.
|
78
82
|
# @param [String] idempotency_key An idempotency key
|
79
|
-
def create_organization(
|
83
|
+
def create_organization(
|
84
|
+
domain_data: nil,
|
85
|
+
domains: nil,
|
86
|
+
name:,
|
87
|
+
allow_profiles_outside_organization: nil,
|
88
|
+
idempotency_key: nil
|
89
|
+
)
|
90
|
+
warn_deprecation '`domains` is deprecated. Use `domain_data` instead.' if domains
|
91
|
+
|
80
92
|
request = post_request(
|
81
93
|
auth: true,
|
82
94
|
body: {
|
95
|
+
domain_data: domain_data,
|
83
96
|
domains: domains,
|
84
97
|
name: name,
|
85
98
|
allow_profiles_outside_organization: allow_profiles_outside_organization,
|
@@ -97,12 +110,17 @@ module WorkOS
|
|
97
110
|
# Update an organization
|
98
111
|
#
|
99
112
|
# @param [String] organization Organization unique identifier
|
100
|
-
# @param [Array<
|
101
|
-
#
|
113
|
+
# @param [Array<Hash>] domain_data List of domain hashes describing an orgnaization domain.
|
114
|
+
# @option domain_data [String] domain The domain that belongs to the organization.
|
115
|
+
# @option domain_data [String] state The state of the domain. "verified" or "pending"
|
116
|
+
# @param [Array<String>] domains List of domains that belong to the organization.
|
117
|
+
# Deprecated: Use domain_data instead.
|
102
118
|
# @param [String] name A unique, descriptive name for the organization
|
103
119
|
# @param [Boolean, nil] allow_profiles_outside_organization Whether Connections
|
104
120
|
# within the Organization allow profiles that are outside of the Organization's configured User Email Domains.
|
105
121
|
def update_organization(organization:, domains:, name:, allow_profiles_outside_organization: nil)
|
122
|
+
warn_deprecation '`domains` is deprecated. Use `domain_data` instead.' if domains
|
123
|
+
|
106
124
|
request = put_request(
|
107
125
|
auth: true,
|
108
126
|
body: {
|
data/lib/workos/sso.rb
CHANGED
@@ -11,7 +11,7 @@ module WorkOS
|
|
11
11
|
# @see https://docs.workos.com/sso/overview
|
12
12
|
module SSO
|
13
13
|
class << self
|
14
|
-
include Client
|
14
|
+
include Client, Deprecation
|
15
15
|
|
16
16
|
PROVIDERS = WorkOS::Types::Provider::ALL
|
17
17
|
|
@@ -65,7 +65,7 @@ module WorkOS
|
|
65
65
|
state: ''
|
66
66
|
)
|
67
67
|
if domain
|
68
|
-
|
68
|
+
warn_deprecation '[DEPRECATION] `domain` is deprecated.
|
69
69
|
Please use `organization` instead.'
|
70
70
|
end
|
71
71
|
|
data/lib/workos/version.rb
CHANGED
data/lib/workos.rb
CHANGED
@@ -49,6 +49,7 @@ module WorkOS
|
|
49
49
|
autoload :Client, 'workos/client'
|
50
50
|
autoload :Connection, 'workos/connection'
|
51
51
|
autoload :DeprecatedHashWrapper, 'workos/deprecated_hash_wrapper'
|
52
|
+
autoload :Deprecation, 'workos/deprecation'
|
52
53
|
autoload :Directory, 'workos/directory'
|
53
54
|
autoload :DirectoryGroup, 'workos/directory_group'
|
54
55
|
autoload :DirectorySync, 'workos/directory_sync'
|
@@ -83,5 +83,27 @@ describe WorkOS::Events do
|
|
83
83
|
end
|
84
84
|
end
|
85
85
|
end
|
86
|
+
|
87
|
+
context 'with the organization_id option' do
|
88
|
+
it 'forms the proper request to the API' do
|
89
|
+
request_args = [
|
90
|
+
'/events?organization_id=org_1234',
|
91
|
+
'Content-Type' => 'application/json'
|
92
|
+
]
|
93
|
+
|
94
|
+
expected_request = Net::HTTP::Get.new(*request_args)
|
95
|
+
|
96
|
+
expect(Net::HTTP::Get).to receive(:new).with(*request_args).
|
97
|
+
and_return(expected_request)
|
98
|
+
|
99
|
+
VCR.use_cassette 'events/list_events_with_organization_id' do
|
100
|
+
events = described_class.list_events(
|
101
|
+
organization_id: 'org_1234',
|
102
|
+
)
|
103
|
+
|
104
|
+
expect(events.data.size).to eq(1)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
86
108
|
end
|
87
109
|
end
|
data/spec/lib/workos/mfa_spec.rb
CHANGED
@@ -130,14 +130,19 @@ describe WorkOS::MFA do
|
|
130
130
|
|
131
131
|
describe '.verify_factor' do
|
132
132
|
it 'throws a warning' do
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
133
|
+
VCR.use_cassette 'mfa/verify_challenge_generic_valid' do
|
134
|
+
allow(Warning).to receive(:warn)
|
135
|
+
|
136
|
+
described_class.verify_factor(
|
137
|
+
authentication_challenge_id: 'auth_challenge_01FZ4YVRBMXP5ZM0A7BP4AJ12J',
|
138
|
+
code: '897792',
|
139
|
+
)
|
140
|
+
|
141
|
+
expect(Warning).to have_received(:warn).with(
|
142
|
+
"[DEPRECATION] `verify_factor` is deprecated. Please use `verify_challenge` instead.\n",
|
143
|
+
any_args,
|
144
|
+
)
|
145
|
+
end
|
141
146
|
end
|
142
147
|
|
143
148
|
it 'calls verify_challenge' do
|
@@ -18,6 +18,59 @@ describe WorkOS::Organizations do
|
|
18
18
|
expect(organization.domains.first[:domain]).to eq('example.io')
|
19
19
|
end
|
20
20
|
end
|
21
|
+
|
22
|
+
context 'without domains' do
|
23
|
+
it 'creates an organization' do
|
24
|
+
VCR.use_cassette 'organization/create_without_domains' do
|
25
|
+
organization = described_class.create_organization(
|
26
|
+
name: 'Test Organization',
|
27
|
+
)
|
28
|
+
|
29
|
+
expect(organization.id).to start_with('org_')
|
30
|
+
expect(organization.name).to eq('Test Organization')
|
31
|
+
expect(organization.domains).to be_empty
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'with domains' do
|
37
|
+
it 'creates an organization and warns' do
|
38
|
+
VCR.use_cassette 'organization/create_with_domains' do
|
39
|
+
allow(Warning).to receive(:warn)
|
40
|
+
|
41
|
+
organization = described_class.create_organization(
|
42
|
+
domains: ['example.io'],
|
43
|
+
name: 'Test Organization',
|
44
|
+
)
|
45
|
+
|
46
|
+
expect(organization.id).to start_with('org_')
|
47
|
+
expect(organization.name).to eq('Test Organization')
|
48
|
+
expect(organization.domains.first[:domain]).to eq('example.io')
|
49
|
+
|
50
|
+
expect(Warning).to have_received(:warn).with(
|
51
|
+
"[DEPRECATION] `domains` is deprecated. Use `domain_data` instead.\n",
|
52
|
+
any_args,
|
53
|
+
)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'with domain_data' do
|
59
|
+
it 'creates an organization' do
|
60
|
+
VCR.use_cassette 'organization/create_with_domain_data' do
|
61
|
+
organization = described_class.create_organization(
|
62
|
+
domain_data: [{ domain: 'example.io', state: 'verified' }],
|
63
|
+
name: 'Test Organization',
|
64
|
+
)
|
65
|
+
|
66
|
+
expect(organization.id).to start_with('org_')
|
67
|
+
expect(organization.name).to eq('Test Organization')
|
68
|
+
expect(organization.domains.first).to include(
|
69
|
+
domain: 'example.io', state: 'verified',
|
70
|
+
)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
21
74
|
end
|
22
75
|
|
23
76
|
context 'with idempotency key' do
|
@@ -0,0 +1,80 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.workos.com/events?organization_id=org_1234
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- "*/*"
|
16
|
+
User-Agent:
|
17
|
+
- WorkOS; ruby/2.7.2; arm64-darwin21; v2.3.0
|
18
|
+
Authorization:
|
19
|
+
- Bearer <API_KEY>
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Date:
|
26
|
+
- Thu, 14 Jul 2022 16:46:23 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Content-Length:
|
30
|
+
- '616'
|
31
|
+
Connection:
|
32
|
+
- keep-alive
|
33
|
+
Access-Control-Allow-Credentials:
|
34
|
+
- 'true'
|
35
|
+
Content-Security-Policy:
|
36
|
+
- 'default-src ''self'';base-uri ''self'';block-all-mixed-content;font-src ''self''
|
37
|
+
https: data:;frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src
|
38
|
+
''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
|
39
|
+
Etag:
|
40
|
+
- W/"680-NPvBik348v8xg6EE7iZMYwD5UXw"
|
41
|
+
Expect-Ct:
|
42
|
+
- max-age=0
|
43
|
+
Referrer-Policy:
|
44
|
+
- no-referrer
|
45
|
+
Strict-Transport-Security:
|
46
|
+
- max-age=15552000; includeSubDomains
|
47
|
+
Vary:
|
48
|
+
- Origin, Accept-Encoding
|
49
|
+
Via:
|
50
|
+
- 1.1 spaces-router (b642bf20b975)
|
51
|
+
X-Content-Type-Options:
|
52
|
+
- nosniff
|
53
|
+
X-Dns-Prefetch-Control:
|
54
|
+
- 'off'
|
55
|
+
X-Download-Options:
|
56
|
+
- noopen
|
57
|
+
X-Frame-Options:
|
58
|
+
- SAMEORIGIN
|
59
|
+
X-Permitted-Cross-Domain-Policies:
|
60
|
+
- none
|
61
|
+
X-Request-Id:
|
62
|
+
- 51a82273-b413-cead-b968-c07ba4d6fd08
|
63
|
+
X-Xss-Protection:
|
64
|
+
- '0'
|
65
|
+
Cf-Cache-Status:
|
66
|
+
- DYNAMIC
|
67
|
+
Report-To:
|
68
|
+
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=OS7ELJ3A8tkzMafvaIThD%2B5JlYmul1puZlAXTxEKYBLlq%2B6DCtqDqAi4dtr4yRP3khNmg6MwPiuLqtdOXRmPOtag9Ti%2FGK8ra%2BJOlpwkFjD965CNBfzao4EJtExDkbS3"}],"group":"cf-nel","max_age":604800}'
|
69
|
+
Nel:
|
70
|
+
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
71
|
+
Server:
|
72
|
+
- cloudflare
|
73
|
+
Cf-Ray:
|
74
|
+
- 72abbbf2b93e8ca5-EWR
|
75
|
+
body:
|
76
|
+
encoding: ASCII-8BIT
|
77
|
+
string: '{"object":"list","data":[{"object":"event","id":"event_01FK3HFFGMC2WF32RR8SKWC8KA","event":"dsync.user.created","created_at":"2021-10-28T13:29:54.451Z","data":{"email":"foo@foocorp.com"}}], "list_metadata":{"after":null}}'
|
78
|
+
http_version:
|
79
|
+
recorded_at: Thu, 14 Jul 2022 16:46:23 GMT
|
80
|
+
recorded_with: VCR 5.0.0
|
@@ -0,0 +1,82 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.workos.com/organizations
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"domain_data":[{"domain":"example.io","state":"verified"}],"domains":null,"name":"Test
|
9
|
+
Organization","allow_profiles_outside_organization":null}'
|
10
|
+
headers:
|
11
|
+
Content-Type:
|
12
|
+
- application/json
|
13
|
+
Accept-Encoding:
|
14
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
15
|
+
Accept:
|
16
|
+
- "*/*"
|
17
|
+
User-Agent:
|
18
|
+
- WorkOS; ruby/3.1.4; arm64-darwin22; v4.3.0
|
19
|
+
Authorization:
|
20
|
+
- Bearer <API_KEY>
|
21
|
+
response:
|
22
|
+
status:
|
23
|
+
code: 201
|
24
|
+
message: Created
|
25
|
+
headers:
|
26
|
+
Date:
|
27
|
+
- Tue, 30 Apr 2024 01:01:42 GMT
|
28
|
+
Content-Type:
|
29
|
+
- application/json; charset=utf-8
|
30
|
+
Content-Length:
|
31
|
+
- '378'
|
32
|
+
Connection:
|
33
|
+
- keep-alive
|
34
|
+
Cf-Ray:
|
35
|
+
- 87c39a22cb2a7c04-LAX
|
36
|
+
Cf-Cache-Status:
|
37
|
+
- DYNAMIC
|
38
|
+
Etag:
|
39
|
+
- W/"17a-e7OoplZHJrHgxom5pCSqqpDxJjs"
|
40
|
+
Strict-Transport-Security:
|
41
|
+
- max-age=15552000; includeSubDomains
|
42
|
+
Vary:
|
43
|
+
- Origin, Accept-Encoding
|
44
|
+
Access-Control-Allow-Credentials:
|
45
|
+
- 'true'
|
46
|
+
Content-Security-Policy:
|
47
|
+
- 'default-src ''self'';base-uri ''self'';block-all-mixed-content;font-src ''self''
|
48
|
+
https: data:;frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src
|
49
|
+
''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
|
50
|
+
Expect-Ct:
|
51
|
+
- max-age=0
|
52
|
+
Referrer-Policy:
|
53
|
+
- no-referrer
|
54
|
+
X-Content-Type-Options:
|
55
|
+
- nosniff
|
56
|
+
X-Dns-Prefetch-Control:
|
57
|
+
- 'off'
|
58
|
+
X-Download-Options:
|
59
|
+
- noopen
|
60
|
+
X-Frame-Options:
|
61
|
+
- SAMEORIGIN
|
62
|
+
X-Permitted-Cross-Domain-Policies:
|
63
|
+
- none
|
64
|
+
X-Request-Id:
|
65
|
+
- 314446f5-ae74-4a34-a75b-4a048e295e96
|
66
|
+
X-Xss-Protection:
|
67
|
+
- '0'
|
68
|
+
Set-Cookie:
|
69
|
+
- __cf_bm=JRrIwwneHyRFvW2HY7HQeYKUAcqrygAM1Wd8iPoHBk8-1714438902-1.0.1.1-NySWD9QTWwy29v8Z1.CIWx943aVg9v1Y0Pr2e63CRHVJ8StvW7QRbW0gMe04VkNyj17genn8g3s1kVcqd4oWwQ;
|
70
|
+
path=/; expires=Tue, 30-Apr-24 01:31:42 GMT; domain=.workos.com; HttpOnly;
|
71
|
+
Secure; SameSite=None
|
72
|
+
- __cfruid=b1ea2c30a368e0f51f64c01389ed23411ab148f1-1714438902; path=/; domain=.workos.com;
|
73
|
+
HttpOnly; Secure; SameSite=None
|
74
|
+
Server:
|
75
|
+
- cloudflare
|
76
|
+
body:
|
77
|
+
encoding: UTF-8
|
78
|
+
string: '{"object":"organization","id":"org_01HWP8B4G64K6MAHZKTMVZ5RGP","name":"Test
|
79
|
+
Organization","allow_profiles_outside_organization":false,"created_at":"2024-04-30T01:01:42.277Z","updated_at":"2024-04-30T01:01:42.277Z","domains":[{"verification_strategy":"manual","state":"verified","object":"organization_domain","id":"org_domain_01HWP8B4GWBH9APRM8KPBFCNHW","domain":"example.io"}]}'
|
80
|
+
http_version:
|
81
|
+
recorded_at: Tue, 30 Apr 2024 01:01:42 GMT
|
82
|
+
recorded_with: VCR 5.0.0
|
@@ -0,0 +1,81 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.workos.com/organizations
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"domain_data":null,"domains":["example.io"],"name":"Test Organization","allow_profiles_outside_organization":null}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- "*/*"
|
16
|
+
User-Agent:
|
17
|
+
- WorkOS; ruby/3.1.4; arm64-darwin22; v4.3.0
|
18
|
+
Authorization:
|
19
|
+
- Bearer <API_KEY>
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 201
|
23
|
+
message: Created
|
24
|
+
headers:
|
25
|
+
Date:
|
26
|
+
- Tue, 30 Apr 2024 01:06:58 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Content-Length:
|
30
|
+
- '352'
|
31
|
+
Connection:
|
32
|
+
- keep-alive
|
33
|
+
Cf-Ray:
|
34
|
+
- 87c3a1dc79f82f1c-LAX
|
35
|
+
Cf-Cache-Status:
|
36
|
+
- DYNAMIC
|
37
|
+
Etag:
|
38
|
+
- W/"160-DoBiYByX9XrgXYYHDZKVF2kbtrY"
|
39
|
+
Strict-Transport-Security:
|
40
|
+
- max-age=15552000; includeSubDomains
|
41
|
+
Vary:
|
42
|
+
- Origin, Accept-Encoding
|
43
|
+
Access-Control-Allow-Credentials:
|
44
|
+
- 'true'
|
45
|
+
Content-Security-Policy:
|
46
|
+
- 'default-src ''self'';base-uri ''self'';block-all-mixed-content;font-src ''self''
|
47
|
+
https: data:;frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src
|
48
|
+
''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
|
49
|
+
Expect-Ct:
|
50
|
+
- max-age=0
|
51
|
+
Referrer-Policy:
|
52
|
+
- no-referrer
|
53
|
+
X-Content-Type-Options:
|
54
|
+
- nosniff
|
55
|
+
X-Dns-Prefetch-Control:
|
56
|
+
- 'off'
|
57
|
+
X-Download-Options:
|
58
|
+
- noopen
|
59
|
+
X-Frame-Options:
|
60
|
+
- SAMEORIGIN
|
61
|
+
X-Permitted-Cross-Domain-Policies:
|
62
|
+
- none
|
63
|
+
X-Request-Id:
|
64
|
+
- c11d19bf-bd68-4d3e-ba59-9e2ec6f5e71f
|
65
|
+
X-Xss-Protection:
|
66
|
+
- '0'
|
67
|
+
Set-Cookie:
|
68
|
+
- __cf_bm=1Qt0kSHHEyud3lsP.gz06VPTCcv5J35Xq1b2FudzKFk-1714439218-1.0.1.1-Pb5WXPCKuJfKXO3ri73EA_RuzaBMD.6brPkMihsQQzaC6gPRJdGiB_g3OT3eoN6km3RwF72MqD_Jlf8xb.Nb2A;
|
69
|
+
path=/; expires=Tue, 30-Apr-24 01:36:58 GMT; domain=.workos.com; HttpOnly;
|
70
|
+
Secure; SameSite=None
|
71
|
+
- __cfruid=d4e3496284dd882965f61d10e392da91c73aa5c2-1714439218; path=/; domain=.workos.com;
|
72
|
+
HttpOnly; Secure; SameSite=None
|
73
|
+
Server:
|
74
|
+
- cloudflare
|
75
|
+
body:
|
76
|
+
encoding: UTF-8
|
77
|
+
string: '{"object":"organization","id":"org_01HWP8MSH28Z7SW2H6KK65S6VF","name":"Test
|
78
|
+
Organization","allow_profiles_outside_organization":false,"created_at":"2024-04-30T01:06:58.720Z","updated_at":"2024-04-30T01:06:58.720Z","domains":[{"state":"legacy_verified","object":"organization_domain","id":"org_domain_01HWP8MSHEX4KR7TJJFAFN9MK2","domain":"example.io"}]}'
|
79
|
+
http_version:
|
80
|
+
recorded_at: Tue, 30 Apr 2024 01:06:58 GMT
|
81
|
+
recorded_with: VCR 5.0.0
|
@@ -0,0 +1,86 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.workos.com/organizations
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"domain_data":null,"domains":null,"name":"Test Organization","allow_profiles_outside_organization":null}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- "*/*"
|
16
|
+
User-Agent:
|
17
|
+
- WorkOS; ruby/3.1.4; arm64-darwin22; v4.3.0
|
18
|
+
Authorization:
|
19
|
+
- Bearer <API_KEY>
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 201
|
23
|
+
message: Created
|
24
|
+
headers:
|
25
|
+
Date:
|
26
|
+
- Tue, 30 Apr 2024 00:58:00 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Content-Length:
|
30
|
+
- '227'
|
31
|
+
Connection:
|
32
|
+
- keep-alive
|
33
|
+
Cf-Ray:
|
34
|
+
- 87c394b48ef82f6f-LAX
|
35
|
+
Cf-Cache-Status:
|
36
|
+
- DYNAMIC
|
37
|
+
Etag:
|
38
|
+
- W/"e3-wm7ZLsZabhBpnQsj6nbIuYbCvJ4"
|
39
|
+
Strict-Transport-Security:
|
40
|
+
- max-age=15552000; includeSubDomains
|
41
|
+
Vary:
|
42
|
+
- Origin, Accept-Encoding
|
43
|
+
Access-Control-Allow-Credentials:
|
44
|
+
- 'true'
|
45
|
+
Content-Security-Policy:
|
46
|
+
- 'default-src ''self'';base-uri ''self'';block-all-mixed-content;font-src ''self''
|
47
|
+
https: data:;frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src
|
48
|
+
''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
|
49
|
+
Expect-Ct:
|
50
|
+
- max-age=0
|
51
|
+
Referrer-Policy:
|
52
|
+
- no-referrer
|
53
|
+
X-Content-Type-Options:
|
54
|
+
- nosniff
|
55
|
+
X-Dns-Prefetch-Control:
|
56
|
+
- 'off'
|
57
|
+
X-Download-Options:
|
58
|
+
- noopen
|
59
|
+
X-Frame-Options:
|
60
|
+
- SAMEORIGIN
|
61
|
+
X-Permitted-Cross-Domain-Policies:
|
62
|
+
- none
|
63
|
+
X-Request-Id:
|
64
|
+
- 42653293-fec5-40f5-8e3e-f74a3a63235f
|
65
|
+
X-Xss-Protection:
|
66
|
+
- '0'
|
67
|
+
Set-Cookie:
|
68
|
+
- __cf_bm=sr2v7XzZkDug4GaS8ZFVyNHQiFplJ1GRbehICEMbZEo-1714438680-1.0.1.1-jU4xGUlzCWlJcDjQ5PKN5v4BSetomhms7WYP1StgzZ.LO0oKDIOCW9R6CiS6BPfPB511ANRh9ricOnRoSM5x2A;
|
69
|
+
path=/; expires=Tue, 30-Apr-24 01:28:00 GMT; domain=.workos.com; HttpOnly;
|
70
|
+
Secure; SameSite=None
|
71
|
+
- __cfruid=2ff6acd824f790442a69e03d7abbce5aa0842988-1714438680; path=/; domain=.workos.com;
|
72
|
+
HttpOnly; Secure; SameSite=None
|
73
|
+
Report-To:
|
74
|
+
- '{"endpoints":[{"url":"https:\/\/csp-reporting.cloudflare.com\/cdn-cgi\/script_monitor\/report?m=MN1QYUE50Syo3whI3PgTAR0DEl89teeSttp_39ZoiJU-1714438680-1.0.1.1-7pyU.qZhlSTg4R9BBGC.xRSgae6EmLeyPE9ody07LpgLwMncwzQrnPFDhOwpi7MUiFfKAyRbUY80xGEvP_5Fzrw7a8AVy_K637dqtX8nmIuKEC.2VZJYNNRloqn4xCeFu8o6Q2luN6WANE.FKxrw0Q"}],"group":"cf-csp-endpoint","max_age":86400}'
|
75
|
+
Content-Security-Policy-Report-Only:
|
76
|
+
- script-src 'none'; connect-src 'none'; report-uri https://csp-reporting.cloudflare.com/cdn-cgi/script_monitor/report?m=MN1QYUE50Syo3whI3PgTAR0DEl89teeSttp_39ZoiJU-1714438680-1.0.1.1-7pyU.qZhlSTg4R9BBGC.xRSgae6EmLeyPE9ody07LpgLwMncwzQrnPFDhOwpi7MUiFfKAyRbUY80xGEvP_5Fzrw7a8AVy_K637dqtX8nmIuKEC.2VZJYNNRloqn4xCeFu8o6Q2luN6WANE.FKxrw0Q;
|
77
|
+
report-to cf-csp-endpoint
|
78
|
+
Server:
|
79
|
+
- cloudflare
|
80
|
+
body:
|
81
|
+
encoding: UTF-8
|
82
|
+
string: '{"object":"organization","id":"org_01HWP84BDGAVGEEWB22A0CVV7G","name":"Test
|
83
|
+
Organization","allow_profiles_outside_organization":false,"created_at":"2024-04-30T00:57:59.983Z","updated_at":"2024-04-30T00:57:59.983Z","domains":[]}'
|
84
|
+
http_version:
|
85
|
+
recorded_at: Tue, 30 Apr 2024 00:58:00 GMT
|
86
|
+
recorded_with: VCR 5.0.0
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workos
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- WorkOS
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -113,6 +113,7 @@ files:
|
|
113
113
|
- lib/workos/configuration.rb
|
114
114
|
- lib/workos/connection.rb
|
115
115
|
- lib/workos/deprecated_hash_wrapper.rb
|
116
|
+
- lib/workos/deprecation.rb
|
116
117
|
- lib/workos/directory.rb
|
117
118
|
- lib/workos/directory_group.rb
|
118
119
|
- lib/workos/directory_sync.rb
|
@@ -201,6 +202,7 @@ files:
|
|
201
202
|
- spec/support/fixtures/vcr_cassettes/events/list_events_with_after.yml
|
202
203
|
- spec/support/fixtures/vcr_cassettes/events/list_events_with_event.yml
|
203
204
|
- spec/support/fixtures/vcr_cassettes/events/list_events_with_no_options.yml
|
205
|
+
- spec/support/fixtures/vcr_cassettes/events/list_events_with_organization_id.yml
|
204
206
|
- spec/support/fixtures/vcr_cassettes/events/list_events_with_range.yml
|
205
207
|
- spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_generic_valid.yml
|
206
208
|
- spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_sms_valid.yml
|
@@ -217,9 +219,12 @@ files:
|
|
217
219
|
- spec/support/fixtures/vcr_cassettes/mfa/verify_challenge_generic_valid_is_false.yml
|
218
220
|
- spec/support/fixtures/vcr_cassettes/organization/create.yml
|
219
221
|
- spec/support/fixtures/vcr_cassettes/organization/create_invalid.yml
|
222
|
+
- spec/support/fixtures/vcr_cassettes/organization/create_with_domain_data.yml
|
223
|
+
- spec/support/fixtures/vcr_cassettes/organization/create_with_domains.yml
|
220
224
|
- spec/support/fixtures/vcr_cassettes/organization/create_with_duplicate_idempotency_key_and_different_payload.yml
|
221
225
|
- spec/support/fixtures/vcr_cassettes/organization/create_with_duplicate_idempotency_key_and_payload.yml
|
222
226
|
- spec/support/fixtures/vcr_cassettes/organization/create_with_idempotency_key.yml
|
227
|
+
- spec/support/fixtures/vcr_cassettes/organization/create_without_domains.yml
|
223
228
|
- spec/support/fixtures/vcr_cassettes/organization/delete.yml
|
224
229
|
- spec/support/fixtures/vcr_cassettes/organization/delete_invalid.yml
|
225
230
|
- spec/support/fixtures/vcr_cassettes/organization/get.yml
|
@@ -309,7 +314,7 @@ files:
|
|
309
314
|
- spec/support/fixtures/vcr_cassettes/user_management/verify_email/invalid_magic_auth_challenge.yml
|
310
315
|
- spec/support/fixtures/vcr_cassettes/user_management/verify_email/valid.yml
|
311
316
|
- spec/support/profile.txt
|
312
|
-
- spec/support/shared_examples/
|
317
|
+
- spec/support/shared_examples/client.rb
|
313
318
|
- spec/support/webhook_payload.txt
|
314
319
|
- workos.gemspec
|
315
320
|
homepage: https://github.com/workos-inc/workos-ruby
|
@@ -391,6 +396,7 @@ test_files:
|
|
391
396
|
- spec/support/fixtures/vcr_cassettes/events/list_events_with_after.yml
|
392
397
|
- spec/support/fixtures/vcr_cassettes/events/list_events_with_event.yml
|
393
398
|
- spec/support/fixtures/vcr_cassettes/events/list_events_with_no_options.yml
|
399
|
+
- spec/support/fixtures/vcr_cassettes/events/list_events_with_organization_id.yml
|
394
400
|
- spec/support/fixtures/vcr_cassettes/events/list_events_with_range.yml
|
395
401
|
- spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_generic_valid.yml
|
396
402
|
- spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_sms_valid.yml
|
@@ -407,9 +413,12 @@ test_files:
|
|
407
413
|
- spec/support/fixtures/vcr_cassettes/mfa/verify_challenge_generic_valid_is_false.yml
|
408
414
|
- spec/support/fixtures/vcr_cassettes/organization/create.yml
|
409
415
|
- spec/support/fixtures/vcr_cassettes/organization/create_invalid.yml
|
416
|
+
- spec/support/fixtures/vcr_cassettes/organization/create_with_domain_data.yml
|
417
|
+
- spec/support/fixtures/vcr_cassettes/organization/create_with_domains.yml
|
410
418
|
- spec/support/fixtures/vcr_cassettes/organization/create_with_duplicate_idempotency_key_and_different_payload.yml
|
411
419
|
- spec/support/fixtures/vcr_cassettes/organization/create_with_duplicate_idempotency_key_and_payload.yml
|
412
420
|
- spec/support/fixtures/vcr_cassettes/organization/create_with_idempotency_key.yml
|
421
|
+
- spec/support/fixtures/vcr_cassettes/organization/create_without_domains.yml
|
413
422
|
- spec/support/fixtures/vcr_cassettes/organization/delete.yml
|
414
423
|
- spec/support/fixtures/vcr_cassettes/organization/delete_invalid.yml
|
415
424
|
- spec/support/fixtures/vcr_cassettes/organization/get.yml
|
@@ -499,5 +508,5 @@ test_files:
|
|
499
508
|
- spec/support/fixtures/vcr_cassettes/user_management/verify_email/invalid_magic_auth_challenge.yml
|
500
509
|
- spec/support/fixtures/vcr_cassettes/user_management/verify_email/valid.yml
|
501
510
|
- spec/support/profile.txt
|
502
|
-
- spec/support/shared_examples/
|
511
|
+
- spec/support/shared_examples/client.rb
|
503
512
|
- spec/support/webhook_payload.txt
|
File without changes
|