Commit graph

34 commits

Author SHA1 Message Date
Doug Lauder
75bd409ba0
Notifications phase 1 (#1851)
Backend support for subscribing/unsubscribing to blocks, typically cards and boards. Notifies subscribers when changes are made to cards they are subscribed to.
2021-12-10 10:46:37 -05:00
Miguel de la Cruz
a184206395
Change the unregistered connection logline to debug level (#1494) 2021-10-08 11:59:21 +02:00
Doug Lauder
db8d91f889
use milliseconds for all timestamps (server) (#1447) 2021-10-07 07:51:01 -04:00
Miguel de la Cruz
ce98ec55fc
Recovers inactive websockets connections on reconnect in plugin mode (#1324)
* Stores a cache of inactive connections so their subscriptions are recovered on reconnections

* Adds test for getUserIDsForWorkspace and simplify messages through helpers

* Make the plugin websocket client more resilient

* Remove missed event callback and limit ws state polling to one at a time

* Add read lock for the plugin adapter and guarantee atomic ops on inactiveAt

* Add mutex to the plugin adapter client and tests to cover for races

* Split plugin adapter mutex in two and use them to lock only on data access

* Group plugin adapter fields by the mutex that's guarding them
2021-09-29 18:19:34 +02:00
Miguel de la Cruz
a8da028bc7
Adds workspaceID to blocks and makes board page only reacts to the workspace updates (#1299) 2021-09-22 13:57:00 -06:00
Scott Bishel
838c6f90b7
Config for share board (#1187)
* initial commit for setting shared board configuration

* add unit test

* working again

* update default config

* initial commit for setting shared board configuration

* add unit test

* working again

* update default config

* add unit tests, some clean up

* more cleanup

* more clean up

* remove header text for GH-1105

* remove unnecessary logs

* update text

* fix lint errors

* more lint fixes

* webapp lint fixes

* Update mattermost-plugin/plugin.json

Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>

* Update mattermost-plugin/plugin.json

Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>

* update for review, sync with main

Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>
2021-09-16 13:31:02 -06:00
Miguel de la Cruz
f7946821a0
Propagate block changes to all of the cluster nodes in plugin mode (#1213)
Co-authored-by: Jesús Espino <jespinog@gmail.com>
2021-09-16 12:18:11 +02:00
Miguel de la Cruz
e10229031f
Add a plugin adapter to reuse MM websocket in plugin mode (#1079)
* Add a plugin adapter to reuse MM websocket in plugin mode

* Remove development replace

* Switch all go.mod files to use 1.16

* Fix linter issues

* Fix linter

* Update server version to contain the new hooks
2021-08-27 10:59:14 +02:00
Doug Lauder
b58497e2ea
Replace mlog with server v6 mlog (#1088)
* replace mlog with server v6 mlog
* remove FB mlog from plugin
2021-08-25 16:08:01 -04:00
Jesús Espino
6a7d3f797b
Websocket client now connects once and subscribe/desubscribe on the fly (#752)
* Websocket client now connects once and subscribe/desubscribe on the fly

* Fixing eslint error

Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
2021-07-28 18:14:18 +02:00
Miguel de la Cruz
0bd6233fac
Refactor the websockets connection messages and lifecycle (#749)
* Refactor the websockets connection messages and lifecycle

* Modify frontend to subscribe to a workspace instead of a set of blocks

* Fixing linter errors

Co-authored-by: Jesús Espino <jespinog@gmail.com>
2021-07-19 15:04:17 +05:30
Doug Lauder
ebd477464b
fix remaining golangci linter warnings (#686)
* fix remaining linter warnings
2021-07-08 21:09:02 -04:00
Harshil Sharma
1020c03924
Prevented concurrent writes to websocket (#658)
* retained individual connection objects

* unlocking lock in defer

* Completely abstracted internal connection object

* Completely removed direct use of WS connection
2021-07-01 08:11:29 +02:00
Doug Lauder
66975bdfe9
First pass linter cleanup (#603)
* first pass linter cleanup

* address review comments
2021-06-21 11:21:42 +02:00
Doug Lauder
417de9f837
Logger for FocalBoard server (#466)
- structured, asynchronous logging
- supports discreet log levels, including custom levels
- supports output to console, files, and all common log aggregators.
- supports JSON, plain text and GELF formats
- lazy formatting and writing
2021-05-29 02:23:10 -04:00
Jesús Espino
f1b8d88d6b
Changing mattermost-auth method to work based on shared database access (#335)
* Improving mattermost auth implementation

* Making mattermost-auth based on shared database access

* Reverting unneeded changes in the config.json file

* Fixing tiny problems

* Removing the need of using the mattermost session token

* Fixing some bugs and allowing to not-bind the server to any port

* Small fix to correctly get the templates

* Adding the mattermost-plugin code inside focalboard repo

* Adding a not working code part of the cluster websocket communication

* Updating the mattermost version

* Adding the cluster messages for the websockets

* Updating to the new node version

* Making it compatible with S3

* Addressing some tiny problems

* Fixing server tests

* Adds support for MySQL migrations and initialization

Co-authored-by: Miguel de la Cruz <miguel@mcrx.me>
2021-05-24 19:06:11 +02:00
Chen-I Lim
3531c8307d Global template support 2021-03-30 14:04:00 -07:00
Chen-I Lim
771be97c3e Workspace support in websockets 2021-03-29 13:00:40 -07:00
Chen-I Lim
aa363041e7 Support worksapce in websocket 2021-03-29 12:31:42 -07:00
Chen-I Lim
0b479ff3ae Handle workspace in websocket 2021-03-26 18:04:23 -07:00
Chen-I Lim
725971784b Workspace backend support 2021-03-26 11:01:54 -07:00
Bo-Yi Wu
2b4e03eed6 chore(format): update coding style 2021-03-21 16:28:26 +08:00
Chen-I Lim
0fe96ad7ed Check for single user token 2021-02-09 12:27:34 -08:00
Chen-I Lim
79b79b35bc Auth readToken in websocket 2021-02-02 18:21:37 -08:00
Chen-I Lim
c2894693ea websocket: send not authenticated error 2021-02-02 13:17:34 -08:00
Chen-I Lim
a56cf03e0c websocket private functions 2021-02-02 13:00:22 -08:00
Chen-I Lim
b3e660d354 Websocket auth 2021-02-02 12:06:28 -08:00
Chen-I Lim
3995cbd0e4 Product name 2021-01-26 14:13:46 -08:00
Chen-I Lim
4a7bf165c4 cleanup 2020-11-06 10:20:03 -08:00
Chen-I Lim
0d0bc7a672 Incremental updates on websocket 2020-11-06 10:11:01 -08:00
Jesús Espino
72f4783e34 Some other code improvements from the golangci 2020-10-22 15:22:36 +02:00
Jesús Espino
607b8aa063 Some improvements based on golangci-lint checks, and adding more rules 2020-10-22 13:34:42 +02:00
Chen-I Lim
0b07f454bb WebSocket listener: Handle add/remove blockIds 2020-10-21 12:36:43 -07:00
Jesús Espino
19ab85b329 Splitting the server in multiple packages 2020-10-16 19:12:53 +02:00