ObjectStackObjectStack

Offline

Offline protocol schemas

Offline Strategy Schema

Determines how data is fetched when connectivity is limited.

Source: packages/spec/src/ui/offline.zod.ts

TypeScript Usage

import { ConflictResolution, EvictionPolicy, OfflineCacheConfig, OfflineConfig, OfflineStrategy, PersistStorage, SyncConfig } from '@objectstack/spec/ui';
import type { ConflictResolution, EvictionPolicy, OfflineCacheConfig, OfflineConfig, OfflineStrategy, PersistStorage, SyncConfig } from '@objectstack/spec/ui';

// Validate data
const result = ConflictResolution.parse(data);

ConflictResolution

How to resolve conflicts when syncing offline changes

Allowed Values

  • client_wins
  • server_wins
  • manual
  • last_write_wins

EvictionPolicy

Cache eviction policy

Allowed Values

  • lru
  • lfu
  • fifo

OfflineCacheConfig

Client-side offline cache configuration

Properties

PropertyTypeRequiredDescription
maxSizenumberoptionalMaximum cache size in bytes
ttlnumberoptionalTime-to-live for cached entries in milliseconds
persistStorageEnum<'indexeddb' | 'localstorage' | 'sqlite'>Storage backend
evictionPolicyEnum<'lru' | 'lfu' | 'fifo'>Cache eviction policy when full

OfflineConfig

Offline support configuration

Properties

PropertyTypeRequiredDescription
enabledbooleanEnable offline support
strategyEnum<'cache_first' | 'network_first' | 'stale_while_revalidate' | 'network_only' | 'cache_only'>Default offline fetch strategy
cacheObjectoptionalCache settings for offline data
syncObjectoptionalSync settings for offline mutations
offlineIndicatorbooleanShow a visual indicator when offline
offlineMessagestring | ObjectoptionalCustomizable offline status message shown to users
queueMaxSizenumberoptionalMaximum number of queued offline mutations

OfflineStrategy

Data fetching strategy for offline/online transitions

Allowed Values

  • cache_first
  • network_first
  • stale_while_revalidate
  • network_only
  • cache_only

PersistStorage

Client-side storage backend for offline cache

Allowed Values

  • indexeddb
  • localstorage
  • sqlite

SyncConfig

Offline-to-online synchronization configuration

Properties

PropertyTypeRequiredDescription
strategyEnum<'cache_first' | 'network_first' | 'stale_while_revalidate' | 'network_only' | 'cache_only'>Sync fetch strategy
conflictResolutionEnum<'client_wins' | 'server_wins' | 'manual' | 'last_write_wins'>Conflict resolution policy
retryIntervalnumberoptionalRetry interval in milliseconds between sync attempts
maxRetriesnumberoptionalMaximum number of sync retry attempts
batchSizenumberoptionalNumber of mutations to sync per batch

On this page