Documentation
Memory & privacy
How the extension stores and manages sync state locally in your browser.
For developers
The Vremya.io extension stores all sync-related data locally in your browser using IndexedDB and Chrome Storage API. No calendar data or credentials are sent to external servers—everything stays on your device.
IndexedDB storage
The extension uses IndexedDB (database OWAJiraSync) for structured data that requires fast queries and larger volumes:
- Calendar events — captured events with metadata, sync status, worklog IDs
- Recalc status queue — events pending status recalculation
- Jira issue cache — cached Jira issues for mapping
- Connection status — last check results for providers and writers
- Requests — sync requests (active and completed)
- Syncing events — events currently being synced
Chrome Storage (chrome.storage.local)
Used for settings, performance metrics, and smaller key-value data:
- Settings — sync channels, enabled providers, mapping rules, auth state
- Performance metrics — handler timings, memory usage history, page load stats
Memory cell in sync flow
Each sync channel has a central memory node: Sources (OWA, EWS, Google, etc.) → Memory → Targets (Jira, calendars). The memory cell holds events between import and export, enabling offline buffering and resume.
Memory monitoring
In popup and settings pages, the extension monitors JavaScript heap usage (performance.memory) and records metrics to chrome.storage. High usage (>80%) triggers warnings. Note: performance.memory is not available in the Service Worker context.