Commit Graph

435 Commits (5bb2ac1cf4fd071323cc2361160da354a40a454f)

Author SHA1 Message Date
Nathan Haugo f23351c9ba Update version 2017-10-06 11:38:40 -07:00
Chris Goller 486a5bfb33 Update dashboard cells to have optional data source URI. 2017-10-02 12:50:42 -07:00
Andrew Watkins b66be556ed Update kapacitor links to include tasks and ping paths 2017-09-12 09:23:22 -07:00
Chris Goller a28d3d6466 Update kapacitor AlertRule to containe most Kapacitor Task information 2017-09-09 10:19:52 -05:00
Chris Goller 2128c13163 Update kapacitor rule response with dbrps, various dates, error, and executing. 2017-09-09 10:19:52 -05:00
Chris Goller b29a99a2c7 Update swagger docs with new kapacitor rule fields 2017-09-09 10:19:52 -05:00
Chris Goller 0c2e7f385b WIP 2017-09-09 10:19:52 -05:00
Nathan Haugo e89e8d137b Bump version to 1.3.8.0 2017-09-07 16:29:56 -07:00
Tim Raymond d559acc0e0
Refactor set membership validation
The pattern of using a select with a list of options and a default that
returns an error isn't bad for a one-off validation:

select myProp {
  case "validOption1", "validOption2":
    // no-op
  default:
    panic("invalid!")
}

However, we're doing this multiple times in this method, so it makes
sense to pull this out into a new method to make it clearer what's
happening.

This adds a `oneOf` function that takes some property and a variadic
list of valid options and reports whether or not that property is among
that list.
2017-08-24 15:45:51 -04:00
Tim Raymond e421bf83d4
Add validation around Base and Scale
The Base and Scale options on axes can only be one of two parameters. We
weren't validating that this was the case. This patch ensures that Base
can only ever be "10" or "2", and Scale must be either "linear" or
"log".

Associated test coverage was also added.
2017-08-24 15:37:19 -04:00
Tim Raymond 3b51cb8339
Update Swagger for new axes options
New options were introduced to control things like scale, base, etc. on
axes and these were previously not documented. This adds documentation
of the newly supported parameters by the API.
2017-08-24 14:50:12 -04:00
Nathan Haugo 8eb1e1b1a3 Merge 1.3.7.x 2017-08-23 16:01:30 -07:00
Nathan Haugo 16735c027f Bump to 1.3.7.0 2017-08-23 15:56:00 -07:00
Tim Raymond 2c4d02912d Merge branch 'master' into feature/tr-kapa-rule-pagination 2017-08-23 16:44:59 -04:00
Tim Raymond da55f96f9d
Remove kapacitor mock logic
This logic was originally left in place to help future test writers, but
its presence was vexing because it was not exercised in existing test
cases. It has been commented out should future tests need to leverage
it.
2017-08-23 16:39:12 -04:00
Timothy J. Raymond 50a05c7f6e Merge pull request #1859 from influxdata/feature/tr-layout-cell-axes
Add Axes to Layout Cells
2017-08-16 16:45:26 -04:00
Tim Raymond 886046ed9a
Switch KapacitorRulesGet to use Pagination
Kapacitor responses are paginated, and sometimes users have more than
the default 100 tasks that are returned from Kapacitor. This replaces
the previous Kapa client with one that automatically follows paginated
responses from Kapacitor's ListTasks endpoint and returns the full
response.

Tests for the KapacitorRulesGet endpoint had to be updated because they
did not account for "limit" and "offset", and so led to an infinite
loop with the paginated client. A correct kapacitor backend will not
have this behavior
2017-08-15 17:30:29 -04:00
Tim Raymond d0be50ab37
Add PaginatingKapacitorClient
The kapacitor client used in the kapacitor endpoints is limited to
fetching whatever limit you provide it. If you provide no limit, it
defaults to a limit of 100. We use this default behavior currently.

Some users have more than 100 tasks, so we need a client that's capable
of continually fetching tasks from Kapacitor until there are none left,
and returning the full response to the frontend.

This introduces a PaginatingKapacitorClient which does exactly that.
Also, test coverage was added around the KapacitorRulesGet endpoint,
since it was previously untested.
2017-08-15 16:55:47 -04:00
Timothy J. Raymond 39f40671a9 Merge pull request #1866 from influxdata/bugfix/tr-missing-cell-type
Fix missing cell type
2017-08-14 14:04:36 -04:00
Tim Raymond 45e7bd8662
Fix missing cell type
Because we are now creating new instances of dashboards when we create a
response, it's critical to copy every element of Dashboards from the
previous to the new instance.

We were not previously copying the Type field of cells, so this was
defaulting to the empty string zero value. This patch adds "Type" to the
tests and ensures that it's properly copied
2017-08-14 13:41:31 -04:00
Jared Scheib 812de33be0 Add 'type' to new-sources server flag example 2017-08-11 11:54:16 -07:00
Tim Raymond 5c6c21adf7
Ensure "x", "y", and "y2" axes present
Similar to DashboardCells, this ensures that the "x", "y", and "y2" axes
are always present in a layout's cells.
2017-08-10 13:53:07 -07:00
Tim Raymond 12ea15d356
Add test coverage to /layouts endpoint
In anticipation of adding Axes to cells, I wanted some test coverage to
be in place before I made the change.

This covers the happy path case as well as focusing on individual
applications. To come are focusing on a measurement and a test for when
the store is unavailable.
2017-08-10 13:52:26 -07:00
Tim Raymond 63cddc96e4 Merge branch 'master' into feature/1602-graph-bounds-setting
Also removed LegacyBounds marshaling since it was no longer necessary

Conflicts resolved:
	bolt/internal/internal.go
	bolt/internal/internal.pb.go
	bolt/internal/internal.proto
	bolt/internal/internal_test.go
	chronograf.go
	server/cells_test.go
	server/dashboards_test.go
	server/swagger.json
2017-08-02 11:29:29 -04:00
Tim Raymond 89c0d84a8d
Add Label to DashboardCell Axis
It's useful for the frontend to be able to specify a label on a
particular axis. This adds a property to Axis to facilitate that.
2017-08-02 11:12:47 -04:00
Tim Raymond d08eab7214
Copy missing properties from Dashboards
When creating new dashboards to set defaults, not all properties of the
dashboard were being copied. This ensures that they are so that zero
values are not used for things like the ID and Name.
2017-07-31 17:24:43 -04:00
Tim Raymond 25059c0591
Fix data races in dashboard response construction
Dashboard responses had data races because multiple goroutines were
reading and modifying dashboards before sending them out on the wire.
This patch introduces immutability in the construction of the response,
so that each goroutine is working with its own set of dashboardResponse
structs.
2017-07-31 16:36:20 -04:00
Tim Raymond e5331dc536
Ensure cell bounds come back as empty array
The contract with the frontend states that bounds should come back as an
empty array instead of null when there are no bounds present. We must
explicitly specify []string{} for this to happen.
2017-07-31 16:36:16 -04:00
Tim Raymond 8bd622c491
Enforce presence of "x", "y", and "y2" axes
Certain aspects of the frontend requires the presence of these three
axes, so part of the contract established is that the backend will
always provide them. Since we centralize creation of
dashboardCellResponses, this is where these axes are added to all cell
responses.

Additionally, because there was previously no coverage over the
dashboard cells endpoints, a test has been added to cover the
DashboardCells method of Service.
2017-07-31 16:36:07 -04:00
Tim Raymond 0a042e2e0f
Convert Axis Bounds to []string
Due to various limitations with the previous implementation of Bounds as
a [2]int64{}, we've decided to change this to a []string{}. This will
allow clients to store arbitrary data specifying a bound and interpret
it as they wish.
2017-07-31 16:35:53 -04:00
Chris Goller 6bc4cf36d1 Release 1.3.5.0 2017-07-25 15:08:02 -05:00
Chris Goller 9abbcf6dc0 Update influx Authorization Headers for write and query path 2017-07-25 12:13:46 -05:00
Tim Raymond 2684d73d07 Enforce only "x", "y", and "y2" axes
For the forseeable future, we will only be using the "x", "y", and "y2"
axes, even though the underlying serialization can support arbitrary
axes (for the future).

This ensures that only "x", "y", and "y2" axes are present and updates
the Swagger docs to reflect that fact
2017-07-24 14:06:15 -04:00
Tim Raymond bbcce5a6e5 Update Swagger with Cell Axes
Cells now have axes which represent their visualization's viewport. This
updates the Swagger documentation to reflect this.

Things to be aware of
=====================

The form of "axes" is that of a map<string,object>, which is represented
in Swagger by an "additionalProperties" key (search for "string to model
mapping" here: https://swagger.io/specification/).
2017-07-24 14:03:48 -04:00
Jared Scheib 918dff33b7 Merge pull request #1724 from influxdata/feature/pushover_support-1680
Add Pushover alert support
2017-07-21 14:04:22 -07:00
Jared Scheib c6204d6114 Clarify BoltPath server flag help text with default path 2017-07-21 11:41:54 -07:00
Tim Raymond ead7c103ba
Enforce only "x", "y", and "y2" axes
For the forseeable future, we will only be using the "x", "y", and "y2"
axes, even though the underlying serialization can support arbitrary
axes (for the future).

This ensures that only "x", "y", and "y2" axes are present and updates
the Swagger docs to reflect that fact
2017-07-21 12:09:49 -04:00
Jared Scheib 1012dac41a Merge branch 'master' into feature/pushover_support-1680 2017-07-20 16:23:54 -07:00
Tim Raymond bab28c7271
Update Swagger with Cell Axes
Cells now have axes which represent their visualization's viewport. This
updates the Swagger documentation to reflect this.

Things to be aware of
=====================

The form of "axes" is that of a map<string,object>, which is represented
in Swagger by an "additionalProperties" key (search for "string to model
mapping" here: https://swagger.io/specification/).
2017-07-19 11:18:01 -04:00
Chris Goller c2adec4709 Add JWT shared secret influxdb auth
Refactor --new-sources to simplify adding shared secrets
2017-07-19 01:39:06 -05:00
Jared Scheib ce5decdf4b Add Pushover to swagger 2017-07-14 16:55:59 -07:00
Hunter Trujillo 44181d540e I think this goes here in the swagger doc... 2017-07-10 16:18:05 -06:00
Jared Scheib 7e8018782e Merge branch 'master' into feature/persist_datasource_flag-1555 2017-07-07 14:45:00 -07:00
Tim Raymond d9bfa23660 Fix bad merge conflict resolution
Duplicate definitions of the same property were present because of
confusing placement of merge conflict markers.
2017-07-07 16:59:19 -04:00
Tim Raymond 6be0cafd3a Merge master into feature/tr-auth0-organizations
Conflicts were the addition of CLI flags from a concurrent branch.
2017-07-07 16:18:01 -04:00
Jared Scheib 0855fc434b Add test for creating NewSources via server flag
Move TestLogger to mocks

Signed-off-by: Tim Raymond <tim@timraymond.com>
2017-07-07 12:56:12 -07:00
Jared Scheib 965d72ea3f Correct comment 2017-07-06 15:04:04 -07:00
Jared Scheib a8c816085e Refactor process new sources into named func 2017-07-06 14:27:14 -07:00
Jared Scheib 1c72fd338b Move NewSources input prep to server
Signed-off-by: Tim Raymond <tim@timraymond.com>
2017-07-06 14:12:07 -07:00
Jared Scheib 8707659688 Allow server to run even if NewSources errors out 2017-07-06 12:05:05 -07:00
Jared Scheib 3d6048be2e Update error messages to use plural 2017-07-06 11:48:14 -07:00
Jared Scheib 1ca0315f67 Add sample usage
Make flag identifier plural since JSON array of objects
2017-07-06 11:44:42 -07:00
Jared Scheib eb762dda86 Successfully persist new source and kapa via server flag
Move this to after BoltDb connection is opened
2017-07-05 18:12:08 -07:00
Tim Raymond fc6e3f87ec Parse JSON for --new-source into struct
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-07-05 15:00:59 -07:00
Jared Scheib 6bc6324eb6 Add pseudocode outline for parsing and persisting source and server
Signed-off-by: Tim Raymond <tim@timraymond.com>
2017-06-29 15:33:22 -07:00
Jared Scheib 8fa81c9541 Group flags more semantically consistently 2017-06-29 14:27:30 -07:00
Jared Scheib 49eaccda81 Group flags more semantically consistently 2017-06-29 14:25:41 -07:00
Jared Scheib 079ca3c235 Improve description of custom link use, and give example (#1676) 2017-06-28 14:41:13 -07:00
Tim Raymond 734414c479 Support Organizations in Auth0
It's useful for operators to classify users into separate groups which
we have termed "organizations". For other OAuth providers, the notion of
an organization typically fell along company lines. For example,
MegaCorp might have a "MegaCorp" GitHub organiztion, and all email
addresses would have the domain "megacorp.com".

Auth0 is slightly different in that MegaCorp would likely run their own
Auth0 provider for their internal services, so "organizations" in Auth0
are no longer synonymous with "large organizations" (or companies).
Instead, Auth0 organizations could be used to restrict access to
Chronograf instances based on team membership within an organization.

To make use of Auth0 organizations, operators should modify users'
app_metadata to include the key "organization". Its value should be the
organization which that user belongs to. This can be done automatically
through arbitrary rules using Auth0 Rules.
2017-06-28 16:29:52 -04:00
Jared Scheib be1b7dfcdf Clarify error output for missing Name or URL 2017-06-27 13:40:26 -07:00
Jared Scheib 21fab035c2 Error out server if CustomLinks invalid on run
Signed-off-by: Chris Goller <goller@gmail.com>
2017-06-27 13:31:35 -07:00
Jared Scheib c637e5407d Refactor links_test to use table test and cleaner error check
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-06-27 13:30:34 -07:00
Jared Scheib 2e93ad5230 Conserve memory allocation for customLinks slice
Signed-off-by: Chris Goller <goller@gmail.com>
2017-06-27 12:00:05 -07:00
Jared Scheib 3fea7501d8 Remove omitempty from CustomLink definition since should never b 2017-06-27 11:02:28 -07:00
Jared Scheib 48e90fcd0a Return and test for nil on invalid NewCustomLink input 2017-06-27 10:59:04 -07:00
Jared Scheib 578bf89c97 Pass through CustomLinks error message directly 2017-06-26 18:02:22 -05:00
Jared Scheib 604faea32d Add full test coverage for NewCustomLinks 2017-06-26 17:18:53 -05:00
Jared Scheib ca239d037d Move external links structs to links.go 2017-06-26 16:13:23 -05:00
Jared Scheib 81ada5315c Only test one CustomLink to avoid map key order failing test 2017-06-26 16:12:54 -05:00
Jared Scheib 6e59d8ce34 Add custom links to routes test 2017-06-26 16:00:27 -05:00
Jared Scheib a723ef8ae1 Use appropriate error when NewCustomLinks fails 2017-06-26 15:44:56 -05:00
Jared Scheib 6dedf77add Comment CustomLink struct 2017-06-26 15:43:03 -05:00
Jared Scheib ede2476837 Change 'Url' prop key to 'URL' to satisfy Go convention 2017-06-26 15:42:36 -05:00
Jared Scheib 799dc64ea4 Update comment for ServeHTTP to mention External Links 2017-06-26 15:35:42 -05:00
Jared Scheib 90aaa8104d Refactor CustomLinks transform into routes.go and new links.go
Rename generateCustomLinks to NewCustomLinks
Handle error from NewCustomLinks per app convention
2017-06-26 15:30:33 -05:00
Jared Scheib 1b3c00d07a Add 'custom' prop and example to /chronograf/v1 in swagger docs 2017-06-26 11:56:05 -07:00
Jared Scheib 7d6eaf925a Generate custom links from env var and multiple CLI flags
Signed-off-by: Chris Goller <goller@gmail.com>
2017-06-26 11:48:47 -07:00
Jared Scheib 613dcc64ac WIP Parse custom links from CLI 2017-06-23 15:12:02 -07:00
Tim Raymond 07a3dceb2f Add Auth0 to supported OAuth2 providers
Auth0 is an OpenID Connect compliant OAuth2 provider, so we're able to
re-use the generic OAuth2 provider to implement it. The routes required
by Auth0 have been hardcoded for user convenience.

Also, Auth0 requires users to register a subdomain of auth0.com when
signing up. This must be provided to chronograf through the
`--auth0-domain` parameter (or `AUTH0_DOMAIN` ENV). This is **distinct**
from the `PUBLIC_URL`. For example, for a Chronograf hosted at
`http://www.example.com`, and an Auth0 domain of
`http://oceanic-airlines.auth0.com`, a client-id of `notpennysboat` and a
client-secret of `4-8-15-16-23-42`, the command line options would look
like:

```
chronograf \
  --auth0-domain=http://oceanic-airlines.auth0.com \
  --auth0-client-id=notpennysboat \
  --auth0-secret=4-8-15-16-23-24
  --public-url=http://www.example.com
  -t `uuidgen`
```
2017-06-21 10:20:46 -04:00
Timothy J. Raymond 21c3f78fe3 Merge pull request #1619 from pragkent/generic-oauth-redirect-url
Add redirect url to generic oauth
2017-06-21 10:19:03 -04:00
Kent Wang fdcbd6badc Fix generic redirect URL 2017-06-21 12:19:21 +08:00
Kent Wang 55093d720d Replace string concat to path.Join 2017-06-18 10:47:02 +08:00
Kent Wang 25958a017e Don't pass RedirectURL if PublicURL not set 2017-06-18 10:40:07 +08:00
Jared Scheib 2f4695fa0b Merge branch 'master' into feature/status_page-1556 2017-06-16 17:52:16 -07:00
Jared Scheib 06dd8a7a3d Update default JSON feed URL to final, secure link 2017-06-16 14:23:46 -07:00
Kent Wang b4627983b9 Add redirect url to generic oauth 2017-06-16 17:35:57 +08:00
Jared Scheib 2ff86cf15e Update swagger docs for external and statusFeed props 2017-06-15 18:23:42 -07:00
Jared Scheib c8c3f6108c Comment new StatusFeed member of AllRoutes 2017-06-15 17:55:46 -07:00
Jared Scheib 7e359239e5 Refactor statusFeedURL to be set in CLI 'default'
Reverts to a clean separation of concerns between mux.go vs AllRoutes
AllRoutes now expects a StatusFeed url directly
2017-06-15 13:51:22 -07:00
Jared Scheib 2c5e7ef0d6 Add test for all routes with ExternalLinks 2017-06-14 16:22:30 -07:00
Jared Scheib f4ea8fc7b5 Remove unused fragment 2017-06-14 13:51:08 -07:00
Tim Raymond c5872bba41 correct TemplateVar collection type in Queries 2017-06-14 10:52:29 -04:00
Jared Scheib 8af550fa6f Add default InfluxData JSON feed url 2017-06-13 19:23:52 -07:00
Jared Scheib 25bde527a6 Add status-feed-url build flag within new externalLinks prop in AllRoutes 2017-06-13 13:40:20 -07:00
Tim Raymond 45402f476d Add support for :autoGroupBy: template variable
This adds support for dynamic template variables that compute something
about themselves given some additional context.
2017-06-13 14:59:56 -04:00
Hunter Trujillo 816a8b9226 Update swagger docs. 2017-06-12 15:30:10 -06:00
Regan Kuchan 6da83b8629 Update version and changelog for v1.3.2.0 2017-06-02 13:34:23 -06:00
Jared Scheib 6806f62ac0 Refactor /chronograf/v1 to not return logoutLink if not using auth
Use logoutLink to determine if logout menu item is shown

Signed-off-by: Chris Goller <güllère@gmail.com>
2017-05-30 17:34:55 -07:00
Chris Goller 7122c6a19d Add kapacitor rule validation on update 2017-05-25 12:10:25 -05:00
Chris Goller 8d8ffd2bf5 Fix kapacitor PUT/POST returning request rather than response 2017-05-24 15:30:45 -07:00