Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
61db26f
feat: use v4 schema and generate code with openapi-generator v7.16.0 …
ilfa Oct 28, 2025
f32b76e
fix: update templates for api, api docs and configuration to use the …
ilfa Oct 29, 2025
dc612c1
fix: use original templates for enums, edit only descriptions
ilfa Oct 29, 2025
7e87fcb
chore: remove templates that we don't need anymore
ilfa Oct 29, 2025
39edfa0
docs: update examples in the readme
ilfa Oct 29, 2025
028d89c
test: adopt functional tests to new API
ilfa Oct 29, 2025
9e0139c
fix: set correct api path through region
ilfa Oct 30, 2025
be1bbb9
fix: correct bearer setup
ilfa Oct 30, 2025
b014a3b
test: remove unit tests for obsolete mocks and methods, adopt other t…
ilfa Oct 30, 2025
b1a9eb0
test: remove unit tests for obsolete mocks and methods, adopt other t…
ilfa Oct 30, 2025
dfb08e5
fix: remove old models and docs for them that cached in gradle and we…
ilfa Oct 30, 2025
bb031d9
test: fix sealed results tests
ilfa Nov 3, 2025
c9a6df7
docs: add Java 25 to the list of supported versions
ilfa Nov 3, 2025
65d049b
chore: sync schema with the latest version
ilfa Dec 4, 2025
c13eb1f
chore: simplify buildfile, remove legacy command, make `.openapi-gene…
ilfa Dec 4, 2025
b0230e1
chore: add sdk/bin to .gitignore
mcnulty-fp Feb 12, 2026
5ef7b9f
ci: run more tasks in test workflow
mcnulty-fp Feb 12, 2026
2b4e56a
docs: update contributing.md
mcnulty-fp Feb 12, 2026
9873a7e
chore: clean up build-related scripts
mcnulty-fp Feb 12, 2026
dacc78c
chore: updates for new repository
mcnulty-fp Feb 12, 2026
79d5cf7
chore: fix circular dependency in gradle build
mcnulty-fp Feb 13, 2026
d216617
feat: add ruleset support
mcnulty-fp Feb 18, 2026
5a9f2ce
chore: remove `useOneOfDiscriminatorLookup` and `legacyDiscriminatorL…
mcnulty-fp Feb 20, 2026
65df469
chore: fix changeset-version.sh to re-generate code
mcnulty-fp Feb 20, 2026
264e14d
chore: improve changelog entry for v4 migration
mcnulty-fp Feb 20, 2026
c87df8c
chore: remove `gitignore.mustache`
mcnulty-fp Feb 20, 2026
ea3fc3a
fix: only escape `<` and `>` in docs
mcnulty-fp Feb 20, 2026
17744d1
fix: doc link missing for references to enums
mcnulty-fp Feb 20, 2026
801dbbe
fix: only escape `<` and `>` in JavaDoc comments
mcnulty-fp Feb 23, 2026
22bf455
chore: add contributing note about prereleases
mcnulty-fp Feb 23, 2026
34984fe
chore: fix circular dependency in Gradle codegen tasks
mcnulty-fp Feb 23, 2026
75689dc
chore: fix sync script to download all mocked errors
mcnulty-fp Feb 23, 2026
4e8c405
chore: add test dependency on junit platform launcher
mcnulty-fp Feb 23, 2026
4cfdd93
chore: address TODO in Sealed implementation
mcnulty-fp Feb 23, 2026
42d0624
fix: improve exit code consistency in webhook signature sample
mcnulty-fp Feb 23, 2026
3a1de46
chore: enter changesets prerelease mode
mcnulty-fp Feb 23, 2026
ffb8ede
docs: fix reference to `Event` in Sealed.java
mcnulty-fp Feb 23, 2026
2c1cbbe
fix: update gradle task `compileJava` to depend on `openApiGenerate`
mcnulty-fp Feb 23, 2026
236c103
chore: use a different changeset for the prerelease
mcnulty-fp Feb 25, 2026
0be1870
chore: fix changesets prerelease configuration
mcnulty-fp Feb 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"changelog": [
"@fingerprintjs/changesets-changelog-format",
{
"repo": "fingerprintjs/fingerprint-pro-server-api-java-sdk"
"repo": "fingerprintjs/java-sdk"
}
],
"commit": false,
Expand Down
8 changes: 8 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"mode": "pre",
"tag": "rc",
"initialVersions": {
"java-sdk": "7.10.0"
},
"changesets": []
}
14 changes: 14 additions & 0 deletions .changeset/weak-eagles-deliver.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
"java-sdk": major
---

Migrate to Server API v4

**BREAKING CHANGES**: This release contains multiple breaking changes:

- SDK version bumped to `8.0.0`
- Server API version upgraded from v3 to v4
- Removed `GetVisits` and `GetRelatedVisitors` operations.
- Improved models used by the `GetEvent` and `SearchEvents` operations to use a more concise shape and clearer names.

See [this page in the Fingerprint documentation](https://docs.fingerprint.com/reference/java-server-sdk#migration-guide-for-java-sdk-v8-0-0) for a migration guide.
3 changes: 2 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,5 @@ jobs:
with:
distribution: 'zulu'
java-version: '${{ matrix.java }}'
- run: ./gradlew test
# includes execution of unit tests
- run: ./gradlew build
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,7 @@ build
.DS_Store
.openapi-generator
**/node_modules

# Covers the case where test resources are copied to the bin
# directory by Java tools
sdk/bin
2 changes: 1 addition & 1 deletion .openapi-generator-ignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ build.sbt
git_push.sh
api/*
src/test/java/com/fingerprint/model/*
src/main/java/com/fingerprint/model/AbstractOpenApiSchema.java
src/main/AndroidManifest.xml
.github/workflows/maven.yml
pom.xml
src/main/AndroidManifest.xml
216 changes: 108 additions & 108 deletions CHANGELOG.md

Large diffs are not rendered by default.

215 changes: 55 additions & 160 deletions README.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion changeset-publish.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
#!/usr/bin/env bash
bash ./scripts/generate.sh && pnpm exec changeset publish && bash ./gradlew publishToMavenLocal
pnpm exec changeset publish
10 changes: 9 additions & 1 deletion changeset-version.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,10 @@
#!/usr/bin/env bash
pnpm exec changeset version && bash ./scripts/generate.sh

# Change the package.json version
pnpm exec changeset version && \

# Change the gradle version
bash ./scripts/update-gradle-version.sh && \

# Re-generate the code with the updated version
bash ./scripts/generate.sh
34 changes: 16 additions & 18 deletions contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,36 @@

## Structure

Most files in the project are autogenerated by [openapi-generator](https://openapi-generator.tech/) for java.
Most files in the project are autogenerated by [openapi-generator](https://openapi-generator.tech/) for Java.

- [template](./template) - folder contains redefined templates of `openapi-generator`. For generating original templates, you can run this command:
`java -jar ./bin/generator.jar author template -g java --library jersey2`
- [template](./template) - templates used by `openapi-generator`.
- [docs](./docs) - generated documentation for models and [API Client](./docs/FingerprintApi.md).
- [src](./src) - API Client code is generated automatically.
- [sdk](./sdk) - automatically generated API client code.

## Code generation
## Code generation and building the SDK

You need `openapi-generator` to run code generation. There are many ways described in the [readme](https://github.com/OpenAPITools/openapi-generator).
In the project we use local jar file `bin/generator.jar`.
Use the Gradle build to invoke `openapi-generator` and generate the code and documentation:

You can just run `sh ./scripts/generate.sh` script and it will do all the work.
```
./gradlew build
```

To download fresh OpenAPI schema run `sh ./scripts/sync.sh`
To download the latest OpenAPI schema from [fingerprintjs/fingerprint-pro-server-api-openapi](https://github.com/fingerprintjs/fingerprint-pro-server-api-openapi), run `./scripts/sync.sh`

### Testing the local source code of the SDK
## Testing the local source code of the SDK

Use the [./src/examples/java/com/fingerprint/example/FunctionalTests.java](./src/examples/java/com/fingerprint/example/FunctionalTests.java) file to make API requests using the local version of the SDK.

1. Make sure you have [Java Development Kit v17](https://formulae.brew.sh/formula/openjdk@17) installed (v20 does not currently work).
2. Create an `.env` file in the root folder according to [.env.example](.env.example) with your API key and test variables.
1. Make sure you have Java Development Kit 11 or later installed.
2. Create an `.env` file in the root of this repo, using [.env.example](.env.example) as the starting point.
3. Finally, run `./gradlew runFunctionalTests`.

### Configuration

Project configuration is described in `config.yaml` file. To read about available parameters run the command below:

```shell
java -jar ./bin/generator.jar config-help -l java
```
The Gradle configuration defines the options for `openapi-generator`, within the `openApiGenerate` block in [sdk.gradle.kts](./sdk/sdk.gradle.kts).

### How to publish

We use [changesets](https://github.com/changesets/changesets) for handling release notes. If there are relevant changes, please add them to changeset via `pnpm exec changeset`. You need to run `pnpm install` before doing so.
We use [changesets](https://github.com/changesets/changesets) for handling release notes. If there are relevant changes, please add them to changeset via `pnpm exec changeset`. You need to run `pnpm install` before doing so.

When creating [prereleases](https://github.com/changesets/changesets/blob/main/docs/prereleases.md), the `rc` tag must be used. This ensures that version ranges in Maven/Gradle do not pick the prerelease as a new version. For more information, refer to the [Version Order Specification Maven Documentation](https://maven.apache.org/pom.html#version-order-specification).
40 changes: 40 additions & 0 deletions docs/BotInfo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@


# BotInfo

Extended bot information.

## Properties

| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
|**category** | **String** | The type and purpose of the bot. | |
|**provider** | **String** | The organization or company operating the bot. | |
|**providerUrl** | **String** | The URL of the bot provider's website. | [optional] |
|**name** | **String** | The specific name or identifier of the bot. | |
|**identity** | [**IdentityEnum**](#IdentityEnum) | The verification status of the bot's identity: * `verified` - well-known bot with publicly verifiable identity, directed by the bot provider. * `signed` - bot that signs its platform via Web Bot Auth, directed by the bot provider’s customers. * `spoofed` - bot that claims a public identity but fails verification. * `unknown` - bot that does not publish a verifiable identity. | |
|**confidence** | [**ConfidenceEnum**](#ConfidenceEnum) | Confidence level of the bot identification. | |



## Enum: IdentityEnum

| Name | Value |
|---- | -----|
| VERIFIED | "verified" |
| SIGNED | "signed" |
| SPOOFED | "spoofed" |
| UNKNOWN | "unknown" |



## Enum: ConfidenceEnum

| Name | Value |
|---- | -----|
| LOW | "low" |
| MEDIUM | "medium" |
| HIGH | "high" |



12 changes: 6 additions & 6 deletions docs/BotdBotResult.md → docs/BotResult.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@


# BotdBotResult
Bot detection result:
* `notDetected` - the visitor is not a bot
* `good` - good bot detected, such as Google bot, Baidu Spider, AlexaBot and so on
# BotResult
Bot detection result:
* `bad` - bad bot detected, such as Selenium, Puppeteer, Playwright, headless browsers, and so on
* `good` - good bot detected, such as Google bot, Baidu Spider, AlexaBot and so on
* `not_detected` - the visitor is not a bot


## Enum


* `NOT_DETECTED` (value: `"notDetected"`)
* `BAD` (value: `"bad"`)

* `GOOD` (value: `"good"`)

* `BAD` (value: `"bad"`)
* `NOT_DETECTED` (value: `"not_detected"`)



21 changes: 0 additions & 21 deletions docs/Botd.md

This file was deleted.

1 change: 0 additions & 1 deletion docs/BrowserDetails.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
|**os** | **String** | | |
|**osVersion** | **String** | | |
|**device** | **String** | | |
|**userAgent** | **String** | | |



16 changes: 16 additions & 0 deletions docs/Canvas.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@


# Canvas

Canvas fingerprint containing winding flag plus geometry/text hashes.

## Properties

| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
|**winding** | **Boolean** | | [optional] |
|**geometry** | **String** | Hash of geometry rendering output or `unsupported` markers. | [optional] |
|**text** | **String** | Hash of text rendering output or `unsupported` markers. | [optional] |



13 changes: 0 additions & 13 deletions docs/ClonedApp.md

This file was deleted.

22 changes: 0 additions & 22 deletions docs/DeprecatedGeolocation.md

This file was deleted.

13 changes: 0 additions & 13 deletions docs/DeveloperTools.md

This file was deleted.

22 changes: 22 additions & 0 deletions docs/Emoji.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@


# Emoji

Bounding box metrics describing how the emoji glyph renders.

## Properties

| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
|**font** | **String** | Font family reported by the browser when drawing the emoji. | [optional] |
|**width** | **Double** | | [optional] |
|**height** | **Double** | | [optional] |
|**top** | **Double** | | [optional] |
|**bottom** | **Double** | | [optional] |
|**left** | **Double** | | [optional] |
|**right** | **Double** | | [optional] |
|**x** | **Double** | | [optional] |
|**y** | **Double** | | [optional] |



13 changes: 0 additions & 13 deletions docs/Emulator.md

This file was deleted.

Loading
Loading