workos 4.6.0 → 4.8.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: 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