Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.6.0"
".": "0.7.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 19
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/prelude/prelude-bceac2d798eb515f8fd14406ac6f50de2aa983a3674cecb63167c0d0d52cfbc9.yml
openapi_spec_hash: b9963276e8c0178b0c45bf2ea07f63fb
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/prelude/prelude-86fc45f417e6468f6a6087f9e35b264b0a350e31385bc078a2027a1f1abd1d15.yml
openapi_spec_hash: fb72aba38ec55a3b6b5162c9f5b4228d
config_hash: 3dbe79c14ecd9a153418249f9155d159
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog

## 0.7.0 (2026-09-15)

Full Changelog: [v0.6.0...v0.7.0](https://github.com/prelude-so/ruby-sdk/compare/v0.6.0...v0.7.0)

### Features

* **api:** api update ([ed39fec](https://github.com/prelude-so/ruby-sdk/commit/ed39fece4f1d8838d68d7596ab587b4aba76a14a))
* **api:** api update ([00dcf41](https://github.com/prelude-so/ruby-sdk/commit/00dcf41dcc28fe76ec0a112169c6d01da9937a53))
* **api:** api update ([ebb1d68](https://github.com/prelude-so/ruby-sdk/commit/ebb1d682d35d4fc0f6a403aa06b903481ccae8fe))


### Chores

* **internal:** allow the mock server port to be set with STAINLESS_MOCK_PORT ([2c5f32b](https://github.com/prelude-so/ruby-sdk/commit/2c5f32b48b0859861875e96aceb3530daf400015))

## 0.6.0 (2026-08-07)

Full Changelog: [v0.5.0...v0.6.0](https://github.com/prelude-so/ruby-sdk/compare/v0.5.0...v0.6.0)
Expand Down
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ GIT
PATH
remote: .
specs:
prelude-sdk (0.6.0)
prelude-sdk (0.7.0)
cgi
connection_pool

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
<!-- x-release-please-start-version -->

```ruby
gem "prelude-sdk", "~> 0.6.0"
gem "prelude-sdk", "~> 0.7.0"
```

<!-- x-release-please-end -->
Expand Down
14 changes: 13 additions & 1 deletion lib/prelude_sdk/models/verification_create_params.rb
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,16 @@ class Signals < PreludeSDK::Internal::Type::BaseModel
# @return [Symbol, PreludeSDK::Models::VerificationCreateParams::Signals::DevicePlatform, nil]
optional :device_platform, enum: -> { PreludeSDK::VerificationCreateParams::Signals::DevicePlatform }

# @!attribute existing_user
# Whether the end-user already exists in your system, for example an existing
# account signing in again rather than a first-time signup. Unlike
# `is_trusted_user`, this signal does not bypass fraud checks; it is taken into
# account as one additional anti-fraud signal. For more details, refer to
# [Signals](/verify/v2/documentation/prevent-fraud#signals).
#
# @return [Boolean, nil]
optional :existing_user, PreludeSDK::Internal::Type::Boolean

# @!attribute ip
# The public IP v4 or v6 address of the end-user's device. You should collect this
# from your backend. If your backend is behind a proxy, use the `X-Forwarded-For`,
Expand Down Expand Up @@ -444,7 +454,7 @@ class Signals < PreludeSDK::Internal::Type::BaseModel
# @return [String, nil]
optional :user_agent, String

# @!method initialize(app_version: nil, device_id: nil, device_model: nil, device_platform: nil, ip: nil, is_trusted_user: nil, ja4_fingerprint: nil, os_version: nil, user_agent: nil)
# @!method initialize(app_version: nil, device_id: nil, device_model: nil, device_platform: nil, existing_user: nil, ip: nil, is_trusted_user: nil, ja4_fingerprint: nil, os_version: nil, user_agent: nil)
# Some parameter documentations has been truncated, see
# {PreludeSDK::Models::VerificationCreateParams::Signals} for more details.
#
Expand All @@ -459,6 +469,8 @@ class Signals < PreludeSDK::Internal::Type::BaseModel
#
# @param device_platform [Symbol, PreludeSDK::Models::VerificationCreateParams::Signals::DevicePlatform] The type of the user's device.
#
# @param existing_user [Boolean] Whether the end-user already exists in your system, for example an existing acco
#
# @param ip [String] The public IP v4 or v6 address of the end-user's device. You should collect this
#
# @param is_trusted_user [Boolean] This signal should indicate a higher level of trust, explicitly stating that the
Expand Down
14 changes: 13 additions & 1 deletion lib/prelude_sdk/models/watch_predict_params.rb
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,16 @@ class Signals < PreludeSDK::Internal::Type::BaseModel
# @return [Symbol, PreludeSDK::Models::WatchPredictParams::Signals::DevicePlatform, nil]
optional :device_platform, enum: -> { PreludeSDK::WatchPredictParams::Signals::DevicePlatform }

# @!attribute existing_user
# Whether the end-user already exists in your system, for example an existing
# account signing in again rather than a first-time signup. Unlike
# `is_trusted_user`, this signal does not bypass fraud checks; it is taken into
# account as one additional anti-fraud signal. For more details, refer to
# [Signals](/verify/v2/documentation/prevent-fraud#signals).
#
# @return [Boolean, nil]
optional :existing_user, PreludeSDK::Internal::Type::Boolean

# @!attribute ip
# The public IP v4 or v6 address of the end-user's device. You should collect this
# from your backend. If your backend is behind a proxy, use the `X-Forwarded-For`,
Expand Down Expand Up @@ -163,7 +173,7 @@ class Signals < PreludeSDK::Internal::Type::BaseModel
# @return [String, nil]
optional :user_agent, String

# @!method initialize(app_version: nil, device_id: nil, device_model: nil, device_platform: nil, ip: nil, is_trusted_user: nil, ja4_fingerprint: nil, os_version: nil, user_agent: nil)
# @!method initialize(app_version: nil, device_id: nil, device_model: nil, device_platform: nil, existing_user: nil, ip: nil, is_trusted_user: nil, ja4_fingerprint: nil, os_version: nil, user_agent: nil)
# Some parameter documentations has been truncated, see
# {PreludeSDK::Models::WatchPredictParams::Signals} for more details.
#
Expand All @@ -178,6 +188,8 @@ class Signals < PreludeSDK::Internal::Type::BaseModel
#
# @param device_platform [Symbol, PreludeSDK::Models::WatchPredictParams::Signals::DevicePlatform] The type of the user's device.
#
# @param existing_user [Boolean] Whether the end-user already exists in your system, for example an existing acco
#
# @param ip [String] The public IP v4 or v6 address of the end-user's device. You should collect this
#
# @param is_trusted_user [Boolean] This signal should indicate a higher level of trust, explicitly stating that the
Expand Down
4 changes: 4 additions & 0 deletions lib/prelude_sdk/models/watch_predict_response.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ class WatchPredictResponse < PreludeSDK::Internal::Type::BaseModel
# when prediction is "suspicious" and the anti-fraud system detected specific risk
# signals.
#
# - `account_risk_profile` - The target matches a risk profile derived from the
# outcomes reported on your own account, rather than from a signal shared across
# accounts.
# - `behavioral_pattern` - The phone number past behavior during verification
# flows exhibits suspicious patterns.
# - `device_attribute` - The device exhibits characteristics associated with
Expand Down Expand Up @@ -81,6 +84,7 @@ module Prediction
module RiskFactor
extend PreludeSDK::Internal::Type::Enum

ACCOUNT_RISK_PROFILE = :account_risk_profile
BEHAVIORAL_PATTERN = :behavioral_pattern
DEVICE_ATTRIBUTE = :device_attribute
FRAUD_DATABASE = :fraud_database
Expand Down
10 changes: 10 additions & 0 deletions lib/prelude_sdk/resources/notify.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ module Resources
class Notify
# Retrieve a specific subscription management configuration by its ID.
#
# In order to get access to this endpoint, contact our support team.
#
# @overload get_subscription_config(config_id, request_options: {})
#
# @param config_id [String] The subscription configuration ID
Expand All @@ -27,6 +29,8 @@ def get_subscription_config(config_id, params = {})
# Retrieve the current subscription status for a specific phone number within a
# subscription configuration.
#
# In order to get access to this endpoint, contact our support team.
#
# @overload get_subscription_phone_number(phone_number, config_id:, request_options: {})
#
# @param phone_number [String] The phone number in E.164 format (e.g., +33612345678)
Expand Down Expand Up @@ -58,6 +62,8 @@ def get_subscription_phone_number(phone_number, params)
# Each configuration represents a subscription management setup with phone numbers
# for receiving opt-out/opt-in requests and a callback URL for webhook events.
#
# In order to get access to this endpoint, contact our support team.
#
# @overload list_subscription_configs(cursor: nil, limit: nil, request_options: {})
#
# @param cursor [String] Pagination cursor from the previous response
Expand Down Expand Up @@ -86,6 +92,8 @@ def list_subscription_configs(params = {})
#
# Events are ordered by timestamp in descending order (most recent first).
#
# In order to get access to this endpoint, contact our support team.
#
# @overload list_subscription_phone_number_events(phone_number, config_id:, cursor: nil, limit: nil, request_options: {})
#
# @param phone_number [String] Path param: The phone number in E.164 format (e.g., +33612345678)
Expand Down Expand Up @@ -126,6 +134,8 @@ def list_subscription_phone_number_events(phone_number, params)
#
# You can optionally filter by subscription state (SUB or UNSUB).
#
# In order to get access to this endpoint, contact our support team.
#
# @overload list_subscription_phone_numbers(config_id, cursor: nil, limit: nil, state: nil, request_options: {})
#
# @param config_id [String] The subscription configuration ID
Expand Down
2 changes: 1 addition & 1 deletion lib/prelude_sdk/version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# frozen_string_literal: true

module PreludeSDK
VERSION = "0.6.0"
VERSION = "0.7.0"
end
19 changes: 19 additions & 0 deletions rbi/prelude_sdk/models/verification_create_params.rbi
Original file line number Diff line number Diff line change
Expand Up @@ -863,6 +863,17 @@ module PreludeSDK
end
attr_writer :device_platform

# Whether the end-user already exists in your system, for example an existing
# account signing in again rather than a first-time signup. Unlike
# `is_trusted_user`, this signal does not bypass fraud checks; it is taken into
# account as one additional anti-fraud signal. For more details, refer to
# [Signals](/verify/v2/documentation/prevent-fraud#signals).
sig { returns(T.nilable(T::Boolean)) }
attr_reader :existing_user

sig { params(existing_user: T::Boolean).void }
attr_writer :existing_user

# The public IP v4 or v6 address of the end-user's device. You should collect this
# from your backend. If your backend is behind a proxy, use the `X-Forwarded-For`,
# `Forwarded`, `True-Client-IP`, `CF-Connecting-IP` or an equivalent header to get
Expand Down Expand Up @@ -916,6 +927,7 @@ module PreludeSDK
device_model: String,
device_platform:
PreludeSDK::VerificationCreateParams::Signals::DevicePlatform::OrSymbol,
existing_user: T::Boolean,
ip: String,
is_trusted_user: T::Boolean,
ja4_fingerprint: String,
Expand All @@ -934,6 +946,12 @@ module PreludeSDK
device_model: nil,
# The type of the user's device.
device_platform: nil,
# Whether the end-user already exists in your system, for example an existing
# account signing in again rather than a first-time signup. Unlike
# `is_trusted_user`, this signal does not bypass fraud checks; it is taken into
# account as one additional anti-fraud signal. For more details, refer to
# [Signals](/verify/v2/documentation/prevent-fraud#signals).
existing_user: nil,
# The public IP v4 or v6 address of the end-user's device. You should collect this
# from your backend. If your backend is behind a proxy, use the `X-Forwarded-For`,
# `Forwarded`, `True-Client-IP`, `CF-Connecting-IP` or an equivalent header to get
Expand Down Expand Up @@ -964,6 +982,7 @@ module PreludeSDK
device_model: String,
device_platform:
PreludeSDK::VerificationCreateParams::Signals::DevicePlatform::OrSymbol,
existing_user: T::Boolean,
ip: String,
is_trusted_user: T::Boolean,
ja4_fingerprint: String,
Expand Down
19 changes: 19 additions & 0 deletions rbi/prelude_sdk/models/watch_predict_params.rbi
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,17 @@ module PreludeSDK
end
attr_writer :device_platform

# Whether the end-user already exists in your system, for example an existing
# account signing in again rather than a first-time signup. Unlike
# `is_trusted_user`, this signal does not bypass fraud checks; it is taken into
# account as one additional anti-fraud signal. For more details, refer to
# [Signals](/verify/v2/documentation/prevent-fraud#signals).
sig { returns(T.nilable(T::Boolean)) }
attr_reader :existing_user

sig { params(existing_user: T::Boolean).void }
attr_writer :existing_user

# The public IP v4 or v6 address of the end-user's device. You should collect this
# from your backend. If your backend is behind a proxy, use the `X-Forwarded-For`,
# `Forwarded`, `True-Client-IP`, `CF-Connecting-IP` or an equivalent header to get
Expand Down Expand Up @@ -293,6 +304,7 @@ module PreludeSDK
device_model: String,
device_platform:
PreludeSDK::WatchPredictParams::Signals::DevicePlatform::OrSymbol,
existing_user: T::Boolean,
ip: String,
is_trusted_user: T::Boolean,
ja4_fingerprint: String,
Expand All @@ -311,6 +323,12 @@ module PreludeSDK
device_model: nil,
# The type of the user's device.
device_platform: nil,
# Whether the end-user already exists in your system, for example an existing
# account signing in again rather than a first-time signup. Unlike
# `is_trusted_user`, this signal does not bypass fraud checks; it is taken into
# account as one additional anti-fraud signal. For more details, refer to
# [Signals](/verify/v2/documentation/prevent-fraud#signals).
existing_user: nil,
# The public IP v4 or v6 address of the end-user's device. You should collect this
# from your backend. If your backend is behind a proxy, use the `X-Forwarded-For`,
# `Forwarded`, `True-Client-IP`, `CF-Connecting-IP` or an equivalent header to get
Expand Down Expand Up @@ -341,6 +359,7 @@ module PreludeSDK
device_model: String,
device_platform:
PreludeSDK::WatchPredictParams::Signals::DevicePlatform::OrSymbol,
existing_user: T::Boolean,
ip: String,
is_trusted_user: T::Boolean,
ja4_fingerprint: String,
Expand Down
11 changes: 11 additions & 0 deletions rbi/prelude_sdk/models/watch_predict_response.rbi
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ module PreludeSDK
# when prediction is "suspicious" and the anti-fraud system detected specific risk
# signals.
#
# - `account_risk_profile` - The target matches a risk profile derived from the
# outcomes reported on your own account, rather than from a signal shared across
# accounts.
# - `behavioral_pattern` - The phone number past behavior during verification
# flows exhibits suspicious patterns.
# - `device_attribute` - The device exhibits characteristics associated with
Expand Down Expand Up @@ -97,6 +100,9 @@ module PreludeSDK
# when prediction is "suspicious" and the anti-fraud system detected specific risk
# signals.
#
# - `account_risk_profile` - The target matches a risk profile derived from the
# outcomes reported on your own account, rather than from a signal shared across
# accounts.
# - `behavioral_pattern` - The phone number past behavior during verification
# flows exhibits suspicious patterns.
# - `device_attribute` - The device exhibits characteristics associated with
Expand Down Expand Up @@ -179,6 +185,11 @@ module PreludeSDK
end
OrSymbol = T.type_alias { T.any(Symbol, String) }

ACCOUNT_RISK_PROFILE =
T.let(
:account_risk_profile,
PreludeSDK::Models::WatchPredictResponse::RiskFactor::TaggedSymbol
)
BEHAVIORAL_PATTERN =
T.let(
:behavioral_pattern,
Expand Down
10 changes: 10 additions & 0 deletions rbi/prelude_sdk/resources/notify.rbi
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ module PreludeSDK
# Send transactional and marketing messages with compliance enforcement.
class Notify
# Retrieve a specific subscription management configuration by its ID.
#
# In order to get access to this endpoint, contact our support team.
sig do
params(
config_id: String,
Expand All @@ -20,6 +22,8 @@ module PreludeSDK

# Retrieve the current subscription status for a specific phone number within a
# subscription configuration.
#
# In order to get access to this endpoint, contact our support team.
sig do
params(
phone_number: String,
Expand All @@ -41,6 +45,8 @@ module PreludeSDK
#
# Each configuration represents a subscription management setup with phone numbers
# for receiving opt-out/opt-in requests and a callback URL for webhook events.
#
# In order to get access to this endpoint, contact our support team.
sig do
params(
cursor: String,
Expand All @@ -61,6 +67,8 @@ module PreludeSDK
# phone number within a subscription configuration.
#
# Events are ordered by timestamp in descending order (most recent first).
#
# In order to get access to this endpoint, contact our support team.
sig do
params(
phone_number: String,
Expand Down Expand Up @@ -89,6 +97,8 @@ module PreludeSDK
# specific subscription configuration.
#
# You can optionally filter by subscription state (SUB or UNSUB).
#
# In order to get access to this endpoint, contact our support team.
sig do
params(
config_id: String,
Expand Down
Loading