Kahuna, the IndexedDB-Manager
Kahuna is a browser extension for Firefox and Chromium based browsers to manage IndexedDB databases. It can be used to create databases and modify their structure, as well as to view, query, edit, import and export the data they contain.
Features
- Designed for debugging, testing, data migration, inspection and modification of IndexedDB databases.
- Opens as an overlay on top of the visited website, toggled by the extension icon or a keyboard shortcut.
- Displays lists of databases and tables (aka object stores) stored for an origin.
- Create new databases, as well as copy and delete existing databases. Create empty copies that preserve only the schema.
- Edit the database schema: add or remove tables and indexes on existing tables.
- Displays table data in a paginated, sortable grid with configurable, reorderable, and hideable columns. Select records for editing, deletion or export.
- Combinable filters per field, including equals, comparison, starts/ends-with, contains, empty, and regular expression matches.
- Includes a JavaScript console to modify databases, tables or data by code and via Dexie's API.
- Edit values of every IndexedDB type supported by browsers, including Arrays, Objects, Maps, Sets, Dates, RegExps, typed arrays, Blobs, Files, ImageData, Undefined, and 24 more.
- For editing values, switch between form-based editors and editable JavaScript source code for complex values. Type conversion is performed for compatible types when the value type is switched.
- Upload files to replace String, Blob, File, ArrayBuffer, DataView, ImageBitmap, ImageData values. Upload CSV or JSON files as data for Object, Set, Array and typed array values.
- Auto-formats columns as dates, URLs, or image previews where the data fits.
- Import and export complete databases in Dexie format.
- Import and export tables in Dexie, JSON and CSV format, as well as selected data records in JSON and CSV format.
- Configure display options, editor behavior, filtering, import and export globally, per database or per table.
- Indicates with a badge on it's toolbar icon the number of IndexedDB databases stored for the currently visited origin.
- Works with both Firefox and Chromium-based browsers while respecting the capabilities and restrictions of each browser.
Installation
Please download and install the extension from the Chrome Web Store for Chrome and Chromium based browsers such as Edge, Brave, and Opera, and from the Firefox Addons Page for Firefox.
Documentation
The documentation for the latest version is available at hummingme.github.io/kahuna-docs/.
Build and Install from Source
git clone https://github.com/hummingme/kahuna.git cd kahuna npm install npm run release firefox & npm run release chromium
Afterwards the packages firefox.zip and chromium.zip are located within the build/ directory. The subdirectories build/firefox/ and build/chromium/ contain the unpacked extensions.
To install Kahuna on Chrome, follow this instructions for unpacked extensions.
With Firefox, the packed extension firefox.zip can be installed in ESR-, Developer- and Nightly releases after toggling xpinstall.signatures.required: false in about:config. Installing the unpacked extension is also possible by visiting about:debugging#/runtime/this-firefox and using Load Temporary Addon, but this must be repeated after each restart.
Contributing
For bug reports and feature requests please open an issue in this repository.
The development does not take place on github.com, but in a private repository. Pull requests are welcome too, but they will not be integrated here. Instead, after review and if appropriate, transferred to the private repository. For more complex code contributions, please contact me in advance.
Acknowledgements
- Dexie wrapper library for the IndexedDB browser API
- lit-html, the templating engine of the lit web components library
- tabler svg icons
- and the greats tools of the JavaScript ecosystem: esbuild, eslint, prettier, and more
License
Kahuna, the IndexedDB-Manager is © Lutz Brückner dev@kahuna.rocks and licensed under Mozilla Public License Version 2.0, MPL-2.0.
