[api-v3] Update schema to v3.5.2 - #210
Merged
Merged
Conversation
Contributor
☂️ Python Coverage
Overall Coverage
New Files
Modified Files
|
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the bundled Server API v3 schema (api-v3) to v3.5.2 and regenerates the Python SDK models/docs to include newly added Smart Signals and ML-derived fields.
Changes:
- Adds Rare Device Smart Signal support (schema, query filters, models, webhook support, docs).
- Adds ML-based scoring fields for VPN/Proxy and a new VPN detection method flag (
mlPrediction). - Introduces a new
LabelsSmart Signal schema and generated SDK surface/docs entries.
Reviewed changes
Copilot reviewed 38 out of 38 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| res/fingerprint-server-api.yaml | Updates OpenAPI schema with RareDevice/Labels, new filters, and ML score fields. |
| README.md | Adds new model documentation links for Labels/RareDevice-related types. |
| fingerprint_pro_server_api_sdk/models/webhook.py | Exposes rare_device on the Webhook model. |
| fingerprint_pro_server_api_sdk/models/webhook_vpn.py | Adds ml_score to webhook VPN payload model. |
| fingerprint_pro_server_api_sdk/models/webhook_rare_device.py | New webhook model for Rare Device payload. |
| fingerprint_pro_server_api_sdk/models/webhook_proxy.py | Adds ml_score to webhook proxy payload model. |
| fingerprint_pro_server_api_sdk/models/webhook_developer_tools.py | Updates Developer Tools description text. |
| fingerprint_pro_server_api_sdk/models/vpn.py | Adds ml_score to VPN model. |
| fingerprint_pro_server_api_sdk/models/vpn_methods.py | Adds ml_prediction to VPNMethods model. |
| fingerprint_pro_server_api_sdk/models/rare_device.py | New model for Rare Device data returned in Products. |
| fingerprint_pro_server_api_sdk/models/proxy.py | Adds ml_score to Proxy model. |
| fingerprint_pro_server_api_sdk/models/proxy_details.py | Adds unknown proxy type and updates description/validation. |
| fingerprint_pro_server_api_sdk/models/products.py | Adds rare_device and labels to Products model. |
| fingerprint_pro_server_api_sdk/models/product_rare_device.py | New wrapper model for Rare Device product (data/error). |
| fingerprint_pro_server_api_sdk/models/product_labels.py | New wrapper model for Labels product (data/error). |
| fingerprint_pro_server_api_sdk/models/labels.py | New model placeholder representing Labels array schema. |
| fingerprint_pro_server_api_sdk/models/labels_inner.py | New model for individual label entries (label/prediction/ml_score). |
| fingerprint_pro_server_api_sdk/models/developer_tools.py | Updates Developer Tools description text. |
| fingerprint_pro_server_api_sdk/models/init.py | Exports new models (Labels, RareDevice, Product* additions, webhook rare device). |
| fingerprint_pro_server_api_sdk/api/fingerprint_api.py | Adds search filters for rare device and percentile bucket to API client. |
| fingerprint_pro_server_api_sdk/init.py | Exports new models at package root. |
| docs/WebhookVPN.md | Documents ml_score on WebhookVPN. |
| docs/WebhookRareDevice.md | New docs for WebhookRareDevice model. |
| docs/WebhookProxy.md | Documents ml_score on WebhookProxy. |
| docs/WebhookDeveloperTools.md | Updates Developer Tools description in docs. |
| docs/Webhook.md | Adds rare_device to Webhook model docs. |
| docs/VPNMethods.md | Documents ml_prediction on VPNMethods. |
| docs/VPN.md | Documents ml_score on VPN. |
| docs/RareDevice.md | New docs for RareDevice model. |
| docs/ProxyDetails.md | Updates ProxyDetails description to mention unknown. |
| docs/Proxy.md | Documents ml_score on Proxy. |
| docs/Products.md | Adds rare_device and labels to Products docs. |
| docs/ProductRareDevice.md | New docs for ProductRareDevice wrapper model. |
| docs/ProductLabels.md | New docs for ProductLabels wrapper model. |
| docs/LabelsInner.md | New docs for LabelsInner item model. |
| docs/Labels.md | New docs placeholder for Labels array schema. |
| docs/FingerprintApi.md | Documents new search filters for rare device and percentile bucket. |
| docs/DeveloperTools.md | Updates Developer Tools description in docs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Contributor
🚀 Following releases will be created using changesets from this PR:fingerprint-pro-server-api-python-sdk@8.14.0Minor Changes
Patch Changes
|
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 41 out of 41 changed files in this pull request and generated no new comments.
Suppressed comments (3)
docs/WebhookRareDevice.md:6
>appears mid-sentence in the Markdown table cell (likely leaked from the OpenAPI blockquote formatting), which can render oddly inside tables. Consider removing the>so the description reads normally.
**result** | **bool** | `true` if the device is considered rare based on its combination of hardware and software attributes. A device is classified as rare if it falls within the top 99.9 percentile (lowest-frequency segment) of observed traffic, or if its configuration has not been previously seen (`not_seen`). > This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). | [optional]
test/test_fingerprint_api.py:298
- This test adds coverage for
products.labels, but other newly introduced schema fields in this PR (e.g.,products.rareDevice,vpn.mlScore,proxy.mlScore, andVPNMethods.mlPrediction) are not exercised by the mocks/assertions. Consider extending the existingget_event_200mock + assertions here to validate deserialization andto_dict()output for those fields as well.
fingerprint_pro_server_api_sdk/api/fingerprint_api.py:731 - New
rare_device/rare_device_percentile_bucketquery params were added tosearch_events, but there’s no unit test asserting that these parameters are serialized with the correct names/values (similar to how other filters are covered intest_search_events_full_params). Adding them to the existing full-params test would catch regressions in query param naming/encoding.
if 'rare_device' in params:
query_params.append(('rare_device', params['rare_device'])) # noqa: E501
if 'rare_device_percentile_bucket' in params:
query_params.append(('rare_device_percentile_bucket', params['rare_device_percentile_bucket'])) # noqa: E501
ilfa
approved these changes
Aug 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Update Server API schema version to
v3.5.2.