Commit Graph

113 Commits (717fd1ed3ffadd737409ece5ec40217c1f90ac13)

Author SHA1 Message Date
Chris Goller 3d8de02463 Fix go vet commiting of NewListener 2017-02-12 21:48:12 -06:00
Chris Goller df65557412 Add TLS w/ env vars TLS_CERTIFICATE/TLS_PRIVATE_KEY 2017-02-12 21:33:27 -06:00
Chris Goller 996b46d015 Add HSTS handler to add headers for upcoming TLS support 2017-02-12 18:21:49 -06:00
Chris Goller 97a2206869 Update chronograf sources response 2017-02-12 16:38:05 -06:00
Chris Goller 6d495b1d1d Fix swagger JSON formatting 2017-02-10 13:57:12 -06:00
Chris Goller a0352b1e7d Add disable and enable to kapacitor alerts 2017-02-10 13:48:42 -06:00
Chris Goller ffd743a1b0 Merge pull request #859 from influxdata/feature/server-gzip
Add gzip compression to all of our server responses and caching for assets
2017-02-10 10:27:21 -06:00
Chris Goller ce5e104a59 Fix url_prefixer to write asset headers 2017-02-09 17:13:34 -06:00
Chris Goller d1114ee76d Add gzip compression to all of our server respones 2017-02-09 14:35:38 -06:00
Chris Goller 4d37da2d0a Update swagger spec to include alertNodes for kapacitor 2017-02-09 00:50:59 -06:00
Chris Goller 926dfae5c8 Add kapacitor alert node structs 2017-02-08 22:18:23 -06:00
Chris Goller a4aa900bf8 Merge pull request #852 from influxdata/feature/kapacitor-detail-field
Update kapacitor alert rule to have detail field
2017-02-08 20:50:48 -06:00
Chris Goller 7d0b7781d4 Update kapacitor alert rule to have detail field 2017-02-07 17:09:14 -06:00
Chris Goller 75cd6cebff Remove explorations from backend server 2017-02-01 15:09:02 -06:00
Chris Goller 2290d5b6de Add BASE_PATH env var to -basepath cli option 2017-01-28 10:47:30 -06:00
Chris Goller 97ee53f49d Update dashboard swagger definition to use LayoutQuery instead of a string 2017-01-27 19:08:40 -06:00
Tim Raymond c7f31a5074 Fix typo
Spelling is hard.
2017-01-27 19:31:57 -05:00
Tim Raymond 2102b779f4 Merge branch 'master' into feature/tr-host-under-path
Conflicts:
  - CHANGELOG.md
2017-01-27 19:30:43 -05:00
Tim Raymond 99bd4f369a Remove extraneous lines
One of these was from experimental work during working on this feature.
The other is just... well, extra.
2017-01-27 19:27:59 -05:00
Tim Raymond 0c02aeedc0 Make URLPrefixer use the chronograf.Logger
We have a unified structured logging package in Chronograf, and this
should use it.
2017-01-27 19:24:51 -05:00
Tim Raymond 2fed6f92be Move Basepath prop to better match style
Since this is a flag that is being accepted by the application, it makes
sense to group it with the other flags. Also, the `json` struct tag was
a remnant from an earlier attempt at implementing this feature, and is
no longer necessary.
2017-01-27 19:15:56 -05:00
Tim Raymond 2b6a05cf6f Move URLPrefixer setup to mux, add default
URLPrefixer had nothing to do with assets, so it actually belongs up in
the mux, where we're assembling handlers together across the
application.

Also, the setup was painful to look at, and others will probably use the
same `Attrs`, so a `NewDefaultURLPrefixer` was added to spawn a prefixer
with only a prefix and a next handler.
2017-01-27 19:14:21 -05:00
Jade McGough f6fe95827d Merge pull request #808 from influxdata/feature/614-dashboard-view
Feature/614 dashboard view
2017-01-27 15:49:14 -08:00
Tim Raymond 8425d2c3ed Setup front-end to work with a basepath
React-router and also the client that we use in the frontend need to be
informed on how to access the Chronograf backend when it's being hosted
on a route other than /. To accomplish this, a data attribute is written
into the `<div>` which serves as our React root. We then make the React
router aware of this if it's set and also pass the prefix to axios (our
front end HTTP client) by way of window.

Originally, it was desired to have the basepath accessible via an API,
but this proved to be impossible because to access that API, the front
end would already need to know the basepath. The technique we went with
was arrived at independently, but is also used by Jupityr notebooks
which encountered the same problem.
2017-01-27 17:00:08 -05:00
Tim Raymond 2dfc52069e Improve docs on URL Prefixer
These were a little too brief. Hopefully these make it clearer to others
2017-01-27 17:00:08 -05:00
Tim Raymond 17ca110a11 Make basepath configureable
/chronograf was hard-coded for developing this feature. This adds a
--basepath flag that lets users configure what the basepath will
actually be
2017-01-27 17:00:08 -05:00
Tim Raymond 14437af28d Make prefixer support multiple tags, chunked enc
The prefixer needs to not only replace `src="` attributes as it
currently does because that is not the only place a relative URL can
appear. It needs to also prefix URLs found in CSS which can also come
from the downstream http.ResponseWriter.

This adds support for an arbitrary list of patterns that will cause the
prefixer to insert its configured prefix. This is currently set to look
for `src`, `href`, and `url()` attributes.

Also, because we are modifying the stream, we need to suppress the
Content-Length generated by any downstream http.Handlers and instead
enable Transfer-Encoding: chunked so that we can stream the modified
response (we don't know apriori how many times we'll perform a
prefixing, so we can't calculate a final Content-Length). This is
accomplished by duplicating the Headers in the wrapResponseWriter that
is handed to the `Next` handler. We also handle the chunking and
Flushing that needs to happen as a result of using chunked transfer
encoding.
2017-01-27 17:00:08 -05:00
Tim Raymond 4064817ac8 Add URL Prefixer
In order to support hosting chronograf under an arbitrary path[1], we
need to be able to rewrite all the URLs that are served in HTML and CSS.
Take, for example, the scenario where Chronograf is to be hosted under
`/chronograf` using Caddy and this example Caddyfile:

```
localhost:2020
gzip
proxy /chronograf localhost:8888 {
  without /chronograf
}
```

Chronograf will not load properly when visiting
`http://localhost:2020/chronograf` because the requests for CSS, and
fonts will go to `http://localhost:2020/app-somegianthash.js` when they
should go to `http://localhost:2020/chronograf/app-somegianthash.js`.
This is the essence of issue #721.

To solve this, we add a URLPrefixer http.Handler, that acts as a
middleware. It inserts itself between any upstream handlers, and the
handler that was passed to it as its `Next` parameter and searches for
`src="` attributes. Upon discovering one of these attributes, it writes
the detected attribute and then the configured prefix. It then continues
writing the stream to the upstream http.ResponseWriter until
encountering another attribute until EOF.
2017-01-27 17:00:08 -05:00
Jade McGough 203088830c fix dashboards routes 2017-01-27 04:59:13 -08:00
Jade McGough 626ee4081e fix bugs 2017-01-27 04:51:31 -08:00
gunnaraasen 4bef66aff7 Add X-Chronograf-Version header 2017-01-23 23:29:12 -08:00
Chris Goller c287f9d244 Fix kapacitor auth with basic auth in header
Proxying the basic auth via URL path was not working, so, this
places it directly into the header.
2017-01-10 18:51:25 -06:00
Chris Goller 587c87fd9d Merge pull request #738 from influxdata/feature/go-orphan-kapacitor
Update source remove to also remove kapacitor and rules resources
2017-01-09 15:49:05 -06:00
Chris Goller ed4498b07e Merge pull request #733 from influxdata/feature/go-oauth-gh-orgs
Add Github organization restriction to authentication
2017-01-06 13:27:25 -06:00
Hunter Trujillo 935fc66cab Clarifying operator values. 2017-01-06 10:45:54 -07:00
Chris Goller 636ebedf22 Add Github organization restriction to authentication 2017-01-06 11:39:20 -06:00
Chris Goller 17f3992813 Merge pull request #728 from influxdata/feature/go-insecure-tls
Add insecureSkipVerify option to source to accept all influxdb certs
2017-01-05 16:08:58 -06:00
Chris Goller 834f9919e5 Fix formatting of swagger.json 2017-01-05 15:59:46 -06:00
Chris Goller 2281f4cfa0 Update removal of sources to include removing kapacitor and rules resources 2017-01-05 14:47:44 -06:00
Chris Goller 6354dcb5c5 Update kapacitor alert rules to accept inside and outside range 2017-01-04 22:20:12 -06:00
Chris Goller 8e0376cec4 Add insecureSkipVerify option to source to accept all influxdb certs
The insecureSkipVerify defaults to false, but when true, instructs
the server to accept any certificate coming from the InfluxDB server.
2017-01-04 19:35:07 -06:00
Mark Rushakoff eda39410e7 Miscellaneous lint cleanup 2016-12-20 12:59:56 -08:00
Chris Goller ca377f87d2 Merge pull request #700 from influxdata/jz-add-uptime
Add server uptime reporting
2016-12-19 16:10:14 -06:00
Jack Zampolin 502887417f Address PR comments 2016-12-19 13:29:33 -08:00
Jack Zampolin ca2ce3ffb6 Add server uptime reporting 2016-12-19 12:09:59 -08:00
Jade McGough 9e71c7c8cb Merge pull request #691 from influxdata/feature/dashboards
Feature/dashboards
2016-12-15 13:54:23 -08:00
Jade McGough 59146d0637 fix json decoding 2016-12-15 13:53:43 -08:00
Jade McGough 7a8d0ba4a5 clean up pointer usage 2016-12-15 13:37:11 -08:00
Jade McGough 45c377e5a2 add dashboard validation 2016-12-15 13:22:32 -08:00
Jade McGough f42f7166f9 fix bugs 2016-12-15 11:27:06 -08:00