v3.9.3
Changelog
New Features
- Application Integrity Check Embedded into Enrollment and Authentication flow: Expose new feature which automatically transmits integrity verdict information, based on the Google Play Integrity API, to the backend during enrollment and authentication. To it setup:
- provide your Cloud Project Number on
futurae.xml, using keyftr_cloud_project_number. - configure the IV timeout through SDK Configuration during SDK launch by calling
SDKConfiguration.Builder.setBlockingIVCollectionTimeoutOnAuthMillis()method.
- provide your Cloud Project Number on
Please note that Application Integrity Check Embedded feature needs to be enabled for the respective Futurae Service(s) which this SDK is associated with and the Futurae SDK instance. For further details contact the Futurae support at support@futurae.
- Added
FuturaeOperationsAPI:exchangeTokenForEnrollmentActivationCode(exchangeToken: String): AsyncOperation<String>: validate anexchangeTokento return an enrollment activation code.fun exchangeTokenForSessionToken(exchangeToken: String) : AsyncOperation<String>: validate anexchangeTokento return a session-token.
Exchange tokens can be acquired via various transport channels. To facilitate QRCode and URI support we added:
- sealed class
QRCodenow supports additional subclassesEnrollTokenExchangeandAuthTokenExchange - sealed class
FTRUriTypenow supports additional subclassesEnrollExchangeTokenandAuthExchangeToken
Behavior changes
- The new additions to
QRCodeandFTRUriTypemay be a breaking change if using exhaustivewhenstatements. FuturaeQrCodeAPI.getQRCodenow supports the newQRCodesubclasses
Important notice
- The deprecated
FTQRCodeUtils.getQrcodeTypeandQRTypedoes NOT offer support for the new token-exchange QRs. Please useFuturaeQrCodeAPI.getQRCodeinstead. - Deprecated
FuturaeOperationsApi. handleUrias it cannot support token-exchange which needs a return type. Please useFTUriUtils.getFTRUriTypeinstead and handle the returnedFTRUriTypeaccordingly.
New API
We added a new getPendingSessions API that allows getting all existing non-expired sessions for provided user-ids. Similar to the getAccountsStatus but includes all available factors instead of just approve.
FuturaeAccountApi->getPendingSessions(vararg userIds : String) : AsyncOperation<PendingSessions>
Behavior Changes
FuturaeOperationsApi.uploadPublicKey(forceReupload: Boolean)now returnsFTAccountNotFoundExceptionif called without enrolled accounts, instead of failing silently.FuturaeSDKStateexposed viaFuturaeSDK.sdkState()has been updated to set and exposeFuturaeSDKStatus.CorruptedwhenFuturaeSDK.launch(...)is called and throwsFTCorruptedStateException. It is important to acknowledge that under bothFuturaeSDKStatus.CorruptedandFuturaeSDKStatus.Uninitializedthe SDK is not initialized, reflected underFuturaeSDK.isSDKInitialized.- Deprecated
FuturaeOperationsApi.uploadPublicKey()in favor ofuploadPublicKey(forceReupload: Boolean)which allows the host app to force a re-upload of public key, regardless of state ofFuturaeOperationsApi.isPublicKeyUploaded(). - SDK public key upload (internal operation) now performs automatic retries to self-recover users without the need to re-launch the SDK.
- Add extra validation on parameter of
FuturaeAccountApi.getAccountsStatus, so now when an empty list is being passed the method throws FTInvalidArgumentException instead of FTEncryptedStorageCorruptedException.
Bug Fixes
- Fix state management of
FuturaeOperationsApi.isPublicKeyUploaded()to accurately depict state of flag after Accounts/SDK Recovery. - Fix race condition bug, that would cause public key upload to fail immediately after
FuturaeSDK.launchAccountRecoveryto recover from SDK corruption after a failed SDK-v1-migration. - Fix uncaught exception due to SDK PIN corruption after updating SDK from v2.0.3 to any newer version. This affects only
LockConfigurationType.SDK_PIN_WITH_BIOMETRICS_OPTIONALwith biometrics activated. Now SDK will propagate the newly introducedFTPinCorruptedException, when user attempts to unlock using biometrics, and will remove the biometrics from the lsit returned onFuturaeLockApi.getActiveUnlockMethods. Users will need to re-activate biometrics if they want to use them.
Maintenance
- Bumped
OkHttpdependency to latest stable v5, which adds support for Happy Eyeballs (IPv4/IPv6 dual-stack fallback). - Bumped
Kotlinto2.2.0 - Bumped
Gradleto8.11.1andAGPto8.10.0