Skip to content

Releases: fingerprintjs/fingerprint-pro-server-api-go-sdk

v7.1.0

26 Nov 12:52
b43dc12
Compare
Choose a tag to compare

Minor Changes

  • Add relay detection method to the VPN Detection Smart Signal (677a809)
  • events: Add a suspect field to the identification product schema (677a809)

v7.0.0

21 Nov 10:41
4ca0716
Compare
Choose a tag to compare

Major Changes

The underlying Server API hasn’t changed, but we made SDK type and class generation more precise, resulting in small breaking changes for the SDK itself. This change should make the SDK API a lot more stable going forward

  • make tag field optional for Webhook (406a373)
  • Provide error message from received response rather than status code text in ApiError.Error() (76a47e1)
  • Change ModelMap to contain any possible property, not just strings (f4a0749)
  • Always throw sdk.Error from all Fingerprint API methods (c02c7d9)
    • Remove the BrowserDetails field botProbability.
    • Update the IdentificationConfidence field score type format: float -> double.
    • Make the RawDeviceAttributeError field name optional .
    • Make the RawDeviceAttributeError field message optional .
    • events: Remove the EventsResponse field error.
      • [note]: The errors are represented by ErrorResponse model.
    • events: Update the HighActivity field dailyRequests type format: number -> int64.
    • events: Specify the Tampering field anomalyScore type format: double.
    • webhook: Make the Webhook fields optional: visitorId, visitorFound, firstSeenAt, lastSeenAt, browserDetails, incognito.
    • webhook: Make the WebhookClonedApp field result optional.
    • webhook: Make the WebhookDeveloperTools field result optional.
    • webhook: Make the WebhookEmulator field result optional.
    • webhook: Make the WebhookFactoryReset fields time and timestamp optional.
    • webhook: Make the WebhookFrida field result optional.
    • webhook: Update the WebhookHighActivity field dailyRequests type format: number -> int64.
    • webhook: Make the WebhookIPBlocklist fields result and details optional.
    • webhook: Make the WebhookJailbroken field result optional.
    • webhook: Make the WebhookLocationSpoofing field result optional.
    • webhook: Make the WebhookPrivacySettings field result optional.
    • webhook: Make the WebhookProxy field result optional.
    • webhook: Make the WebhookRemoteControl field result optional.
    • webhook: Make the WebhookRootApps field result optional.
    • webhook: Make the WebhookSuspectScore field result optional.
    • webhook: Make the WebhookTampering fields result, anomalyScore and antiDetectBrowser optional.
    • webhook: Specify the WebhookTampering field anomalyScore type format: double.
    • webhook: Make the WebhookTor field result optional.
    • webhook: Make the WebhookVelocity fields optional: distinctIp, distinctLinkedId, distinctCountry, events, ipEvents, distinctIpByLinkedId, distinctVisitorIdByLinkedId.
    • webhook: Make the WebhookVirtualMachine field result optional.
    • webhook: Make the WebhookVPN fields optional: result, confidence, originTimezone, methods. (c92322a)
    • Rename BotdResult -> Botd.
    • Rename BotdDetectionResult -> BotdBot:
      • Extract result type as BotdBotResult.
    • Rename ClonedAppResult -> ClonedApp.
    • Rename DeveloperToolsResult -> DeveloperTools.
    • Rename EmulatorResult -> Emulator.
    • Refactor error models:
      • Remove ErrorCommon403Response, ErrorCommon429Response, ErrorEvent404Response, TooManyRequestsResponse, ErrorVisits403, ErrorUpdateEvent400Response, ErrorUpdateEvent409Response, ErrorVisitor400Response, ErrorVisitor404Response, IdentificationError, ProductError.
      • Introduce ErrorResponse and ErrorPlainResponse.
        • [note]: ErrorPlainResponse has a different format { "error": string } and it is used only in GET /visitors.
      • Extract error type as Error.
      • Extract error.code type as ErrorCode.
    • Rename EventResponse -> EventsGetResponse.
    • Rename EventUpdateRequest -> EventsUpdateRequest.
    • Rename FactoryResetResult -> FactoryReset.
    • Rename FridaResult -> Frida.
    • Rename IPLocation -> Geolocation:
      • Rename IPLocationCity -> GeolocationCity.
      • Extract subdivisions type as GeolocationSubdivisions.
      • Rename Location -> GeolocationContinent:
      • Introduce a dedicated type GeolocationCountry.
      • Rename Subdivision -> GeolocationSubdivision.
    • Rename HighActivityResult -> HighActivity.
    • Rename Confidence -> IdentificationConfidence.
    • Rename SeenAt -> IdentificationSeenAt.
    • Rename IncognitoResult -> Incognito.
    • Rename IpBlockListResult -> IPBlocklist:
      • Extract details type as IPBlocklistDetails.
    • Rename IpInfoResult -> IPInfo:
      • Rename IpInfoResultV4 -> IPInfoV4.
      • Rename IpInfoResultV6 -> IPInfoV6.
      • Rename ASN -> IPInfoASN.
      • Rename DataCenter -> IPInfoDataCenter.
    • Rename JailbrokenResult -> Jailbroken.
    • Rename LocationSpoofingResult -> LocationSpoofing.
    • Rename PrivacySettingsResult -> PrivacySettings.
    • Rename ProductsResponse -> Products:
      • Rename inner types: ProductsResponseIdentification -> ProductIdentification, ProductsResponseIdentificationData -> Identification, ProductsResponseBotd -> ProductBotd, SignalResponseRootApps -> ProductRootApps, SignalResponseEmulator -> ProductEmulator, SignalResponseIpInfo -> ProductIPInfo, SignalResponseIpBlocklist -> ProductIPBlocklist, SignalResponseTor -> ProductTor, SignalResponseVpn -> ProductVPN, SignalResponseProxy -> ProductProxy, ProxyResult -> Proxy, SignalResponseIncognito -> ProductIncognito, SignalResponseTampering -> ProductTampering, SignalResponseClonedApp -> ProductClonedApp, SignalResponseFactoryReset -> ProductFactoryReset, SignalResponseJailbroken -> ProductJailbroken, SignalResponseFrida -> ProductFrida, SignalResponsePrivacySettings -> ProductPrivacySettings, SignalResponseVirtualMachine -> ProductVirtualMachine, SignalResponseRawDeviceAttributes -> ProductRawDeviceAttributes, RawDeviceAttributesResultValue -> RawDeviceAttributes, SignalResponseHighActivity -> ProductHighActivity, SignalResponseLocationSpoofing -> ProductLocationSpoofing, SignalResponseSuspectScore -> ProductSuspectScore, SignalResponseRemoteControl -> ProductRemoteControl, SignalResponseVelocity -> ProductVelocity, SignalResponseDeveloperTools -> ProductDeveloperTools.
      • Extract identification.data type as Identification.
    • Rename RawDeviceAttributesResult -> RawDeviceAttributes:
      • Extract item type as RawDeviceAttribute.
      • Extract error type as RawDeviceAttributeError.
    • Rename RemoteControlResult -> RemoteControl.
    • Rename RootAppsResult -> RootApps.
    • Rename SuspectScoreResult -> SuspectScore.
    • Extract new model Tag.
    • Rename TamperingResult -> Tampering.
    • Rename TorResult -> Tor.
    • Rename VelocityResult -> Velocity:
      • Rename VelocityIntervals -> VelocityData.
      • Rename VelocityIntervalResult -> VelocityIntervals.
    • Rename VirtualMachineResult -> VirtualMachine.
    • Rename the Visit field ipLocation type DeprecatedIPLocation -> DeprecatedGeolocation.
      • Instead of DeprecatedIPLocationCity use common GeolocationCity
    • Rename Response -> VisitorsGetResponse.
      • Omit extra inner type ResponseVisits
    • Rename VpnResult -> VPN.
      • Extract confidence type as VPNConfidence.
      • Extract methods type as VPNMethods.
    • Rename WebhookVisit -> Webhook.
      • Introduce new inner types: WebhookRootApps, WebhookEmulator, WebhookIPInfo, WebhookIPBlocklist, WebhookTor, WebhookVPN, WebhookProxy, WebhookTampering, WebhookClonedApp, WebhookFactoryReset, WebhookJailbroken, WebhookFrida, WebhookPrivacySettings, WebhookVirtualMachine, WebhookRawDeviceAttributes, WebhookHighActivity, WebhookLocationSpoofing, WebhookSuspectScore, WebhookRemoteControl, WebhookVelocity, WebhookDeveloperTools. (c92322a)
  • Rename errors models related to visits:
    • rename ErrorVisitsDelete400Response to ErrorVisitor400Response
    • rename ErrorVisitsDelete404ResponseError to ErrorVisitor404ResponseError
    • rename ErrorVisitsDelete404Response to ErrorVisitor404Response (fe7e9f7)

Minor Changes

  • related-visitors: Add GET /related-visitors endpoint (e069c8f)
  • Added new ipEvents, `distinctIpByLinked...
Read more

v7.0.0-test.2

19 Nov 14:19
75da228
Compare
Choose a tag to compare
v7.0.0-test.2 Pre-release
Pre-release

Major Changes

  • Provide error message from received response rather than status code text in ApiError.Error() (76a47e1)
  • Always throw sdk.Error from all Fingerprint API methods (c02c7d9)

Minor Changes

  • Provide ErrorCode in Code() method in ApiError (76a47e1)

v7.0.0-test.1

14 Nov 10:22
920d500
Compare
Choose a tag to compare
v7.0.0-test.1 Pre-release
Pre-release

Major Changes

    • Remove the BrowserDetails field botProbability.
    • Update the IdentificationConfidence field score type format: float -> double.
    • Make the RawDeviceAttributeError field name optional .
    • Make the RawDeviceAttributeError field message optional .
    • events: Remove the EventsResponse field error.
      • [note]: The errors are represented by ErrorResponse model.
    • events: Update the HighActivity field dailyRequests type format: number -> int64.
    • events: Specify the Tampering field anomalyScore type format: double.
    • webhook: Make the Webhook fields optional: visitorId, visitorFound, firstSeenAt, lastSeenAt, browserDetails, incognito.
    • webhook: Make the WebhookClonedApp field result optional.
    • webhook: Make the WebhookDeveloperTools field result optional.
    • webhook: Make the WebhookEmulator field result optional.
    • webhook: Make the WebhookFactoryReset fields time and timestamp optional.
    • webhook: Make the WebhookFrida field result optional.
    • webhook: Update the WebhookHighActivity field dailyRequests type format: number -> int64.
    • webhook: Make the WebhookIPBlocklist fields result and details optional.
    • webhook: Make the WebhookJailbroken field result optional.
    • webhook: Make the WebhookLocationSpoofing field result optional.
    • webhook: Make the WebhookPrivacySettings field result optional.
    • webhook: Make the WebhookProxy field result optional.
    • webhook: Make the WebhookRemoteControl field result optional.
    • webhook: Make the WebhookRootApps field result optional.
    • webhook: Make the WebhookSuspectScore field result optional.
    • webhook: Make the WebhookTampering fields result, anomalyScore and antiDetectBrowser optional.
    • webhook: Specify the WebhookTampering field anomalyScore type format: double.
    • webhook: Make the WebhookTor field result optional.
    • webhook: Make the WebhookVelocity fields optional: distinctIp, distinctLinkedId, distinctCountry, events, ipEvents, distinctIpByLinkedId, distinctVisitorIdByLinkedId.
    • webhook: Make the WebhookVirtualMachine field result optional.
    • webhook: Make the WebhookVPN fields optional: result, confidence, originTimezone, methods. (c92322a)
    • Rename BotdResult -> Botd.
    • Rename BotdDetectionResult -> BotdBot:
      • Extract result type as BotdBotResult.
    • Rename ClonedAppResult -> ClonedApp.
    • Rename DeveloperToolsResult -> DeveloperTools.
    • Rename EmulatorResult -> Emulator.
    • Refactor error models:
      • Remove ErrorCommon403Response, ErrorCommon429Response, ErrorEvent404Response, TooManyRequestsResponse, ErrorVisits403, ErrorUpdateEvent400Response, ErrorUpdateEvent409Response, ErrorVisitor400Response, ErrorVisitor404Response, IdentificationError, ProductError.
      • Introduce ErrorResponse and ErrorPlainResponse.
        • [note]: ErrorPlainResponse has a different format { "error": string } and it is used only in GET /visitors.
      • Extract error type as Error.
      • Extract error.code type as ErrorCode.
    • Rename EventResponse -> EventsGetResponse.
    • Rename EventUpdateRequest -> EventsUpdateRequest.
    • Rename FactoryResetResult -> FactoryReset.
    • Rename FridaResult -> Frida.
    • Rename IPLocation -> Geolocation:
      • Rename IPLocationCity -> GeolocationCity.
      • Extract subdivisions type as GeolocationSubdivisions.
      • Rename Location -> GeolocationContinent:
      • Introduce a dedicated type GeolocationCountry.
      • Rename Subdivision -> GeolocationSubdivision.
    • Rename HighActivityResult -> HighActivity.
    • Rename Confidence -> IdentificationConfidence.
    • Rename SeenAt -> IdentificationSeenAt.
    • Rename IncognitoResult -> Incognito.
    • Rename IpBlockListResult -> IPBlocklist:
      • Extract details type as IPBlocklistDetails.
    • Rename IpInfoResult -> IPInfo:
      • Rename IpInfoResultV4 -> IPInfoV4.
      • Rename IpInfoResultV6 -> IPInfoV6.
      • Rename ASN -> IPInfoASN.
      • Rename DataCenter -> IPInfoDataCenter.
    • Rename JailbrokenResult -> Jailbroken.
    • Rename LocationSpoofingResult -> LocationSpoofing.
    • Rename PrivacySettingsResult -> PrivacySettings.
    • Rename ProductsResponse -> Products:
      • Rename inner types: ProductsResponseIdentification -> ProductIdentification, ProductsResponseIdentificationData -> Identification, ProductsResponseBotd -> ProductBotd, SignalResponseRootApps -> ProductRootApps, SignalResponseEmulator -> ProductEmulator, SignalResponseIpInfo -> ProductIPInfo, SignalResponseIpBlocklist -> ProductIPBlocklist, SignalResponseTor -> ProductTor, SignalResponseVpn -> ProductVPN, SignalResponseProxy -> ProductProxy, ProxyResult -> Proxy, SignalResponseIncognito -> ProductIncognito, SignalResponseTampering -> ProductTampering, SignalResponseClonedApp -> ProductClonedApp, SignalResponseFactoryReset -> ProductFactoryReset, SignalResponseJailbroken -> ProductJailbroken, SignalResponseFrida -> ProductFrida, SignalResponsePrivacySettings -> ProductPrivacySettings, SignalResponseVirtualMachine -> ProductVirtualMachine, SignalResponseRawDeviceAttributes -> ProductRawDeviceAttributes, RawDeviceAttributesResultValue -> RawDeviceAttributes, SignalResponseHighActivity -> ProductHighActivity, SignalResponseLocationSpoofing -> ProductLocationSpoofing, SignalResponseSuspectScore -> ProductSuspectScore, SignalResponseRemoteControl -> ProductRemoteControl, SignalResponseVelocity -> ProductVelocity, SignalResponseDeveloperTools -> ProductDeveloperTools.
      • Extract identification.data type as Identification.
    • Rename RawDeviceAttributesResult -> RawDeviceAttributes:
      • Extract item type as RawDeviceAttribute.
      • Extract error type as RawDeviceAttributeError.
    • Rename RemoteControlResult -> RemoteControl.
    • Rename RootAppsResult -> RootApps.
    • Rename SuspectScoreResult -> SuspectScore.
    • Extract new model Tag.
    • Rename TamperingResult -> Tampering.
    • Rename TorResult -> Tor.
    • Rename VelocityResult -> Velocity:
      • Rename VelocityIntervals -> VelocityData.
      • Rename VelocityIntervalResult -> VelocityIntervals.
    • Rename VirtualMachineResult -> VirtualMachine.
    • Rename the Visit field ipLocation type DeprecatedIPLocation -> DeprecatedGeolocation.
      • Instead of DeprecatedIPLocationCity use common GeolocationCity
    • Rename Response -> VisitorsGetResponse.
      • Omit extra inner type ResponseVisits
    • Rename VpnResult -> VPN.
      • Extract confidence type as VPNConfidence.
      • Extract methods type as VPNMethods.
    • Rename WebhookVisit -> Webhook.
      • Introduce new inner types: WebhookRootApps, WebhookEmulator, WebhookIPInfo, WebhookIPBlocklist, WebhookTor, WebhookVPN, WebhookProxy, WebhookTampering, WebhookClonedApp, WebhookFactoryReset, WebhookJailbroken, WebhookFrida, WebhookPrivacySettings, WebhookVirtualMachine, WebhookRawDeviceAttributes, WebhookHighActivity, WebhookLocationSpoofing, WebhookSuspectScore, WebhookRemoteControl, WebhookVelocity, WebhookDeveloperTools. (c92322a)

Minor Changes

  • related-visitors: Add GET /related-visitors endpoint (e069c8f)
  • Added new ipEvents, distinctIpByLinkedId, and distinctVisitorIdByLinkedId fields to the velocity Smart Signal. (c92322a)
    • Make the GeolocationCity field name required.
    • Make the GeolocationSubdivision field isoCode required.
    • Make the GeolocationSubdivision field name required.
    • Make the IPInfoASN field name required .
    • Make the IPInfoDataCenter field name required.
    • Add optional IdentificationConfidence field comment.
    • events: Add optional Botd field meta.
    • events: Add optional Identification field components.
    • events: Make the VPN field originCountry required.
    • visitors: Add optional Visit field components.
    • webhook: Add optional Webhook field components. (c92322a)
  • visitors: Add the confidence field to the VPN Detection Smart Signal (782dc59)
  • Remove ipv4 format from ip field in Botd, Identification, Visit and Webhook models. ([1bda1e3](https://github.com/fingerprintjs/finger...
Read more

v7.0.0-test.0

27 Sep 12:13
5c1de1b
Compare
Choose a tag to compare
v7.0.0-test.0 Pre-release
Pre-release

Major Changes

  • make tag field optional for Webhook (406a373)
  • Change ModelMap to contain any possible property, not just strings (f4a0749)
  • Rename errors models related to visits:
    • rename ErrorVisitsDelete400Response to ErrorVisitor400Response
    • rename ErrorVisitsDelete404ResponseError to ErrorVisitor404ResponseError
    • rename ErrorVisitsDelete404Response to ErrorVisitor404Response (fe7e9f7)

Minor Changes

  • events: Introduce PUT endpoint for /events API (e9df386)

Patch Changes

  • Remove unused Model struct (d398848)

v6.1.0

30 Jul 12:14
Compare
Choose a tag to compare

6.1.0 (2024-07-30)

Features

  • add velocity, remote control and developer tools smart signals (a66f05c)

v6.0.0

27 Jun 13:21
Compare
Choose a tag to compare

6.0.0 (2024-06-27)

⚠ BREAKING CHANGES

  • it is now easier to check for too many requests error (429):
	response, httpRes, err := client.FingerprintApi.GetVisits(auth, visitorId, &opts)
	fmt.Printf("%+v\n", httpRes)

	if err != nil {
		var tooManyRequestsError *sdk.TooManyRequestsError

		if errors.As(err, &tooManyRequestsError) {
			log.Printf("Too many requests, retry after %d seconds", tooManyRequestsError.RetryAfter())
		} else {
			log.Print(err)
		}
	}
  • rename GenericSwaggerError to ApiError
  • rename ManyRequestsResponse to TooManyRequestsResponse
  • go 1.20 has reached EOL. Minimal supported version of go is now 1.21
  • right now we use native errors package for joining errors, meaning that multiple error messages are now joined by new line rather than colon (:)
  • optional pkg is no longer used in this SDK. Please pass native GO types instead.

Features

  • add IsValidWebhookSignature function for validating webhook signature (a5bf13d)
  • add delete API (0e077c3)
  • add os Mismatch (30b0215)
  • add revision string field to confidence object (8a2f270)
  • drop support for go 1.20 (46953bc)
  • drop usage of github.com/pkg/errors (186d30a)
  • introduce TooManyRequestsError (85f3307)
  • provide HttpResponse() in ApiError (acd1274)
  • re-write request handling logic (14b7e7f)
  • remove usage of github.com/antihax/optional package (62db97f)
  • rename GenericSwaggerError to ApiError (259b7b4)
  • rename ManyRequestsResponse to TooManyRequestsResponse (3f66641)

Bug Fixes

  • allow passing nil configuration to NewAPIClient (8234fbe)
  • move test related dependencies to test module (298275d)
  • use correct error type for incognito, rawDeviceAttributes and tampering in the GetEvent method (c29aea9)

v6.0.0-test.2

26 Jun 11:48
Compare
Choose a tag to compare
v6.0.0-test.2 Pre-release
Pre-release

6.0.0-test.2 (2024-06-26)

Bug Fixes

  • use correct error type for incognito, rawDeviceAttributes and tampering in the GetEvent method (1487938)

v6.0.0-test.1

21 Jun 14:18
Compare
Choose a tag to compare
v6.0.0-test.1 Pre-release
Pre-release

6.0.0-test.1 (2024-06-21)

⚠ BREAKING CHANGES

  • it is now easier to check for too many requests error (429):
	response, httpRes, err := client.FingerprintApi.GetVisits(auth, visitorId, &opts)
	fmt.Printf("%+v\n", httpRes)

	if err != nil {
		var tooManyRequestsError *sdk.TooManyRequestsError

		if errors.As(err, &tooManyRequestsError) {
			log.Fatalf("Too many requests, retry after %d seconds", tooManyRequestsError.RetryAfter())
		} else {
			log.Fatal(err)
		}
	}
  • rename GenericSwaggerError to ApiError
  • rename ManyRequestsResponse to TooManyRequestsResponse
  • go 1.20 has reached EOL. Minimal supported version of go is now 1.21
  • right now we use native errors package for joining errors, meaning that multiple error messages are now joined by new line rather than colon (:)
  • optional pkg is no longer used in this SDK. Please pass native GO types instead.

Features

  • add IsValidWebhookSignature function for validating webhook signature (a5bf13d)
  • add delete API (0e077c3)
  • add os Mismatch (30b0215)
  • add revision string field to confidence object (8a2f270)
  • drop support for go 1.20 (46953bc)
  • drop usage of github.com/pkg/errors (186d30a)
  • introduce TooManyRequestsError (6ee7ff2)
  • provide HttpResponse() in ApiError (acd1274)
  • re-write request handling logic (14b7e7f)
  • remove usage of github.com/antihax/optional package (62db97f)
  • rename GenericSwaggerError to ApiError (259b7b4)
  • rename ManyRequestsResponse to TooManyRequestsResponse (3f66641)

Bug Fixes

  • allow passing nil configuration to NewAPIClient (595eaf8)
  • move test related dependencies to test module (298275d)

Reverts

  • "chore(release): 6.0.0-test.1 [skip ci]" (84ec138)

v5.0.2

28 Mar 14:26
Compare
Choose a tag to compare

5.0.2 (2024-03-28)

Build System

  • deps: bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (b749ff0)
  • deps: bump google.golang.org/protobuf in /example (2fd6964)