Commit Graph

1665 Commits (ff6b55aca4d7ccba78e31582fae77e8f2201d983)

Author SHA1 Message Date
Nathaniel Cook ef9c26391c feat: add errors to http logging 2018-07-31 14:34:55 -06:00
Nathaniel Cook 1ef9de6aed feat: Add optional http logging to handler 2018-07-30 16:16:37 -06:00
Iris Scholten ec920cbc44
Merge pull request #471 from influxdata/feature/ping
feat(http): Add /ping endpoint to fluxd
2018-07-25 15:06:51 -07:00
Iris Scholten f70a4553bf feat(http): Add /ping endpoint to fluxd
Co-authored-by: Chris Goller <goller@gmail.com>
Co-authored-by: Alirie Gray <alirie.gray@gmail.com>
2018-07-25 12:21:59 -07:00
Andrew Watkins 93ca5c9f76 chore(chronograf): Get Chronograf to "work" as in 1.6.x (w/o Kapacitor)
Co-authored-by: Andrew Watkins <andrew.watkinz@gmail.com>
Co-authored-by: Michael Desa <mjdesa@gmail.com>
2018-07-24 15:13:08 -07:00
Michael Desa cfe907e8f5 feat(chronograf): all chronograf api handler to platform 2018-07-24 15:55:49 -04:00
Michael Desa 390a12bf21 fix(http): fix chronograf build asset paths 2018-07-24 14:25:06 -04:00
Michael Desa 7340b60840 feat(http): create asset handler for serving chronograf assets
Co-authored-by: Michael Desa <mjdesa@gmail.com>
Co-authored-by: Andrew Watkins <andrew.watkinz@gmail.com>
2018-07-24 14:13:47 -04:00
Nathaniel Cook d568d7fd01 feat: Use DBRPMappings in 1.x read path 2018-07-18 09:46:57 -06:00
Nathaniel Cook 2fe60c3ce2 fix: Defer writing HTTP headers in query service
This makes it so we can encode errors in HTTP headers so long as the
encoder did not write anything.

This also changes the behavior to encode the stats trailer even in the
event of an error.
2018-07-17 13:43:20 -06:00
Nathaniel Cook 85b7d36147 feat: Add query statistics
Introduces the Statisticser interface which ResultIterators may
implement.

The HTTP implementation uses HTTP trailers to preserve the statistics.
This way we do not need to have all encoders and decoders support
statistics.
2018-07-17 09:16:27 -06:00
Mark Rushakoff a1bf6856fc chore(http): integrate with prom.Registry 2018-07-11 16:54:23 -07:00
Nathaniel Cook b63394da0a fix(errors): Update Fluxd errors
This PR also completes some TODOs about kit/errors and http/errors.
2018-06-28 16:56:35 -06:00
Nathaniel Cook 83282276ae Merged pull request #183 from influxdata/nc-http-status
fix(http): Fix status class when WriteHeader was not called
2018-06-28 16:22:12 -06:00
Nathaniel Cook 541a7561de fix(http): Fix status class when WriteHeader was not called 2018-06-28 13:13:32 -06:00
Jonathan A. Sternberg d62b9d3b28
Merge pull request #119 from influxdata/js-transpiler-options
feat(query/influxql): expose default database and retention policy for transpiler
2018-06-27 12:29:55 -05:00
Nathaniel Cook f128074458 feat(query): Change Encode interface to return bytes written 2018-06-27 10:31:04 -06:00
Jonathan A. Sternberg 2388d95949 feat(query/influxql): expose default database and retention policy for transpiler
The influxql transpiler can now be configured with a default database
and retention policy.
2018-06-27 10:23:37 -05:00
Jade McGough a88765bf95 feat(platform/task): add organization to tasks 2018-06-26 14:52:01 -07:00
Chris Goller 99e069f5be
Merge pull request #156 from influxdata/feature/flux-swagger
Feature/flux swagger
2018-06-25 10:12:24 -05:00
Jade McGough c5f829591b fix(http): prevent creation of nameless organizations 2018-06-22 11:18:17 -07:00
Chris Goller 448a6cb8a3 feat(http): specify empty array as default annotations 2018-06-21 16:06:24 -05:00
Chris Goller b2916c1f3f feat(http): add lengths and default values to dialect 2018-06-21 16:05:56 -05:00
Chris Goller 8434ee7a38 feat(http): add default response to flux query 2018-06-21 16:05:05 -05:00
Chris Goller ee523a5e6d feat(http): add swagger documentation for flux queries 2018-06-20 13:45:37 -05:00
Chris Goller ae1b03eeb9 feat(http): fix typos in query definition 2018-06-19 20:33:17 -05:00
Chris Goller 34c67c11f7 feat(http): add swagger definitions for influxql query 2018-06-19 20:33:17 -05:00
Jade McGough fe17091251 feat(http): add authorizations to swagger 2018-06-19 14:59:08 -07:00
Jonathan A. Sternberg 6aa578c7f7
Merge pull request #31 from influxdata/js-transpiler-ping
feat(http): add a /ping endpoint to the transpiler
2018-06-19 15:47:04 -05:00
Jade McGough a0dca5de04 feat(http): add owners to swagger 2018-06-18 09:38:37 -07:00
Jade McGough c0018b31f0 feat(http): move run id to path for logs 2018-06-14 17:06:44 -07:00
Jade McGough 44df62891c fix(http): use task id from path, not params
Squashed commit - includes fixes for comments on PR.
2018-06-14 17:05:41 -07:00
Jade McGough d756083890 feat(http): add endpoints for runs and logs 2018-06-14 17:05:32 -07:00
Jade McGough e68b635402 feat(http): add single task http handlers 2018-06-14 16:56:27 -07:00
Jade McGough 057161bdc0 feat(http): add http service for tasks 2018-06-14 16:56:27 -07:00
Jonathan A. Sternberg 2af6c3dadf feat(http): add a /ping endpoint to the transpiler
This will match the /ping endpoint from the influxdb 1.x httpd service.
This endpoint is used by many of the clients that use the query service
and it will also be helpful for testing that the transpiler service is
up and working.

In the future, we will add the appropriate health endpoint that is
standard for 2.0. But, for the best compatibility, we have to return
something viable for 1.x clients.
2018-06-12 16:01:51 -05:00
Nathaniel Cook 54a81a0c51 Merged pull request #113 from influxdata/nc-ifql-flux
chore(ifql): Rename IFQL to Flux
2018-06-11 15:19:42 -06:00
Jonathan A. Sternberg e63498e217 fix(http): use a duration literal for the server's shutdown timeout
This follows the logging style guide more correctly.
2018-06-11 12:39:06 -05:00
Nathaniel Cook d1ca38c71f chore(ifql): Rename IFQL to Flux 2018-06-11 09:26:10 -06:00
Kelvin Wang 22a63de92a fix(http): fix auth header 2018-06-04 15:26:50 -07:00
Michael Desa d0a2f84c07 feat(platform): add dashboards service
feat(platform): add dashboard service interface and associated types

feat(bolt): add bolt implementation ofplatform dashboard service

feat(http): add dashboard http handler and http implementation dashboard service

feat(cmd/idpd): use bolt dashboard service in idpd

test(testing): add conformance test for dashboard service

test(bolt): ensure conforms dashboard service conforms to tests

fix(platform): rename DashboardContents to DashboardCellContents in test

fix(bolt): correct mispelled comments
2018-06-04 08:26:19 -07:00
Nathaniel Cook 555ec3e5ae fix(http/transpiler): OrgID was being dropped 2018-05-30 13:57:56 -06:00
Jade McGough 6e7a1296a2
feat(http): add swagger docs for tasks 2018-05-29 16:25:27 -07:00
Jonathan A. Sternberg bde1a71bab fix(http): remove the orgID parameter from the transpiler handler
The /query endpoint didn't have an orgID parameter so we can't have one
in the transpiler endpoint. This removes the parameter and replaces it
with a command line parameter that sets which organization we are using
for querying ifql.
2018-05-29 11:01:46 -05:00
Jonathan A. Sternberg 911f053dd6 fix(http): keep the http response body open until the result has been read
This modifies the `MultiResultDecoder` interface to accept an
`io.ReadCloser` so the `ResultIterator` can close the `io.Reader`
instead of doing it through a defer call. It then makes it so the
`Cancel()` method will close the reader or the reader will be
automatically closed when `More()` returns false.
2018-05-25 15:03:52 -05:00
Nathaniel Cook 99f4e4a8b4 fix(query/csv): Encode result iterator errors
This change also adds Name() to the Result interface to allow for
correct MultiResultEncoding.
2018-05-24 16:38:50 -06:00
Jonathan A. Sternberg e18879370b feat(http): perform error handling in the transpiler and the query service
The query service now handles some errors (not all) from the ifqld
service. This way, the transpiler, which uses the query service, can
report when it encounters an error from ifqld.

The transpiler will now correctly return errors in the JSON response.
2018-05-24 17:14:16 -05:00
Jonathan A. Sternberg a7d5a89844
Merge pull request #36 from influxdata/js-http-error-handling
feat(http): add a utility function for reading http errors
2018-05-23 13:42:07 -05:00
Jonathan A. Sternberg 48ece5136f feat(http): add a utility function for reading http errors
This also modifies the http error encoder to not include the reference
code in the `X-Influx-Error` message so it only includes the text.
2018-05-23 13:29:48 -05:00
Jonathan A. Sternberg eb83898c73 feat(cmd/transpilerd): follow the logging style guide for transpilerd
Introduce logging into the http server implementation for when the
server is shutting down and reporting when we receive a signal for a
hard shutdown.
2018-05-23 12:06:09 -05:00
Jonathan A. Sternberg 0cc2440c1f
Merge pull request #30 from influxdata/js-transpiler-shutdown
feat(cmd/transpilerd): update transpilerd to use http server package
2018-05-23 12:05:54 -05:00
Michael Desa 09b2bf2b71
Merge pull request #18 from influxdata/md-misc-fixes
[WIP] Use correct query param and update authorization tests
2018-05-23 10:47:02 -04:00
Jonathan A. Sternberg d8e4f4f2e0 feat(cmd/transpilerd): update transpilerd to use http server package
The http package now contains a server that handles signals and proper
shutdown procedure. It has now been updated to use it.

The http package has also added a `ListenAndServe` convenience function
that is similar to the `net/http` one, but also takes in a logger and
will automatically use the most common signals when running an http
server.
2018-05-23 09:27:17 -05:00
Jonathan A. Sternberg 68ee1acd89 feat(http): add common code for running an http server
It handles graceful termination by listening to signals which will be
particularly useful for commands where the sole purpose is to run an
http server.
2018-05-23 08:51:13 -05:00
j. Emrys Landivar (docmerlin) 85c13d5f12 enable vet 2018-05-22 17:05:17 -05:00
Michael Desa d907373d03 fix(http): use name query parameter instead of org in org routes 2018-05-22 13:50:34 -04:00
Jonathan A. Sternberg 71986589fa migrate(cmd/transpilerd): migrate the transpiler and its http handler to platform 2018-05-22 11:13:30 -05:00
Nathaniel Cook affc7e3976 move types around to avoid cyclic imports 2018-05-21 17:02:42 -06:00
Nathaniel Cook 20345b8701 rewrite imports 2018-05-21 15:20:06 -06:00
Michael Desa f654b59662 feat(platform): add boltdb implementation of services
feat(platform): add id to authorization

feat(platform): add user arg to CreateAuthorization method on auth svc

migrate(platform): move idp command to platform directory

This comit did not move the ifql command as it depends on the query
service which has yet to be migrated.

feat(platform): add optional user name to authorization struct

feat(platform): add organization name to bucket struct

Additionally allow filtering buckets by organization name.

feat(prom): ensure that prom auth svc implement base interface

feat(prometheus): add user to create authorization method

feat(prom): drop user string from create authorization

feat(zap): ensure that zap auth svc implements base service interface

feat(zap): add user to create authorization method

feat(zap): drop user string from create authorization

feat(http): add ids to authorization service

feat(http): ensure that http authoriztaion service implements auth svc interface

feat(http): use authorization ids in authorization handler

squash(http): add check for http status accepted in authorization service

feat(http): clean up authorization service and handlers

feat(http): drop user string from create authorization

fix(http): normalize the http authorization service

feat(http): normalize bucket service and handler methods

Additonally, we added support for DELETE bucket

feat(http): add delete user handler

Additionally, there was a bit of general cleanup

feat(http): add delete route for organization handler and service

Did a bit of additional cleanup of the http code.

test(testing): add service conformance tests

test(testing): add organization service conformance tests

test(testing): add conformance test for orgs service

Additionally, there was a bit of cleanup in the users service tests

test(testing): add conformance test for authorizations service

test(testing): update auth tests to validate that user exists

test(testing): update authorization conformance tests with user name

test(testing): update bucket conformance tests to include organizations

feat(bolt): add bolt implementation services

feat(bolt): add bolt implementation of organization service

feat(bolt): add bolt implementation of users service

feat(bolt): add bolt implementation of authorization service

feat(bolt): add user to create authorization method

feat(bolt): drop user string from create authorization

fix(bolt): set user name on authorization after put

feat(bolt): update bucket servie to include organizations

feat(bolt): add dependent destroy of resources

feat(cmd/idpd): use bolt services in platform server

feat(cmd/idpd): use bolt organization service in platform server

feat(cmd/idpd): use bolt users service in plaform server

feat(cmd/idpd): use bolt client as authorization service

feat(cmd/idp): show user name in output of auth sub command

feat(cmd/idp): clean up bucket subcommand of idp command

fix(cmd/idp): normalize idp command output for users

fix(cmd/idp): normalize auth subcommand output

feat(cmd/idp): add support for delete organiztion command

migrate(idp): move ifql subcommand of idp to platform
2018-05-21 10:08:22 -04:00
Nathaniel Cook c0b01f16f8 update transpiler and influxql encoders 2018-05-19 15:28:37 -06:00
Adam 64e3c840ea Relocated several source files from private repo to here. 2018-05-17 11:35:53 -04:00
Michael Desa 3c7ca65c61 fix(http): rename status_response_writer.go to status.go 2018-05-16 11:45:13 -04:00
Michael Desa 8801c288cd feat(http): add platform http handler 2018-05-15 17:22:42 -04:00
Michael Desa eabba6986d migrate(platform): move public dependencies into platform
migrate(context): move context package to platform

migrate(kit/errors): move errors package to platform

migrate(mock): move mock package to platform

migrate(prometheus): move prometheus package to platform

migrate(rand): move rand package to platform

migrate(snowflake): move snowflake package to platform

migrate(testing): move testing package to platform

migrate(zap): move zap package to platform

migrate(http): move http package to platform

migrate(platform): rename base package idpe to platform

git(base): add gitignore

dep: add dependencies

migrate(platform): remove consumer.go

migrate(platform): make secret things private again
2018-05-14 17:12:53 -04:00