v144 · storage · demo

Schema Inspector

Enumerate every IDB database on this origin, walk its object stores, and read out keyPaths, autoIncrement flags, index definitions, and live record counts — all via the standard indexedDB API, unchanged by the SQLite backend switch.

indexedDB: checking… databases(): checking…
ready.

click Refresh to enumerate databases on this origin.

Chrome 144 — SQLite in-memory backend

Starting in Chrome 144, incognito windows and memory-constrained contexts (e.g. service workers under pressure) run IndexedDB on an in-memory SQLite backend instead of LevelDB. The web-facing API is identical — this inspector works the same way regardless of which storage engine is underneath. You are looking at the same IDBDatabase, IDBObjectStore, and IDBIndex objects either way.

the API surface

// 1. List all databases on this origin (Chrome 71+, not all browsers)
const dbs = await indexedDB.databases();
// → [{ name: "my-app", version: 3 }, ...]

// 2. Open one (read-only inspection — no version bump)
const req = indexedDB.open(name, version);
req.onsuccess = e => {
  const db = e.target.result;
  for (const storeName of db.objectStoreNames) {
    const tx = db.transaction(storeName, 'readonly');
    const store = tx.objectStore(storeName);
    console.log(store.keyPath, store.autoIncrement);
    for (const idxName of store.indexNames) {
      const idx = store.index(idxName);
      console.log(idx.name, idx.keyPath, idx.unique, idx.multiEntry);
    }
    store.count().onsuccess = e => console.log('records:', e.target.result);
  }
};

see also