Commit graph

100 commits

Author SHA1 Message Date
Jakob Ackermann
1e6b13f9d5 [history-ot] rename remaining history-v1-ot references to history-ot (#25428)
* [history-ot] rename remaining history-v1-ot references to history-ot

* [web] rename History-v1 OT -> History OT in admin panel

* [web] rename OT Migration -> History OT Migration in admin panel

GitOrigin-RevId: 103ce816d5320d6379d51009cdc08b8a71aa48e6
2025-05-20 08:06:46 +00:00
Jakob Ackermann
0e13796882 [real-time] bail out early upon hitting a redis error (#25614)
GitOrigin-RevId: 2563094d1ec8017450fdfdb2b0e77d74bbc825d1
2025-05-19 08:05:21 +00:00
Jakob Ackermann
e8b5ee2ff9 [history-ot] initial implementation of using doc-level history-ot (#25054)
* [history-v1-ot] initial implementation of using doc-level history-v1-ot

* [web] fix advancing of the otMigrationStage

Use 'nextStage' for the user provided, desired stage when advancing.

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [document-updater] document size check in editor-core

* [history-ot] rename history-v1-ot to history-ot and add types

* [history-ot] apply review feedback

- remove extra !!
- merge variable assignment when processing diff-match-match output
- add helper function for getting docstore lines view of StringFileData

Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>

* Revert "[document-updater] add safe rollback point for history-ot (#25283)"

This reverts commit d7230dd14a379a27d2c6ab03a006463a18979d06

Signed-off-by: Jakob Ackermann <jakob.ackermann@overleaf.com>

---------

Signed-off-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
GitOrigin-RevId: 89c497782adb0427635d50d02263d6f535b12481
2025-05-08 08:05:44 +00:00
Jakob Ackermann
3f10b29869 [real-time] backwards compatibility fix for redis 6.2 (#24734)
GitOrigin-RevId: ffc51a8280e0d0708e7dcb2638cabed2b7adfbf5
2025-04-09 08:05:37 +00:00
Jakob Ackermann
ca111771c2 [real-time] rename metric label to align with common name (#24732)
GitOrigin-RevId: fd161f2345f0c30aa82395dbca673025698f13fe
2025-04-09 08:05:33 +00:00
Jakob Ackermann
dadf6f0ed4 [real-time] record metrics on number of connected clients per project (#24727)
Note: "connected" here means across all real-time pods.

- editing_session_mode, counter
  - mode=connect - a client connected
  - mode=disconnect - a client disconnect
  - mode=update - continuous editing
  - status=empty - all clients disconnected
  - status=single - a single client is connected
  - status=multi - multiple clients are connected

- project_not_empty_since histogram with buckets [0,1h,2h,1d,2d,1w,30d]
  - status=empty/single/multi as described above

GitOrigin-RevId: 1cc42e72bbb5aae754399bdbc3f8771642f35c22
2025-04-09 08:05:29 +00:00
Brian Gough
a68e96400b Merge pull request #24670 from overleaf/bg-remove-logging-of-update-errors
remove update parameter in applyOtUpdate error handling

GitOrigin-RevId: 46fa9d669327850f956154b20676317a7b13eb78
2025-04-08 08:06:46 +00:00
Jakob Ackermann
8d569815e6 [real-time] only log userId from session (#24281)
While we are at it, log projectId and transport.

GitOrigin-RevId: ac10220247947e0050f1374c81091c50c8cc0e85
2025-03-13 09:06:44 +00:00
Jakob Ackermann
6916e22b09 [real-time] log transport and clientId in both directions of serverPing (#24084)
GitOrigin-RevId: dabd8db6949498ef1a6252864cef94cd4329e3c0
2025-03-07 09:04:40 +00:00
Jakob Ackermann
8138c76c1d [web] restrict external heartbeat/server ping to websocket transport (#23830)
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
GitOrigin-RevId: c03a78e2c05cd380b705bd14652060980682cb39
2025-02-25 09:05:02 +00:00
Brian Gough
01ed0c10a0 Merge pull request #23317 from overleaf/bg-improve-real-time-ping-logs
Add connection details to real-time ping logs

GitOrigin-RevId: f993d71deb1a512295af6c7146a19b730742e33f
2025-02-04 09:04:48 +00:00
Brian Gough
a6bfbad5bd Merge pull request #23246 from overleaf/bg-real-time-server-ping
add real-time ping-pong messages for debugging lost connections

GitOrigin-RevId: 28feb8c8c7c660a5a23ca394acd0f69ac828c5a3
2025-02-03 09:04:39 +00:00
Antoine Clausse
d4a10c7b41 [web] Socket diagnostics updates (#22951)
* Increase threshold for "latency in red color"

* Fix online status in Chrome and Safari

* Add "Auto ping" checkbox

* Put `/socket-diagnostics` behind `AuthenticationController.requireLogin`

* Set logs to `logger.info` when debugging

* Add `publicId` and `clientId` to logs

* Fix disconnect logs when debugging

* Refresh UI every second. Display red "Ping Count" if unanswered for 3s

* Update services/web/frontend/js/features/socket-diagnostics/components/socket-diagnostics.tsx

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>

* Update services/web/frontend/js/features/socket-diagnostics/components/socket-diagnostics.tsx

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>

* `npm run format:fix`

---------

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 9faf2abdac51fa4b87c67d8fe89c4125d01d826f
2025-01-21 09:05:01 +00:00
Antoine Clausse
7bef003c56 [real-time, web] Create a UI to test socket connection (#22907)
* Create a UI to test socket connection

* Add Clock Delta to the measurements

* Add colors to DiagnosticItem

* Update icon

* Add more info to the diagnostics screen

* Add logs in backend on debug messages, disconnections and connection

* Add last received ping info

* Reorder DiagnosticItems

* Remove "warning" text color (too light)

* Replace Phosphor icons by Material Icons

GitOrigin-RevId: 6a015b4928cd19849ff287cf254f671840ed44af
2025-01-17 09:05:49 +00:00
Domagoj Kriskovic
5a447aa349 [real-time] ensure tc is enabled when reviewer role is used (#22245)
* Support for adding reviewer role

* show reviewer in track changes user list

* added "review" in assertClientCanViewProject

* test if reviewer can read project

* added collaboratorsGetter tests

* eit toggle-track-changes when track changes changes

* [real-time] ensure tc is enabled when reviewer role is used

* use assertClientCanReviewProjectAndDoc, refactor _assertClientCanApplyUpdate

GitOrigin-RevId: 158bd1ff0d4b4977da950134f8ad8b3740855290
2024-12-10 09:05:18 +00:00
Domagoj Kriskovic
13e3a941f4 [real-time] make sure reviewer has permissions to read a project (#22317)
* added "review" in assertClientCanViewProject

* test if reviewer can read project

GitOrigin-RevId: 92a30f8b456bec9f0fc81a1361e454eecff838bd
2024-12-10 09:05:14 +00:00
Domagoj Kriskovic
511fe60a9c Revert "Support for adding reviewer role (#22137)" (#22293)
This reverts commit 54064a7f961fe06f188ab449cd469cdaaf01b20a.

GitOrigin-RevId: 1dabc635756aff465d2fe9aa0d18121b081df3b0
2024-12-04 09:05:12 +00:00
Domagoj Kriskovic
f676eca2b8 Support for adding reviewer role (#22137)
* Support for adding reviewer role

* show reviewer in track changes user list

* added "review" in assertClientCanViewProject

* test if reviewer can read project

* added collaboratorsGetter tests

* eit toggle-track-changes when track changes changes

* Support for changing privilege to reviewers for invited users (#22159)

* Add reviewer in change privilege level handler

* added reviewer translation

* added acceptance tests

* fix tests

* Set track changes state permissions for reviewer role (#22167)

* Add reviewer in change privilege level handler

* added reviewer translation

* added acceptance tests

* fix tests

* Set track changes state permissions for reviewer role

* added authorization helper tests

* added ensureUserCanReviewProjectContent middleware

* allow changing track changes only with write permissions

* removed canUserReviewProjectContent

* List projects where user is added as a reviewer (#22249)

* List projects where user is added as reviewer

* list projects in /user/projects

* fix tests

GitOrigin-RevId: 54064a7f961fe06f188ab449cd469cdaaf01b20a
2024-12-04 09:05:00 +00:00
Antoine Clausse
7f48c67512 Add prefer-node-protocol ESLint rule (#21532)
* Add `unicorn/prefer-node-protocol`

* Fix `unicorn/prefer-node-protocol` ESLint errors

* Run `npm run format:fix`

* Add sandboxed-module sourceTransformers in mocha setups

Fix `no such file or directory, open 'node:fs'` in `sandboxed-module`

* Remove `node:` in the SandboxedModule requires

* Fix new linting errors with `node:`

GitOrigin-RevId: 68f6e31e2191fcff4cb8058dd0a6914c14f59926
2024-11-11 09:04:51 +00:00
Jakob Ackermann
0f0d562786 Merge pull request #19455 from overleaf/jpa-metrics
[misc] add metrics for document processing/broadcasting

GitOrigin-RevId: d81de0dfb7a91863547631580f3c85f569718130
2024-07-19 08:04:34 +00:00
Brian Gough
49dc94192a Merge pull request #18848 from overleaf/bg-cookie-session-metrics-for-real-time
add cookie session metrics for real-time

GitOrigin-RevId: 6b482dafc19fca46a375ea00a9b2297e20d915ce
2024-06-13 08:04:24 +00:00
roo hutton
d53a3e315e Merge pull request #17879 from overleaf/rh-refresh-collab
Refresh websocket on collaborator change

GitOrigin-RevId: b05444d592f5952a08bad51c9f529ed9183d042f
2024-04-17 08:05:18 +00:00
Alf Eaton
6cc2db3cdd Merge pull request #17525 from overleaf/ae-upgrade-prettier
Upgrade Prettier to v3

GitOrigin-RevId: 6f1338f196408f3edb4892d5220ad3665ff1a5bc
2024-03-26 09:04:05 +00:00
Jakob Ackermann
385d3f9c1b Merge pull request #16980 from overleaf/jpa-join-project-remove-sl-2
[misc] joinProject: pass userId and anonymous access token in body 2/2

GitOrigin-RevId: b1a11941a6d9c7cc779769d1e97d3a0f03bed610
2024-02-13 09:03:39 +00:00
Jakob Ackermann
974069bf1c Merge pull request #16979 from overleaf/jpa-join-project-remove-sl-1
[misc] joinProject: pass userId and anonymous access token in body 1/2

GitOrigin-RevId: 5d7832246c7262c004c2cd465d62488384b35ee3
2024-02-12 09:03:16 +00:00
Jakob Ackermann
63520c7076 Merge pull request #16859 from overleaf/jpa-sharelatex-cleanup
[misc] ShareLaTeX cleanup - high impact

GitOrigin-RevId: 6dcce9b0f15e30f7afcf6d69c3df36a369f38120
2024-02-09 09:04:11 +00:00
Tim Down
473e74ecf1 Merge pull request #16749 from overleaf/td-upgrade-joi-celebrate
Upgrade Joi and Celebrate to latest

GitOrigin-RevId: 287130f6e476c04f9eb4efdf202729452b081c40
2024-02-05 09:04:16 +00:00
Miguel Serrano
51de84664d Merge pull request #16346 from overleaf/msm-remove-underscore
Remove `underscore` in monorepo

GitOrigin-RevId: fd3b92e3e8a940a7a086669232102320c34a89e2
2024-01-09 09:03:58 +00:00
Jakob Ackermann
78c1687f3b Merge pull request #16003 from overleaf/jpa-real-time-remove-join-project
[real-time] remove legacy joinProject rpc and require auto-join-project

GitOrigin-RevId: 2b610c83a34e516e0da0fa8a17858ec5c98c5bdd
2023-11-30 09:03:58 +00:00
Tyna William
c63899834a Tw token users missing events (#13919)
* added missing operations

GitOrigin-RevId: 1492369b7fe290a7953ac8a8f002039fb6a75f10
2023-07-25 08:04:18 +00:00
Miguel Serrano
780e5fdca5 Merge pull request #13522 from overleaf/msm-real-time-remove-token-change
[real-time] Delete 'project:tokens:changed' references

GitOrigin-RevId: b6e5c859ea79ffb41204c53e98726e19f91528d1
2023-07-17 11:09:03 +00:00
Jakob Ackermann
7d836493a0 Merge pull request #13491 from overleaf/jpa-real-time-query-access
[real-time] gracefully access query parameters

GitOrigin-RevId: b29237a6fb20d51bbe5db7ebb429d460b1da29a6
2023-07-17 10:35:10 +00:00
Jakob Ackermann
55c5330108 Merge pull request #13463 from overleaf/jpa-bootstrap-ws
[misc] automatically call joinProject as part of connecting to real-time

GitOrigin-RevId: 2466168e9cebb62dec07481273050efcd0478114
2023-07-17 10:34:25 +00:00
Jakob Ackermann
6d4d643fd9 Merge pull request #13325 from overleaf/jpa-real-time-check
[real-time] add check for project admin

GitOrigin-RevId: 1677b78cf7f263fc98ca539e26e21553d0ea55bd
2023-07-17 10:23:24 +00:00
June Kelly
d68ed0efdf Merge pull request #13140 from overleaf/jk-real-time-disconnect-link-sharing
[real-time] Disconnect relevant users when link-sharing is turned off

GitOrigin-RevId: cf44a30a235717b658a759e8a74ae4d0e5abae47
2023-05-31 08:05:07 +00:00
June Kelly
5d0ce8c4cd Merge pull request #13052 from overleaf/jk-realtime-disconnect-users
[real-time] Disconnect client when user is removed from project

GitOrigin-RevId: e3d31b9192c639b2988e488e34e19050e7caeb4a
2023-05-17 12:04:48 +00:00
Eric Mc Sween
d9e0215aee Merge pull request #12211 from overleaf/em-camel-case-real-time
Camel case variables in real-time

GitOrigin-RevId: 0a35d2e39d54c258bed017ea4dcdbf9a19a2a9b1
2023-03-21 09:05:37 +00:00
Jakob Ackermann
f0bd6dda23 Merge pull request #7986 from overleaf/jpa-eslint-8
[misc] upgrade eslint packages to the latest version everywhere

GitOrigin-RevId: f1480d4a171acef82fb26c4aa54be3a6088b0ab3
2022-05-17 08:05:59 +00:00
June Kelly
e01fbb243b Merge pull request #7081 from overleaf/jk-restricted-user-accept-changes
[real-time] Pass 'accept-changes' messages to restricted clients

GitOrigin-RevId: 66766f08349501d5a63ee45c4d82e1fe72df852f
2022-03-24 14:58:50 +00:00
Brian Gough
f73d5abcf0 Merge pull request #6242 from overleaf/bg-remove-basic-auth-connect
[real-time] remove basic auth connect and default credentials

GitOrigin-RevId: 8dfa9f0859c7d3538f80587a99cffd9c4aea48d1
2022-01-07 09:03:04 +00:00
Eric Mc Sween
f7275a6c4b Merge pull request #6079 from overleaf/em-upgrade-logger
Upgrade logger and metrics in all services

GitOrigin-RevId: 2baf63eeeab77fb3559cf763ddacfbf4b745cd0b
2021-12-15 09:04:25 +00:00
Brian Gough
534cb1c5ab Merge pull request #5661 from overleaf/bg-fix-status-on-restart
[real-time] skip 60s closing delay on start up

GitOrigin-RevId: 5fbb3b4f2940505c2ab6e5cfe6a757ee2501bf2d
2021-11-09 09:03:34 +00:00
Jakob Ackermann
7f9fd00bda Merge pull request #5367 from overleaf/jpa-node-handle-callback-err
[misc] fix eslint violations for node/handle-callback-err

GitOrigin-RevId: 83a4900e8861010df1917bff49382bd9c93375bd
2021-10-28 08:03:26 +00:00
Jakob Ackermann
a6f05109a3 Merge pull request #5352 from overleaf/jpa-no-var
[misc] fix eslint violations for `no-var`

GitOrigin-RevId: c52e82f3a8a993b8662cc5aa56e7b95ca3c55832
2021-10-27 08:03:00 +00:00
Brian Gough
6cece12369 Merge pull request #5109 from overleaf/bg-fix-handshake-exception
fix handshake exception

GitOrigin-RevId: 917518ccac3f5fddf4029f1b1ec3e3806dde9a29
2021-09-16 08:03:08 +00:00
Brian Gough
618cf99548 Merge pull request #4950 from overleaf/bg-realtime-log-relevelling
realtime log re-levelling

GitOrigin-RevId: 81d86ba648e7fc1436b638b67371b35fd831a62f
2021-09-15 08:03:25 +00:00
June Kelly
7b1044b8a8 Merge pull request #4870 from overleaf/jk-bg-validate-ids
RealTime: Validate IDs
GitOrigin-RevId: 884600125d362c5632faa75dc22d957cdddc101b
2021-09-02 08:03:14 +00:00
Jakob Ackermann
b8fcb265b2 [misc] EventLogger: drop explicit metrics.inc amount
The module has a hard-coded increment of 1, which is the only value the
 prometheus backend supports.
2021-07-13 12:40:46 +01:00
Jakob Ackermann
7e8e231059 [misc] run format_fix and lint:fix 2021-07-13 12:04:45 +01:00
Jakob Ackermann
a26ae73597 [misc] switch from settings-sharelatex to @overleaf/settings 2021-07-12 17:47:18 +01:00