Commit Graph

1130 Commits (2710fac45f5b28461eb8dedd4161d5cede623122)

Author SHA1 Message Date
Jade McGough 05f26b0236
Merge pull request #13032 from influxdata/secret-key-links
fix(http): nest secret key response links in swagger
2019-04-01 09:35:28 -07:00
Jade McGough f092a5538a fix(http): start -> started in swagger 2019-04-01 00:46:46 -07:00
Jade McGough d5e9d10e31 fix(http): nest secret key response links in swagger 2019-04-01 00:39:41 -07:00
Jade McGough 5fbed0b6a5
Merge pull request #12978 from influxdata/varible-labels
feat(http): add labels to variables
2019-03-29 17:50:14 -07:00
Jade McGough 079d7f835a fix tests 2019-03-29 17:19:11 -07:00
kelwang 22dd44c4d1
Merge pull request #12955 from influxdata/auth_description_update
feat(kv): add auth description update
2019-03-29 14:08:34 -04:00
kelwang 2f9c0f8ae3
Merge pull request #13017 from influxdata/swagger_variable_map
fix(http): addtional property of variable map
2019-03-29 13:33:45 -04:00
kelwang 1cbfc7320a
Merge pull request #13019 from influxdata/swagger_dashboard_date_time
fix(http): swagger dashboard meta date-time
2019-03-29 13:33:28 -04:00
Kelvin Wang cc23caeb92 fix(http): swagger dashboard meta date-time 2019-03-29 12:21:27 -04:00
Kelvin Wang c5f93a9b9f fix(http): swagger user password reset to 204 2019-03-29 12:09:47 -04:00
Kelvin Wang aefe32d70b fix(http): addtional property of variable map 2019-03-29 12:04:37 -04:00
zhulongcheng 10f79fdb9b fix(http/proto): return 404 if proto not found 2019-03-29 11:19:56 +08:00
Lyon Hill c78344c441
update task schedler to use the new task control service (#12949) 2019-03-28 16:52:25 -06:00
Jade McGough 945569a29d fix botched rebase 2019-03-28 15:42:06 -07:00
Jade McGough d21d96e35b feat(http): add labels to variables 2019-03-28 15:05:13 -07:00
kelwang abbfc17fa2
Merge pull request #12964 from zhulongcheng/docs-var-link
docs(http): add Variable org link
2019-03-28 12:34:12 -04:00
Kelvin Wang a2c0bdbe77 feat(kv): add new update 2019-03-28 11:46:41 -04:00
zhulongcheng e0f2fdbc76 docs(http): add Document links 2019-03-28 15:23:37 +08:00
zhulongcheng 8173087a54 docs(http): add Variable org link 2019-03-28 11:20:59 +08:00
kelwang a64c4fd138
Merge pull request #12246 from zhulongcheng/rm-view
fix(http): remove view service
2019-03-27 20:13:10 -04:00
Jade McGough 7bcff2e973 fix(http): remove newPatchLabelHandler, it should not exist
This was removed in the labels 2.0 rewrite, and looks like it was added back as a regression
2019-03-27 14:31:04 -07:00
Nathaniel Cook ca6f2ad0c6 Merge branch 'master' into flux-staging 2019-03-27 09:42:48 -06:00
Michael Desa 119f113597
Merge pull request #12912 from influxdata/fix/issue#12861
Add check for nil document in post document request
2019-03-26 14:42:16 -07:00
Michael Desa aba40b6131
fix(http): add check for nil document in post document request 2019-03-26 14:11:32 -07:00
kelwang fadb66d4d1
Merge pull request #12748 from influxdata/org_secret_delete
fix(http): fix org secrets delete
2019-03-26 16:12:13 -04:00
Lorenzo Affetti a49bb73c04 chore: update Flux to v0.23.0 2019-03-26 18:04:18 +01:00
kelwang 949d7bc9de
Merge pull request #12801 from influxdata/swagger_password_reset
fix(http): swagger change user pass reset resp
2019-03-26 11:35:06 -04:00
Christopher M. Wolff eb4df57788
test(http): add unit test for proxy query service (#12683) 2019-03-26 06:49:51 -07:00
Christopher M. Wolff 56e688beee
fix(query): add Check method to query service interfaces (#12866)
Fixes influxdata/idpe#2756.
2019-03-25 20:05:44 -07:00
kelwang ffebdf8446
Merge pull request #12796 from influxdata/swagger_write_precison
fix(http): swagger write precision
2019-03-25 15:31:31 -04:00
Kelvin Wang 04fd5f76db fix(http): fix invalid source buckets 2019-03-25 14:03:24 -04:00
kelwang 7ae219ed35
Merge pull request #12794 from influxdata/swagger_label_response
fix(http): fix scraper, buckets label swagger resp
2019-03-25 13:09:12 -04:00
Kelvin Wang b34ce9bfcb fix(http): swagger change user pass reset resp 2019-03-25 12:46:56 -04:00
Kelvin Wang 7f3c8a7d43 fix(http): swagger add template endpoint 2019-03-25 11:24:24 -04:00
Jonathan A. Sternberg 3bff8acd96
fix(http): ignore an empty trailer inside of the proxy query service client (#12834) 2019-03-21 16:30:04 -05:00
Lyon Hill 291319483d
Update task servicetest to move dependency to the new TaskControlService (#12817)
* Update task servicetest to move dependency to the new TaskControlService

closes #12724

We will now have the capability to write new task services that dont have to implement the backend.Store or LogReader or LogWriters
2019-03-21 15:11:22 -06:00
Kelvin Wang 9685318218 fix(http): swagger define security schemes 2019-03-20 18:37:18 -04:00
Kelvin Wang 33325e3e57 fix(http): swagger write precision 2019-03-20 18:02:33 -04:00
Kelvin Wang 923e79d862 fix(http): swagger add get target by id 2019-03-20 17:44:19 -04:00
Kelvin Wang b14b5372bf fix(http): swagger scraper label request 2019-03-20 17:26:40 -04:00
Kelvin Wang beed8f350b fix(http): fix scraper, buckets label swagger resp 2019-03-20 17:18:28 -04:00
Kelvin Wang 05575ebcc9 fix(http): fix telegraf get default swagger 2019-03-20 16:41:55 -04:00
Jorge Landivar e86a7d0a79
Merge pull request #12370 from influxdata/feat/task-delete-options
Feat/task delete options
2019-03-19 16:18:39 -05:00
Kelvin Wang 757ea24779 fix(http): fix org secrets delete 2019-03-19 15:03:30 -04:00
Jade McGough 2753d66be9 update swagger 2019-03-19 11:46:10 -07:00
Jade McGough b49bf9ed09
Merge pull request #12734 from influxdata/scope-labels
Scope labels to organizations
2019-03-19 11:37:44 -07:00
kelwang adfe670099
Merge pull request #12691 from influxdata/swagger_telegraf
fix(http): telegraf swagger issues
2019-03-19 13:53:51 -04:00
docmerlin (j. Emrys Landivar) ea82893abd feat(tasks): remove removable options 2019-03-19 10:24:42 -05:00
Jade McGough 9306fb3f7c pass tests 2019-03-19 07:00:43 -07:00
Jade McGough f488428a32 fix(authorizer): labels can be created if the user has read access to the specified org 2019-03-19 01:56:55 -07:00
Jade McGough 950e496748 fix(label): add organizationID to labels 2019-03-18 23:58:42 -07:00
Mark Rushakoff 92a52e90fa fix(swagger): synchronize permission enum with code 2019-03-18 20:22:19 -07:00
Deniz Kusefoglu 0167a831c9 Remove required label param from Document types 2019-03-18 17:23:11 -07:00
kelwang b879d8ae59
Merge pull request #12677 from influxdata/swagger_resource_buckets
fix(http): change source buckets from slice to obj
2019-03-18 18:29:23 -04:00
Kelvin Wang 6a64e0818f fix(http): change source buckets from slice to obj 2019-03-18 17:53:53 -04:00
Kelvin Wang 57e3db9c01 fix(http): telegraf swagger issues 2019-03-18 14:54:04 -04:00
Jade McGough 953d9c66af
Merge pull request #12669 from influxdata/label-auth
fix(http): wrap label service with authorizer
2019-03-18 11:20:21 -07:00
Kelvin Wang 30e8ac65a2 fix(http): fix swagger bucket owners 2019-03-18 11:10:15 -04:00
Kelvin Wang 28c0030be0 fix(http): fix swagger bucket owners 2019-03-18 11:05:39 -04:00
Jade McGough 5500419357 fix(http): wrap label service with authorizer 2019-03-17 20:47:21 -07:00
kelwang 32a511b671
Merge pull request #12645 from influxdata/telegraf_delete
fix(http): fix telegraf delete
2019-03-15 20:16:50 -04:00
Jade McGough 4a4bd76e70
Merge pull request #12585 from influxdata/label-names
Label names
2019-03-15 16:29:35 -07:00
Jade McGough b2775ef9da feat(labels): allow label names to be updated 2019-03-15 16:24:23 -07:00
Kelvin Wang 0fe8479e9f fix(http): remove dup tasks definition 2019-03-15 11:46:30 -04:00
kelwang 769a1a8a10
Merge pull request #12597 from influxdata/swagger_task_runs
feat(http): update swagger to use runs
2019-03-15 11:40:20 -04:00
Kelvin Wang 052510f3ee fix(http): fix telegraf delete 2019-03-15 11:31:22 -04:00
Mark Rushakoff 3092faace8 test(task): ensure task can be created over HTTP using org name
Closes #12089.
2019-03-14 21:23:14 -07:00
Deniz Kusefoglu 14688cd5c7 Add required types to swagger 2019-03-14 12:02:33 -07:00
Jonathan A. Sternberg 1d996630b1
fix(http): set the authorizer on the context in proxy query handler (#12605) 2019-03-14 10:19:47 -05:00
kelwang cb7630abd2
Merge pull request #12598 from influxdata/swagger_add_label_task
fix(http): fix task swagger links labels
2019-03-13 14:24:17 -04:00
kelwang e877428c24
Merge pull request #12596 from influxdata/telegraf_swagger
fix(http): fix swagger label response
2019-03-13 14:23:55 -04:00
kelwang bd952e8d6e
Merge pull request #12595 from influxdata/fix_secret_endpoint
fix(http): change secrets to match swagger
2019-03-13 14:23:39 -04:00
kelwang 878e896e3a
Merge pull request #12594 from influxdata/http_source_health
fix(http): fix source health endpoint
2019-03-13 14:23:01 -04:00
kelwang ba52920df1
Merge pull request #12592 from influxdata/ready
fix(http): fix ready swagger
2019-03-13 14:22:44 -04:00
Iris Scholten a4196ce06d fix(ui): Remove name from cell in swagger definition 2019-03-13 10:18:17 -07:00
Kelvin Wang 5c980304c2 fix(http): fix task swagger links labels 2019-03-13 12:00:03 -04:00
Kelvin Wang 54a8e86d2d feat(http): update swagger to use runs 2019-03-13 11:45:08 -04:00
Kelvin Wang f2adba210f fix(http): fix swagger label response 2019-03-13 11:22:16 -04:00
Kelvin Wang 44f5adeae7 fix(http): change secrets to match swagger 2019-03-13 11:06:36 -04:00
Kelvin Wang 229be14d1a fix(http): fix source health endpoint 2019-03-13 11:04:16 -04:00
Kelvin Wang 69c3882225 fix(http): fix ready swagger 2019-03-13 10:44:14 -04:00
zhulongcheng 8b7050d6d3 docs(http): add bucket and org links to ScraperTargetResponse 2019-03-12 22:29:25 +08:00
zhulongcheng 76c0513d09 docs(http): remove duplicated `name` from ScraperTargetResponse 2019-03-12 18:49:02 +08:00
zhulongcheng 8d2f75ecac docs(http): add missing logs links 2019-03-12 11:18:07 +08:00
Chris Goller 96ed02fdae
Merge pull request #12507 from influxdata/fix/bucket-write-links
fix(http): update bucket write links to include org/bucket
2019-03-11 14:12:42 -05:00
Chris Goller a1ad49842f docs(http): specify that label properties keys must be strings 2019-03-11 13:54:38 -05:00
Chris Goller 831d5110f4 fix(http): update bucket write links to include org/bucket 2019-03-11 13:46:16 -05:00
Jade McGough 33e1f51537
Merge pull request #12498 from influxdata/telegraf-labels
fix(swagger): add type to expected telegraf request properties
2019-03-11 11:06:52 -07:00
Jade McGough 2e61590a55 chore(swagger): add example for telegraf name 2019-03-11 11:00:13 -07:00
Jade McGough 7bd89a9021 fix(swagger): add type to expected telegraf request properties 2019-03-11 10:51:16 -07:00
Chris Goller 83c43e7173 fix(http): log endpoint should be logs 2019-03-11 12:45:25 -05:00
Chris Goller 5e62562243 fix(http/telegraf): add missing member/owner test links 2019-03-10 22:56:52 -05:00
Chris Goller 2011ef7252
Merge pull request #12177 from zhulongcheng/rm-owner-schema
docs(http): add members/owners links
2019-03-10 22:39:53 -05:00
Mark Rushakoff 9bbe321d23 chore: serve swagger.json in development builds
In a development build (i.e. does not have the assets build tag), the
first request to GET /api/v2/swagger.json will produce log output like:

INFLUXDB_VALID_SWAGGER_PATH not set; falling back to checking relative paths	{"log_id": "0E4I7Dkl000", "service": "swagger-loader"}
Successfully loaded swagger.yml	{"log_id": "0E4I7Dkl000", "service": "swagger-loader", "path": "/.../influxdb/http/swagger.yml"}

There is no such log line in production builds.

But now both builds correctly serve swagger.json, instead of just
production builds.
2019-03-09 12:42:44 -08:00
Andrew Watkins 8e36f59f33
Feat/tele token (#12436)
* feat: add telegraf configs to the config page

* feat: add tokens to telegraf configs

* feat(perms): display proper permissions to user

* feat: add tokens to redux

* wip: add token to auths

* hack: make server return labels and links

* wip: create a label for telegraf config

* fix(http/telegraf): JSON marshaling using pointer receiver

* chore: add back whitespace

* chore: add back whitespace

* add telegraf token to popup

* feat(token/tele): remove token when config gets deleted

* test: sadness

* change to streaming

* unskip test
2019-03-08 19:09:42 -08:00
Kelvin Wang dcc052b1c2 fix(query): fix same bucket name with different orgs 2019-03-08 20:37:05 -05:00
Andrew Watkins e3a9e60329 chore: add back whitespace 2019-03-08 14:52:19 -08:00
Chris Goller 27e98a3e41 fix(http/telegraf): JSON marshaling using pointer receiver 2019-03-08 15:12:46 -06:00
Andrew Watkins 7725c79c45 hack: make server return labels and links 2019-03-08 10:14:22 -08:00
Chris Goller a2b06c49cd
Merge pull request #12434 from influxdata/feat/session-to-auth
feat(http): convert user sessions to auth for query service
2019-03-07 16:47:47 -06:00
Lyon Hill ad515cbdc5
Update the required fields for task swagger (#12400)
* Update the required fields for task swagger
2019-03-07 15:34:12 -07:00
Chris Goller c1e74f30ad feat(http): convert user sessions to auth for query service
Co-Authored-By: Kelvin Wang <sherkrainwang@gmail.com>
Co-Authored-By: Michael Desa <mjdesa@gmail.com>
Co-Authored-By: Christopher M. Wolff <chris.wolff@influxdata.com>
2019-03-07 16:01:31 -06:00
Jacob Marble 603a1f26e0 use tracing.StartSpanFromContext 2019-03-07 12:12:31 -07:00
Jacob Marble ed4e3e130b return n with error 2019-03-07 12:12:31 -07:00
Jacob Marble 9541e861a3 goimports -w -local github.com/influxdata/influxdb 2019-03-07 12:12:31 -07:00
Jacob Marble 92fa813c45 add spans to multiple services 2019-03-07 12:12:31 -07:00
Christopher M. Wolff e28ecdc0e9
refactor(query): make queryd present ProxyQueryService (#12360)
Fixes influxdata/idpe#2014.
2019-03-07 07:32:13 -08:00
Jorge Landivar 2d0ba57f4b
Merge pull request #12387 from zhulongcheng/task-paging
feat(http): add task paging links
2019-03-07 01:49:29 -06:00
zhulongcheng fac5986396 remove argument index from fmt string in scraper tests 2019-03-07 11:10:09 +08:00
zhulongcheng 111ed7767d docs(http): add members/owners links 2019-03-07 10:56:36 +08:00
zhulongcheng 593ab12e3c docs(http): remove Owners schema 2019-03-07 10:50:00 +08:00
zhulongcheng a136a302f1 remove ViewService interface 2019-03-07 10:22:19 +08:00
zhulongcheng 1a46cc8f80 fix(http): remove view handler 2019-03-07 10:18:55 +08:00
Palak Bhojani ef440615e6 Update response to include event object for LogEvent type
Co-authored-by: Alex Paxton <thealexpaxton@gmail.com>
Co-authored-by: Chris Goller
2019-03-06 16:01:47 -08:00
Palak Bhojani cdce8b1388 Update Logs type in swagger to match the api response 2019-03-06 14:52:12 -08:00
Michael Desa 2687b7fd61
feat(influxdb): add support for templates
feat(influxdb): add generic store for documents

feat(influxdb): support authorizations in document store

feat(influxdb): support orgs in user resource mapping

feat(influxdb): add read-only included field on documents

feat(influxdb): add labels support to documents service

fix(influxdb): rename data field to content on documents

feat(influxdb): add with org id options for document store

feat(http): add templates swagger

feat(influxdb): add documentation to document options

doc(kv): add documentation for kv document store

test(kv): pull document tests in to the testing package

fix(http): fix swagger specification of templates endpoints
2019-03-06 13:18:31 -08:00
zhulongcheng b8a9c9595d feat(http): add task paging links 2019-03-06 15:06:35 +08:00
Nathaniel Cook a190ddb44c fix(http): fix tests for encoding changes 2019-03-05 16:56:35 -07:00
Alirie Gray dcb8c6e9b9
Merge pull request #12373 from influxdata/fix/remove-org-from-tasks
fix(tasks): replace organization on tasks with org name string
2019-03-05 15:07:20 -08:00
Lyon Hill 17026c2053
change task logs from a string to a struct (#12363)
* change task logs from a string to a struct
2019-03-05 15:58:33 -07:00
Alirie Gray e4b3023748 fix(tasks): replace organization on tasks with org name string 2019-03-05 14:43:50 -08:00
Chris Goller 864eb91f7a feat(http): query client fallback uses context auth
Co-authored-by: Mark Rushakoff <mark@influxdata.com>

Tasks instantiates the query service but does not know the token
it will use ahead of time.  This allows the token to be optionally
set on contex.
2019-03-04 17:19:01 -06:00
Jacob Marble b9c7ec439e
feat(influxd): Tracing refactor (#12318)
* feat(launcher): Tracing to log disabled by default

* remove traceLogger and use opentracing directly

* add Jaeger tracing

* go vet && go fmt
2019-03-04 11:48:11 -08:00
Mark Rushakoff e99c505287 refactor(http): only generate bindata asset for swagger.yml
The previous "." argument with "-ignore go" accidentally matched
README.md and Makefile too, neither of which we care to actually include
as assets.

Now we just explicitly include swagger.yml. It's simple enough to add
another file to the go:generate line if and when we need it.
2019-03-04 09:40:00 -08:00
Mark Rushakoff 3307276be1 fix(task): don't error when URM task disappears
In the platform adapter, we ask the URM for a list of tasks the user
owns, and then we look up each task individually.

The task service tests uncovered a legitimate bug where FindTasks would
return a "task not found" error, originating from looking up a task that
was present when we interrogated the URM but was deleted before we could
find it in the task store.

This change also removes duplicated URM logic from the HTTP handler
which has since been pushed down into the platform adapter.
2019-03-04 08:35:04 -08:00
Ben Johnson 12d35f1a50
Revert "Merge point parse & explode."
This reverts commit 1004abc3e1.
2019-03-02 06:23:04 -07:00
Ben Johnson 1004abc3e1
Merge point parse & explode. 2019-03-01 15:55:37 -07:00
Mark Rushakoff 290d06f98f fix(swagger): synchronize enum with defined error constants 2019-03-01 11:58:11 -08:00
Nathaniel Cook 17c3851c83
Merge pull request #12292 from influxdata/flux-staging
update to Flux v0.21.1
2019-03-01 11:02:16 -07:00
Brandon Farmer df70693e22 Fix indention on swagger.yml CreateDashboardRequest 2019-03-01 09:34:31 -08:00
Delmer Reed 268b40da00 update(http/swagger): update Dashboard to extend CreateDashboardRequest
Co-authored-by: Brandon Farmer <bthesorceror@gmail.com>
2019-03-01 09:34:31 -08:00
Delmer Reed dd168e943d fix(http/swagger/dashboard): update the swagger post request requirements 2019-03-01 09:34:31 -08:00
jlapacik d08f5fe835
dep(http): switch Now property to time value on ASTCompiler (#12272)
Closes #12268.
2019-03-01 08:53:24 -08:00
Jorge Landivar 9e6a2247c0
Merge pull request #12134 from zhulongcheng/validate-task-status
fix(http): validate status for creating and updating a task
2019-02-27 13:08:06 -06:00
Lyon Hill b3f450eca9
Allow the CLI to find tasks by org name (#12202)
* Allow the CLI to find tasks by org name
2019-02-27 08:56:32 -07:00
Jonathan A. Sternberg dd50e10d6d
Merge pull request #12165 from influxdata/flux-staging
update to Flux v0.21.0
2019-02-26 13:12:37 -06:00
docmerlin (j. Emrys Landivar) 669c464335 feat(tasks): look up tasks by orgname 2019-02-25 15:57:01 -06:00
Jonathan A. Sternberg 70507670c3
feat(storage/reads): add scanned values and bytes metadata to the query (#12156)
This updates influxdb to use the new arbitrary metadata that can be
attached by a source and adds metadata entries for the cursor
statistics.
2019-02-25 14:44:18 -06:00
Nathaniel Cook 26e7f641b7 Merge branch 'master' into flux-staging 2019-02-25 13:00:28 -07:00
Chris Goller 8a104eba28
Merge pull request #12102 from zhulongcheng/empty-op-log
fix(http): return an empty list of operation logs if not found
2019-02-25 11:49:01 -06:00
Michael Desa 0d3d0d4d78
chore(influxdb): add context to storage.PointsWriter 2019-02-25 11:11:20 -05:00
zhulongcheng efadd43886 fix(http): validate status for creating and updating a task 2019-02-24 15:34:32 +08:00
Mark Rushakoff f79d9cba4f fix(task): pass task's authorization to query system, if using sessions
The query system specifically expects an Authorization. When a request
comes in using a Session, use the target task's Authorization, if we are
allowed to read it, when executing a query against the system bucket.
2019-02-22 12:50:55 -08:00
Nathaniel Cook a75adf6c4b fix(http): separate InfluxQL and Flux services
Previously the APIBackend understood only a ProxyQueryService,
but it needs to understand that there are two implementations of the
ProxyQueryService one for handling InfluxQL queries and one for handling
Flux queries. The names of the fields have been updated to make this
clear. As well as the FluxBackend is now initialized using the
FluxService explicitly.
2019-02-22 10:31:20 -07:00
Mark Rushakoff 12a604172f fix(task): create authorizations for tasks, which can read their task
Also set the generated token's description while we're here.

This enables us to use task's Authorization when we need to query the
system bucket to get run logs, etc. but we only have a Session.
2019-02-22 09:15:25 -08:00
Mark Rushakoff 6fdcaf83b4 fix(swagger): quote keys named "y"
The YAML parser used by the go-openapi libraries treats an unquoted y as
a boolean key, which will lead to a difficult-to-understand parser
error:

types don't match expect map key string or int got: bool

See also https://yaml.org/type/bool.html.
2019-02-22 08:20:07 -08:00
zhulongcheng ad1bab1a3c fix(http): return an empty list of operation logs if not found 2019-02-22 14:18:13 +08:00
Mark Rushakoff ecb37d7cc4 fix(task): restore functionality for creating task with org name
This is a partial rollback of changes #12004. Issue to track adding a
test: #12089.
2019-02-21 16:30:52 -08:00
Iris Scholten ffc88da46a
Merge pull request #12073 from influxdata/swagger-telegraf-labels-post
Update the swagger definition for a telegraf labels post response
2019-02-21 14:44:09 -08:00
Adam 68c25ec381 Merge remote-tracking branch 'origin/master' into flux-staging 2019-02-21 17:20:12 -05:00
Christopher Henn a499a8b0d9 Enable adding a description to a telegraf config 2019-02-21 14:06:04 -08:00
Iris Scholten 561902e5c4 Update the swagger definition for a telegraf labels post response 2019-02-21 14:02:35 -08:00
jlapacik af258e62e7
feat(http): define external preprocessing options via http api (#11939)
Closes #11702.
2019-02-21 13:11:50 -08:00
Chris Goller 1ec7b69d85 fix(kv): error org search if neither name nor id is set 2019-02-21 11:18:08 -08:00
Christopher Henn 953f703ae5 Add description to spec for telegraf config 2019-02-21 08:25:56 -08:00
zhulongcheng 29d49adcfb doc(http): update request body for updating a task 2019-02-21 08:25:45 -08:00
Lyon Hill 3665feef38
Populate organization name on task create action (#12004)
* Populate organization name on task create action

* Move the responsiblity of organization lookup to the platform adaptor
2019-02-20 13:36:35 -07:00
Mark Rushakoff ec1019b930 chore: add .editorconfig and enable in CI 2019-02-19 16:58:07 -08:00
Chris Goller 2e694241be
Merge pull request #11768 from bednar/scraper-backend
NewScraperBackend doesn't have associate UserService, UserResourceMappingService and LabelService
2019-02-19 18:57:09 -06:00
Chris Goller 81c55e8da8
Merge pull request #11962 from zhulongcheng/docs-label
docs(http): fix typos
2019-02-19 18:46:13 -06:00
Chris Goller 813d684aeb
docs(http): add operation log endpoints (#11487)
Closes #11359
2019-02-19 18:36:41 -06:00
Michael Desa 6a8a1fce32 feat(kv): implemented key/value store with end-to-end integration tests
* feat(kv:inmem:bolt): implement user service in a kv

* refactor(kv): use consistent func receiver name

* feat(kv): add initial basic auth service

* refactor(passwords): move auth interface into own file

* refactor(passwords): rename basic auth files to passwords

* refactor(passwords): rename from BasicAuth to Passwords

* refactor(kv): copy bolt user test into kv

Co-authored-by: Michael Desa <mjdesa@gmail.com>

* feat(kv): add inmem testing to kv store

* fix(kv): remove extra user index initialization

* feat(kv): attempt at making errors nice

* fix(http): return not found error if filter is invalid

* fix(http): s/platform/influxdb/ for user service

* fix(http): s/platform/influxdb/ for user service

* feat(kv): initial port of telegraf configs to kv

* feat(kv): first pass at migrating bolt org service to kv

* feat(kv): first pass at bucket service

* feat(kv): first pass at migrating kvlog to kv package

* feat(kv): add resource op logs

* feat(kv): first pass at user resource mapping migration

* feat(kv): add urm usage to bucket and org services

* feat(kv): first pass at kv authz service

* feat(kv): add cascading auth delete for users

* feat(kv): first pass d authorizer.OrganizationService in kv

* feat(cmd/influxd/launcher): user kv services where appropriate

* fix(kv): initialize authorizations

* fix(influxdb): use same buckets while slowly migrating stuff

* fix(kv): make staticcheck pass

* feat(kv): add dashboards to kv

review: make suggestions from pr review

fix: use common bucket names for bolt/kv stores

* test(kv): add complete password test coverage

* chore(kv): fixes for staticcheck

* feat(kv): implement labels generically on kv

* feat(kv): implement macro service

* feat(kv): add source service

* feat(kv): add session service

* feat(kv): add kv secret service

* refactor(kv): update telegraf and urm with error messages

* feat(kv): add lookup service

* feat(kv): add kv onboarding service

* refactor(kv): update telegraf to avoid repetition

* feat(cmd/influxd): use kv lookup service

* feat(kv): add telegraf to lookup service

* feat(cmd/influxd): use kv telegraf service

* feat(kv): initial port of scrapers in bolt to kv

* feat(kv): update scraper error messaging

* feat(cmd/influxd): add kv scraper

* feat(kv): add inmem backend tests

* refactor(kv): copy paste errors

* refactor(kv): add code to password errors

* fix(testing): update error messages for incorrect passwords

* feat(kv:inmem:bolt): implement user service in a kv

* refactor(kv): use consistent func receiver name

* refactor(kv): copy bolt user test into kv

Co-authored-by: Michael Desa <mjdesa@gmail.com>

* feat(kv): add inmem testing to kv store

* fix(kv): remove extra user index initialization

* feat(kv): attempt at making errors nice

* fix(http): return not found error if filter is invalid

* fix(http): s/platform/influxdb/ for user service

* feat(kv): first pass at migrating bolt org service to kv

* feat(kv): first pass at bucket service

* feat(kv): first pass at migrating kvlog to kv package

* feat(kv): add resource op logs

* feat(kv): first pass at user resource mapping migration

* feat(kv): add urm usage to bucket and org services

* feat(kv): first pass at kv authz service

* feat(kv): add cascading auth delete for users

* feat(kv): first pass d authorizer.OrganizationService in kv

* feat(cmd/influxd/launcher): user kv services where appropriate

* feat(kv): add initial basic auth service

* refactor(passwords): move auth interface into own file

* refactor(passwords): rename basic auth files to passwords

* fix(http): s/platform/influxdb/ for user service

* fix(kv): initialize authorizations

* fix(influxdb): use same buckets while slowly migrating stuff

* fix(kv): make staticcheck pass

* feat(kv): add dashboards to kv

review: make suggestions from pr review

fix: use common bucket names for bolt/kv stores

* feat(kv): implement labels generically on kv

* refactor(passwords): rename from BasicAuth to Passwords

* test(kv): add complete password test coverage

* chore(kv): fixes for staticcheck

* feat(kv): implement macro service

* feat(kv): add source service

* feat(kv): add session service

* feat(kv): initial port of telegraf configs to kv

* feat(kv): initial port of scrapers in bolt to kv

* feat(kv): add kv secret service

* refactor(kv): update telegraf and urm with error messages

* feat(kv): add lookup service

* feat(kv): add kv onboarding service

* refactor(kv): update telegraf to avoid repetition

* feat(cmd/influxd): use kv lookup service

* feat(kv): add telegraf to lookup service

* feat(cmd/influxd): use kv telegraf service

* feat(kv): update scraper error messaging

* feat(cmd/influxd): add kv scraper

* feat(kv): add inmem backend tests

* refactor(kv): copy paste errors

* refactor(kv): add code to password errors

* fix(testing): update error messages for incorrect passwords

* feat(http): initial support for flushing all key/values from kv store

* feat(kv): rename macro to variable

* feat(cmd/influxd/launcher): user kv services where appropriate

* refactor(passwords): rename from BasicAuth to Passwords

* feat(kv): implement macro service

* test(ui): introduce cypress

* test(ui): introduce first typescript test

* test(ui/e2e): add ci job

* chore: update gitignore to ignore test outputs

* feat(inmem): in memory influxdb

* test(e2e): adding pinger that checks if influxdb is alive

* hackathon

* hack

* hack

* hack

* hack

* Revert "feat(inmem): in memory influxdb"

This reverts commit 30ddf032003e704643b07ce80df61c3299ea7295.

* hack

* hack

* hack

* hack

* hack

* hack

* hack

* hack

* hack

* hack

* hack

* hack

* hack

* chore: lint ignore node_modules

* hack

* hack

* hack

* add user and flush

* hack

* remove unused vars

* hack

* hack

* ci(circle): prefix e2e artifacts

* change test to testid

* update cypress

* moar testid

* fix npm warnings

* remove absolte path

* chore(ci): remove /home/circleci proto mkdir hack

* wip: crud resources e2e

* fix(inmem): use inmem kv store services

* test(dashboard): add first dashboard crud tests

* hack

* undo hack

* fix: use response from setup for orgID

* chore: wip

* add convenience getByTitle function

* test(e2e): ui can create orgs

* test(e2e): add test for org deletion and update

* test(e2e): introduce task creation test

* test(e2e): create and update of buckets on org view

* chore: move types to declaration file

* chore: use route fixture in dashboard tests

* chore(ci): hack back

* test(ui): update snapshots

* chore: package-lock

* chore: remove macros

* fix: launcher rebase issues

* fix: compile errors

* fix: compile errors

* feat(cmd/influxdb): add explicit testing, asset-path, and store flags

Co-authored-by: Andrew Watkins <watts@influxdb.com>

* fix(cmd/influxd): set default HTTP handler and flags

Co-authored-by: Andrew Watkins <watts@influxdb.com>

* build(Makefile): add run-e2e and PHONY

* feat(kv:inmem:bolt): implement user service in a kv

* refactor(kv): use consistent func receiver name

* feat(kv): add initial basic auth service

* refactor(passwords): move auth interface into own file

* refactor(passwords): rename basic auth files to passwords

* refactor(passwords): rename from BasicAuth to Passwords

* refactor(kv): copy bolt user test into kv

Co-authored-by: Michael Desa <mjdesa@gmail.com>

* feat(kv): add inmem testing to kv store

* fix(kv): remove extra user index initialization

* feat(kv): attempt at making errors nice

* fix(http): return not found error if filter is invalid

* fix(http): s/platform/influxdb/ for user service

* fix(http): s/platform/influxdb/ for user service

* feat(kv): initial port of telegraf configs to kv

* feat(kv): initial port of scrapers in bolt to kv

* feat(kv): first pass at migrating bolt org service to kv

* feat(kv): first pass at bucket service

* feat(kv): first pass at migrating kvlog to kv package

* feat(kv): add resource op logs

* feat(kv): first pass at user resource mapping migration

* feat(kv): add urm usage to bucket and org services

* feat(kv): first pass at kv authz service

* feat(kv): add cascading auth delete for users

* feat(kv): first pass d authorizer.OrganizationService in kv

* feat(cmd/influxd/launcher): user kv services where appropriate

* fix(kv): initialize authorizations

* fix(influxdb): use same buckets while slowly migrating stuff

* fix(kv): make staticcheck pass

* feat(kv): add dashboards to kv

review: make suggestions from pr review

fix: use common bucket names for bolt/kv stores

* test(kv): add complete password test coverage

* chore(kv): fixes for staticcheck

* feat(kv): implement labels generically on kv

* feat(kv): implement macro service

* feat(kv): add source service

* feat(kv): add session service

* feat(kv): add kv secret service

* refactor(kv): update telegraf and urm with error messages

* feat(kv): add lookup service

* feat(kv): add kv onboarding service

* refactor(kv): update telegraf to avoid repetition

* feat(cmd/influxd): use kv lookup service

* feat(kv): add telegraf to lookup service

* feat(cmd/influxd): use kv telegraf service

* feat(kv): update scraper error messaging

* feat(cmd/influxd): add kv scraper

* feat(kv): add inmem backend tests

* refactor(kv): copy paste errors

* refactor(kv): add code to password errors

* fix(testing): update error messages for incorrect passwords

* feat(kv): rename macro to variable

* refactor(kv): auth/bucket/org/user unique checks return errors now

* feat(inmem): add way to get all bucket names from store

* feat(inmem): Buckets to return slice of bytes rather than strings

* feat(inmem): add locks around Buckets to avoid races

* feat(cmd/influx): check for unauthorized error in wrapCheckSetup

* chore(e2e): add video and screenshot artifcats to gitignore

* docs(ci): add build instructions for e2e tests

* feat(kv): add id lookup for authorized resources
2019-02-19 17:47:19 -06:00
Palakp41 eb32636dda
Merge pull request #11986 from influxdata/fix/swagger-latest-completed
Update swagger to camel case the latest completed date
2019-02-19 13:24:23 -08:00
Alirie Gray 526c4cde07 Add get variable by ID route to swagger.yml 2019-02-19 13:04:05 -08:00
Palak Bhojani 0c24737b89 Update swagger to camel case the latest completed date 2019-02-19 12:34:01 -08:00
Mark Rushakoff abd6fee757 fix(task): use HTTP 404 for no results when listing runs, logs 2019-02-19 11:00:43 -08:00
Lyon Hill c7f60271fd
remove task owner from task struct (#11968)
* remove task owner from the payload

* clean user references in store and tests
2019-02-19 11:19:06 -07:00
zhulongcheng fdee94a9ed docs(http): add operation log endpoints 2019-02-19 10:28:37 +08:00
zhulongcheng 9a5aa2e7f8 docs(http): fix typos 2019-02-18 23:29:28 +08:00
Mark Rushakoff cbef811c63 refactor(task): remove explicit org from run/log lookup
Task ID is now a required value on run and log filters. It was
effectively required by all implementations before anyway, so now those
types reflect that requirement.

Organization ID was removed from those same fields. The TaskService
looks up the organization ID via the task in cases where we need it at a
lower layer.
2019-02-16 14:34:49 -08:00
Lyon Hill 48cc643992
Clean out user from the task store's (#11882)
* Clean out user from the task store's
2019-02-15 15:50:09 -07:00
Mark Rushakoff 0977a651df fix(task): create authorization when using token to create task 2019-02-15 12:11:55 -08:00
Michael Desa c5b9376c0b
feat(http): add method to create authz for task when using session 2019-02-15 13:04:47 -05:00
Alirie Gray 6073289ba8 Update return type for get/task route 2019-02-14 14:29:10 -08:00
Alirie Gray 5f524eb92d Rename all occurences of Macro to Variable 2019-02-14 13:21:57 -08:00
Mark Rushakoff caf08b5078 feat(task): store authorization ID with task
Accept token when creating or updating a task, but only report back the
authorization ID.

This means the executor and the platform adapter are now both aware of
an Authorization Service.
2019-02-14 08:53:40 -08:00
Alirie Gray cb5f9bac40 Add name, orgID, and arguments as required properties to Macro type 2019-02-13 16:54:12 -08:00
Alirie Gray f27a3713f5 Add orgID property to Macro (variable) type 2019-02-13 16:07:16 -08:00
Alirie Gray 34f251d62b
Merge pull request #11875 from influxdata/fix(swagger)/update-macro-type
Add values and language properties to QueryMacroProperties
2019-02-13 14:24:53 -08:00
Alirie Gray 58f833510c Add values and language properties to QueryMacroProperties 2019-02-13 13:36:01 -08:00
Mark Rushakoff 007f5059c7 refactor(task): extract TaskCreate struct
With the ongoing authorization work, creation arguments will differ from
what's returned on reads. More specifically, creation will accept a
token, but reads will report back a token ID.

This refactor facilitates that authorization work, and also brings the
code closer to the swagger definition, for the TaskCreateRequest type in
particular.
2019-02-12 15:10:03 -08:00
Alirie Gray 525f3ae3a2
Merge pull request #11838 from influxdata/fix(swagger)/macros-get-return-type
Change return type of get/macros to an array
2019-02-12 14:53:00 -08:00
Alirie Gray 9affdf9657 Change return type of get/macros to an array 2019-02-12 14:45:58 -08:00
Lyon Hill 6db627b76c
Update task http handler to use user resource mapping. (#11827)
* Update task http handler to use user resource mapping.
2019-02-12 15:37:46 -07:00
Lyon Hill 512af6e4b3
Add createdAt and updatedAt to tasks api (#11794)
fixes #11061
2019-02-12 11:06:23 -07:00
Iris Scholten 6029744a62 Add name to scraper target response in swagger 2019-02-11 16:05:49 -08:00
Nathaniel Cook 2877611a9d Merge branch 'master' into flux-staging 2019-02-11 13:44:37 -07:00
Christopher Wolff 698de51e67 refactor(query): update to reflect changes to windows 2019-02-08 08:39:52 -08:00
Jakub Bednar dd15213bd6 Associate UserService, UserResourceMappingService and LabelService to ScraperBackend. #11767 2019-02-08 08:38:31 +01:00
Michael Desa f271d0a580 test(http): add tests to ensure labels can be added to resources
Co-authored-by: Iris Scholten <ischolten.is@gmail.com>
2019-02-07 19:08:59 -05:00
Michael Desa 23f6c4b3fe fix(http): pass resource type through to label handlers
Co-authored-by: Iris Scholten <ischolten.is@gmail.com>
2019-02-07 19:08:56 -05:00
Michael Desa 5a6a6a94ef fix(http): rename platform to influxdb in package
Co-authored-by: Iris Scholten <ischolten.is@gmail.com>
2019-02-07 19:08:41 -05:00
Iris Scholten aad4193c3f fix root labels endpoint
Co-authored-by: Brandon Farmer <bthesorceror@gmail.com>
Co-authored-by: Delmer Reed <del@influxdata.com>
Co-authored-by: Jade McGough <jade@influxdb.com>
2019-02-07 14:21:49 -08:00
Jonathan A. Sternberg e0e3a17ed9
Merge branch 'master' into flux-staging 2019-02-07 10:26:21 -06:00
Brandon Farmer 0f2b8487ee Remove validation of cur_swagger 2019-02-06 16:28:49 -08:00
Brandon Farmer 8150ccac61 Remove cur_swagger.yml 2019-02-06 16:24:42 -08:00
Brandon Farmer 7e22ffea5a Add complete list of links to sources swagger 2019-02-06 15:51:39 -08:00
Brandon Farmer bb8a724c6e Fix tasks response in swagger 2019-02-06 15:00:36 -08:00
Brandon Farmer 960f6882b7 Swagger fixes 2019-02-06 14:03:54 -08:00
Michael Desa 81734dcb00
Merge pull request #11722 from influxdata/revert/pr#10947
fix(influxdb): revert functionality added in pr#10947
2019-02-06 16:53:01 -05:00
Brandon Farmer 5e64b5ba71 Consolidate swagger documentation 2019-02-06 13:04:15 -08:00
Michael Desa 386c70ea0d fix(influxdb): revert functionality added in pr#10947 2019-02-06 15:54:09 -05:00
Michael Desa dbc241b728 fix(http): use urm without authz where appropriate 2019-02-06 14:24:21 -05:00
Leonardo Di Donato b60ac48f6c fix(http): task service should use new task backend also when testing user resource mappings
Signed-off-by: Leonardo Di Donato <leodidonato@gmail.com>
2019-02-06 19:18:23 +01:00
Leonardo Di Donato e6bb9e6b97 feat(http): view backend for view http handler
Signed-off-by: Leonardo Di Donato <leodidonato@gmail.com>
2019-02-06 19:18:23 +01:00
Leonardo Di Donato 24441cd2ad fix(http): scrapers members and owners 2019-02-06 19:18:23 +01:00
zhulongcheng 2d48b85f0a feat(http): construct label handler by LabelBackend 2019-02-06 19:18:23 +01:00
zhulongcheng be37e07bea feat(http): construct member handler by MemberBackend 2019-02-06 19:18:23 +01:00
zhulongcheng 57dc6664f5 feat(http): construct flux handler by FluxBackend 2019-02-06 19:18:23 +01:00
zhulongcheng c283b068ed feat(http): construct write handler by WriteBackend 2019-02-06 19:18:23 +01:00
zhulongcheng df93adce9a feat(http): construct telegraf handler by TelegrafBackend 2019-02-06 19:18:23 +01:00
zhulongcheng 18f4825e4f feat(http): construct task handler by TaskBackend 2019-02-06 19:18:23 +01:00
zhulongcheng c95e8b14da feat(http): construct setup handler by SetupBackend 2019-02-06 19:18:23 +01:00
zhulongcheng 2c89ee715b feat(http): construct source handler by SourceBackend 2019-02-06 19:18:23 +01:00
zhulongcheng 5d8b1507f5 feat(http): construct scraper handler by ScraperBackend 2019-02-06 19:18:23 +01:00
zhulongcheng 385cca43b7 feat(http): construct authorization handler by AuthorizationBackend 2019-02-06 19:18:23 +01:00
zhulongcheng 639753ab45 feat(http): construct macro handler by MacroBackend 2019-02-06 19:18:23 +01:00
zhulongcheng ac43477d68 feat(http): construct dashboard handler by DashboardBackend 2019-02-06 19:18:23 +01:00
zhulongcheng ef308ab9bd feat(http): construct org handler by OrgBackend 2019-02-06 19:18:23 +01:00
zhulongcheng e29f925679 feat(http): construct bucket handler by BucketBackend 2019-02-06 19:18:23 +01:00
zhulongcheng 4dbfae4628 construct user handler by UserBackend 2019-02-06 19:18:23 +01:00
Brandon Farmer 3992fa9d54 Remove typescript client generation
- All api calls are now through the client or raw XMLHTTPRequest
2019-02-05 17:13:57 -08:00
Lorenzo Affetti ce00375298 refactor(query/stlib): move from implementation from Flux 2019-02-05 17:46:46 +01:00
Lyon Hill ab2a7265a4
Add user resource management to the task API (#11664)
* Add user resource management to the task API
step 1 and 2 of #11427
2019-02-05 08:26:26 -08:00
Chris Goller b8584b72ef
Merge pull request #11651 from zhulongcheng/http-simplify-code
chore(http): simplify code
2019-02-04 08:31:03 -06:00
zhulongcheng e024b13a2e fix(http): rename desc to descending 2019-02-02 15:11:06 +08:00
zhulongcheng 75d62b5fba chore(http): simplify code 2019-02-01 14:02:13 +08:00
Mark Rushakoff 3f0e40812e fix(http): return 404 when task or run is not found
For an operation that looks up a task or a run, when that operation
fails, only set the status to 404 if that operation explicitly returns
ErrTaskNotFound or ErrRunNotFound.

It's possible that the operation could fail for a reason other than the
ID being invalid: for example, if there was an IO error preventing the
lookup from succeeding.

Harden that behavior with tests for the task handler.

Closes #11589.
2019-01-25 15:44:09 -08:00
Kelvin Wang 4e7785d92c update(http): changes based on review 2019-01-25 10:31:25 -08:00
Kelvin Wang f99f4759fa fix(http): fix task errors 2019-01-25 10:31:24 -08:00
Kelvin Wang 875162abd3 update(http): remove check error true 2019-01-25 10:29:27 -08:00
Kelvin Wang 79ce30691e update(http): remove kerrors, change the default to be influxdb error 2019-01-25 10:29:26 -08:00
Mark Rushakoff 4df856c229 chore(task): add messages to all HTTP errors from tasks
Closes #11544.
2019-01-25 09:22:34 -08:00
Leonardo Di Donato 1849f29f14 chore: refactor according to label mappings improvements
Signed-off-by: Leonardo Di Donato <leodidonato@gmail.com>
2019-01-25 11:17:36 +01:00
Leonardo Di Donato df1fa88cb3 chore: use specific error for labels not found 2019-01-25 11:17:36 +01:00
Mark Rushakoff a0ff60c075 fix(task): respect limit when finding runs 2019-01-24 15:32:16 -08:00
Lyon Hill bdf65f5dfe
Remove owner from task json responses (#11504)
* Remove owner from task json responses

* allow for crud to run in parallel with other tests

To be parallel we just cant assume we only have 1 task.
2019-01-24 16:05:24 -07:00
kelwang 27b4d45e9e
Merge pull request #11309 from influxdata/add_urm_scraper
Add urm scraper
2019-01-24 14:21:09 -08:00
Mark Rushakoff 04a86c92af fix(http): consistently use influxdb errors in task handlers
And ensure that the task HTTP client consistently expects influxdb
errors, so that they're properly extracted and returned to the caller.

Closes #11426.
2019-01-24 11:25:02 -08:00
Kelvin Wang 74b5dccfb4 updates based on review 2019-01-23 09:29:50 -08:00
Kelvin Wang 0e4c55a82c feat(http): add urm endpoints 2019-01-23 08:46:33 -08:00
Kelvin Wang 6e3e4503c2 feat(influxdb): add urm for scraper 2019-01-23 08:46:32 -08:00
Iris Scholten 1aa238fcba Refactor search logic to include scrapers with no bucket
Co-authored-by: Chris Goller <goller@gmail.com>
2019-01-22 18:29:08 -08:00
Chris Goller e5f8ee0d76 fix(http): add default org/bucket id of zero when it doesn't exist 2019-01-22 19:35:23 -06:00
Chris Goller 799375d4a8 fix(http): if bucket or org do not exist, do not report 2019-01-22 19:21:23 -06:00
Delmer f074315881
fix(ui): wiring for labels (#11404)
Co-authored-by: Brandon Farmer <bthesorceror@gmail.com>
2019-01-22 14:22:11 -08:00
Chris Goller 204b2b4d7d
Merge pull request #11366 from influxdata/feature/hosted-docs
feat(http): host swagger docs at /docs and /api/v2/swagger.json
2019-01-22 15:49:44 -06:00
Michael Desa d9473182d2 fix(cmd/influx): make setup, write, query a solid experience
fix(cmd/influx): format error for bare influx command

feat(cmd/influx): add org flag to query command

fix(cmd/influx): check correct error in wrapCheckSetup

fix(influx/cmd): use correct shorthand flag for org flag

feat(cmd/influx): wrapCheckSetup with wrapErrorFmt

feat(cmd/influx): cleanup language and errors during setup command

fix(http): use id query param in get buckets request

feat(cmd/influx): add helpful error messages for write command

feat(cmd/influx): add context to query command
2019-01-22 13:25:17 -08:00
Mark Rushakoff 6bda17c673 fix(task): use formal errors during task creation
The client expects influxdb.Error, so use them on the server.

Also clarify the message when the task option is missing.
2019-01-22 09:40:51 -08:00
Chris Goller a11773838f feat(http): host swagger docs at /docs and /api/v2/swagger.json 2019-01-22 11:16:27 -06:00