Repository navigation
3.0.0 (2026-09-08)
Features:
- Add Lists API:
CreateList,GetAllLists,GetList,UpdateList,DeleteList,QueryLists. - Add List items API:
CreateListItem,GetListItem,UpdateListItem,QueryListItems,CountListItems,ArchiveListItem,UnarchiveListItem,CreateBatchListItems. - Add Privacy API:
RequestUserData,DeleteUserData(POST/DELETE /v1/privacy/users). - Add Events API (enterprise):
EventsSchema,QueryEvents,GroupEvents. - Add webhook signature verification:
Castle.Webhook.Verify(body, signature)andCastle.Webhook.Verify(body, signature, apiSecret), validating theX-Castle-Signatureheader (HMAC-SHA256, Base64). AddsCastleWebhookVerificationException. - Add
CastlePaymentRequiredExceptionfor HTTP 402. - Add
ActionRequest.Expandfor the expanded Event response. - Add typed expanded Event fields on
RiskResponse(id,name,type,status,created_at,authenticated,endpoint,email,ip,user,metrics).
Maintenance:
- Target
net10.0,net8.0,netstandard2.0andnet48; drop thenet461andnetcoreapp3.1build configurations. - Remove the
Sentrydependency; runtime/platform information is now resolved viaSystem.Runtime.InteropServices.RuntimeInformation. - Bump
Newtonsoft.Jsonto13.0.4. - Build, test (across all target frameworks, including
net48) and pack on GitHub Actions (checkout/setup-dotnetv5); add an.editorconfig. - Bump test packages within the same major:
xunit2.9.3,NSubstitute5.3.0,FluentAssertions6.12.2,Microsoft.NET.Test.Sdk17.14.1,coverlet.msbuild6.0.4.
BREAKING CHANGES:
- Remove the legacy
AuthenticateandTrackendpoints (CastleClient.Authenticate/Trackand the matchingBuild*Request/Send*Requestmethods) and theVerdictresponse. UseRisk,FilterandLoginstead. - Remove device-management endpoints:
GetDevice,GetDevicesForUser,ApproveDevice,ReportDevice,ArchiveDevices(and theDevice,DeviceListandUserresponse models). - Remove impersonation endpoints:
ImpersonateStart,ImpersonateEnd(and theImpersonateStartRequest/ImpersonateEndRequestmodels). - Remove client-id extraction:
Context.FromHttpRequestno longer reads theX-Castle-Client-IDheader or__cidcookie, andRequestContext.ClientIdandDeviceItem.IsCurrentDeviceare removed. The default request context isheaders,ipandlibrary.