clariodesk 0.1.3
clariodesk: ^0.1.3 copied to clipboard
ClarioDesk Flutter SDK — in-app customer support chat, bug reporting with auto screenshots, and feedback for mobile apps. Prebuilt UI or headless API.
0.1.3 — Documentation cleanup (native plugin comments) #
- Comment cleanup in the iOS/Android plugin sources (podspec, build.gradle, the platform key bridges). No functional changes.
0.1.2 — Documentation cleanup #
- README and code-comment cleanup. No functional changes.
0.1.1 — Wider Flutter support #
- Lowered the SDK floors to the true minimum: Dart
^3.10.0(was^3.11.5), Flutter>=3.38.1(was>=3.41.0). No code changes — the previous floors were an artifact of the publishing machine's toolchain, not a real requirement. The binding constraint is the plugin dependencies (device_info_plus/package_info_plus/share_plusneed Flutter 3.38.1).
0.1.0 — Device-Is-Identity protocol #
Full rewrite of the auth layer around the Device-Is-Identity protocol.
New
- Hardware-bound ECDSA P-256 keypair via iOS Secure Enclave (
SecKeywithkSecAttrTokenIDSecureEnclave) and Android Keystore (KeyGenParameterSpecwithsetIsStrongBoxBackedwhen available, TEE fallback). Generated on first launch, never extractable. - Challenge-response device registration replaces JWT exchange.
- Per-request
X-ClarioDesk-Device/Timestamp/Nonce/Signatureheaders on every authenticated call. - Signed SSE handshake (no more
?token=query string). - Transparent retry on
X-ClarioDesk-Auth-Error: clock_skewusing theX-Server-Timeresponse header to realign the SDK's clock offset. device.revokedSSE event handler: tears down local state without a restart when the dashboard or a sibling install revokes the device.- Plugin-class package — adds
ios/(Swift) andandroid/(Kotlin) for the native key wrappers. - New dependencies:
crypto,flutter_secure_storage.pointycastlein dev for the test fake server.
Breaking
ClarioDesk.init(...)is nowFuture<void>. First call runs device registration inline. Awaiting is optional — subsequent methods auto-await the in-flight bootstrap if you don't.ClarioDesk.identify(...)has all parameters optional. It writes a label onto the device's end-user row and grants no access; identity comes from the hardware key.- The publishable API key prefix changed from
sk_*topk_*to reflect that it ships in app binaries by design. Authorizationheader for registration changed fromBearer pk_*toApiKey pk_*.ClarioDesk.reset()now revokes server-side and wipes the hardware key. The nextinit()registers a fresh device.
Removed
- JWT-based session auth. There are no bearer tokens in the protocol anymore — every call is signed.
ClarioDesk.init(...)'s legacy synchronous return type.
0.0.1 #
- Initial preview release on the JWT-based identify model. Superseded by 0.1.0.