Fixes a panic at start-up for plugin + postgres/mysql. When selecting on a timestamp database type, the type of the var to scan into is different based on database type. The fix is to convert the timestamp to string within the query and scan into a string.
Backend support for subscribing/unsubscribing to blocks, typically cards and boards. Notifies subscribers when changes are made to cards they are subscribed to.
* Adds data migrations and the unique IDs migration
* Adds GetSystemSetting tests
* Add log statements to data migrations
* Move migrations to the store and ensure they follow an order mixing database and data migrations
* Fix system settings
* Add tests for unique id migration
* Small comment change
* Make a couple of methods private and wrap the migration in a transaction
* Update public methods
* Add database mutex to data migrations
* Create server params and pass a mutex factory to the store
* Fix plugin linter
* Make isPlugin private
* Fix comment typo
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
* Adds server ID generation on the insert blocks endpoint
* Fix linter
* Fix server linter
* Fix integration tests
* Update endpoint docs
* Update code to use the BlockType2IDType function when generating new IDs
* Handle new block ids on boards, templates and views creation
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
* Adds a generator that wraps store methods with transactions and migrates implementations to use transactions
* Remove OpenTracing parameters from the generator
* Remove unused template methods
* Generate transactional methods only for those labelled as so
* Fix linter
* add telemetry for shared boards
* move where setting view out of Routes
* add for configuration setting
* fix spacing
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
* 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
* 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>
* API WIP
* WIP
* Finished changes
* Fixed colors:
* Don't enforce charset adn collation in migration, pick from database DSN
* Added MySQL query
* Updated mocks
* Added tests
* Lint fixes
* Fixed typo and removed unsed style
* Checked in a snapshot
* Updated snapshot
* Updated Cypress test
* Updated Cypress test
* Updated Cypress test
* Fixed review comments
* Fixed tests
* Added default collation for MySQL
* Added documentation for ensuring correct database collation
* Updated migrations
* Fixed a bug with collation
* Fixed lint errors
* Used correct collation
* debugging
* Updating css
* Minor UI changes
* USe inbuilt default collation
* Used only charset for mysql
* Fixed linter issue:
* Added migration for matching collation
* Reverted local config changes
* Reverted local config changes
* Handled the case of personal server running on MySQL
* WIP
* Now running collation matching migration onlyt for plugins
* Minor optimization
* Multiple review fixes
* Added group by clause to primary query
* Supported for subpacth
* Displayed all channels in workspace switcher
* Included channels without a Focalbaord workspaces in worksapce switcher as well
Co-authored-by: Asaad Mahmood <asaadmahmood@users.noreply.github.com>
Co-authored-by: Jesús Espino <jespinog@gmail.com>
* API WIP
* WIP
* Finished changes
* Fixed colors:
* Don't enforce charset adn collation in migration, pick from database DSN
* Added MySQL query
* Updated mocks
* Added tests
* Lint fixes
* Fixed typo and removed unsed style
* Checked in a snapshot
* Updated snapshot
* Updated Cypress test
* Updated Cypress test
* Updated Cypress test
* Fixed review comments
* Fixed tests
* Added default collation for MySQL
* Added documentation for ensuring correct database collation
* Updated migrations
* Fixed a bug with collation
* Fixed lint errors
* Used correct collation
* debugging
* Updating css
* Minor UI changes
* USe inbuilt default collation
* Used only charset for mysql
* Fixed linter issue:
* Added migration for matching collation
* Reverted local config changes
* Reverted local config changes
* Handled the case of personal server running on MySQL
* WIP
* Now running collation matching migration onlyt for plugins
* Minor optimization
* Multiple review fixes
* Added group by clause to primary query
* Supported for subpacth
Co-authored-by: Asaad Mahmood <asaadmahmood@users.noreply.github.com>
* 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
* Update focalboard to be compatible with mattermost v6
* Point to the new plugin API version
* Fix collectors linter issues
* Move all CI jobs to 1.16
* server/client: support register and login
* server/client: support user related apis
* integrationtests: Add SetupTestHelperWithoutToken
* Add api integration tests for (User APIs)
* rename GetUserMe method to GetMe
* check GetMe data is match the registered data after login
* Add integration test for workspace upload file api
* make ci happy
* Adding support for patch blocks
* Adding some improvements
* Adding api integration test for patch
* Adding SQL store tests
* Regenerating autogenerated code
* Fix linter errors
* Remove wrong update of the swagger file
* Update server/model/block.go
Co-authored-by: Miguel de la Cruz <mgdelacroix@gmail.com>
* Fix gofmt
Co-authored-by: Miguel de la Cruz <mgdelacroix@gmail.com>
* Migrating workspace tree to redux
* More changes for use the redux store for boads and views
* Taking into account the templates on websocket event updates
* Fixing bug on boardTree maintenance
* Websocket client now connects once and subscribe/desubscribe on the fly
* Including usage of the new websocket client
* More work around migrating to redux
* WIP
* WIP
* WIP
* WIP
* WIP
* WIP
* Fixing some things
* WIP
* WIP
* Another small fix
* Restoring filtering, sorting and grouping
* Fixing some other bugs
* Add search text reducer
* Fixing another drag and drop problem
* Improve store names and api
* Fixing small bgus
* Some small fixes
* fixing login
* Fixing register page
* Some other improvements
* Removing unneeded old files
* Removing the need of userCache
* Fixing comments and fixing content ordering
* Fixing sort
* Fixing some TODOs
* Fixing tests
* Fixing snapshot
* Fixing cypress tests
* Fix eslint
* Fixing server tests
* Updating the add cards actions
* Fixing some tiny navigation problems
* Mocking the api calls to pass the tests
* Migrating a new test to redux
* Adding the card right after the insert of the block (not wait for ws event)
* Showing the ws disconnect banner only after 5 seconds of disconnection
* Fixing share view
* Fix eslint
* Fixing problem with sort/groupby modifications
* Fixing some details on redirections and templates creation
* Fixing small bugs around undo
* Fix update properties on click outside the dialog
* Improving the column resize look and feel
* Removing the class based objects from the store (now they are all plain objects
* Fix eslint
* Fixing tests
* Removing unneeded code
* Add unit tests for ./services/webhook/webhook.go
* fix logger in TestClientUpdateNotify
* make ci happy
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
Co-authored-by: Scott Bishel <scott.bishel@mattermost.com>
* Websocket client now connects once and subscribe/desubscribe on the fly
* Fixing eslint error
Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
* fix nil stringer error
* include API path with all API ERROR logs
* enable "caller" field
* disable colour output and min msg length for plugin
* bump Logr version to v2.0.4
* 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>