Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/compromised-device-integrity-events-search.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'java-sdk': minor
---

**events-search**: Add `compromised_device_integrity` filter parameter
5 changes: 5 additions & 0 deletions .changeset/compromised-device-integrity-events.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'java-sdk': minor
---

**events**: Add `compromised_device_integrity` to `Event`
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": "8.9.0"
},
"changesets": []
}
2 changes: 1 addition & 1 deletion .schema-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v3.9.0
v3.10.0
1 change: 1 addition & 0 deletions docs/Event.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ Contains results from Fingerprint Identification and all active Smart Signals. S
|**botType** | **String** | Additional classification of the bot type if detected. | [optional] |
|**botInfo** | [**BotInfo**](BotInfo.md) | | [optional] |
|**clonedApp** | **Boolean** | Android specific cloned application detection. There are 2 values: * `true` - Presence of app cloners work detected (e.g. fully cloned application found or launch of it inside of a not main working profile detected). * `false` - No signs of cloned application detected or the client is not Android. | [optional] |
|**compromisedDeviceIntegrity** | **Boolean** | `true` if the Android device's boot or system integrity is compromised (e.g., an unlocked bootloader or a failed verified boot), so the device cannot be trusted. `false` if no integrity issue was detected. Available from Android SDK 2.6.0+. | [optional] |
|**developerTools** | **Boolean** | `true` if the browser has DevTools open (Chrome, Firefox) or the Android/iOS device has Developer Tools enabled, `false` otherwise. | [optional] |
|**deviceDetails** | [**DeviceDetails**](DeviceDetails.md) | | [optional] |
|**emulator** | **Boolean** | Android specific emulator detection. There are 2 values: * `true` - Emulated environment detected (e.g. launch inside of AVD). * `false` - No signs of emulated environment detected or the client is not Android. | [optional] |
Expand Down
11 changes: 8 additions & 3 deletions docs/FingerprintApi.md
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,7 @@ public class FingerprintApiExample {
Boolean simulator = true; // Boolean | Filter events by iOS Simulator Detection result. > Note: When using this parameter, only events with the `simulator` property set to `true` or `false` are returned. Events without a `simulator` Smart Signal result are left out of the response.
Boolean activeCall = true; // Boolean | Filter events by Active Call Detection result on mobile devices. > Note: When using this parameter, only events with the `active_call` property set to `true` or `false` are returned. Events without an `active_call` Smart Signal result are left out of the response.
List<SearchEventsSource> source = Arrays.asList(); // List<SearchEventsSource> | Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team.
Boolean compromisedDeviceIntegrity = true; // Boolean | Filter events by Compromised Device Integrity result on Android devices. > Note: When using this parameter, only events with the `compromised_device_integrity` property set to `true` or `false` are returned. Events without a `compromised_device_integrity` Smart Signal result are left out of the response.
try {
EventSearch result = api.searchEvents(new FingerprintApi.SearchEventsOptionalParams()
.setLimit(limit)
Expand Down Expand Up @@ -378,7 +379,8 @@ public class FingerprintApiExample {
.setIncrementalIdentificationStatus(incrementalIdentificationStatus)
.setSimulator(simulator)
.setActiveCall(activeCall)
.setSource(source));
.setSource(source)
.setCompromisedDeviceIntegrity(compromisedDeviceIntegrity));
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling FingerprintApi.searchEvents:" + e.getMessage());
Expand Down Expand Up @@ -455,6 +457,7 @@ Object containing optional parameters for API method. Supports a fluent interfac
| **simulator** | **Boolean**| Filter events by iOS Simulator Detection result. > Note: When using this parameter, only events with the `simulator` property set to `true` or `false` are returned. Events without a `simulator` Smart Signal result are left out of the response. | [optional] |
| **activeCall** | **Boolean**| Filter events by Active Call Detection result on mobile devices. > Note: When using this parameter, only events with the `active_call` property set to `true` or `false` are returned. Events without an `active_call` Smart Signal result are left out of the response. | [optional] |
| **source** | **List&lt;SearchEventsSource&gt;**| Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. To retrieve all events regardless of source, you must make two requests. One with the `source` parameter set to `edge`, and another with the `source` parameter omitted. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. | [optional] |
| **compromisedDeviceIntegrity** | **Boolean**| Filter events by Compromised Device Integrity result on Android devices. > Note: When using this parameter, only events with the `compromised_device_integrity` property set to `true` or `false` are returned. Events without a `compromised_device_integrity` Smart Signal result are left out of the response. | [optional] |

### Return type

Expand Down Expand Up @@ -493,7 +496,9 @@ Change information in existing events specified by `event_id` or *flag suspiciou
When an event is created, it can be assigned `linked_id` and `tags` submitted through the JS agent parameters.
This information might not have been available on the client initially, so the Server API permits updating these attributes after the fact.

**Warning** It's not possible to update events older than one month.
**Warning** You can only update events created within the last 10 days. Updating an older event returns HTTP 400 with the message `event is too old to be updated (> 10 days)`, even if your plan retains events for longer.

**Warning** Events created by the Automation Intelligence API (`POST /edge`) cannot be updated. Updating them returns HTTP 400.

**Warning** Trying to update an event immediately after creation may temporarily result in an
error (HTTP 409 Conflict. The event is not mutable yet.) as the event is fully propagated across our systems. In such a case, simply retry the request.
Expand Down Expand Up @@ -563,7 +568,7 @@ null (empty response body)
| Status code | Description | Response headers |
|-------------|-------------|------------------|
| **200** | OK. | - |
| **400** | Bad request. The request payload is not valid. | - |
| **400** | Bad request. The request payload is not valid, the event is older than 10 days, or the event cannot be updated. | - |
| **403** | Forbidden. Access to this API is denied. | - |
| **404** | Not found. The event ID cannot be found in this workspace's data. | - |
| **409** | Conflict. The event is not mutable yet. | - |
Expand Down
37 changes: 35 additions & 2 deletions res/fingerprint-server-api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,14 @@ paths:
so the Server API permits updating these attributes after the fact.


**Warning** It's not possible to update events older than one month.
**Warning** You can only update events created within the last 10 days.
Updating an older event returns HTTP 400 with the message `event is too
old to be updated (> 10 days)`, even if your plan retains events for
longer.


**Warning** Events created by the Automation Intelligence API (`POST
/edge`) cannot be updated. Updating them returns HTTP 400.


**Warning** Trying to update an event immediately after creation may
Expand Down Expand Up @@ -176,7 +183,9 @@ paths:
'200':
description: OK.
'400':
description: Bad request. The request payload is not valid.
description: >-
Bad request. The request payload is not valid, the event is older
than 10 days, or the event cannot be updated.
content:
application/json:
schema:
Expand Down Expand Up @@ -989,6 +998,19 @@ paths:
> Note: The Automation Intelligence API is in public preview testing
phase. If you encounter any issues, please
[contact](https://fingerprint.com/support/) our support team.
- name: compromised_device_integrity
in: query
schema:
type: boolean
description: >
Filter events by Compromised Device Integrity result on Android
devices.


> Note: When using this parameter, only events with the
`compromised_device_integrity` property set to `true` or `false` are
returned. Events without a `compromised_device_integrity` Smart
Signal result are left out of the response.
responses:
'200':
description: Events matching the filter(s).
Expand Down Expand Up @@ -2075,6 +2097,13 @@ components:

* `false` - No signs of cloned application detected or the client is not
Android.
CompromisedDeviceIntegrity:
type: boolean
description: >
`true` if the Android device's boot or system integrity is compromised
(e.g., an unlocked bootloader or a failed verified boot), so the device
cannot be trusted. `false` if no integrity issue was detected. Available
from Android SDK 2.6.0+.
DeveloperTools:
type: boolean
description: >
Expand Down Expand Up @@ -3304,6 +3333,10 @@ components:
$ref: '#/components/schemas/ClonedApp'
x-platforms:
- android
compromised_device_integrity:
$ref: '#/components/schemas/CompromisedDeviceIntegrity'
x-platforms:
- android
developer_tools:
$ref: '#/components/schemas/DeveloperTools'
x-platforms:
Expand Down
30 changes: 26 additions & 4 deletions sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,7 @@ public static class SearchEventsOptionalParams {
private Boolean simulator;
private Boolean activeCall;
private List<SearchEventsSource> source;
private Boolean compromisedDeviceIntegrity;

/**
* getter for limit - Maximum number of events to return. Defaults to 10 when omitted. Results are selected from the time range (`start`, `end`), ordered by `reverse`, then truncated to provided `limit` size. So `reverse=true` returns the oldest N=`limit` events, otherwise the newest N=`limit` events.
Expand Down Expand Up @@ -1187,6 +1188,22 @@ public SearchEventsOptionalParams setSource(List<SearchEventsSource> source) {
this.source = source;
return this;
}

/**
* getter for compromisedDeviceIntegrity - Filter events by Compromised Device Integrity result on Android devices. > Note: When using this parameter, only events with the `compromised_device_integrity` property set to `true` or `false` are returned. Events without a `compromised_device_integrity` Smart Signal result are left out of the response.
*/
public Boolean getCompromisedDeviceIntegrity() {
return compromisedDeviceIntegrity;
}

/**
* setter for compromisedDeviceIntegrity - Filter events by Compromised Device Integrity result on Android devices. > Note: When using this parameter, only events with the `compromised_device_integrity` property set to `true` or `false` are returned. Events without a `compromised_device_integrity` Smart Signal result are left out of the response.
*/
public SearchEventsOptionalParams setCompromisedDeviceIntegrity(
Boolean compromisedDeviceIntegrity) {
this.compromisedDeviceIntegrity = compromisedDeviceIntegrity;
return this;
}
}

/**
Expand Down Expand Up @@ -1384,6 +1401,11 @@ public ApiResponse<EventSearch> searchEventsWithHttpInfo(
"", "active_call", searchEventsOptionalParams.getActiveCall()));
localVarQueryParams.addAll(
apiClient.parameterToPairs("multi", "source", searchEventsOptionalParams.getSource()));
localVarQueryParams.addAll(
apiClient.parameterToPairs(
"",
"compromised_device_integrity",
searchEventsOptionalParams.getCompromisedDeviceIntegrity()));
}

final String localVarAccept = apiClient.selectHeaderAccept("application/json");
Expand All @@ -1410,15 +1432,15 @@ public ApiResponse<EventSearch> searchEventsWithHttpInfo(

/**
* Update an event
* Change information in existing events specified by `event_id` or *flag suspicious events*. When an event is created, it can be assigned `linked_id` and `tags` submitted through the JS agent parameters. This information might not have been available on the client initially, so the Server API permits updating these attributes after the fact. **Warning** It's not possible to update events older than one month. **Warning** Trying to update an event immediately after creation may temporarily result in an error (HTTP 409 Conflict. The event is not mutable yet.) as the event is fully propagated across our systems. In such a case, simply retry the request.
* Change information in existing events specified by `event_id` or *flag suspicious events*. When an event is created, it can be assigned `linked_id` and `tags` submitted through the JS agent parameters. This information might not have been available on the client initially, so the Server API permits updating these attributes after the fact. **Warning** You can only update events created within the last 10 days. Updating an older event returns HTTP 400 with the message `event is too old to be updated (> 10 days)`, even if your plan retains events for longer. **Warning** Events created by the Automation Intelligence API (`POST /edge`) cannot be updated. Updating them returns HTTP 400. **Warning** Trying to update an event immediately after creation may temporarily result in an error (HTTP 409 Conflict. The event is not mutable yet.) as the event is fully propagated across our systems. In such a case, simply retry the request.
* @param eventId The unique event [identifier](https://docs.fingerprint.com/reference/js-agent-get-function#event_id). (required) A value that is not a valid identifier is rejected with an {@link ApiException} before a request is sent.
* @param eventUpdate (required)
* @throws ApiException if fails to make API call
* @http.response.details
* <table summary="Response Details" border="1">
* <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
* <tr><td> 200 </td><td> OK. </td><td> - </td></tr>
* <tr><td> 400 </td><td> Bad request. The request payload is not valid. </td><td> - </td></tr>
* <tr><td> 400 </td><td> Bad request. The request payload is not valid, the event is older than 10 days, or the event cannot be updated. </td><td> - </td></tr>
* <tr><td> 403 </td><td> Forbidden. Access to this API is denied. </td><td> - </td></tr>
* <tr><td> 404 </td><td> Not found. The event ID cannot be found in this workspace&#39;s data. </td><td> - </td></tr>
* <tr><td> 409 </td><td> Conflict. The event is not mutable yet. </td><td> - </td></tr>
Expand All @@ -1430,7 +1452,7 @@ public void updateEvent(String eventId, EventUpdate eventUpdate) throws ApiExcep

/**
* Update an event
* Change information in existing events specified by `event_id` or *flag suspicious events*. When an event is created, it can be assigned `linked_id` and `tags` submitted through the JS agent parameters. This information might not have been available on the client initially, so the Server API permits updating these attributes after the fact. **Warning** It's not possible to update events older than one month. **Warning** Trying to update an event immediately after creation may temporarily result in an error (HTTP 409 Conflict. The event is not mutable yet.) as the event is fully propagated across our systems. In such a case, simply retry the request.
* Change information in existing events specified by `event_id` or *flag suspicious events*. When an event is created, it can be assigned `linked_id` and `tags` submitted through the JS agent parameters. This information might not have been available on the client initially, so the Server API permits updating these attributes after the fact. **Warning** You can only update events created within the last 10 days. Updating an older event returns HTTP 400 with the message `event is too old to be updated (> 10 days)`, even if your plan retains events for longer. **Warning** Events created by the Automation Intelligence API (`POST /edge`) cannot be updated. Updating them returns HTTP 400. **Warning** Trying to update an event immediately after creation may temporarily result in an error (HTTP 409 Conflict. The event is not mutable yet.) as the event is fully propagated across our systems. In such a case, simply retry the request.
* @param eventId The unique event [identifier](https://docs.fingerprint.com/reference/js-agent-get-function#event_id). (required) A value that is not a valid identifier is rejected with an {@link ApiException} before a request is sent.
* @param eventUpdate (required)
* @return ApiResponse<Void>
Expand All @@ -1439,7 +1461,7 @@ public void updateEvent(String eventId, EventUpdate eventUpdate) throws ApiExcep
* <table summary="Response Details" border="1">
* <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
* <tr><td> 200 </td><td> OK. </td><td> - </td></tr>
* <tr><td> 400 </td><td> Bad request. The request payload is not valid. </td><td> - </td></tr>
* <tr><td> 400 </td><td> Bad request. The request payload is not valid, the event is older than 10 days, or the event cannot be updated. </td><td> - </td></tr>
* <tr><td> 403 </td><td> Forbidden. Access to this API is denied. </td><td> - </td></tr>
* <tr><td> 404 </td><td> Not found. The event ID cannot be found in this workspace&#39;s data. </td><td> - </td></tr>
* <tr><td> 409 </td><td> Conflict. The event is not mutable yet. </td><td> - </td></tr>
Expand Down
Loading
Loading