Skip to content

LocalStorage Schema

Marco Supino edited this page Aug 4, 2026 · 18 revisions

🇮🇱 עברית

Local storage schema

All application-owned browser keys use the navaid.* prefix. This page is a human-readable map; the complete enforceable registry is GDRIVE_SETTINGS_KEYS plus NOT_A_SYNCED_SETTING in tests/settings-sync-allowlist.spec.js, which scans current app source.

Main families

  • navaid.route, navaid.routes, navaid.view, navaid.layer, navaid.lang — working route/library and map state.
  • navaid.show*, opacity/size/color keys, navaid.navDataPrefix, navaid.imsPwx, navaid.sigwxOv, navaid.wxTime, and wind-field keys — active layer/display choices.
  • navaid.fpl.<field>, navaid.aircraft, navaid.profileVS — flight-plan and aircraft profile values. aisEmail is device-local because it controls the filing destination; the user's replyTo may sync.
  • navaid.ai.* — provider/model/key/base URL. Keys and endpoints are device-local and never included in Drive settings sync.
  • navaid.*Pos, navaid.sec.*, collapse/hint/search state — device-local UI geometry and one-time presentation state. Language-specific widgets use families such as navaid.clockPos.<lang>.
  • navaid.settingsSyncedAt, navaid.settingsSnapshot, navaid.settingsSnapKeys, navaid.syncSettings — settings-sync bookkeeping.
  • navaid.selected, navaid.fpOpen, navaid.openChartModal — session-only restoration keys.

Settings-sync protocol

Drive settings use a separate app-data document from saved routes. null is a deletion tombstone; an absent key means no information. Timestamps are monotonic, snapshots use canonical allowlist order, first sync unions non-conflicting values, conflicts require a user decision, and applying a remote snapshot is all-or-nothing. API keys, destination endpoints, working route, route library, caches, and device geometry are excluded.

When adding a key, update code, the allowlist or device-local reason, and this page in the same PR.

Clone this wiki locally