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 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
* 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>
* 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
* 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>
* 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>
* Added create_at column for blocks
* Populating created by
* Added logic for storing created by
* Added GetBlock by ID to store interface
* Added creayed by and modified by properties
* Added created by and modified by properties
* Added lastmodifiedat property
* Fixed existing webapp test
* Added webapp unit tests
* Added webapp unit tests
* Added webapp unit tests
* Adding server test
* Added server tests
* Fixed a bug causing created by to be set empty
* Avodining timezone specific test behavior
* Made cypress viewport bigger to avoid out-of-viewoport issues in multiple tests
* Removed a leftover comment
* Added updated at/by in table view
* Added updated at in card view
* Fixing sort
* Fixed sorting of updated by
* Fixed existing tests
* Added table tests
* Added cardTree fix
* Fixed tests
* Removed unused import
* Update snapshots
* Added a tamper attempt test
* Removed some leftover debug code
* Removed sending creator from client
* Fixed lint error
* Fixed a build issue
* Avoided setting insert query params multiple times
* Multiple minor review fixes
* Fixed test
* Added getWorkspaceUsers API
* Integrated workspace user API in UI
* Integrated workspace user API in UI
* Added toto for implementation slot
* Implemenmted getWorkspaceUSers to get data from Focalboard DB
* Updated store mocks
* Made select styles a shared constant
* Removed unwanted diffs
* Removed unwanted diffs
* Updated snapshots for new property type
* Added user store test
* Added missing copyright notice
* Returning error if no users found to retain original behavior
* Minor fixes and added tests
* Minor fixes
* Used React context for workspace users
* Used useContext hook, and added additional user ID -> user context to avoid that computation by all componnets
* Mergerd both workspace user contextx
* Minor review fix
- 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
* 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>
As an SRE team we would like to expose standard metrics and grouped by version
of the application. Right now will expose only metrics related to Go but instrumentor
should be used in other parts of the codebase so we can track other metrics, eg.
number of tasks, boards, users etc. Similar as we do in MM.
It will run in port `localhost:9092` and it is a new config `prometheus_address`.
Also in the commit we introduced, `group.Add` which helps us to handle gracefully
errors for goroutines. It's a good practice and there are couple of articles by
Golang for this.
* Adding mysql support
* Fixing other test cases
* Tests passing on mysql
* Fix the row number generation
* Adding blocks_history table
* merging the migrations in one single set of files
* Passing mysql tests
* Fixing default encoding on mysql
* Simplifying things
* Removing from the blocks table all deleted blocks
* Better indentation
* Moving db types to constants to make it less error prone
* reducing duplicated code
* Removing log line
* Now sql tests are running properly in mysql, sqlite and postgres
* Addining subpath support
* Fixing a subpath problem in suburls
* Using the server root for allow subpaths
* Fixing baseURL variable name
* Some improvements
* Making it work in mattermost plugin
* Fixing eslint warnings
* Fixing cypress tests