Skip to content

Modernize the API surface and remove legacy endpoints#163

Open
bartes wants to merge 8 commits into
developfrom
modernize-3.0.0
Open

Modernize the API surface and remove legacy endpoints#163
bartes wants to merge 8 commits into
developfrom
modernize-3.0.0

Conversation

@bartes

@bartes bartes commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Modernizes the SDK's public surface around the current Castle API and removes the legacy endpoints. Releases 3.0.0.

Public API

Capability Methods
Scoring risk, filter, log
Generic requests get, post, put, delete
Lists createList, getAllLists, getList, queryLists, updateList, deleteList
List items createListItem, createListItemsBatch, getListItem, queryListItems, countListItems, updateListItem, archiveListItem, unarchiveListItem
Privacy requestUserData, deleteUserData
Events eventsSchema, queryEvents, groupEvents
Webhooks verifyWebhookSignature
Secure mode secureUserID

Added

  • Webhook signature verification: Castle#verifyWebhookSignature(String, byte[]) and Castle#verifyWebhookSignature(HttpServletRequest, byte[]), plus the Castle.WEBHOOK_SIGNATURE_HEADER constant and a Webhook HMAC-SHA256 helper.
  • Events API on CastleApi: eventsSchema(), queryEvents(...) and groupEvents(...).
  • Privacy methods on CastleApi: requestUserData(...) and deleteUserData(...) against /v1/privacy/users.

Removed (breaking)

  • The authenticate and track endpoints (sync/async variants and their request builders).
  • Device management (approve, report, userDevices, device) and impersonation (impersonateStart, impersonateEnd).
  • The recover endpoint and the removeUser privacy method.
  • The authenticate failover configuration (AuthenticateFailoverStrategy, CastleConfigurationBuilder#withAuthenticateFailoverStrategy, the failover_strategy setting) and the Verdict / CastleMessage models.

Bumps the version to 3.0.0 and documents the supported API surface in the README.

Build

  • Build and test against Java 17, 21 and 25 (CircleCI matrix); bumps JaCoCo to 0.8.15, Mockito to 5.23.0 and System Stubs to 2.1.8.

@bartes bartes marked this pull request as ready for review June 11, 2026 20:46
bartes added 3 commits June 11, 2026 22:56
Run CI on a JDK 17/21/25 matrix (CircleCI 2.1 parameterized job). Bump
JaCoCo to 0.8.15, Mockito to 5.23.0 and System Stubs to 2.1.8 so the
suite instruments and runs on Java 25, and grant the configuration
environment-variable tests the required --add-opens.
Upgrades org.assertj:assertj-core from 3.24.2 to 3.27.7 so the test
suite's Byte Buddy-backed assertions run on the Java 25 build matrix,
and picks up the XXE fix in isXmlEqualTo (CVE-2026-24400).
Bump runtime dependencies (Gson 2.14.0, Guava 33.6.0-jre, SLF4J 2.0.18,
jackson-databind-nullable 0.2.10, swagger-annotations 1.6.16,
ThreeTen-Backport 1.7.3) and declare an explicit jsr305 dependency for
the JSR-305 annotations used by the generated models, which Guava no
longer brings in transitively.

Bump test dependencies (Logback 1.5.34, JSONassert 1.5.3, spring-test
6.1.21 to match spring-web) and drop the unused System Rules dependency.

Bump build plugins: maven-compiler-plugin 3.14.0, maven-surefire-plugin
3.5.6, maven-source-plugin 3.4.0, maven-javadoc-plugin 3.12.0,
versions-maven-plugin 2.18.0, maven-gpg-plugin 3.2.8 and
central-publishing-maven-plugin 0.10.0.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant