Skip to content

Sync OpenAPI Schema (18968) - events: Add compromised_device_integrity Android smart signal - #497

Merged
TheUnderScorer merged 3 commits into
mainfrom
sync-18968
Oct 26, 2026
Merged

TheUnderScorer merged 3 commits into
mainfrom
sync-18968

Conversation

@fingerprint-dx-team-actions-runner

Copy link
Copy Markdown
Contributor

This PR automatically updates the OpenAPI schema.

Changes

6 file(s) modified, 3 file(s) added

Modified files
  • schemas/components/schemas/Event.yaml
  • schemas/paths/event.yaml
  • schemas/paths/events.yaml
  • schemas/paths/examples/events/get_event_200.json
  • schemas/paths/examples/events/get_event_ruleset_200.json
  • schemas/paths/examples/events/search/get_event_search_200.json
Added files
  • schemas/components/schemas/smartsignals/CompromisedDeviceIntegrity.yaml
  • schemas/paths/examples/errors/400_edge_event_not_updatable.json
  • schemas/paths/examples/errors/400_event_too_old.json

Note for reviewers: Please review the schema changes.
You likely need to manually add a changeset file to this branch before merging.

@fingerprint-dx-team-actions-runner
fingerprint-dx-team-actions-runner Bot requested a review from a team as a code owner October 26, 2026 16:28
@changeset-bot

changeset-bot Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e5a9f5b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
openapi Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@fingerprint-dx-team-actions-runner

Copy link
Copy Markdown
Contributor Author

✅The changes have been finalized. This PR is ready for review.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Schema Diff vs Published Schemas

  • Generated at: 2026-10-26T16:31:01.675Z
  • Published source: https://fingerprintjs.github.io/openapi/schemas
  • Compared schemas: 8
  • Changed schemas: 3

fingerprint-server-api-v4-normalized.yaml

Published URL: https://fingerprintjs.github.io/openapi/schemas/fingerprint-server-api-v4-normalized.yaml
Summary: +3 added, -0 removed, ~2 modified

Added elements (3)
  • /components/schemas/CompromisedDeviceIntegrity
  • /components/schemas/Event/properties/compromised_device_integrity
  • /paths/~1events/get/parameters/54
Removed elements (0)

None

Modified elements (2)
  • /paths/~1events~1{event_id}/patch/description
  • /paths/~1events~1{event_id}/patch/responses/400/description
Changed lines patch
--- a/schemas/fingerprint-server-api-v4-normalized.yaml
+++ b/schemas/fingerprint-server-api-v4-normalized.yaml
@@ -143,11 +143,18 @@
 
         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 
 
@@ -174,11 +181,13 @@
               $ref: '#/components/schemas/EventUpdate'
       responses:
         '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:
                 $ref: '#/components/schemas/ErrorResponse'
         '403':
@@ -987,10 +996,23 @@
 
             > 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.
+        - 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).
           content:
             application/json:
@@ -2073,10 +2095,17 @@
         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.
+    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: >
         `true` if the browser has DevTools open (Chrome, Firefox) or the
         Android/iOS device has Developer Tools enabled, `false` otherwise.
@@ -3302,10 +3331,14 @@
             - browser
         cloned_app:
           $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:
             - browser
             - android

fingerprint-server-api-v4-with-examples.yaml

Published URL: https://fingerprintjs.github.io/openapi/schemas/fingerprint-server-api-v4-with-examples.yaml
Summary: +8 added, -0 removed, ~2 modified

Added elements (8)
  • /components/schemas/CompromisedDeviceIntegrity
  • /components/schemas/Event/properties/compromised_device_integrity
  • /paths/~1events/get/parameters/52
  • /paths/~1events/get/responses/200/content/application~1json/examples/200-ok/value/events/0/compromised_device_integrity
  • /paths/~1events~1{event_id}/get/responses/200/content/application~1json/examples/200-ok-with-ruleset/value/compromised_device_integrity
  • /paths/~1events~1{event_id}/get/responses/200/content/application~1json/examples/200-ok/value/compromised_device_integrity
  • /paths/~1events~1{event_id}/patch/responses/400/content/application~1json/examples/400-edge-event-not-updatable
  • /paths/~1events~1{event_id}/patch/responses/400/content/application~1json/examples/400-event-too-old
Removed elements (0)

None

Modified elements (2)
  • /paths/~1events~1{event_id}/patch/description
  • /paths/~1events~1{event_id}/patch/responses/400/description
Changed lines patch
--- a/schemas/fingerprint-server-api-v4-with-examples.yaml
+++ b/schemas/fingerprint-server-api-v4-with-examples.yaml
@@ -642,10 +642,11 @@
                     labels:
                       - label: fraud
                         prediction: false
                         ml_score: 0.01
                     active_call: false
+                    compromised_device_integrity: false
                 200-ok-with-ruleset:
                   summary: >-
                     Example response with rule_action (when ruleset_id is
                     provided)
                   value:
@@ -912,10 +913,11 @@
                     labels:
                       - label: fraud
                         prediction: false
                         ml_score: 0.01
                     active_call: false
+                    compromised_device_integrity: false
                     rule_action:
                       type: block
                       status_code: 403
                       headers:
                         - name: Content-Type
@@ -1355,11 +1357,18 @@
 
         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 
 
@@ -1385,11 +1394,13 @@
               $ref: '#/components/schemas/EventUpdate'
       responses:
         '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:
                 $ref: '#/components/schemas/ErrorResponse'
               examples:
@@ -1399,10 +1410,26 @@
                     valid and cannot be parsed.
                   value:
                     error:
                       code: request_cannot_be_parsed
                       message: request body is not valid
+                400-event-too-old:
+                  summary: >-
+                    Error response when the event was created more than 10 days
+                    ago.
+                  value:
+                    error:
+                      code: failed
+                      message: event is too old to be updated (> 10 days)
+                400-edge-event-not-updatable:
+                  summary: >-
+                    Error response when the event was created by the Automation
+                    Intelligence API and cannot be updated.
+                  value:
+                    error:
+                      code: failed
+                      message: edge events cannot be updated
         '403':
           description: Forbidden. Access to this API is denied.
           content:
             application/json:
               schema:
@@ -2371,10 +2398,23 @@
 
             > 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.
+        - 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).
           content:
             application/json:
@@ -2648,10 +2688,11 @@
                         labels:
                           - label: fraud
                             prediction: false
                             ml_score: 0.01
                         active_call: false
+                        compromised_device_integrity: false
                     pagination_key: >-
                       S9rgMMUb4z3X5t5pr_tSgoSZlmyF0O8X7kCV2m981-iY1LmRTjraa1rTk3L-hQExnDWCi0RA-zAIjaVSTNO2AN2eqQWgzT0RjbieMxRfSdkM-HmOhdOgdQvYfPG3vqU1DJKh4Q
         '400':
           description: >-
             Bad request. One or more supplied search parameters are invalid, or
@@ -4090,10 +4131,17 @@
         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.
+    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: >
         `true` if the browser has DevTools open (Chrome, Firefox) or the
         Android/iOS device has Developer Tools enabled, `false` otherwise.
@@ -5337,10 +5385,14 @@
             - browser
         cloned_app:
           $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:
             - browser
             - android

fingerprint-server-api-v4.yaml

Published URL: https://fingerprintjs.github.io/openapi/schemas/fingerprint-server-api-v4.yaml
Summary: +3 added, -0 removed, ~2 modified

Added elements (3)
  • /components/schemas/CompromisedDeviceIntegrity
  • /components/schemas/Event/properties/compromised_device_integrity
  • /paths/~1events/get/parameters/52
Removed elements (0)

None

Modified elements (2)
  • /paths/~1events~1{event_id}/patch/description
  • /paths/~1events~1{event_id}/patch/responses/400/description
Changed lines patch
--- a/schemas/fingerprint-server-api-v4.yaml
+++ b/schemas/fingerprint-server-api-v4.yaml
@@ -143,11 +143,18 @@
 
         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 
 
@@ -174,11 +181,13 @@
               $ref: '#/components/schemas/EventUpdate'
       responses:
         '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:
                 $ref: '#/components/schemas/ErrorResponse'
         '403':
@@ -973,10 +982,23 @@
 
             > 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.
+        - 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).
           content:
             application/json:
@@ -2059,10 +2081,17 @@
         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.
+    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: >
         `true` if the browser has DevTools open (Chrome, Firefox) or the
         Android/iOS device has Developer Tools enabled, `false` otherwise.
@@ -3288,10 +3317,14 @@
             - browser
         cloned_app:
           $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:
             - browser
             - android

@fingerprint-dx-team-actions-runner fingerprint-dx-team-actions-runner Bot changed the title Sync OpenAPI Schema (18968) Sync OpenAPI Schema (18968) - events: Add compromised_device_integrity Android smart signal Oct 26, 2026
@fingerprint-dx-team-actions-runner

Copy link
Copy Markdown
Contributor Author

🤖 Title caption: events: Add compromised_device_integrity Android smart signal

Changesets added (2):

The diff also updates the PATCH /event description — changing the retention window from "one month" to "10 days" and documenting that Automation Intelligence API (POST /edge) events can't be updated, with two new 400 error examples. These are documentation-only changes (no schema shape change), so no changeset was added for them. Straightforward overall.

@github-actions

Copy link
Copy Markdown
Contributor

🚀 Following releases will be created using changesets from this PR:

openapi@3.10.0

Minor Changes

  • events-search: Add compromised_device_integrity filter query parameter (4230ba8)
  • events: Add compromised_device_integrity to Event (e5a9f5b)

Patch Changes

  • Set the Server API v3 deprecation date to October 31, 2026 and the end-of-life date to October 31, 2027 in the endpoint descriptions (9790b00)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The additive schema changes, examples, documentation, and changesets are consistent, with no unresolved blocking issues identified.

No open issues 🎉

What changed in this PR

Adds the Android compromised_device_integrity Smart Signal to the v4 Server API schema and event search, and clarifies event-update restrictions.

Changes:

  • Defines the new boolean signal, adds it to Event, and exposes a matching search filter.
  • Updates event examples and documents HTTP 400 responses for events older than 10 days and Automation Intelligence events.
  • Adds changesets for the signal and search filter.
File Description
schemas/​paths/​examples/​events/​search/​get_event_search_200.json Adds the signal to search results.
schemas/​paths/​examples/​events/​get_event_ruleset_200.json Adds the signal to the ruleset example.
schemas/​paths/​examples/​events/​get_event_200.json Adds the signal to the event example.
schemas/​paths/​examples/​events/​get_event_200_with_unknown_field.json Updates the unknown-field compatibility example.
schemas/​paths/​examples/​errors/​400_event_too_old.json Adds the event-age error example.
schemas/​paths/​examples/​errors/​400_edge_event_not_updatable.json Adds the Automation Intelligence update error example.
schemas/​paths/​events.yaml Adds the signal’s boolean search filter.
schemas/​paths/​event.yaml Documents update restrictions and links error examples.
schemas/​components/​schemas/​smartsignals/​CompromisedDeviceIntegrity.yaml Defines the signal and Android SDK availability.
schemas/​components/​schemas/​Event.yaml References the Android-only signal.
.changeset/​compromised-device-integrity-events.md Records the event schema addition.
.changeset/​compromised-device-integrity-events-search.md Records the search filter addition.

Review effort: Balanced

@TheUnderScorer
TheUnderScorer merged commit b2fa5bf into main Oct 26, 2026
8 checks passed
@TheUnderScorer
TheUnderScorer deleted the sync-18968 branch October 26, 2026 16:36

This branch was successfully deployed

1 active deployment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants