Is your feature request related to a problem? Please describe.
Would be great to edit deck cards and the like collaboratively
Describe the solution you'd like
Allow creating a collaborative editor without a file id.
Describe alternatives you've considered
Different design decisions in terms of api and authorization - but no fundamentally different approach.
Identifier
Currently collaborative editing sessions are identified by the file id of the document. This won't work if there's no file behind the session.
Authorization
We need to make sure:
- Only users who were granted access can join the session.
- Only visitors with access to the right tokens can join the session.
- Read only access is respected (i.e. does not grant editing abilities).
- The architecture is flexible and works with different apps.
Saving the content
Currently text writes the content to a file. This may be different for other contexts
Contexts
- Introduce a
context_type and context_id in documents.
- Sessions can be created for a
Context.
IContext is implemented by FileContext and in deck by DeckCardContext.
IContext takes care of authorization and saving the content.
Is your feature request related to a problem? Please describe.
Would be great to edit deck cards and the like collaboratively
Describe the solution you'd like
Allow creating a collaborative editor without a file id.
Describe alternatives you've considered
Different design decisions in terms of api and authorization - but no fundamentally different approach.
Identifier
Currently collaborative editing sessions are identified by the file id of the document. This won't work if there's no file behind the session.
Authorization
We need to make sure:
Saving the content
Currently text writes the content to a file. This may be different for other contexts
Contexts
context_typeandcontext_idin documents.Context.IContextis implemented byFileContextand in deck byDeckCardContext.IContexttakes care of authorization and saving the content.