workos 4.6.0 → 4.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 332ad6b582c870d359c308f231c3a9aab661487177b5afb73f9eda7b8c42f3ba
4
- data.tar.gz: e95ae8f206a0a365a96ecc849b7426c0fd5425b59ac3cb9fde6fae4db1bb3b87
3
+ metadata.gz: a59645d5489656e64892044220f777e2e1da74715f38e11f82c8bfad3ed905aa
4
+ data.tar.gz: baa9a0fa487c51d3c3adf1f11635fb17bbd22effefc774ca40d1a09e537dfcc8
5
5
  SHA512:
6
- metadata.gz: b216f6e42eed12702ad449a0370aac224e7c946ea275b48170162a2eb43f4639ee2e7cdf5ef9a1be31edde3d120f3ae7f13d6531233d2974cf27c3af4c7a870a
7
- data.tar.gz: e1597322a482e0c94fae260b11cc1225f831a80f5e916fbf8b52415df6972054b8eba8b973cb73336c6985396e518535197c9e3fccdc33cd17fd3871a5eff958
6
+ metadata.gz: ebb7b90352a85f433273cafd86e2ceecabd4d20451ce6e6c8122637beb509f55f82f19dc800f4028bdaf35f61a5a3d42dbe7d348db686dda129fff4fa0e034ce
7
+ data.tar.gz: 9a6039a67909bfce3a5f42ba854d88da052d5a70d6208f9d60cc3a5d7c20c3ea596f6fba3b1263c6a00e435f772c77a6176d16011f4f3151246dafbd49e142c5
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.8.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
@@ -603,9 +603,11 @@ module WorkOS
603
603
  # @param [String] totp_issuer For totp factors. Typically your application
604
604
  # or company name, this helps users distinguish between factors in authenticator apps.
605
605
  # @param [String] totp_user For totp factors. Used as the account name in authenticator apps.
606
+ # @param [String] totp_secret For totp factors. The Base32 encdoded secret key for the
607
+ # factor. Generated if not provided. (Optional)
606
608
  #
607
609
  # @return WorkOS::AuthenticationFactorAndChallenge
608
- def enroll_auth_factor(user_id:, type:, totp_issuer: nil, totp_user: nil)
610
+ def enroll_auth_factor(user_id:, type:, totp_issuer: nil, totp_user: nil, totp_secret: nil)
609
611
  validate_auth_factor_type(
610
612
  type: type,
611
613
  )
@@ -617,6 +619,7 @@ module WorkOS
617
619
  type: type,
618
620
  totp_issuer: totp_issuer,
619
621
  totp_user: totp_user,
622
+ totp_secret: totp_secret,
620
623
  },
621
624
  auth: true,
622
625
  ),
@@ -650,6 +653,22 @@ module WorkOS
650
653
  )
651
654
  end
652
655
 
656
+ # Gets an email verification object
657
+ #
658
+ # @param [String] id The unique ID of the EmailVerification object.
659
+ #
660
+ # @return WorkOS::EmailVerification
661
+ def get_email_verification(id:)
662
+ response = execute_request(
663
+ request: get_request(
664
+ path: "/user_management/email_verification/#{id}",
665
+ auth: true,
666
+ ),
667
+ )
668
+
669
+ WorkOS::EmailVerification.new(response.body)
670
+ end
671
+
653
672
  # Sends a verification email to the provided user.
654
673
  #
655
674
  # @param [String] user_id The unique ID of the User whose email address will be verified.
@@ -686,6 +705,41 @@ module WorkOS
686
705
  WorkOS::UserResponse.new(response.body)
687
706
  end
688
707
 
708
+ # Gets a password reset object
709
+ #
710
+ # @param [String] id The unique ID of the PasswordReset object.
711
+ #
712
+ # @return WorkOS::PasswordReset
713
+ def get_password_reset(id:)
714
+ response = execute_request(
715
+ request: get_request(
716
+ path: "/user_management/password_reset/#{id}",
717
+ auth: true,
718
+ ),
719
+ )
720
+
721
+ WorkOS::PasswordReset.new(response.body)
722
+ end
723
+
724
+ # Creates a password reset token
725
+ #
726
+ # @param [String] email The email address of the user.
727
+ #
728
+ # @return WorkOS::PasswordReset
729
+ def create_password_reset(email:)
730
+ response = execute_request(
731
+ request: post_request(
732
+ path: '/user_management/password_reset',
733
+ body: {
734
+ email: email,
735
+ },
736
+ auth: true,
737
+ ),
738
+ )
739
+
740
+ WorkOS::PasswordReset.new(response.body)
741
+ end
742
+
689
743
  # Create a password reset challenge and emails a password reset link to a user.
690
744
  #
691
745
  # @param [String] email The email of the user that wishes to reset their password.
@@ -693,6 +747,9 @@ module WorkOS
693
747
  #
694
748
  # @return [Bool] - returns `true` if successful
695
749
  def send_password_reset_email(email:, password_reset_url:)
750
+ warn_deprecation '`send_password_reset_email` is deprecated.
751
+ Please use `create_password_reset` instead. This method will be removed in a future major version.'
752
+
696
753
  request = post_request(
697
754
  path: '/user_management/password_reset/send',
698
755
  body: {
@@ -865,6 +922,22 @@ module WorkOS
865
922
  WorkOS::Invitation.new(response.body)
866
923
  end
867
924
 
925
+ # Finds an Invitation by Token
926
+ #
927
+ # @param [String] token The token of the Invitation.
928
+ #
929
+ # @return WorkOS::Invitation
930
+ def find_invitation_by_token(token:)
931
+ response = execute_request(
932
+ request: get_request(
933
+ path: "/user_management/invitations/by_token/#{token}",
934
+ auth: true,
935
+ ),
936
+ )
937
+
938
+ WorkOS::Invitation.new(response.body)
939
+ end
940
+
868
941
  # Retrieve a list of invitations.
869
942
  #
870
943
  # @param [Hash] options
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WorkOS
4
- VERSION = '4.6.0'
4
+ VERSION = '4.8.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'
@@ -677,6 +677,7 @@ describe WorkOS::UserManagement do
677
677
  authentication_response = WorkOS::UserManagement.enroll_auth_factor(
678
678
  user_id: 'user_01H7TVSKS45SDHN5V9XPSM6H44',
679
679
  type: 'totp',
680
+ totp_secret: 'secret-test',
680
681
  )
681
682
 
682
683
  expect(authentication_response.authentication_factor.id).to eq('auth_factor_01H96FETXENNY99ARX0GRC804C')
@@ -736,6 +737,31 @@ describe WorkOS::UserManagement do
736
737
  end
737
738
  end
738
739
 
740
+ describe '.get_email_verification' do
741
+ context 'with a valid id' do
742
+ it 'returns an email_verification object' do
743
+ VCR.use_cassette 'user_management/get_email_verification/valid' do
744
+ email_verification = described_class.get_email_verification(
745
+ id: 'email_verification_01HYK9VKNJQ0MJDXEXQP0DA1VK',
746
+ )
747
+
748
+ expect(email_verification.id.instance_of?(String))
749
+ expect(email_verification.instance_of?(WorkOS::EmailVerification))
750
+ end
751
+ end
752
+ end
753
+
754
+ context 'with an invalid id' do
755
+ it 'raises an error' do
756
+ VCR.use_cassette('user_management/get_email_verification/invalid') do
757
+ expect do
758
+ WorkOS::UserManagement.get_email_verification(id: 'invalid')
759
+ end.to raise_error(WorkOS::APIError, /Email Verification not found/)
760
+ end
761
+ end
762
+ end
763
+ end
764
+
739
765
  describe '.send_verification_email' do
740
766
  context 'with valid parameters' do
741
767
  it 'sends an email to that user and the magic auth challenge' do
@@ -804,6 +830,46 @@ describe WorkOS::UserManagement do
804
830
  end
805
831
  end
806
832
 
833
+ describe '.get_password_reset' do
834
+ context 'with a valid id' do
835
+ it 'returns a password_reset object' do
836
+ VCR.use_cassette 'user_management/get_password_reset/valid' do
837
+ password_reset = described_class.get_password_reset(
838
+ id: 'password_reset_01HYKA8DTF8TW5YD30MF0ZXZKT',
839
+ )
840
+
841
+ expect(password_reset.id.instance_of?(String))
842
+ expect(password_reset.instance_of?(WorkOS::PasswordReset))
843
+ end
844
+ end
845
+ end
846
+
847
+ context 'with an invalid id' do
848
+ it 'raises an error' do
849
+ VCR.use_cassette('user_management/get_password_reset/invalid') do
850
+ expect do
851
+ WorkOS::UserManagement.get_password_reset(id: 'invalid')
852
+ end.to raise_error(WorkOS::APIError, /Password Reset not found/)
853
+ end
854
+ end
855
+ end
856
+ end
857
+
858
+ describe '.create_password_reset' do
859
+ context 'with valid payload' do
860
+ it 'creates a password_reset object' do
861
+ VCR.use_cassette 'user_management/create_password_reset/valid' do
862
+ password_reset = described_class.create_password_reset(
863
+ email: 'test@workos.com',
864
+ )
865
+
866
+ expect(password_reset.id).to eq('password_reset_01HYKA8DTF8TW5YD30MF0ZXZKT')
867
+ expect(password_reset.email).to eq('test@workos.com')
868
+ end
869
+ end
870
+ end
871
+ end
872
+
807
873
  describe '.send_password_reset_email' do
808
874
  context 'with a valid payload' do
809
875
  it 'sends a password reset email' do
@@ -1090,6 +1156,31 @@ describe WorkOS::UserManagement do
1090
1156
  end
1091
1157
  end
1092
1158
 
1159
+ describe '.find_invitation_by_token' do
1160
+ context 'with a valid id' do
1161
+ it 'returns an invitation' do
1162
+ VCR.use_cassette 'user_management/find_invitation_by_token/valid' do
1163
+ invitation = described_class.find_invitation_by_token(
1164
+ token: 'iUV3XbYajpJlbpw1Qt3ZKlaKx',
1165
+ )
1166
+
1167
+ expect(invitation.id.instance_of?(String))
1168
+ expect(invitation.instance_of?(WorkOS::Invitation))
1169
+ end
1170
+ end
1171
+ end
1172
+
1173
+ context 'with an invalid id' do
1174
+ it 'raises an error' do
1175
+ VCR.use_cassette('user_management/find_invitation_by_token/invalid') do
1176
+ expect do
1177
+ WorkOS::UserManagement.find_invitation_by_token(token: 'invalid')
1178
+ end.to raise_error(WorkOS::APIError, /Invitation not found/)
1179
+ end
1180
+ end
1181
+ end
1182
+ end
1183
+
1093
1184
  describe '.list_invitations' do
1094
1185
  context 'with no options' do
1095
1186
  it 'returns invitations and metadata' 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/invitations/by_token/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.7.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 404
23
+ message: Not Found
24
+ headers:
25
+ Date:
26
+ - Mon, 03 Jun 2024 20:16:37 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ Cf-Ray:
34
+ - 88e25cab2e0c520c-DEN
35
+ Cf-Cache-Status:
36
+ - DYNAMIC
37
+ Etag:
38
+ - W/"5a-PPX6d4bMxLfMyXe/1aUqFNwW/Dc"
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
+ - 7066479f-3c65-4eb0-a5ab-fa371e8747e5
65
+ X-Xss-Protection:
66
+ - '0'
67
+ Set-Cookie:
68
+ - __cf_bm=V3RT_KMrnFyoIbj_1OgapyAtReNBXvdzeYmNZWQQt6Y-1717445797-1.0.1.1-XWQk50226uaRo4S1BTn3wou4.mFaLOC20eA_MhrSil._j0XoCx6I2Q0gmgtBp1j9.dHqkmf4ZwOw1j6RmBLSnQ;
69
+ path=/; expires=Mon, 03-Jun-24 20:46:37 GMT; domain=.workos.com; HttpOnly;
70
+ Secure; SameSite=None
71
+ - __cfruid=cb54bc416259840c8c11ad58469ec2c5d9f88ff3-1717445797; path=/; domain=.workos.com;
72
+ HttpOnly; Secure; SameSite=None
73
+ Server:
74
+ - cloudflare
75
+ body:
76
+ encoding: ASCII-8BIT
77
+ string: '{"message":"Invitation not found: ''invalid''.","code":"entity_not_found","entity_id":"invalid"}'
78
+ http_version:
79
+ recorded_at: Mon, 03 Jun 2024 20:16:37 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/invitations/by_token/iUV3XbYajpJlbpw1Qt3ZKlaKx
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.7.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Mon, 03 Jun 2024 20:16:37 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ Cf-Ray:
34
+ - 88e25ca97a127b32-DEN
35
+ Cf-Cache-Status:
36
+ - DYNAMIC
37
+ Etag:
38
+ - W/"1e5-ZUKH6e1N8G9JBxE8/nulDIEawKk"
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
+ - 1359e287-00bc-4081-a3d9-6bfcded70273
65
+ X-Xss-Protection:
66
+ - '0'
67
+ Set-Cookie:
68
+ - __cf_bm=WToCUplL1o5i0KSz5l81mSZ5SqsRh0MGwXHPwM7C.Sg-1717445797-1.0.1.1-KXhOU0BqmCe7ZDWcpEJ7V3gLLZpioBrWPxtyB5m2sOmYxj3GWOfjhqRz5d1L0cTOpGoT9OfeqzGa5qfmD0ELZw;
69
+ path=/; expires=Mon, 03-Jun-24 20:46:37 GMT; domain=.workos.com; HttpOnly;
70
+ Secure; SameSite=None
71
+ - __cfruid=cb54bc416259840c8c11ad58469ec2c5d9f88ff3-1717445797; path=/; domain=.workos.com;
72
+ HttpOnly; Secure; SameSite=None
73
+ Server:
74
+ - cloudflare
75
+ body:
76
+ encoding: ASCII-8BIT
77
+ string: '{"object":"invitation","id":"invitation_01HZFVRAJ7EV7935K7H8NX2MRH","email":"blairlunceford@gmail.com","state":"pending","accepted_at":null,"revoked_at":null,"expires_at":"2024-06-10T20:13:21.862Z","organization_id":null,"inviter_user_id":null,"token":"iUV3XbYajpJlbpw1Qt3ZKlaKx","accept_invitation_url":"https://manageable-child-63-staging.authkit.app/invite/?invitation_token=iUV3XbYajpJlbpw1Qt3ZKlaKx","created_at":"2024-06-03T20:13:21.820Z","updated_at":"2024-06-03T20:13:21.820Z"}'
78
+ http_version:
79
+ recorded_at: Mon, 03 Jun 2024 20:16:37 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.8.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-06-04 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,17 @@ 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/find_invitation_by_token/invalid.yml
288
+ - spec/support/fixtures/vcr_cassettes/user_management/find_invitation_by_token/valid.yml
289
+ - spec/support/fixtures/vcr_cassettes/user_management/get_email_verification/invalid.yml
290
+ - spec/support/fixtures/vcr_cassettes/user_management/get_email_verification/valid.yml
284
291
  - spec/support/fixtures/vcr_cassettes/user_management/get_invitation/invalid.yml
285
292
  - spec/support/fixtures/vcr_cassettes/user_management/get_invitation/valid.yml
286
293
  - spec/support/fixtures/vcr_cassettes/user_management/get_magic_auth/invalid.yml
287
294
  - spec/support/fixtures/vcr_cassettes/user_management/get_magic_auth/valid.yml
288
295
  - spec/support/fixtures/vcr_cassettes/user_management/get_organization_membership.yml
296
+ - spec/support/fixtures/vcr_cassettes/user_management/get_password_reset/invalid.yml
297
+ - spec/support/fixtures/vcr_cassettes/user_management/get_password_reset/valid.yml
289
298
  - spec/support/fixtures/vcr_cassettes/user_management/get_user.yml
290
299
  - spec/support/fixtures/vcr_cassettes/user_management/list_auth_factors/invalid.yml
291
300
  - spec/support/fixtures/vcr_cassettes/user_management/list_auth_factors/valid.yml
@@ -472,6 +481,7 @@ test_files:
472
481
  - spec/support/fixtures/vcr_cassettes/user_management/create_magic_auth/valid.yml
473
482
  - spec/support/fixtures/vcr_cassettes/user_management/create_organization_membership/invalid.yml
474
483
  - spec/support/fixtures/vcr_cassettes/user_management/create_organization_membership/valid.yml
484
+ - spec/support/fixtures/vcr_cassettes/user_management/create_password_reset/valid.yml
475
485
  - spec/support/fixtures/vcr_cassettes/user_management/create_user_invalid.yml
476
486
  - spec/support/fixtures/vcr_cassettes/user_management/create_user_valid.yml
477
487
  - spec/support/fixtures/vcr_cassettes/user_management/deactivate_organization_membership.yml
@@ -481,11 +491,17 @@ test_files:
481
491
  - spec/support/fixtures/vcr_cassettes/user_management/delete_user/valid.yml
482
492
  - spec/support/fixtures/vcr_cassettes/user_management/enroll_auth_factor/invalid.yml
483
493
  - spec/support/fixtures/vcr_cassettes/user_management/enroll_auth_factor/valid.yml
494
+ - spec/support/fixtures/vcr_cassettes/user_management/find_invitation_by_token/invalid.yml
495
+ - spec/support/fixtures/vcr_cassettes/user_management/find_invitation_by_token/valid.yml
496
+ - spec/support/fixtures/vcr_cassettes/user_management/get_email_verification/invalid.yml
497
+ - spec/support/fixtures/vcr_cassettes/user_management/get_email_verification/valid.yml
484
498
  - spec/support/fixtures/vcr_cassettes/user_management/get_invitation/invalid.yml
485
499
  - spec/support/fixtures/vcr_cassettes/user_management/get_invitation/valid.yml
486
500
  - spec/support/fixtures/vcr_cassettes/user_management/get_magic_auth/invalid.yml
487
501
  - spec/support/fixtures/vcr_cassettes/user_management/get_magic_auth/valid.yml
488
502
  - spec/support/fixtures/vcr_cassettes/user_management/get_organization_membership.yml
503
+ - spec/support/fixtures/vcr_cassettes/user_management/get_password_reset/invalid.yml
504
+ - spec/support/fixtures/vcr_cassettes/user_management/get_password_reset/valid.yml
489
505
  - spec/support/fixtures/vcr_cassettes/user_management/get_user.yml
490
506
  - spec/support/fixtures/vcr_cassettes/user_management/list_auth_factors/invalid.yml
491
507
  - spec/support/fixtures/vcr_cassettes/user_management/list_auth_factors/valid.yml