Repository navigation
✨(backend) add a setting to send json on the http fallback - #2829
Merged
Merged
Conversation
Contributor
|
🚀 Preview will be available at https://2829-docs.ppr-docs.beta.numerique.gouv.fr/ You can use the existing account with these credentials:
You can also create a new account if you want to. Once this Pull Request is merged, the preview will be destroyed. |
lunika
reviewed
Oct 12, 2026
Contributor
|
Size Change: +2.5 kB (+0.06%) Total Size: 4.06 MB 📦 View Changed
|
AntoLC
force-pushed
the
collab/fallbak-json
branch
6 times, most recently
from
October 13, 2026 12:39
06e1c2c to
1a4e431
Compare
lunika
approved these changes
Oct 14, 2026
| | CACHES_SESSION_SOCKET_TIMEOUT | Timeout for read and write operations after the connection is established for the session cache (In seconds) | 1 | | ||
| | COLLABORATION_HTTP_FALLBACK_AWARENESS_ENABLED | Whether an editor on the http fallback (see `COLLABORATION_HTTP_FALLBACK_SYNC_INTERVAL`) also publishes and receives presence (remote cursors). Set it to `False` to drop the periodic presence update and the 15000 cap on the polling interval: such an editor sends a request only when it has changes. Readers never carry presence. | True | | ||
| | COLLABORATION_HTTP_FALLBACK_SYNC_INTERVAL | How often, in milliseconds, a browser whose websocket cannot open (a proxy refusing the upgrade, for example) polls the collaboration server over http instead. Each poll is authorized against the backend, so raising it lowers the load those browsers put on both. It must be at least 5000, the backend refuses to start below. An editor also publishes its presence on this transport, which caps its own interval at 15000. | 10000 | | ||
| | COLLABORATION_HTTP_FALLBACK_JSON_ENABLED | Whether a browser whose websocket cannot open (a proxy refusing the upgrade, for example) talks json instead of the binary `application/x-lib0any` format to the collaboration server over http, for the networks whose firewall refuses that content type. The binary parts travel in base64, about a third larger. | False | |
Member
There was a problem hiding this comment.
should be before COLLABORATION_HTTP_FALLBACK_SYNC_INTERVAL to keep the correct order
Some firewalls refuse the application/x-lib0any content type the http fallback gets from the collaboration server, and the octet-stream it sends, so the browsers behind them cannot sync when their websocket is blocked too. Add COLLABORATION_HTTP_FALLBACK_JSON_ENABLED (default False), served by the config endpoint. On, the fallback sends and receives application/json with the binary parts in base64, which the collaboration server already supports. The cost is a document about a third larger on each transfer.
The dev-backend chart 0.0.10 started the media storage with a hardcoded `minio server` shell command and pulled quay.io/minio/mc to create the bucket. Since the switch to pgsty/silo, the first one failed with "minio: command not found" and the second one with a 401 from quay.io, so the feature deployments (ArgoCD) did not come up. Chart 0.0.15 defaults to pgsty/silo and pgsty/mc, and starts the container with `args` instead of a shell command, so the name of the executable no longer matters.
AntoLC
force-pushed
the
collab/fallbak-json
branch
from
October 15, 2026 09:23
1a4e431 to
b5c1565
Compare
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Some firewalls refuse the
application/x-lib0anycontent type the collaboration server answers with on the http fallback (and theapplication/octet-streamthe fallback sends), so the browsers behind them cannot sync when their websocket is blocked too.Proposal
COLLABORATION_HTTP_FALLBACK_JSON_ENABLED(defaultFalse): the fallback sends and receivesapplication/json, with the binary parts in base64, which the collaboration server already supportsfetchgiven to the http provider, so the only content type on the wire isapplication/json; the document is about a third larger on each transfer