37 Commits
Author SHA1 Message Date
Joram Wilander cff9ac0df8 Add siteURL to WS origin check (#9183)
* Add siteURL to WS origin check

* Handle subpath

* Only add site URL if not *
2018-07-30 17:21:57 -04:00
Christopher Speller bae26ec268 MM-11160 Adding proper CORS support. (#9152)
* Adding proper CORS support.

* Better CORS tests.
2018-07-26 08:31:22 -07:00
Jesse Hallam 4245797cb2 redirect, vs. proxy, 80->443 without LE enabled (#9020)
The code incorrectly got refactored to proxy instead of forward, deviating from the behaviour when LE is enabled.
2018-06-29 17:17:35 -04:00
Jesse Hallam dd35ad43ca MM-10370: serve subpath (#8968)
* factor out GetSubpathFromConfig

* mv web/subpath.go to utils/subpath.go

* serve up web, api and ws on /subpath if configured

* pass config to utils.RenderWeb(App)?Error

This allows the methods to extract the configured subpath and redirect
to the appropriate `/subpath/error` handler.

* ensure GetSubpathFromConfig returns trailing slashes deterministically

* fix error 404 handling

* redirect /subpath to /subpath/

This is necessary for the static handler to match, otherwise none of the
registered routes find anything. This also makes it no longer necessary
to add trailing slashes in the root router.
2018-06-21 11:31:51 -07:00
Christopher Speller 686c2fbab7 Structured logging (#8673)
* Implementing structured logging

* Changes to en.json to allow refactor to run.

* Fixing global logger

* Structured logger initalization.

* Add caller.

* Do some log redirection.

* Auto refactor

* Cleaning up l4g reference and removing dependancy.

* Removing junk.

* Copyright headers.

* Fixing tests

* Revert "Changes to en.json to allow refactor to run."

This reverts commit fd8249e99b.

* Fixing some auto refactor strangeness and typo.

* Making keys more human readable.
2018-04-27 12:49:45 -07:00
Jesse Hallam 1351874528 improve error handling around invalid Forward80To443 settings (#8496)
* If Forward80To443 is true, but not configured to listen on 443, fail to start the server with an error message.
* If Forward80To443 is false and LetsEncrypt is true, fail to start the server with an error message.
2018-03-23 09:33:50 -07:00
Chris e8943936c5 general cleanup (#8387) 2018-03-07 12:36:40 -06:00
Christopher Speller 838295f82c Fix forward 80 to 443 to not bind on all interfaces. (#8360) 2018-02-23 18:33:36 -05:00
Pierre de La Morinerie 809a16458f Abort on critical error during server startup (#8204)
Only a handful of critical errors are present in the codebase.
They all occur during server startup (in `app.StartServer()`).

Currently, when one of these critical error occurs, it is simpled
mentionned in the logs – then the error is discarded, and the app
attempts to continue the execution (and probably fails pretty quickly in
a weird way).

Rather than continuing operations in an unknow state, these errors should
trigger a clean exit.

This commit rewrites critical startup errors to be correctly
propagated, logged, and then terminate the command execution.
Additionnaly, it makes the server return a proper error code to the
shell.
2018-02-07 02:11:15 -06:00
Pierre de La Morinerie 034dbc07e3 handle RateLimiter initialization errors (#8199)
Previously, an error occuring in NewRateLimiter would return a nil
reference – which would be de-referenced just after, making the server
crash.
2018-02-05 23:27:34 -06:00
Christopher Speller 1262d25473 User based rate limiting (#8152) 2018-01-31 09:49:15 -08:00
Christopher Speller ac2e42a480 Moving to golang.org/x/crypto/acme/autocert for Let's Encrypt functionality. (#8165) 2018-01-30 10:12:42 -08:00
Chris 1ccf093803 origin checker refactor (#7889) 2017-11-22 13:58:03 -08:00
Chris e36ab04416 add error message to forwarding log error (#7857) 2017-11-20 11:20:53 -08:00
Chris 7ed011745a Remove more global refs / state (#7723)
* remove more global refs / state

* fix job enterprise initialization

* fix api4 test compilation

* saml api endpoints fix
2017-10-26 15:21:22 -04:00
Chris 8e19ba029f Reduce utils.Cfg references (#7650)
* app.UpdateConfig method

* test fix

* another test fix

* the config override option as-was is just error prone, remove it for now

* derp
2017-10-18 15:36:43 -07:00
Chris ce314425d1 Fix webconn shutdown race (#7631)
* fix webconn shutdown race

* make sure writePump returns promptly if readPump returns first

* fix app shutdown race

* minor improvement
2017-10-16 14:02:33 -07:00
Chris 34285d8cca parallel tests (#7629) 2017-10-16 11:09:43 -04:00
Christopher Speller 3461a7b207 Add back consumeAndClose functionality. (#7608)
* consume bodies for action button integrations, webrtc gateway, oauth
endpoint

* Fixing a couple more places, switching to io.Copy to ioutil.Discard, adding a comment to help prevent future performance regressions
2017-10-12 08:00:53 -07:00
Chris bff2b5e735 Miscellaneous app cleanup (#7594)
* app cleanup

* whoops, forgot a file

* some minor cleanup

* longer container deadline

* defensive checks
2017-10-09 14:59:48 -07:00
Chris 0f66b6e726 store/sqlstore cleanup and postgres tests (#7595)
* sqlstore cleanup / postgres tests

* remove stopped containers

* cmd/platform compile fix

* remove test-postgres target from makefile
2017-10-09 13:16:14 -04:00
Chris 5e69ce099f Goroutine wranglin (#7556)
* goroutine wranglin

* synchronize WebConn.WritePump
2017-10-03 10:53:53 -05:00
Chris 9bc7af0c57 Don't use global app for api / api4 tests (#7528)
* 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
2017-10-02 09:50:56 +01:00
Chris 8c80cdde38 remove remaining Global() calls (outside of tests) (#7521) 2017-09-28 00:52:34 +08:00
Chris 49fe5fbf3d Move sql store code into store/sqlstore package (#7502)
* move sql store code into store/sqlstore package

* move non-sql constants back up to store

* fix api test

* derp
2017-09-25 10:11:25 -04:00
Chris 266ff86702 remove more global refs (#7480) 2017-09-21 10:13:34 +01:00
Chris 402491b7e5 PLT-7407: Back-end plugins (#7409)
* 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
2017-09-11 10:02:02 -05:00
Christopher Speller 29fca51821 Renaming repo 2017-09-06 23:11:59 -07:00
Chris 1adfd0e9be app type transition (#7167) 2017-09-06 17:12:54 -05:00
Joram Wilander 4c522155da Temporarily place plugins into E20 (#7370) 2017-09-05 11:35:07 +01:00
Joram Wilander 899ab31fff Implement experimental REST API endpoints for plugins (#7279)
* 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()
2017-09-01 09:00:27 -04:00
Saturnino Abril 651dd33b29 set to default value with config is missing (#7320) 2017-08-30 13:54:16 -04:00
Chris 5c3c909c85 Tweak WebSocket header-processing (#6929)
* fix

* consolidate code
2017-07-13 14:02:33 -07:00
Christopher Speller 9659a6da06 Stage 1 of caching layer. Framework (#6693) 2017-06-27 08:02:08 -07:00
Corey Hulen b9e57591bf Writing message to our logs when system panics and recovers (#6458) 2017-05-24 10:55:52 -04:00
Harrison Healey fb6f2a123c PLT-5860 Updated copyright date (#6058)
* PLT-5860 Updated copyright date in about modal

* PLT-5860 Updated copyright notice in JSX files

* PLT-5860 Updated copyright notice in go files

* Fixed misc copyright dates

* Fixed component snapshots
2017-04-12 08:27:57 -04:00
Joram Wilander 97558f6a6e PLT-4938 Add app package and move logic over from api package (#4931)
* Add app package and move logic over from api package

* Change app package functions to return errors

* Move non-api tests into app package

* Fix merge
2017-01-13 13:53:37 -05:00