Skip to content

Licensing

A Beekon license is a signed token (a license-format-v1 JWS) the SDK verifies on the device, with no network call. It is purely observational: no license status ever blocks, degrades, or delays the SDK. Without a key, Beekon runs in evaluation mode and works exactly the same.

You only need this section if you’ve been issued a production license and want to surface its status.

The license key is the highest-priority channel and overrides any value set in the platform manifest (in.wayq.beekon.license meta-data on Android, BeekonLicenseKey in Info.plist on iOS). A token is bound to your app id and platform, so it’s safe to commit.

Beekon.configure(BeekonConfig.SelfManaged(licenseKey = "eyJ…")) // a license-format-v1 token

licenseStatus is a snapshot; licenseStatusUpdates (Beekon.licenseStatus StateFlow on Android) streams transitions. The status is one of: notDetermined, evaluation, licensed(tier, entitlements), expired, updateEntitlementLapsed, or invalid(reason).

when (val s = Beekon.licenseStatus.value) {
is LicenseStatus.Licensed -> Log.d("beekon", "licensed: ${s.tier}")
is LicenseStatus.Evaluation -> Log.d("beekon", "evaluation mode")
is LicenseStatus.Invalid -> Log.d("beekon", "invalid: ${s.reason}")
else -> {}
}

A token carries claims the SDK reads but never enforces: products (covered platforms), app_ids (the bundle it’s bound to), tier (opaque — you define the meaning), entitlements, and an optional exp. For pricing and how to obtain a production license, see getbeekon.com.