Commit graph

363 commits

Author SHA1 Message Date
Jesús Espino
bb81426b56
Adding a missed rollback call (#803) 2021-07-29 19:49:57 +02:00
dave
cfac3fe81b
[GH-431] Add unit tests for ./store/sqlstore/workspaces.go (#768)
* Add unit tests for ./store/sqlstore/workspaces.go

* replace require.Nil to require.NoError

* Fixing problem with workspace settings upsert

Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
Co-authored-by: Jesús Espino <jespinog@gmail.com>
2021-07-29 11:56:57 +02:00
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
Doug Lauder
f317574a6d
add mlog package to stack filter list (#717) 2021-07-15 11:42:53 -04: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
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
ddfae3266a
rename logger & audit config (#591) 2021-06-18 16:01:36 +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
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
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
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
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
Jesús Espino
83375684af Adding tablePrefix support 2021-04-17 09:09:34 +02:00
Jesús Espino
5ab3f8d3ce
Addining subpath support (#241)
* 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
2021-04-16 13:42:37 +02:00
ziprandom
530dc81a1c server: additionally read config settings from env
make the server app read configuration settings from execution
environment to make server deployments more convenient.
2021-04-01 10:36:56 +00:00
Chen-I Lim
3531c8307d Global template support 2021-03-30 14:04:00 -07:00
Chen-I Lim
68f2b5bedb Fix delimiter for postgres 2021-03-26 13:55:14 -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
Jesús Espino
3290ab48b8 Fixing email validation 2021-03-18 13:34:42 +01:00
lutfuahmet
4887aee648 Register Request email validation 2021-03-18 10:32:23 +03:00
Chen-I Lim
af7f666eff Return JSON empty array when not found, and handle null arrays 2021-03-08 16:08:17 -08:00
Chen-I Lim
12d24a5aed Check user not found for updateUser 2021-02-01 10:49:57 -08:00
Chen-I Lim
c0f71f870e Rename admin local socket 2021-02-01 10:31:06 -08:00
Jesús Espino
52c38ff7c2 Add sharing unit tests 2021-01-29 20:27:43 +01:00
Jesús Espino
68561f0f6b Add more block store tests 2021-01-29 19:32:33 +01:00
Jesús Espino
7ee3213641 Improving blocks tests 2021-01-29 19:21:55 +01:00
Jesús Espino
baad055cc9 Moving tests outside the sqlstore to allow future no-sql implementations 2021-01-29 17:50:20 +01:00
Jesús Espino
8eb1559898 Fixing update session store call 2021-01-27 19:24:19 +01:00
Chen-I Lim
3b4f712649 active user count 2021-01-27 10:01:24 -08:00
Chen-I Lim
d641039131 Registered user count 2021-01-27 09:22:33 -08:00
Chen-I Lim
b4e52b4073 localOnly config flag 2021-01-26 15:29:13 -08:00
Chen-I Lim
3995cbd0e4 Product name 2021-01-26 14:13:46 -08:00
Chen-I Lim
6af0780c17 Merge branch 'main' into admin-local 2021-01-22 11:28:45 -08:00
Chen-I Lim
dfbc07c06d make generate 2021-01-21 10:25:35 -08:00
Chen-I Lim
1286349a22 Change password 2021-01-21 10:16:40 -08:00
Chen-I Lim
e15728d003 make generate 2021-01-20 13:52:54 -08:00
Chen-I Lim
91f51fe0b9 Local server on unix port, admin set password 2021-01-20 13:52:25 -08:00
Chen-I Lim
ed2ff2d6b0 make generate 2021-01-13 17:09:43 -08:00
Chen-I Lim
7915564d2c Require signup token to register 2021-01-13 16:56:01 -08:00
Chen-I Lim
36b5bec65f make generate 2021-01-13 13:01:34 -08:00
Chen-I Lim
61fb38d418 Allow GetSubTree without auth. WIP 2021-01-12 18:49:08 -08:00
Chen-I Lim
1048c009c3 Sharing integration tests 2021-01-12 16:44:50 -08:00
Chen-I Lim
2f71295275 Get/set sharing 2021-01-12 15:35:30 -08:00
Chen-I Lim
7052a022b3 Store modifiedBy for deleted blocks 2021-01-12 11:16:25 -08:00
Chen-I Lim
f2e8bc8285 Store blocks modified_by userID 2021-01-11 18:53:08 -08:00
Jesús Espino
20a223a091 Fixing tests 2021-01-11 15:33:34 +01:00
Jesús Espino
daae244cba Merge remote-tracking branch 'origin/main' into auth 2021-01-11 13:56:26 +01:00
Chen-I Lim
593e077fb9 Fix Go integration tests 2021-01-05 19:47:18 -08:00
Chen-I Lim
77de551fdd Clear visible and hidden columns (options) when changing groupBy 2021-01-04 14:26:18 -08:00
Chen-I Lim
b47ae9197f Change project tasks icon 2021-01-04 10:43:02 -08:00
Chen-I Lim
1c719d3a16 Update duplicate to handle card contentOrder 2020-12-18 14:28:54 -08:00
Chen-I Lim
0bd645df4e Filter orphaned nodes on export 2020-12-14 11:24:38 -08:00
Chen-I Lim
0b1370ab35 Cleanup meeting notes template 2020-12-11 12:40:48 -08:00
Chen-I Lim
b8851c89e0 Meeting notes template 2020-12-11 12:13:47 -08:00
Chen-I Lim
578cdc7caa Personal Goals template 2020-12-11 11:45:08 -08:00
Chen-I Lim
6d1782256c Menu text consistent sentence casing 2020-12-11 11:10:25 -08:00
Chen-I Lim
0900546b68 Load default templates on server initialization 2020-12-10 12:41:06 -08:00
Jesús Espino
e5941d6440 More work on auth 2020-12-07 20:40:16 +01:00
Jesús Espino
e08f9a9c96 Improving sessions handling 2020-12-07 17:04:35 +01:00
Jesús Espino
bbddba2d2b Addressing review concerns 2020-12-07 16:00:13 +01:00
Jesús Espino
c8ac701587 Merge remote-tracking branch 'origin/main' into auth 2020-12-04 16:04:28 +01:00
Jesús Espino
f491241c1a Preliminary auth implementation 2020-12-04 16:03:09 +01:00
Chen-I Lim
850f60e1fb Add rootId to blocks. Requires archive export / re-import. 2020-12-03 14:09:48 -08:00
Jesús Espino
7382f9c55c Adding sessions code 2020-12-02 21:12:14 +01:00
Jesús Espino
dc5fb0cfc1 Merge branch 'main' into auth 2020-12-02 15:53:38 +01:00
Jesús Espino
cc065ef869 Adding another error handling to the migrations 2020-11-19 17:51:39 +01:00
Jesús Espino
ea81d04937 Adding migration files for users tables 2020-11-17 19:44:13 +01:00
Jesús Espino
11d336fef0 Merge remote-tracking branch 'origin/main' into auth 2020-11-17 15:44:04 +01:00
Jesús Espino
a1008fee1c Working on auth 2020-11-17 15:43:56 +01:00
Chen-I Lim
257a74954d Unit tests for store.getSubTree 2020-11-12 10:48:08 -08:00
Chen-I Lim
37fd30413b Duplicate board 2020-11-12 10:16:59 -08:00
Jesús Espino
35ebd44d24 More work on authentication 2020-11-06 16:46:35 +01:00
Jesús Espino
85c8a5a966 Merge branch 'main' into auth 2020-11-06 15:24:50 +01:00
Jesús Espino
0d177980ea Moving webhook service into the right place 2020-10-30 19:33:25 +01:00
Chen-I Lim
5e8789cb14 Basic webhook on block update 2020-10-29 13:12:48 -07:00
Jesús Espino
0568006a27 Auth WIP 2020-10-28 14:35:41 +01:00
Chen-I Lim
c1fe8c3c0d Fix db migration error check 2020-10-22 08:41:47 -07: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
Jesús Espino
fe39696e26 Adding mock store and pin the generators/tools to specific versions 2020-10-21 09:56:03 +02:00
Jesús Espino
6f82a8a095 Adding squirrel query builder 2020-10-20 20:00:46 +02:00
Chen-I Lim
2c594854a0 Change fields type in Postgres to JSON 2020-10-19 12:10:26 -07:00
Jesús Espino
982a8edfc5 Add scheduler tests 2020-10-19 15:30:15 +02:00
Jesús Espino
94bfa840e8 Add initial telemetry code, system_settings table and the task scheduler 2020-10-19 14:55:31 +02:00
Jesús Espino
53b051816c Passing an initial golangci-lint pass 2020-10-18 02:07:35 +02:00
Jesús Espino
868be73d5b Making the migrations embeded, and add an initial store test 2020-10-18 01:09:12 +02:00
Jesús Espino
61cdfecef9 Adding missed files 2020-10-16 22:27:16 +02:00
Jesús Espino
3c15957e3d Adding golang migrate to handle database migrations 2020-10-16 22:26:47 +02:00
Jesús Espino
55e49bea51 Abstracting more the store concept 2020-10-16 19:20:43 +02:00
Jesús Espino
19ab85b329 Splitting the server in multiple packages 2020-10-16 19:12:53 +02:00