* PLT-7202: Switch user search to LIKE queries to avoid fulltext pitfalls.
* Add 2 char name unit test.
* Escape underscores properly.
* Add more tests and fix * handling.
* Make search/indexes case insensitive for postgres.
* Prepare file upload infrastructure for Data Retention.
This commit prepares the file upload infrastructure for the data
retention feature that is under construction. Changes are:
* Move file management code to utils to allow access to it from jobs.
* From now on, store all file uploads in a top level folder which is the
date of the day on which they were uploaded.
This commit is based on Harrison Healey's branch, but updated to work
with the latest master.
* Use NewAppError
* PLT-7302: Aggregate Elasticsearch indexes over a certain age.
This is done by a scheduled daily job, in order to keep the shard count
to a sensible level in Elasticsearch.
* Use map[string]string instead of StringMap
* PLT-7223: Updated error message to include relevant schema versions
* PLT-7223: Removed unit test. It poisons database state, and there's no recovery mechanism, because the code under test causes an ungraceful exit, so we can't fix the database in a defer statement. This causes the next test execution or server start to fail.
* PLT-7223: Incorporated @crspeller's suggestions into error message string
* Revert "PLT-6603: Don't return all posts on invalid query. (#7061)"
This reverts commit 25a2013890.
* Revert " #4755 Combining consecutive user join/leave system messages to single message and few other changes. (#5945)"
This reverts commit 8a91235fb3.
* Implement user access tokens and new roles
* Update config.json
* Add public post permission to apiv3
* Remove old comment
* Fix model unit test
* Updates to store per feedback
* Updates per feedback from CS
* Adding Reaction store cache layer example
* Implementing reaction store in new caching system.
* Redis for reaction store
* Adding redis library
* Adding invalidation for DeleteAllWithEmojiName and other minor enhancements
This commit redesigns the jobserver to be based around an architecture
of "workers", which carry out jobs of a particular type, and "jobs"
which are a unit of work carried by a particular worker. It also
introduces "schedulers" which are responsible for scheduling jobs of a
particular type automatically (jobs can also be scheduled manually when
apropriate).
Workers may be run many times, either in instances of the platform
binary, or the standalone jobserver binary. In any mattermost cluster,
only one instance of platform OR jobserver must run the schedulers. At
the moment this is controlled by a config variable, but in future will
be controlled through the cluster leader election process.