* Ensured that specified channel is a part of specified team
* Simplified approach to just infer team id from specified channel id to eliminate the attack vector entirely
* don't use global app for api / api4 tests
* put sleep back. we're gonna have to do some goroutine wrangling
* fix oauth test config assumptions
* jobs package, i'm comin' for you next
* app test fix
* try increasing sleep a little
* Return viewed at times in view channel API response
* Updated transaction to read and write once
* Remove transaction and only update if new value greater than older
* Add session idle timeout config setting
* Modify config setting name to SessionIdleTimeoutInMinutes
* Small re-org of if statement
* Merge with latest master
* tie back-end plugins together
* fix comment typo
* add tests and a bit of polish
* tests and polish
* add test, don't let backend executable paths escape the plugin directory
* PLT-7468 Moved more errors to use error types
* PLT-7468 Moved 404 error page to use error types
* Made helper function for rendering external links on error page
* add S3 region to system console and add S3 validation
* update translation message
* add bool as return value to Validate* functions
* update Validate* functions to be pure
* Implement experimental REST API endpoints for plugins
* Updates per feedback and rebase
* Update tests
* Further updates
* Update extraction of plugins
* Use OS temp dir for plugins instead of search path
* Fail extraction on paths that attempt to traverse upward
* Update pluginenv ActivePlugins()
* PLT-3893: Imported logger work from https://github.com/MusikPolice/platform
* PLT-3893: Integrated logger with system config
* PLT-3893: Integrated Mattermost config with logging solution, modified log message serialization so entire message is serialized as a JSON object
* PLT-3893: Added support for format strings in Debug methods. Added an overload that does not require a Context object for cases when one isn't available
* PLT-3893: Added context and format string support to debug and error methods
* PLT-3893: A few updates from pull request feedback
* PLT-3893: Changed tests to use testify
* Fixed TestAddRemoveConfigListener to no longer assume that there are zero config listeners when the test begins, since other tests could add config listeners
* Updated TestGetDeletedChannelsForTeam so that it doesn't assume state when it begins
* PLT-3893: Changed File property of log message so that it's relative to /mattermost directory, rather than to wherever the user is running the application from on their machine
* Flipped expected/actual assert arguments, added an explicit test for getCallerFilename(...), since it's failing on Jenkins
* Added printlns to debug failing tests on Jenkins
* Relaxed test cases to avoid failure on Jenkins caused by code coverage calculations. Removed printlns.
* Changed the way that caller filename is determined to make it more robust, updated tests to make them more lax, while not choking on the strange paths that Jenkins uses.
* Fixed gofmt issues
* Added debug output to tests to diagnose Jenkins build failures
* Still trying to get some useful debug logging on Jenkins
* Changed getCallerFilename to handle the strange paths that runtime.Caller(...) returns on Jenkins
* Fixing checkstyle issues