Notebooks: shared notebooks per QuestDB instance, stored server-side with permission-based access
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 29
- Forks
- 39
- Avg merge
- 4d 11h
- Merged PRs (30d)
- 4
Description
Notebooks today are 100% client-side: persisted in the browser's IndexedDB (Dexie web-console DB — buffers.notebookViewState + the notebook_results table, src/store/db.ts, src/scenes/Editor/Notebook/useNotebookPersistence.ts). Nothing is stored server-side; the only sharing is file export/import (src/scenes/Editor/Monaco/exportTabs.ts / importTabs.ts). There is no notion of ownership, sharing, or read-only mode (only a per-query requireAllDQL check).
Request: "Shared notebooks" per instance — readable by all, or writable by multiple users — using QuestDB system tables + permissions. Real-time collaboration is explicitly out of scope.
Ask: persist shared notebooks in a server-side QuestDB table, gate read/write via QuestDB's permission/ACL system, and add UI to list/open shared vs. local notebooks. Reuse the existing NotebookViewState JSON serialization as the storage payload.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/store/db.ts and src/scenes/Editor/Notebook/useNotebookPersistence.ts to understand the existing NotebookViewState persistence, then review src/scenes/Editor/Monaco/exportTabs.ts and importTabs.ts for current sharing behavior. Check the existing requireAllDQL permission check and map the UI changes needed to list and open local versus shared notebooks. Done means shared notebooks are stored server-side, access follows permissions, and local notebooks continue to work without real-time collaboration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, sql, typescript
- Domain
- authorization, database, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100