What's new in 3.0
SDK 3.0.0 for iOS and Android is a major release. This page covers what changes for your integration. Read Upgrading from 2.x for the steps. The full release notes are in the octet-sdk-ios and octet-sdk-android changelogs, and the 2.0 docs stay at /docs/v2.0/.
What you may need to change
- Usage reporting is always on. The SDK sends one usage record per device per day. It carries no location, no proof data and no user identity, and it never delays a proof. Setting
creditServiceUrlno longer turns it off. See Metrics and usage reporting. - A pinned
claimedRegionmust be an assigned ISO 3166 code. Any other value produces no proof. - Android: an attached debugger refuses a proof (
TAMPERING), as it already did on iOS. Debugging with a sandbox session (sandboxBypassTokenset) still works. - Android:
BootstrapReasonhas a new case,NewDevicesBlocked. Awhen (reason)without anelsebranch no longer compiles. Add the case or anelsebranch. - Android: recompile against 3.0.
AdvancedConfigandLicenseStatushave new constructor parameters. Source using named arguments compiles unchanged. - The first proof after
Octet.startcan take up to 30 seconds while the SDK finishes starting, instead of returningnoFix. If your app times out its first call, allow for this. - If you verify proofs yourself with
octet-verify, use 1.5.0 or later. - If you turned on certificate pinning with 2.0, upgrade to 3.0, which carries updated pins.
New
- Gateway routing.
TransportPolicy(OctetConfig.advanced.transport) can send all of the SDK's network calls through a gateway you run, or through Octet's hosted gateway, so your app talks to one domain. Direct mode, the default, is unchanged. See Gateway routing. - Assurance tier on every proof.
LocationProof.spoofingVerdict(spoofing_verdictin the proof JSON) says how strongly the location was corroborated. Use it to decide what aYESis worth. SeeOctetVerdict. - Require a tier when you verify.
VerifyOptions.requireVerdictfails a proof below the tier you ask for, matchingoctet-verify --require-verdict. SeeOctet.verify. - Opt-in
PLAUSIBLEcontainment. WithOctetConfig.advanced.acceptPlausibleContainmenton,contains(...)and disc queries can answer from aPLAUSIBLEproof. It is off by default. See Predicates. - A typed error when your account takes no new devices.
BootstrapReason.newDevicesBlockedcarries anupgradeUrl. Open it exactly as received. Devices that already activated keep working. See License Types.
React Native
A React Native wrapper is in progress and not yet published. See React Native.