- #272
- Add support for Lists API
-
- fix issues with non-string values in headers
-
- add 429 RateLimitError
-
Bump dependencies
-
Add support for Rubies 3.1 and 3.2 and 3.3
-
Add support Rails 7
BREAKING CHANGES:
- Drop support for Rubies < 2.7 and Rails < 6
- #247
- fixed issue with body as null
- #246
- support failover for risk and filter
- #245
- removed not needed sdk based validations
BREAKING CHANGES:
- #237
- remove
identify
andreview
commands - they are no longer supported - remove
Castle::Events
- please use recognized events instead
- remove
Enhancements:
- #243
- add risk, filter and log endpoints
- #242
- correct configuration used by the logger
- prevent unnecessary calls to the singleton configuration
Enhancements:
- #234 rename the namespace from
IP
toIPs
BREAKING CHANGES:
- #228 change the impersonation-related DSL
- #213 rename config.url to config.base_url
- #214 reorganize structure of the SDK, Castle::API::Session renamed to Castle::Session
- #216 add new context and payload builders, changed DSL
Enhancements:
- #231 allow to instantiate the configuration
- #230 add webhooks verification
- #223, #224, #225, #226, #227 allow to manage the devices
- #221, #222 add more tests
- #220 update the default timeout
- #218 add logger config option
- #212 drop origin from the default context
BREAKING CHANGES:
- #207 allow to reuse the connection (https://github.com/castle/castle-ruby#connection-reuse)
- #204 drop the configuration
host
,port
,url_prefix
options in favor ofurl
- #203 rename the
whitelist/blacklist
configuration option toallowlist/denylist
Enhancements:
- #197 add
trusted_proxy_depth
andtrust_proxy_chain
configuration options
- #189 added missing require
- #187 dropped X-Client-Id from calculation of ip, drop appending default ip headers to the ip_header list config when config is provided (in that case default headers have to explicitly provided)
- #184 added Castle::API::Session which exposes Net:Http instance for reuse
- #183 change format of url_prefix config and renamed internal classes/variables
BREAKING CHANGES:
- #178 calculation of ip requires setup of ip_headers and trusted_proxies if needed
- #180 api key config overwrites env provided key
- #175 drop special handling of cf ip header (it has to provided by ip_headers config)
Enhancements:
- #171 test against Rails 5 and Rails 6
- #192 fixed problem with symbols in env
Bug fixes:
- #168 do not apply whitelisting by default
BREAKING CHANGES:
- #165 support ruby >= 2.4
Enhancements:
- #163 scrub headers instead of dropping them
Enhancements:
- #131 remove requirement for
user_id
Enhancements:
- #132 refactor internal
Castle::API
and it's components
BREAKING CHANGES:
- #119 usage of
traits
key is deprecated, useuser_traits
instead
Enhancements:
- #122
X-Castle-Client-Id
takes precedence overcid
fromcookies
- #121 raise Castle::ImpersonationFailed when impersonation request failed
Features:
- #115 added reset option to
impersonate
- #113 support ruby >= 2.2.6
Enhancements:
- #108 move context and command validation to their own scope and classes, code cleanup
- #101 added
impersonate
method withuser_id
,impersonator
andcontext
options
Enhancements:
- #100 use request.remote_ip and CF connecting IP in favour of request.ip if present
- #100 added
X-Forwarded-For
andCF_CONNECTING_IP
to whitelisted headers
BREAKING CHANGES:
- #97 when data is sent in batches you may want to wrap data options with to_options method before you send it to the worker (see README) to include proper timestamp in the query
Features:
- #97
Castle::Client
has additional optiontimestamp
,timestamp
andsent_at
time values are automatically added to the requests, addedCastle::Client.to_options
method which adds properly formatted timestamp param to the options
BREAKING CHANGES:
- #91 symbolize keys for failover strategy
Enhancements:
- #90 added ability to extract context object and initialize client with that object
BREAKING CHANGES:
Castle::Client.new
does not not build context object anymore- to use previous functionality use
Castle::Client.from_request
Features:
- added
Castle::Client.to_context
method which allows to generate context object from the request
Bug fixes:
- #84 allow to use symbols for headers data
Enhancements:
- #35 dropped unused cookie store class, more informative Castle:Client constructor params
- #30 change request timeout to 500ms
- #31 remove auto-integration with Rails, Padrino, Sinatra (see BREAKING CHANGES, README)
BREAKING CHANGES:
- add
require 'castle/support/rails'
to have Castle client instance available ascastle
in your Rails controllers - add
require 'castle/support/padrino'
to have Castle client instance available ascastle
in your Padrino helpers - add
require 'castle/support/sinatra'
to have Castle client instance available ascastle
in your Sinatra helpers - request timeout uses milliseconds unit from now on
- renamed
track!
toenable_tracking
- renamed
do_no_track!
todisable_tracking
- renamed
don_no_track?
totracked?
with opposite behaviour Castle::Client.new
now takes options as a second argument- drop support for ruby 2.1
- replaced
config.api_endpoint
withconfig.host
andconfig.port
- renamed
fetch_review
toCastle::Review.retrieve
Features:
- #32 added helper for generating signature
- #27 added whitelisted and blacklisted to configuration (with defaults)
- #41 added Hanami helpers
- #42 added possibility to set do_not_track flag in
Castle::Client
options - #48 added failover strategies for
authenticate
method
Bug fixes:
- fix for outdated Gemfile.lock
Features:
- extract
client_id
fromHTTP_X_CASTLE_CLIENT_ID
header when not found in cookies
Enhancements:
- repository cleanup