clariodesk 0.3.0 copy "clariodesk: ^0.3.0" to clipboard
clariodesk: ^0.3.0 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.3.0 — Attention-aware push and private tap routing #

  • Replies now alert immediately unless the support inbox or exact ticket is visibly focused and acknowledges that specific realtime delivery.
  • Removed the app-wide 30-second presence suppression blind spot; a stale focused-surface lease can delay an alert by at most two seconds.
  • Added SupportSurface, setVisibleSupportSurface, and clearVisibleSupportSurface for custom support screens. The prebuilt UI manages these automatically.
  • Added privacy-safe resolvePushTarget; ticket ids are returned only by the signed API after a tap, never placed in FCM/APNs data.
  • Added ClarioDeskWidgets.openFromPush for prebuilt notification routing.

0.2.0 — Verified identity, compatibility controls #

Adds verified customer identity: with a host-signed or OIDC identity token, one person's support history follows them across devices, survives logout and login, and survives a reinstall onto a new device key. Without a token the SDK behaves exactly as before — identify() with only an externalId remains an unverified label, and existing integrations need no changes.

  • IdentityTokenProvider host seam; identify() accepts an identity mode and collects a proof bound to this device's key.
  • clearIdentity() for sign-out, ordered against identify() so a slow in-flight call can never resurrect the previous account.
  • Request signature v2 carrying an identity epoch, so a request signed before an account switch cannot read or write after it.
  • RFC 7638 device-key thumbprints.
  • Forced token refresh after a proof collision.
  • Push payloads no longer carry message content; the SDK fetches after authorizing as the current identity.
  • Acknowledged device reset, and realtime reconnects over one-time grants.
  • After a verified-identity failure the SDK suspends the support UI rather than falling back to an unverified label.
  • Reports its name and version to the server, and honours remote per-feature switches, a minimum-version floor, and an update notice. Config parsing fails open; security behaviour fails closed.
  • app_suspended is now the single terminal code for an unavailable app.

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_plus need 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 (SecKey with kSecAttrTokenIDSecureEnclave) and Android Keystore (KeyGenParameterSpec with setIsStrongBoxBacked when available, TEE fallback). Generated on first launch, never extractable.
  • Challenge-response device registration replaces JWT exchange.
  • Per-request X-ClarioDesk-Device/Timestamp/Nonce/Signature headers on every authenticated call.
  • Signed SSE handshake (no more ?token= query string).
  • Transparent retry on X-ClarioDesk-Auth-Error: clock_skew using the X-Server-Time response header to realign the SDK's clock offset.
  • device.revoked SSE 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) and android/ (Kotlin) for the native key wrappers.
  • New dependencies: crypto, flutter_secure_storage. pointycastle in dev for the test fake server.

Breaking

  • ClarioDesk.init(...) is now Future<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_* to pk_* to reflect that it ships in app binaries by design.
  • Authorization header for registration changed from Bearer pk_* to ApiKey pk_*.
  • ClarioDesk.reset() now revokes server-side and wipes the hardware key. The next init() 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.
0
likes
140
points
53
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

ClarioDesk Flutter SDK — in-app customer support chat, bug reporting with auto screenshots, and feedback for mobile apps. Prebuilt UI or headless API.

Homepage
Repository (GitHub)
View/report issues

Topics

#support #customer-support #chat #bug-reporting #feedback

License

MIT (license)

Dependencies

centrifuge, connectivity_plus, crypto, device_info_plus, file_selector, flutter, flutter_secure_storage, http, image_picker, package_info_plus, share_plus, url_launcher

More

Packages that depend on clariodesk

Packages that implement clariodesk