Hi everyone, I am trying to implement a functionality in Zeppelin, where a notebook copy can be kept with each websocket associated with that notebook. This way the notebook would be opened in read-only mode and changes made by one connection would not be visible to the other connections over the same notebook. I would additionally disable the note.persist in this case.
I explored the code a little and found that NotebookServer is keeping a map of notebookIds to list of sockets. Further, it seems that any message to a specific notebook gets broadcasted to the complete list of sockets associated with that list. My initial idea was to just maintain a notebook copy for each websocket, but now this is looking a little complex, since it seems that for every job, I would also need to maintain the websocket which triggered it, resulting in changes across the codebase. Can someone help me out in how to approach this change in the cleanest and fastest way. Regards, Ashish PS: The motivation for making this change is mentioned in one of my earlier questions "Zeppelin multi-user dashboards" on the users list.