Commit graph

227 commits

Author SHA1 Message Date
dave
a98bcb98ff
Add more unit tests for ./store/sqlstore/user.go (#787)
* Add more unit tests for ./store/sqlstore/user.go

* replace require.Nil to require.NoError

Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
2021-07-27 11:42:02 -04:00
Chen-I Lim
3b11202e3d
InsertBlock per workspace logic (#777) 2021-07-24 08:08:25 -07:00
dave
bafa32108d
[GH-428] Add unit tests for ./store/sqlstore/session.go (#729)
* fix can't delete session

* Add unit tests for  ./server/store/sqlstore/session.go

* fix ci lint complain

Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
Co-authored-by: Hossein <hahmadia@users.noreply.github.com>
2021-07-22 07:56:25 -04: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
Chen-I Lim
73225e959b Merge release-0.8.0 2021-07-16 10:30:45 -07:00
Doug Lauder
f317574a6d
add mlog package to stack filter list (#717) 2021-07-15 11:42:53 -04:00
Doug Lauder
a0524dd386
Lint server & plugin for CI (#720)
* enable CI linting for server and plugin
* replace `golint` (deprecated) with `revive`
* use GH actions for lint
2021-07-14 09:36:18 -04:00
Chen-I Lim
1b45e16e52 Update to v0.8.0 2021-07-09 09:36:57 -07:00
Doug Lauder
0dec704ddc
fix linter errors in plugin (#696) 2021-07-09 12:59:44 +02:00
Harshil Sharma
74cf28fee5
Added missed test (#695)
* Fixed missing errors

* Used missed test
2021-07-09 00:36:50 -04:00
Harshil Sharma
e0ccfb90e7
Fixed missing errors (#694) 2021-07-09 09:11:54 +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
e0ec1c03e0
New Props: Created By, Created At, Updated By, Updated At (#583)
* 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
2021-07-08 20:06:43 +05:30
Doug Lauder
6e214ebc3d
Ensure all code paths close *sql.Rows (#679)
* ensure all code paths close *sql.Rows
2021-07-06 16:44:11 -04:00
Jesús Espino
0811052a9b Fixing workspace title generation 2021-07-01 11:29:12 +02: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
Agniva De Sarker
8e72b9c528
Add RPC API support to plugin (#619)
* Add RPC API support to plugin

We use the mattermost-plugin-api client to create the sql.DB object
and pass it to the store.

To keep a common point of entry for both the standalone server
and plugin, we refactor the store creation part out of server.New
and pass the DB as a dependency to the server constructor.

This allow us to create different stores in plugin and standalone,
so that the server code remains unaware of any differences.

https://focalboard-community.octo.mattermost.com/workspace/zyoahc9uapdn3xdptac6jb69ic?id=285b80a3-257d-41f6-8cf4-ed80ca9d92e5&v=495cdb4d-c13a-4992-8eb9-80cfee2819a4&c=c7386db7-65fd-469b-8bcf-8dc8f8e61e4f

* Support linux desktop app

* refactor

* fix typos

* Change authlayer to use existing DB conn too
2021-06-25 16:49:06 +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
edc3eb7e8f
Refactor App lifecycle (#590)
* remove Server dep from App

* remove appbuilder
2021-06-18 16:03:42 +02:00
Doug Lauder
ddfae3266a
rename logger & audit config (#591) 2021-06-18 16:01:36 +02:00
Doug Lauder
d5096379de
Remove enterprise symlink (#589)
* fix make

* remove enterprise server build from make

* remove enterprise ifaces

* update .gitignore
2021-06-18 07:48:01 +02:00
Doug Lauder
5c69113911
Auditing (#542)
* audit wip

* finish API coverage

* fix unit test

* remove sample logging and audit config

* default logger

* fix go.mod and go.sum
2021-06-11 14:24:51 +02:00
Jesús Espino
3ae3c5fce1
Adding the users for workspace in mattermost layer (#564) 2021-06-11 12:40:22 +02:00
Miguel de la Cruz
9b5e0483f5
Fix MySQL migration connection when the DSN doesn't contain any query parameters (#557) 2021-06-11 11:18:11 +02:00
Doug Lauder
46243c1ad1
Telemetry and metrics (#496)
- total blocks by block type
- total workspaces
- blocks activity (insert/delete)
- login success / fail
2021-06-04 10:38:49 -04:00
Harshil Sharma
90f6389745
Person Property Type (#406)
* 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
2021-06-04 18:53:15 +05:30
Doug Lauder
68d492a855
Bump Logr version to fix Windows build (#520)
* bump Logr version to fix Windows build

* fix return args for syslog_unsupported
2021-06-04 08:43:32 +02:00
Matheus Mosca
ac320ece25
Add units tests for app/sharing.go (#454)
* tests: add units tests for GetSharing

* tests: add unit tests for UpsertSharing

* refactor: add test helper in sharing unit tests

* cleanup
2021-06-03 14:59:16 -05: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
Harshil Sharma
3bf9d9382e
Clickable Links (#393)
* Added implementation for making links clickable

* Improved some clicking UX

* Removed unused stuff

* Fixed lint issues

* Added Compass Icons to Focalboard

* Updaed go.mod

* Made sure links in URL property are always assumed as absolute

* Removed unnecessary JSX code block

* Allowing only http and https protocols

* Removed unused extensions from file loader

* Icon and URL imporvements

* Added React component for Compass Icons.
* Allowed URLs with any arbitrary protocol.
2021-05-26 16:14:09 +05:30
Scott Bishel
6cb7e49a2b
add unit tests (#422)
* add unit tests

* cleanup

* cleanup

* rename helper file, remove gomock.eq()

* update import
2021-05-26 12:38:43 +02:00
Carlos Tadeu Panato Junior
36acff4476
Add GitLab ci to build internally and bump go to 1.16 (#468)
* update go to 1.16

* add gitlab ci to build focalboard
2021-05-26 12:34:42 +02:00
Miguel de la Cruz
b327bc7b8a
Adds plugin actions to the project's CI (#471)
* Adds plugin actions to the project's CI

* Remove the version number from the generated artifact

* Change job name to something more descriptive

* Switch back to workflow_dispatch
2021-05-25 19:22:31 +02: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
4c3f14e027 Merge release-0.6.7 2021-05-24 09:59:30 -07:00
Jesús Espino
2d542bbd30 Removing unneeded test 2021-05-24 17:47:38 +02:00
Jesús Espino
746105f14b Removed insecure and not used method 2021-05-24 14:49:40 +02:00
Spiros Economakis
8f746a44bd
Enable prometheus metrics for Focalboard to enable observability (#414)
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.
2021-05-18 17:12:51 +03:00
Hossein
e2dd9a978a
Add Export/import board (#403)
* Resolve GH-261

* fix eslint

* Address comments

* update mocks

* add test
2021-05-13 15:04:49 -06:00
Harshil Sharma
1f60e70ef3
Used Node 16 and prevented soctet error from starting (#402) 2021-05-11 11:56:40 +02:00
Chen-I Lim
5fe51a9c0c Update for v0.6.7 2021-05-10 12:22:42 -07:00
Harshil Sharma
21c5284d6d
#GH-31 Configured Golangci-Lint and fixed errors (#381)
* Moved golangci-lint config to config file

* Fixed all golangci lint errors

* Not allowing telemetry shutdown error to prevent store from closing

* Remved golangci-lint presets
2021-05-10 17:15:27 +02:00
Jesús Espino
842c2cc0ab Adding system store tests 2021-04-30 16:48:45 +02:00
Jesús Espino
8860f60948 Adding extra test to cover more functions in blocks store 2021-04-30 16:31:04 +02:00
Chen-I Lim
1801422543
Fixes for workspace support (#321) 2021-04-26 13:43:02 +02:00
Jesús Espino
2d261fde59
Adding mysql support to the database (#301)
* 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
2021-04-22 22:53:01 +02:00
Chen-I Lim
4a5d7c4a64
Fix #312. Release 0.6.6 (#313)
* Fixed #269

* Fixing checkbox widht

* Fix #274. Add re-login button to error page.

* Fix #276. Login page title

* Rev Mac build version

* Update changelog for v0.6.5

* Rev Mac build number

* GitHub Actions: Build with Xcode 12.4

* Fix #297: Mac keybpard handling

* Rev Mac built to 12

* Update to v0.6.6

* Fix #312. Windows app images

* Move db and files to Documents\Focalboard on standalone Win app

* Make Win app fixupp code more robust

Co-authored-by: Jesús Espino <jespinog@gmail.com>
2021-04-21 18:25:26 -07:00
Chen-I Lim
e61ba4a7a8 Update to v0.6.6 2021-04-21 12:56:14 -07:00
Jesús Espino
ec1de1c9c2
merging the migrations in one single set of files (#289) 2021-04-20 11:27:20 +02:00
Jesús Espino
d668bf6626 Fix a backward compatibility problem 2021-04-17 10:05:07 +02:00