zyphr 0.1.55 → 0.1.56

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: 78bb305af68d19bf367f4a1dfd0947fe5a83e2b339f3477abb2d123608ccf627
4
- data.tar.gz: 3ca4b809dfae512150cf30224c490a55499f51c91071af4f4fdbb324e11657e1
3
+ metadata.gz: de2fcdf8ab6779134bd46363a7c5fc6b458c05c72444a679bf6f0feba7de9bbd
4
+ data.tar.gz: 792f4f9353a0f31fd809afbcde76127e1a02e10f84ebc67236d33cc53e843e4d
5
5
  SHA512:
6
- metadata.gz: 497270029ef52c3c6a9b183c22a623b86292d4da19ecb85325173ebaa54f5b655795ca0c119011269e0048bbd7784ceedb7cd711740133ee37db1feec0451f8e
7
- data.tar.gz: 7941e5eaaabb87dda7c572ac928b451484d7756a269fc48795decec7f8888a92f518a9c10222adb559b5da05ff91c23cc5866772c69de44b3341576919fd55bb
6
+ metadata.gz: 700ea510741ee07471d0cc8d8128dcfed02f39b84df08eb6dd92bcaadd666d99176cd46b885e5296b751e86a96c4b8e2ec5c185ffc94e3ac55931a5934a6fc85
7
+ data.tar.gz: aa49c456517da6f54590d7c0fe374721b93875e4dfee83032b1b20553aa2f4260811a0484470e6e80dae518a43af092718ba5b2582d5ab3183ba0ac58d4ae896
@@ -15,7 +15,7 @@ All URIs are relative to *https://api.zyphr.dev/v1*
15
15
 
16
16
  Request a password reset
17
17
 
18
- Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration.
18
+ Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration — the response is identical whether or not the address is registered. An identity with **no password set** still receives a link, which sets a first password. This covers users migrated from a provider that cannot export password hashes. The one case where no email is sent (beyond an unknown address) is an identity that has no password but *does* have another way in — a linked OAuth provider and/or a passkey. Those users are not locked out, so no set-password link is sent; the attempt is recorded as a suppressed message visible via `GET /emails`.
19
19
 
20
20
  ### Examples
21
21
 
@@ -7,6 +7,7 @@
7
7
  | **user_id** | **String** | | [optional] |
8
8
  | **created** | **Boolean** | True when a new user was provisioned; false when an existing user was reused (idempotent on email). | [optional] |
9
9
  | **link_sent** | **Boolean** | True when a magic-link or password-reset email was successfully dispatched. | [optional] |
10
+ | **link_suppressed_reason** | **String** | Present only when `send_link` was requested and `link_sent` is false — explains why, so a caller can distinguish \"suppressed by design\" from \"delivery failed\". Known values: - `identity_has_other_auth_methods` — the identity has no password but does have a linked OAuth provider and/or a passkey, so it is not locked out and no set-password link is sent. The attempt is recorded as a suppressed message, visible via `GET /emails`. - `user_not_found_in_environment` — the identity could not be resolved in the calling environment (a race; it was created or resolved immediately prior). - `recipient_not_allowlisted` — the application's `test_recipients` allowlist blocked the recipient. - `send_failed` — dispatch was attempted and failed with no more specific code. Not a closed set: a mail-provider error code may be surfaced verbatim, so treat an unrecognised value as a generic failure rather than an error. | [optional] |
10
11
 
11
12
  ## Example
12
13
 
@@ -16,7 +17,8 @@ require 'zyphr'
16
17
  instance = Zyphr::InviteEndUser200ResponseData.new(
17
18
  user_id: null,
18
19
  created: null,
19
- link_sent: null
20
+ link_sent: null,
21
+ link_suppressed_reason: identity_has_other_auth_methods
20
22
  )
21
23
  ```
22
24
 
@@ -20,7 +20,7 @@ module Zyphr
20
20
  @api_client = api_client
21
21
  end
22
22
  # Request a password reset
23
- # Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration.
23
+ # Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration — the response is identical whether or not the address is registered. An identity with **no password set** still receives a link, which sets a first password. This covers users migrated from a provider that cannot export password hashes. The one case where no email is sent (beyond an unknown address) is an identity that has no password but *does* have another way in — a linked OAuth provider and/or a passkey. Those users are not locked out, so no set-password link is sent; the attempt is recorded as a suppressed message visible via `GET /emails`.
24
24
  # @param forgot_password_request [ForgotPasswordRequest]
25
25
  # @param [Hash] opts the optional parameters
26
26
  # @return [SuccessResult]
@@ -30,7 +30,7 @@ module Zyphr
30
30
  end
31
31
 
32
32
  # Request a password reset
33
- # Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration.
33
+ # Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration — the response is identical whether or not the address is registered. An identity with **no password set** still receives a link, which sets a first password. This covers users migrated from a provider that cannot export password hashes. The one case where no email is sent (beyond an unknown address) is an identity that has no password but *does* have another way in — a linked OAuth provider and/or a passkey. Those users are not locked out, so no set-password link is sent; the attempt is recorded as a suppressed message visible via `GET /emails`.
34
34
  # @param forgot_password_request [ForgotPasswordRequest]
35
35
  # @param [Hash] opts the optional parameters
36
36
  # @return [Array<(SuccessResult, Integer, Hash)>] SuccessResult data, response status code and response headers
@@ -23,12 +23,16 @@ module Zyphr
23
23
  # True when a magic-link or password-reset email was successfully dispatched.
24
24
  attr_accessor :link_sent
25
25
 
26
+ # Present only when `send_link` was requested and `link_sent` is false — explains why, so a caller can distinguish \"suppressed by design\" from \"delivery failed\". Known values: - `identity_has_other_auth_methods` — the identity has no password but does have a linked OAuth provider and/or a passkey, so it is not locked out and no set-password link is sent. The attempt is recorded as a suppressed message, visible via `GET /emails`. - `user_not_found_in_environment` — the identity could not be resolved in the calling environment (a race; it was created or resolved immediately prior). - `recipient_not_allowlisted` — the application's `test_recipients` allowlist blocked the recipient. - `send_failed` — dispatch was attempted and failed with no more specific code. Not a closed set: a mail-provider error code may be surfaced verbatim, so treat an unrecognised value as a generic failure rather than an error.
27
+ attr_accessor :link_suppressed_reason
28
+
26
29
  # Attribute mapping from ruby-style variable name to JSON key.
27
30
  def self.attribute_map
28
31
  {
29
32
  :'user_id' => :'user_id',
30
33
  :'created' => :'created',
31
- :'link_sent' => :'link_sent'
34
+ :'link_sent' => :'link_sent',
35
+ :'link_suppressed_reason' => :'link_suppressed_reason'
32
36
  }
33
37
  end
34
38
 
@@ -47,7 +51,8 @@ module Zyphr
47
51
  {
48
52
  :'user_id' => :'String',
49
53
  :'created' => :'Boolean',
50
- :'link_sent' => :'Boolean'
54
+ :'link_sent' => :'Boolean',
55
+ :'link_suppressed_reason' => :'String'
51
56
  }
52
57
  end
53
58
 
@@ -84,6 +89,10 @@ module Zyphr
84
89
  if attributes.key?(:'link_sent')
85
90
  self.link_sent = attributes[:'link_sent']
86
91
  end
92
+
93
+ if attributes.key?(:'link_suppressed_reason')
94
+ self.link_suppressed_reason = attributes[:'link_suppressed_reason']
95
+ end
87
96
  end
88
97
 
89
98
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -108,7 +117,8 @@ module Zyphr
108
117
  self.class == o.class &&
109
118
  user_id == o.user_id &&
110
119
  created == o.created &&
111
- link_sent == o.link_sent
120
+ link_sent == o.link_sent &&
121
+ link_suppressed_reason == o.link_suppressed_reason
112
122
  end
113
123
 
114
124
  # @see the `==` method
@@ -120,7 +130,7 @@ module Zyphr
120
130
  # Calculates hash code according to all attributes.
121
131
  # @return [Integer] Hash code
122
132
  def hash
123
- [user_id, created, link_sent].hash
133
+ [user_id, created, link_sent, link_suppressed_reason].hash
124
134
  end
125
135
 
126
136
  # Builds the object from hash
@@ -34,7 +34,7 @@ describe 'AuthPasswordResetApi' do
34
34
 
35
35
  # unit tests for forgot_password
36
36
  # Request a password reset
37
- # Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration.
37
+ # Request a password reset email. Creates a reset token and sends an email to the user. Always returns success to prevent email enumeration — the response is identical whether or not the address is registered. An identity with **no password set** still receives a link, which sets a first password. This covers users migrated from a provider that cannot export password hashes. The one case where no email is sent (beyond an unknown address) is an identity that has no password but *does* have another way in — a linked OAuth provider and/or a passkey. Those users are not locked out, so no set-password link is sent; the attempt is recorded as a suppressed message visible via &#x60;GET /emails&#x60;.
38
38
  # @param forgot_password_request
39
39
  # @param [Hash] opts the optional parameters
40
40
  # @return [SuccessResult]
@@ -45,4 +45,10 @@ describe Zyphr::InviteEndUser200ResponseData do
45
45
  end
46
46
  end
47
47
 
48
+ describe 'test attribute "link_suppressed_reason"' do
49
+ it 'should work' do
50
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
+ end
52
+ end
53
+
48
54
  end
data/zyphr.gemspec CHANGED
@@ -17,7 +17,7 @@ require "zyphr/version"
17
17
 
18
18
  Gem::Specification.new do |s|
19
19
  s.name = "zyphr"
20
- s.version = '0.1.55'
20
+ s.version = '0.1.56'
21
21
  s.platform = Gem::Platform::RUBY
22
22
  s.authors = ["Zyphr"]
23
23
  s.email = ["support@zyphr.dev"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zyphr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.55
4
+ version: 0.1.56
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zyphr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-15 00:00:00.000000000 Z
11
+ date: 2026-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday