diff --git a/.changeset/device-details-signal.md b/.changeset/device-details-signal.md new file mode 100644 index 00000000..f1e5503c --- /dev/null +++ b/.changeset/device-details-signal.md @@ -0,0 +1,5 @@ +--- +'fingerprint-pro-server-api-openapi': minor +--- + +**events**: Add `device_details` smart signal to `Event` diff --git a/schemas/components/schemas/Event.yaml b/schemas/components/schemas/Event.yaml index 4007c466..65b2872f 100644 --- a/schemas/components/schemas/Event.yaml +++ b/schemas/components/schemas/Event.yaml @@ -160,6 +160,11 @@ properties: - browser - android - ios + device_details: + $ref: smartsignals/DeviceDetails.yaml + x-platforms: + - android + - ios emulator: $ref: smartsignals/Emulator.yaml x-platforms: diff --git a/schemas/components/schemas/smartsignals/DeviceDetails.yaml b/schemas/components/schemas/smartsignals/DeviceDetails.yaml new file mode 100644 index 00000000..620b4ba9 --- /dev/null +++ b/schemas/components/schemas/smartsignals/DeviceDetails.yaml @@ -0,0 +1,25 @@ +type: object +additionalProperties: false +description: Native, SDK-collected mobile device identification signals (manufacturer, model, and OS version). Structurally separate from the top-level `device`, `os`, and `os_version` fields and from `browser_details`, all of which are derived from user-agent parsing rather than native SDK signals. +required: [] +properties: + device_manufacturer: + type: string + examples: + - samsung + - Apple + description: 'Raw device manufacturer string as reported by the device OS. Not normalized: casing is vendor-defined (samsung, Xiaomi, OPPO, HUAWEI). Always `Apple` on iOS.' + device_model: + type: string + examples: + - SM-G991U + - iPhone14,5 + description: Raw device model identifier, as reported by the mobile OS. + os_version: + type: string + examples: + - '9' + - '16.1' + - 8.1.0 + - 17.4.1 + description: 'Mobile operating system version. Component count is not fixed and must not be assumed by consumers: iOS always reports `major.minor.patch` (e.g. `17.4.1`), while Android''s precision varies by OS era and which raw signal resolved it — `major` only (`9`, `13`) since Android 10 dropped point releases, `major.minor` (`16.1`) from Android 16 (API 36+) reintroducing a minor component, or a genuine `major.minor.patch` (`8.1.0`) on pre-Android 10 devices that shipped real point releases. Never a fabricated/zero-padded component.' diff --git a/schemas/paths/examples/events/get_event_200.json b/schemas/paths/examples/events/get_event_200.json index 72f12f44..e3446c04 100644 --- a/schemas/paths/examples/events/get_event_200.json +++ b/schemas/paths/examples/events/get_event_200.json @@ -185,6 +185,11 @@ } }, "developer_tools": false, + "device_details": { + "device_manufacturer": "samsung", + "device_model": "SM-G991U", + "os_version": "13" + }, "mitm_attack": false, "sdk": { "platform": "js", diff --git a/schemas/paths/examples/events/get_event_200_with_unknown_field.json b/schemas/paths/examples/events/get_event_200_with_unknown_field.json index e6712e39..39bc6324 100644 --- a/schemas/paths/examples/events/get_event_200_with_unknown_field.json +++ b/schemas/paths/examples/events/get_event_200_with_unknown_field.json @@ -186,6 +186,11 @@ } }, "developer_tools": false, + "device_details": { + "device_manufacturer": "samsung", + "device_model": "SM-G991U", + "os_version": "13" + }, "mitm_attack": false, "sdk": { "platform": "js", diff --git a/schemas/paths/examples/events/get_event_ruleset_200.json b/schemas/paths/examples/events/get_event_ruleset_200.json index f775f7d9..94863ac3 100644 --- a/schemas/paths/examples/events/get_event_ruleset_200.json +++ b/schemas/paths/examples/events/get_event_ruleset_200.json @@ -185,6 +185,11 @@ } }, "developer_tools": false, + "device_details": { + "device_manufacturer": "samsung", + "device_model": "SM-G991U", + "os_version": "13" + }, "mitm_attack": false, "sdk": { "platform": "js", diff --git a/schemas/paths/examples/events/get_event_with_bot_info_200.json b/schemas/paths/examples/events/get_event_with_bot_info_200.json index 98ca7d5c..c346afff 100644 --- a/schemas/paths/examples/events/get_event_with_bot_info_200.json +++ b/schemas/paths/examples/events/get_event_with_bot_info_200.json @@ -191,6 +191,11 @@ } }, "developer_tools": false, + "device_details": { + "device_manufacturer": "samsung", + "device_model": "SM-G991U", + "os_version": "13" + }, "mitm_attack": false, "sdk": { "platform": "js", diff --git a/schemas/paths/examples/events/search/get_event_search_200.json b/schemas/paths/examples/events/search/get_event_search_200.json index 8e9dbdc8..5729c37d 100644 --- a/schemas/paths/examples/events/search/get_event_search_200.json +++ b/schemas/paths/examples/events/search/get_event_search_200.json @@ -187,6 +187,11 @@ } }, "developer_tools": false, + "device_details": { + "device_manufacturer": "samsung", + "device_model": "SM-G991U", + "os_version": "13" + }, "mitm_attack": false, "sdk": { "platform": "js",