workos 4.6.0 → 4.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 332ad6b582c870d359c308f231c3a9aab661487177b5afb73f9eda7b8c42f3ba
4
- data.tar.gz: e95ae8f206a0a365a96ecc849b7426c0fd5425b59ac3cb9fde6fae4db1bb3b87
3
+ metadata.gz: 3a8eee76f744e675549099b150414fde6c8fb299bd40efd35f4765f4491a7896
4
+ data.tar.gz: de96239fdd72faf0e772146a7532b1e9a948f001c43e217d8af7636a75c2aa43
5
5
  SHA512:
6
- metadata.gz: b216f6e42eed12702ad449a0370aac224e7c946ea275b48170162a2eb43f4639ee2e7cdf5ef9a1be31edde3d120f3ae7f13d6531233d2974cf27c3af4c7a870a
7
- data.tar.gz: e1597322a482e0c94fae260b11cc1225f831a80f5e916fbf8b52415df6972054b8eba8b973cb73336c6985396e518535197c9e3fccdc33cd17fd3871a5eff958
6
+ metadata.gz: abc6d1b314105f5fb113e178015376d3ea607970ebb7d28cd1cdea8b914d558803504bdc420148aae0649fbcf997ee6cecf3602732b76fe356447e87fa5121a8
7
+ data.tar.gz: 36d55ffc100b13b92a172002fc921ffd980399c395b2f7bffea9d266eb9c9f01db4439b16dbb10371bb08f6d23b4e6f101c5b92559754be29b03bbc16e2b2f93
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- workos (4.6.0)
4
+ workos (4.7.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WorkOS
4
+ # The EmailVerification class provides a lightweight wrapper around a WorkOS email
5
+ # verification resource. This class is not meant to be instantiated in a user space,
6
+ # and is instantiated internally but exposed.
7
+ class EmailVerification
8
+ include HashProvider
9
+
10
+ attr_accessor :id, :user_id, :email,
11
+ :expires_at, :code, :created_at, :updated_at
12
+
13
+ def initialize(json)
14
+ hash = JSON.parse(json, symbolize_names: true)
15
+
16
+ @id = hash[:id]
17
+ @user_id = hash[:user_id]
18
+ @email = hash[:email]
19
+ @code = hash[:code]
20
+ @expires_at = hash[:expires_at]
21
+ @created_at = hash[:created_at]
22
+ @updated_at = hash[:updated_at]
23
+ end
24
+
25
+ def to_json(*)
26
+ {
27
+ id: id,
28
+ user_id: user_id,
29
+ email: email,
30
+ code: code,
31
+ expires_at: expires_at,
32
+ created_at: created_at,
33
+ updated_at: updated_at,
34
+ }
35
+ end
36
+ end
37
+ end
@@ -8,8 +8,9 @@ module WorkOS
8
8
  include HashProvider
9
9
 
10
10
  attr_accessor :id, :email, :state, :accepted_at, :revoked_at, :accept_invitation_url,
11
- :expires_at, :token, :organization_id, :created_at, :updated_at
11
+ :expires_at, :token, :organization_id, :inviter_user_id, :created_at, :updated_at
12
12
 
13
+ # rubocop:disable Metrics/AbcSize
13
14
  def initialize(json)
14
15
  hash = JSON.parse(json, symbolize_names: true)
15
16
 
@@ -19,12 +20,14 @@ module WorkOS
19
20
  @token = hash[:token]
20
21
  @accept_invitation_url = hash[:accept_invitation_url]
21
22
  @organization_id = hash[:organization_id]
23
+ @inviter_user_id = hash[:inviter_user_id]
22
24
  @accepted_at = hash[:accepted_at]
23
25
  @revoked_at = hash[:revoked_at]
24
26
  @expires_at = hash[:expires_at]
25
27
  @created_at = hash[:created_at]
26
28
  @updated_at = hash[:updated_at]
27
29
  end
30
+ # rubocop:enable Metrics/AbcSize
28
31
 
29
32
  def to_json(*)
30
33
  {
@@ -34,6 +37,7 @@ module WorkOS
34
37
  token: token,
35
38
  accept_invitation_url: accept_invitation_url,
36
39
  organization_id: organization_id,
40
+ inviter_user_id: inviter_user_id,
37
41
  accepted_at: accepted_at,
38
42
  revoked_at: revoked_at,
39
43
  expires_at: expires_at,
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WorkOS
4
+ # The PasswordReset class provides a lightweight wrapper around a WorkOS password
5
+ # reset resource. This class is not meant to be instantiated in a user space,
6
+ # and is instantiated internally but exposed.
7
+ class PasswordReset
8
+ include HashProvider
9
+
10
+ attr_accessor :id, :user_id, :email, :password_reset_token,
11
+ :password_reset_url, :expires_at, :created_at
12
+
13
+ def initialize(json)
14
+ hash = JSON.parse(json, symbolize_names: true)
15
+
16
+ @id = hash[:id]
17
+ @user_id = hash[:user_id]
18
+ @email = hash[:email]
19
+ @password_reset_token = hash[:password_reset_token]
20
+ @password_reset_url = hash[:password_reset_url]
21
+ @expires_at = hash[:expires_at]
22
+ @created_at = hash[:created_at]
23
+ end
24
+
25
+ def to_json(*)
26
+ {
27
+ id: id,
28
+ user_id: user_id,
29
+ email: email,
30
+ password_reset_token: password_reset_token,
31
+ password_reset_url: password_reset_url,
32
+ expires_at: expires_at,
33
+ created_at: created_at,
34
+ }
35
+ end
36
+ end
37
+ end
@@ -650,6 +650,22 @@ module WorkOS
650
650
  )
651
651
  end
652
652
 
653
+ # Gets an email verification object
654
+ #
655
+ # @param [String] id The unique ID of the EmailVerification object.
656
+ #
657
+ # @return WorkOS::EmailVerification
658
+ def get_email_verification(id:)
659
+ response = execute_request(
660
+ request: get_request(
661
+ path: "/user_management/email_verification/#{id}",
662
+ auth: true,
663
+ ),
664
+ )
665
+
666
+ WorkOS::EmailVerification.new(response.body)
667
+ end
668
+
653
669
  # Sends a verification email to the provided user.
654
670
  #
655
671
  # @param [String] user_id The unique ID of the User whose email address will be verified.
@@ -686,6 +702,41 @@ module WorkOS
686
702
  WorkOS::UserResponse.new(response.body)
687
703
  end
688
704
 
705
+ # Gets a password reset object
706
+ #
707
+ # @param [String] id The unique ID of the PasswordReset object.
708
+ #
709
+ # @return WorkOS::PasswordReset
710
+ def get_password_reset(id:)
711
+ response = execute_request(
712
+ request: get_request(
713
+ path: "/user_management/password_reset/#{id}",
714
+ auth: true,
715
+ ),
716
+ )
717
+
718
+ WorkOS::PasswordReset.new(response.body)
719
+ end
720
+
721
+ # Creates a password reset token
722
+ #
723
+ # @param [String] email The email address of the user.
724
+ #
725
+ # @return WorkOS::PasswordReset
726
+ def create_password_reset(email:)
727
+ response = execute_request(
728
+ request: post_request(
729
+ path: '/user_management/password_reset',
730
+ body: {
731
+ email: email,
732
+ },
733
+ auth: true,
734
+ ),
735
+ )
736
+
737
+ WorkOS::PasswordReset.new(response.body)
738
+ end
739
+
689
740
  # Create a password reset challenge and emails a password reset link to a user.
690
741
  #
691
742
  # @param [String] email The email of the user that wishes to reset their password.
@@ -693,6 +744,9 @@ module WorkOS
693
744
  #
694
745
  # @return [Bool] - returns `true` if successful
695
746
  def send_password_reset_email(email:, password_reset_url:)
747
+ warn_deprecation '`send_password_reset_email` is deprecated.
748
+ Please use `create_password_reset` instead. This method will be removed in a future major version.'
749
+
696
750
  request = post_request(
697
751
  path: '/user_management/password_reset/send',
698
752
  body: {
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WorkOS
4
- VERSION = '4.6.0'
4
+ VERSION = '4.7.0'
5
5
  end
data/lib/workos.rb CHANGED
@@ -54,6 +54,7 @@ module WorkOS
54
54
  autoload :DirectoryGroup, 'workos/directory_group'
55
55
  autoload :DirectorySync, 'workos/directory_sync'
56
56
  autoload :DirectoryUser, 'workos/directory_user'
57
+ autoload :EmailVerification, 'workos/email_verification'
57
58
  autoload :Event, 'workos/event'
58
59
  autoload :Events, 'workos/events'
59
60
  autoload :Factor, 'workos/factor'
@@ -65,6 +66,7 @@ module WorkOS
65
66
  autoload :Organizations, 'workos/organizations'
66
67
  autoload :OrganizationMembership, 'workos/organization_membership'
67
68
  autoload :Passwordless, 'workos/passwordless'
69
+ autoload :PasswordReset, 'workos/password_reset'
68
70
  autoload :Portal, 'workos/portal'
69
71
  autoload :Profile, 'workos/profile'
70
72
  autoload :ProfileAndToken, 'workos/profile_and_token'
@@ -736,6 +736,31 @@ describe WorkOS::UserManagement do
736
736
  end
737
737
  end
738
738
 
739
+ describe '.get_email_verification' do
740
+ context 'with a valid id' do
741
+ it 'returns an email_verification object' do
742
+ VCR.use_cassette 'user_management/get_email_verification/valid' do
743
+ email_verification = described_class.get_email_verification(
744
+ id: 'email_verification_01HYK9VKNJQ0MJDXEXQP0DA1VK',
745
+ )
746
+
747
+ expect(email_verification.id.instance_of?(String))
748
+ expect(email_verification.instance_of?(WorkOS::EmailVerification))
749
+ end
750
+ end
751
+ end
752
+
753
+ context 'with an invalid id' do
754
+ it 'raises an error' do
755
+ VCR.use_cassette('user_management/get_email_verification/invalid') do
756
+ expect do
757
+ WorkOS::UserManagement.get_email_verification(id: 'invalid')
758
+ end.to raise_error(WorkOS::APIError, /Email Verification not found/)
759
+ end
760
+ end
761
+ end
762
+ end
763
+
739
764
  describe '.send_verification_email' do
740
765
  context 'with valid parameters' do
741
766
  it 'sends an email to that user and the magic auth challenge' do
@@ -804,6 +829,46 @@ describe WorkOS::UserManagement do
804
829
  end
805
830
  end
806
831
 
832
+ describe '.get_password_reset' do
833
+ context 'with a valid id' do
834
+ it 'returns a password_reset object' do
835
+ VCR.use_cassette 'user_management/get_password_reset/valid' do
836
+ password_reset = described_class.get_password_reset(
837
+ id: 'password_reset_01HYKA8DTF8TW5YD30MF0ZXZKT',
838
+ )
839
+
840
+ expect(password_reset.id.instance_of?(String))
841
+ expect(password_reset.instance_of?(WorkOS::PasswordReset))
842
+ end
843
+ end
844
+ end
845
+
846
+ context 'with an invalid id' do
847
+ it 'raises an error' do
848
+ VCR.use_cassette('user_management/get_password_reset/invalid') do
849
+ expect do
850
+ WorkOS::UserManagement.get_password_reset(id: 'invalid')
851
+ end.to raise_error(WorkOS::APIError, /Password Reset not found/)
852
+ end
853
+ end
854
+ end
855
+ end
856
+
857
+ describe '.create_password_reset' do
858
+ context 'with valid payload' do
859
+ it 'creates a password_reset object' do
860
+ VCR.use_cassette 'user_management/create_password_reset/valid' do
861
+ password_reset = described_class.create_password_reset(
862
+ email: 'test@workos.com',
863
+ )
864
+
865
+ expect(password_reset.id).to eq('password_reset_01HYKA8DTF8TW5YD30MF0ZXZKT')
866
+ expect(password_reset.email).to eq('test@workos.com')
867
+ end
868
+ end
869
+ end
870
+ end
871
+
807
872
  describe '.send_password_reset_email' do
808
873
  context 'with a valid payload' do
809
874
  it 'sends a password reset email' do
@@ -0,0 +1,80 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.workos.com/user_management/password_reset
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"email":"blair@workos.com"}'
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.0.2; x86_64-darwin19; v4.6.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 201
23
+ message: Created
24
+ headers:
25
+ Date:
26
+ - Thu, 23 May 2024 18:08:51 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Content-Length:
30
+ - '397'
31
+ Connection:
32
+ - keep-alive
33
+ Cf-Ray:
34
+ - 8886fe5e1c317b24-DEN
35
+ Cf-Cache-Status:
36
+ - DYNAMIC
37
+ Etag:
38
+ - W/"18d-Z6VC8jkvZuXmNL0BcJcqkF7M0BQ"
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
+ - db59df36-fce8-4174-a031-bd259bca32f8
65
+ X-Xss-Protection:
66
+ - '0'
67
+ Set-Cookie:
68
+ - __cf_bm=d6moUiiUczj82CNolGPFWxb99g4YP_C.ZlaH9W7xnF8-1716487731-1.0.1.1-pRG1tKVpL4EV8NrdL78THPAhMdBiKwY_tOlgnuanVHgNFvw6MeMv2wJG0Nkp4oLwXdW629gkH1OwSaLIv9EuYQ;
69
+ path=/; expires=Thu, 23-May-24 18:38:51 GMT; domain=.workos.com; HttpOnly;
70
+ Secure; SameSite=None
71
+ - __cfruid=bd64ac4e2572b6fc609d5cc06577eed03bc1bbcb-1716487731; path=/; domain=.workos.com;
72
+ HttpOnly; Secure; SameSite=None
73
+ Server:
74
+ - cloudflare
75
+ body:
76
+ encoding: UTF-8
77
+ string: '{"object":"password_reset","id":"password_reset_01HYKA8DTF8TW5YD30MF0ZXZKT","user_id":"user_01HH5GTVSP6PEXV0SRB9ANFE9G","email":"test@workos.com","password_reset_token":"DmNQt1ZWOz7k5hulOoGDN0TZd","password_reset_url":"https://my-app.com/reset-password/?token=DmNQt1ZWOz7k5hulOoGDN0TZd","expires_at":"2024-05-23T18:23:51.024Z","created_at":"2024-05-23T18:08:51.024Z"}'
78
+ http_version:
79
+ recorded_at: Thu, 23 May 2024 18:08:50 GMT
80
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,80 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.workos.com/user_management/email_verification/invalid
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/3.0.2; x86_64-darwin19; v4.6.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 404
23
+ message: Not Found
24
+ headers:
25
+ Date:
26
+ - Thu, 23 May 2024 18:04:34 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ Cf-Ray:
34
+ - 8886f81a5d7e7b18-DEN
35
+ Cf-Cache-Status:
36
+ - DYNAMIC
37
+ Etag:
38
+ - W/"66-ESd/ROLsUvsCu/wiWkoaXfmv1gY"
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
+ - 777e6230-9045-4858-9925-efb5c5783aa7
65
+ X-Xss-Protection:
66
+ - '0'
67
+ Set-Cookie:
68
+ - __cf_bm=jfT91VpwVMXi901oaS57bdvcPNjXwzgT0NN.TADMkSA-1716487474-1.0.1.1-D3FZIQ5VQOMnMl3UudReuAR600DpJh8NzCxffFA.bRKl_H6zziPQu7Kk3_.wsy8_ESDjlcUQ3suhVmUb5Iwbhg;
69
+ path=/; expires=Thu, 23-May-24 18:34:34 GMT; domain=.workos.com; HttpOnly;
70
+ Secure; SameSite=None
71
+ - __cfruid=387f8a46c39c44e43af2f39cd9fd8aea810da563-1716487474; path=/; domain=.workos.com;
72
+ HttpOnly; Secure; SameSite=None
73
+ Server:
74
+ - cloudflare
75
+ body:
76
+ encoding: ASCII-8BIT
77
+ string: '{"message":"Email Verification not found: ''invalid''.","code":"entity_not_found","entity_id":"invalid"}'
78
+ http_version:
79
+ recorded_at: Thu, 23 May 2024 18:04:34 GMT
80
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,80 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.workos.com/user_management/email_verification/email_verification_01HYK9VKNJQ0MJDXEXQP0DA1VK
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/3.0.2; x86_64-darwin19; v4.6.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Thu, 23 May 2024 18:20:20 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ Cf-Ray:
34
+ - 88870f32dcd07c2e-DEN
35
+ Cf-Cache-Status:
36
+ - DYNAMIC
37
+ Etag:
38
+ - W/"12b-ekjr8XAvfdiqyjIkVD8WtynlLBo"
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
+ - 52bf7914-d672-454b-bd61-353e397fdad5
65
+ X-Xss-Protection:
66
+ - '0'
67
+ Set-Cookie:
68
+ - __cf_bm=huBpGvZo0rq1TOrNY2F0wBwT69_y.Paz9joecCAWK2Y-1716488420-1.0.1.1-YY9yAQE6aOIbVg6Vf8Rxc8ScBPueEKTcUGUXIQmi_AYXfCtcQUa3MzjWeeC0.vmO0AetYPSX3FmmWUf26GH2Fw;
69
+ path=/; expires=Thu, 23-May-24 18:50:20 GMT; domain=.workos.com; HttpOnly;
70
+ Secure; SameSite=None
71
+ - __cfruid=823df799452104e182687db9c4f57d862b59f78e-1716488420; path=/; domain=.workos.com;
72
+ HttpOnly; Secure; SameSite=None
73
+ Server:
74
+ - cloudflare
75
+ body:
76
+ encoding: ASCII-8BIT
77
+ string: '{"object":"email_verification","id":"email_verification_01HYK9VKNJQ0MJDXEXQP0DA1VK","user_id":"user_01HYK9VAAW34TPP0KSYXCX44SB","email":"blairlunceford@gmail.com","code":"561814","expires_at":"2024-05-23T18:11:51.024Z","created_at":"2024-05-23T18:01:50.997Z","updated_at":"2024-05-23T18:01:50.997Z"}'
78
+ http_version:
79
+ recorded_at: Thu, 23 May 2024 18:20:20 GMT
80
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,80 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.workos.com/user_management/password_reset/invalid
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/3.0.2; x86_64-darwin19; v4.6.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 404
23
+ message: Not Found
24
+ headers:
25
+ Date:
26
+ - Thu, 23 May 2024 18:04:34 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ Cf-Ray:
34
+ - 8886f81cb89c7b00-DEN
35
+ Cf-Cache-Status:
36
+ - DYNAMIC
37
+ Etag:
38
+ - W/"62-MwEIS86+oNNsmjVX0JyWZTcjZ9s"
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
+ - 5b33aeae-7a47-4893-8fef-f014e6692866
65
+ X-Xss-Protection:
66
+ - '0'
67
+ Set-Cookie:
68
+ - __cf_bm=nkAinUzRPwshxLJMd18TIu20ff0fkGCILsc2NGkWLcs-1716487474-1.0.1.1-Ci9e5PwUuKRRSCrdjfPf3hLETEBr8qGDcVdllyCDW39my5OtwL58BZDu0vB0kuC_6vsPe4UrLSzfoz6XMyjmmw;
69
+ path=/; expires=Thu, 23-May-24 18:34:34 GMT; domain=.workos.com; HttpOnly;
70
+ Secure; SameSite=None
71
+ - __cfruid=387f8a46c39c44e43af2f39cd9fd8aea810da563-1716487474; path=/; domain=.workos.com;
72
+ HttpOnly; Secure; SameSite=None
73
+ Server:
74
+ - cloudflare
75
+ body:
76
+ encoding: ASCII-8BIT
77
+ string: '{"message":"Password Reset not found: ''invalid''.","code":"entity_not_found","entity_id":"invalid"}'
78
+ http_version:
79
+ recorded_at: Thu, 23 May 2024 18:04:34 GMT
80
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,80 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.workos.com/user_management/password_reset/password_reset_01HYKA8DTF8TW5YD30MF0ZXZKT
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/3.0.2; x86_64-darwin19; v4.6.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Thu, 23 May 2024 18:10:20 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ Cf-Ray:
34
+ - 8887008eb83c51eb-DEN
35
+ Cf-Cache-Status:
36
+ - DYNAMIC
37
+ Etag:
38
+ - W/"18d-Z6VC8jkvZuXmNL0BcJcqkF7M0BQ"
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
+ - bd5403d4-e651-4b63-acde-50287326e0d7
65
+ X-Xss-Protection:
66
+ - '0'
67
+ Set-Cookie:
68
+ - __cf_bm=YhPLb6u6gDZZcI3AVyfPTCitp9JKWpSMhZ236D6EPJI-1716487820-1.0.1.1-F0GOL.FAH1ROxtTJumLoe_YGWkO6uoozp7qv4oFniAc0aX20kqay7JvCfszxpxRsEbvj5mPTJcqVyvDm7qedeA;
69
+ path=/; expires=Thu, 23-May-24 18:40:20 GMT; domain=.workos.com; HttpOnly;
70
+ Secure; SameSite=None
71
+ - __cfruid=cdbb09208777e3b5b5ee0ae80b61e07279d590c0-1716487820; path=/; domain=.workos.com;
72
+ HttpOnly; Secure; SameSite=None
73
+ Server:
74
+ - cloudflare
75
+ body:
76
+ encoding: ASCII-8BIT
77
+ string: '{"object":"password_reset","id":"password_reset_01HYKA8DTF8TW5YD30MF0ZXZKT","user_id":"user_01HH5GTVSP6PEXV0SRB9ANFE9G","email":"blair@workos.com","password_reset_token":"DmNQt1ZWOz7k5hulOoGDN0TZd","password_reset_url":"https://manageable-child-63-staging.authkit.app/reset-password/?token=DmNQt1ZWOz7k5hulOoGDN0TZd","expires_at":"2024-05-23T18:23:51.024Z","created_at":"2024-05-23T18:08:51.024Z"}'
78
+ http_version:
79
+ recorded_at: Thu, 23 May 2024 18:10:20 GMT
80
+ 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.6.0
4
+ version: 4.7.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-05-21 00:00:00.000000000 Z
11
+ date: 2024-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -118,6 +118,7 @@ files:
118
118
  - lib/workos/directory_group.rb
119
119
  - lib/workos/directory_sync.rb
120
120
  - lib/workos/directory_user.rb
121
+ - lib/workos/email_verification.rb
121
122
  - lib/workos/errors.rb
122
123
  - lib/workos/event.rb
123
124
  - lib/workos/events.rb
@@ -130,6 +131,7 @@ files:
130
131
  - lib/workos/organization.rb
131
132
  - lib/workos/organization_membership.rb
132
133
  - lib/workos/organizations.rb
134
+ - lib/workos/password_reset.rb
133
135
  - lib/workos/passwordless.rb
134
136
  - lib/workos/portal.rb
135
137
  - lib/workos/profile.rb
@@ -272,6 +274,7 @@ files:
272
274
  - spec/support/fixtures/vcr_cassettes/user_management/create_magic_auth/valid.yml
273
275
  - spec/support/fixtures/vcr_cassettes/user_management/create_organization_membership/invalid.yml
274
276
  - spec/support/fixtures/vcr_cassettes/user_management/create_organization_membership/valid.yml
277
+ - spec/support/fixtures/vcr_cassettes/user_management/create_password_reset/valid.yml
275
278
  - spec/support/fixtures/vcr_cassettes/user_management/create_user_invalid.yml
276
279
  - spec/support/fixtures/vcr_cassettes/user_management/create_user_valid.yml
277
280
  - spec/support/fixtures/vcr_cassettes/user_management/deactivate_organization_membership.yml
@@ -281,11 +284,15 @@ files:
281
284
  - spec/support/fixtures/vcr_cassettes/user_management/delete_user/valid.yml
282
285
  - spec/support/fixtures/vcr_cassettes/user_management/enroll_auth_factor/invalid.yml
283
286
  - spec/support/fixtures/vcr_cassettes/user_management/enroll_auth_factor/valid.yml
287
+ - spec/support/fixtures/vcr_cassettes/user_management/get_email_verification/invalid.yml
288
+ - spec/support/fixtures/vcr_cassettes/user_management/get_email_verification/valid.yml
284
289
  - spec/support/fixtures/vcr_cassettes/user_management/get_invitation/invalid.yml
285
290
  - spec/support/fixtures/vcr_cassettes/user_management/get_invitation/valid.yml
286
291
  - spec/support/fixtures/vcr_cassettes/user_management/get_magic_auth/invalid.yml
287
292
  - spec/support/fixtures/vcr_cassettes/user_management/get_magic_auth/valid.yml
288
293
  - spec/support/fixtures/vcr_cassettes/user_management/get_organization_membership.yml
294
+ - spec/support/fixtures/vcr_cassettes/user_management/get_password_reset/invalid.yml
295
+ - spec/support/fixtures/vcr_cassettes/user_management/get_password_reset/valid.yml
289
296
  - spec/support/fixtures/vcr_cassettes/user_management/get_user.yml
290
297
  - spec/support/fixtures/vcr_cassettes/user_management/list_auth_factors/invalid.yml
291
298
  - spec/support/fixtures/vcr_cassettes/user_management/list_auth_factors/valid.yml
@@ -472,6 +479,7 @@ test_files:
472
479
  - spec/support/fixtures/vcr_cassettes/user_management/create_magic_auth/valid.yml
473
480
  - spec/support/fixtures/vcr_cassettes/user_management/create_organization_membership/invalid.yml
474
481
  - spec/support/fixtures/vcr_cassettes/user_management/create_organization_membership/valid.yml
482
+ - spec/support/fixtures/vcr_cassettes/user_management/create_password_reset/valid.yml
475
483
  - spec/support/fixtures/vcr_cassettes/user_management/create_user_invalid.yml
476
484
  - spec/support/fixtures/vcr_cassettes/user_management/create_user_valid.yml
477
485
  - spec/support/fixtures/vcr_cassettes/user_management/deactivate_organization_membership.yml
@@ -481,11 +489,15 @@ test_files:
481
489
  - spec/support/fixtures/vcr_cassettes/user_management/delete_user/valid.yml
482
490
  - spec/support/fixtures/vcr_cassettes/user_management/enroll_auth_factor/invalid.yml
483
491
  - spec/support/fixtures/vcr_cassettes/user_management/enroll_auth_factor/valid.yml
492
+ - spec/support/fixtures/vcr_cassettes/user_management/get_email_verification/invalid.yml
493
+ - spec/support/fixtures/vcr_cassettes/user_management/get_email_verification/valid.yml
484
494
  - spec/support/fixtures/vcr_cassettes/user_management/get_invitation/invalid.yml
485
495
  - spec/support/fixtures/vcr_cassettes/user_management/get_invitation/valid.yml
486
496
  - spec/support/fixtures/vcr_cassettes/user_management/get_magic_auth/invalid.yml
487
497
  - spec/support/fixtures/vcr_cassettes/user_management/get_magic_auth/valid.yml
488
498
  - spec/support/fixtures/vcr_cassettes/user_management/get_organization_membership.yml
499
+ - spec/support/fixtures/vcr_cassettes/user_management/get_password_reset/invalid.yml
500
+ - spec/support/fixtures/vcr_cassettes/user_management/get_password_reset/valid.yml
489
501
  - spec/support/fixtures/vcr_cassettes/user_management/get_user.yml
490
502
  - spec/support/fixtures/vcr_cassettes/user_management/list_auth_factors/invalid.yml
491
503
  - spec/support/fixtures/vcr_cassettes/user_management/list_auth_factors/valid.yml