Allow Multiple ContentsManager
- Dominant language
- Jupyter Notebook
- Stars
- 13.3k
- Forks
- 5.8k
- Avg merge
- 6d 11h
- Merged PRs (30d)
- 7
Description
Can we make it possible to allow for multiple content managers in notebook server?
In a complex environment there may be a more than one type of notebook source so it is better to compose them from the right managers. For example, some notebooks may be from disk, others from a database, while others that purely are read only and exist in memory. Which content manager you call should be driven by the path (`/file/full/path/to/file`, `/db/table/entry`).
I was able to write something that works as a POC for this by taking a ContextManager and then dispatching all calls to a list of internally managed ContextMangers. It simply goes in order of those managers and calls an additional function on each, manages_path(path), which returns true if it wants to manage this path. It then passes on the call to this manager and returns its output. This is crude and would be better if there was a fully supported way to make this happen as I imagine there will likely be similar issues with things like the FileCheckpoints etc.
Would this be something this project would be open to taking up?
Contributor guide
Research direction
Start by reviewing the notebook server's ContentsManager entry point and the proposed proof of concept that dispatches requests by path. Determine the supported composition behavior for disk, database, and read-only in-memory sources, including how related FileCheckpoints would be handled; done means the design and affected manager interfaces are clearly defined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- jupyter-notebook
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100