Device licensing compatibility¶
Device licensing and status originated in the TrustMint Android SDK and belong conceptually to unified DDI. They are not yet a live public DDI capability. EntitleKit owns license approval, refusal, subscription, and billing management; device applications must not call EntitleKit management APIs directly.
Current availability¶
The Android binding models these intended device-mTLS calls:
SDK operation |
Intended relative route |
Managed status |
|---|---|---|
|
|
not published |
|
|
not published |
|
|
not published |
|
|
legacy; not published |
With SdkConfig.apiBaseUrl=https://things.flexgalaxy.ai, the inherited
DdiApiClient resolves these below /ddi/v1. The managed gateway does not
currently serve them. Do not ship a workflow that depends on these calls until
the routes, mTLS identity binding, EntitleKit integration, and conformance tests
are published in Runtime surface.
They also depend on the Android facade’s internal enrollment store. Version
1.1.0 provisionDevice() does not populate that store and exposes no public
import method, so the high-level licensing methods are not reachable through a
fresh DDI provisioning flow without changing the binding.
Android compatibility API¶
TrustMintSDK exposes:
getStatus() -> LicenseManager.DeviceStatusrequestLicense(licenseType, appletId) -> LicenseRequestResultrenewLicense() -> TokenResultgetOfflineLicenseStatus() -> LicenseStatussetLicenseStatusListener(listener)
LicenseStatus values are VALID, EXPIRED, RENEWAL_NEEDED, NONE,
PENDING, and REFUSED. The SDK schedules periodic renewal with WorkManager
after enrollment, using the configured interval, and persists a returned token.
Target device contract¶
Before device licensing can be marked live, the managed implementation must:
derive
thing_idfrom the verified device certificate, never a path or body field alone;authorize the device, applet, account, and requested license type;
forward approval/refusal state from EntitleKit without exposing an integrator AK/SK to the device;
issue signed, short-lived tokens with explicit issuer, audience, subject, applet, license state, and expiration claims;
provide signature-verification keys with rotation and cache rules;
define revocation and offline grace behavior;
implement Python, Android, and C parity or explicitly scope supported terminals; and
publish end-to-end tests and the live routes in the runtime matrix.
External integrators that approve or refuse requests use EntitleKit’s external API with their own AK/SK. That is a server-to-server management integration, not a DDI device credential or device route.