mirror of
https://github.com/suitenumerique/docs.git
synced 2026-09-29 13:05:16 +02:00
🔥(backend) remove CollaborationService and can-edit endpoint
The CollaborationService was doing nothing since we started the migration to yhub, all the code using it is now removed. Also the `can-edit` endpoint and all the safeguard mechanism relying on the presence of other users connected to the websocket will not be used anymore, it will be possible to replace all of this with yhub, so all this code is also removed.
This commit is contained in:
@@ -1,36 +1,13 @@
|
||||
# Collaboration
|
||||
|
||||
By default with Docs, collaboration is enabled. To allow the collaboration between users, a connection to a websocket server is made (the y-provider service), you only have to configure the Django backend URL in your y-provider service:
|
||||
By default with Docs, collaboration is enabled. To allow the collaboration between users, a connection to a websocket server is made (the y-provider service), you only have to configure the Django backend URL and the allowed origin in your y-provider service:
|
||||
|
||||
```yaml
|
||||
COLLABORATION_BACKEND_BASE_URL: https://{yourdocsdomain.tld}
|
||||
COLLABORATION_SERVER_ORIGIN: https://{yourdocsdomain.tld}
|
||||
```
|
||||
|
||||
An advanced configuration can be used in some cases when your users are not allowed to use websocket on their network.
|
||||
|
||||
## What happens when connection to the websocket is not allowed?
|
||||
|
||||
When multiple users access a Docs and the connection to the websocket is not allowed, then they will be in a situation where they can lose data.
|
||||
They will lose data because they will erase each other modifications. You can also have a scenario with a mix of users connected to the websocket and some other not.
|
||||
|
||||
## Safeguard configuration
|
||||
|
||||
We have imagined a safeguard scenario, not enabled by default.
|
||||
The idea is to give the priority to users connected to the websocket. While there is at least one user connected to the websocket, all other users not connected to the websocket can access the Docs in **read-only** mode.
|
||||
|
||||
To enable this safeguard, the Django application will have to fetch the `y-provider` service to retrieve some information in it.
|
||||
|
||||
In the Django configuration, you have to set these environment variables:
|
||||
|
||||
```yaml
|
||||
COLLABORATION_WS_NOT_CONNECTED_READ_ONLY: True
|
||||
COLLABORATION_API_URL: https://{yourdocsdomain.tld}/collaboration/api/
|
||||
COLLABORATION_SERVER_SECRET: A-shared-secret-with-y-provider-service
|
||||
```
|
||||
|
||||
In the y-provider service, you have to set these environment variables:
|
||||
|
||||
```yaml
|
||||
COLLABORATION_SERVER_SECRET: A-shared-secret-with-y-provider-service
|
||||
COLLABORATION_SERVER_ORIGIN: https://{yourdocsdomain.tld}
|
||||
```
|
||||
|
||||
@@ -38,10 +38,7 @@ These are the environment variables you can set for the `impress-backend` contai
|
||||
| CACHES_SESSION_IGNORE_EXCEPTIONS | Ignoring exception, behave like a missed cache. Highly recommended to set it as False when used with redis (See https://github.com/jazzband/django-redis#memcached-exceptions-behavior) | False |
|
||||
| CACHES_SESSION_SOCKET_CONNECT_TIMEOUT | Timeout for the connection to be established for the session cache (In seconds) | 0.5 |
|
||||
| CACHES_SESSION_SOCKET_TIMEOUT | Timeout for read and write operations after the connection is established for the session cache (In seconds) | 1 |
|
||||
| COLLABORATION_API_URL | Collaboration api host | |
|
||||
| COLLABORATION_SERVER_SECRET | Collaboration api secret | |
|
||||
| COLLABORATION_WS_INACTIVITY_TIMEOUT | Timeout (in seconds) after which the user is considered inactive when there is no activity. The WebSocket is closed after this inactivity period. `None` means disabled. | None |
|
||||
| COLLABORATION_WS_NOT_CONNECTED_READ_ONLY | Users not connected to the collaboration server cannot edit | false |
|
||||
| COLLABORATION_WS_URL | Collaboration websocket url | |
|
||||
| CONVERSION_API_CONTENT_FIELD | Conversion api content field | content |
|
||||
| CONVERSION_API_ENDPOINT | Conversion API endpoint | convert |
|
||||
@@ -110,7 +107,6 @@ These are the environment variables you can set for the `impress-backend` contai
|
||||
| MALWARE_DETECTION_PARAMETERS | A dict containing all the parameters to initiate the malware detection backend | {"callback_path": "core.malware_detection.malware_detection_callback",} |
|
||||
| MEDIA_BASE_URL | | |
|
||||
| MEDIA_AUTH_ORIGINAL_URL_HEADER | Parameter containing the original request URL, as seen at the media auth endpoint, in CGI/WSGI form (HTTP_HEADER_NAME_ALL_CAPS_WITH_UNDERSCORES) | HTTP_X_ORIGINAL_URL |
|
||||
| NO_WEBSOCKET_CACHE_TIMEOUT | Cache used to store current editor session key when only users without websocket are editing a document | 120 |
|
||||
| OIDC_ALLOW_DUPLICATE_EMAILS | Allow duplicate emails | false |
|
||||
| OIDC_AUTH_REQUEST_EXTRA_PARAMS | OIDC extra auth parameters | {} |
|
||||
| OIDC_CREATE_USER | Create used on OIDC | false |
|
||||
|
||||
@@ -15,7 +15,6 @@ image:
|
||||
backend:
|
||||
replicas: 1
|
||||
envVars:
|
||||
COLLABORATION_SERVER_SECRET: my-secret
|
||||
DJANGO_CSRF_TRUSTED_ORIGINS: https://docs.127.0.0.1.nip.io
|
||||
DJANGO_CONFIGURATION: Feature
|
||||
DJANGO_ALLOWED_HOSTS: docs.127.0.0.1.nip.io
|
||||
|
||||
Reference in New Issue
Block a user