- add
events_schema,query_events, andgroup_eventsfor the Events API
- require Python 3.9 or newer (3.4–3.8 are no longer supported)
- remove
track,authenticate, device management, and impersonation client methods; userisk,filter, andloginstead - remove
ImpersonationFailed
- add Lists and List Items APIs
- add Privacy API (
request_user_data,delete_user_data) - add
RateLimitErrorfor HTTP 429 responses
- fix
Client.filterandClient.riskfailover whenuseris missing; fall back tomatching_user_id
- remove unused
ValidatorsNotSupportedvalidator - migrate CI to GitHub Actions (Python 3.9–3.13)
- migrate packaging to
pyproject.toml(PEP 621) - replace
pylint/autopep8withruff - bump
requestsminimum to2.31
- #111 add InvalidRequestTokenError
- #101 remove
identifyandreviewcommands - they are no longer supported - #101 remove
Castle::Events- please use recognized events <https://docs.castle.io/v1/reference/events/>__ instead
- #104 add "filter", "log" and "risk" actions
- #100 add
X-Requested-Withheader support
- #98 rename the namespace from
IPtoIPs
- #92 change the impersonation-related DSL
- #80, #81 reorganize structure of the SDK
- #79 rename
config.urltoconfig.base_url
- #97 allow to instantiate the configuration
- #95 add webhooks verification
- #88, #89, #90, #91 allow to manage the devices
- #86, #87 add more tests
- #85 add
VerdictandFailoverstrategy constants - #84 update the default timeout
- #83 add logger config option
- #82 drop origin from the default context
- #69 added impersonator to properties
- #70 dropped blacklist and whitelist support, in favour of denylist and allowlist
- #67 add
trusted_proxy_depthandtrust_proxy_chainconfiguration options
- #64 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)
- #61 improve headers and ip extractions, improve ip_headers config, add trusted proxies config, added more events to events list
- #62 move request,response, session to apis namespace, add config check before doing request
- #59 drop requests min version in ci
- #56 drop special ip header behavior
- #58 Adds
ip_headerconfiguration option
- #57 dropped support for python 2
- #53 update whitelisting and blacklisting behavior
- #50 generate new default timestamps for each call
- #41 add python 2.6, python 3.7
- #35 usage of
traitskey is deprecated, useuser_traitsinstead - #38 make api
related errors inherit from
ApiError - #38 rename
FailoverStrategyValueErrortoConfigurationError
- #37
X-Castle-Client-Idtakes precedence overcidfromcookies - #36 raise
ImpersonationFailedwhen impersonation request failed
- add reset option to impersonation
- add support for impersonation
- switched configuration request_timeout from seconds to milliseconds
- code reorganization
- added
Client.to_contextmethod which allows to generate context object from the request - additional timestamp and sent_at time values are automatically added to the requests
- when data is sent in batches you may want to wrap data options with
Client.to_optionsmethod before you send it to the worker (see README) to include proper timestamp in the query - added X-Forwarded-For and CF_CONNECTING_IP to whitelisted headers
- fetch IP from CF_CONNECTING_IP if possible
- Client does not build context object anymore to use previous
functionality use
Client.from_request - code reorganization
- Handle cookies from Django request
- Initial release