Skip to main content
The SDK stores everything in IndexedDB and syncs in the background.

What Happens Offline

Sync

updatedAt is server-owned and drives delta sync. When a document’s updatedAt advances, the SDK treats its cached file blobs and smart report as stale and re-fetches them on the next downloadFile / getSmartReport — so edits made on other devices show up automatically.

Clear cache on logout

Reactive UI Updates

Subscribe to DB change events — the UI auto-updates on any write (upload, edit, delete, sync).
Events:

Pending sync count

Logging

The SDK emits a structured event for every CRUD operation (create / read / update / delete) on records and cases, routed through your onLog callback. Events are analytics-ready — forward them straight to Mixpanel, Sentry, Datadog, etc. If onLog is not configured, logging is a no-op.
SDKLog shape:
Event names follow the pattern {Records|Cases}_TS_SDK_{CREATE|READ|UPDATE|DELETE}. Each operation typically fires two events — one with platform: 'database' (local write) and one with platform: 'network' (server sync) — each with its own success / failure status.

Electron Setup

IndexedDB works natively in the Electron renderer process. Only the transport differs:
bridge routes Eka API calls through window.networkApi (IPC → main → net.fetch). S3 uploads always use fetch() directly — the IPC bridge cannot carry binary data.