Commit Graph

347 Commits (f78f9eda9ca4cbe1b0e22265235b8b8739b91640)

Author SHA1 Message Date
Stuart Carnie 9163edb187
Merge remote-tracking branch 'origin/master' into sgc/tsm1 2020-08-26 10:14:42 -07:00
Stuart Carnie 39ab4a10c5
Merge remote-tracking branch 'origin/master' into sgc/tsm1
# Conflicts:
#	cmd/influxd/launcher/query_test.go
#	go.mod
#	go.sum
#	query/promql/internal/promqltests/go.mod
#	task/backend/executor/executor.go
#	task/backend/executor/support_test.go
2020-08-26 09:26:43 -07:00
Lyon Hill a8fe07bfc7
chore(task): clean up old maxPermission code (#19432)
Tasks no longer uses the max permission system to pupulate an
authorization. We can safely remove this dead code.
2020-08-26 10:26:32 -06:00
George e2e954b47a
feat(kv): add support for WithCursorLimit to ForwardCursor (#17524) 2020-08-26 12:10:00 +01:00
Stuart Carnie 0e0b2a3d87
Merge remote-tracking branch 'origin/master' into sgc/tsm1 2020-08-25 09:03:07 -07:00
Brett Buddin f96303bfb2
feat(task): Record last success and failure run times in the Task (#19390)
* feat(task): Record the latest success/failure of a Task.

* chore(task): Fix typo.

* chore(kv): Test the updating of latest success/failure fields.

* fix(kv/task): Copy the latest success/failure fields when unmarshalling.

* chore(changelog): Add 19390 to changelog.
2020-08-25 10:44:37 -04:00
George 45a3f2e87c
feat(paging): add support for after id parameter in find options (#19219)
* feat(paging): add support for after id parameter in find options

* chore(http): update swagger to reflect after query parameter in list buckets

* chore(changelog): update changelog to reflect after query parameter in list buckets

* chore(tenant): update tenant storage tests for paginating with after
2020-08-25 14:59:59 +01:00
Michael Desa eb2dd5af7b
fix(kv): gaurd new org dashboard pagination with feature flag (#19421)
* fix(kv): gaurd new org dashboard pagination with feature flag

* chore: remove trailing whitespace from line

* fix(testing): remove extra context
2020-08-24 12:50:10 -07:00
Stuart Carnie ca77c4f4b7
Merge remote-tracking branch 'origin/master' into sgc/tsm1 2020-08-21 13:06:45 -07:00
Alirie Gray 9b4fef0f9a fix: add variable name validation for flux identifier 2020-08-21 10:28:18 -07:00
KevinSmile ebaa32313b fix(api/dashboards): FindOptions not working 2020-08-20 16:55:52 -06:00
KevinSmile 887f88bd5a fix(api/orgs): (API-design-issue) FindOptions for orgs 2020-08-20 16:55:30 -06:00
Stuart Carnie cc656e5221
Merge remote-tracking branch 'origin/master' into sgc/tsm1
# Conflicts:
#	storage/reads/aggregate_resultset.go
#	storage/reads/aggregate_resultset_test.go
#	storage/reads/array_cursor.gen.go
#	storage/reads/array_cursor.gen.go.tmpl
#	storage/reads/array_cursor.go
#	storage/reads/array_cursor_gen_test.go
#	storage/reads/array_cursor_test.gen.go.tmpl
#	storage/reads/group_resultset.go
#	storage/reads/group_resultset_test.go
#	storage/reads/resultset.go
2020-08-20 10:52:34 -07:00
Brett Buddin 0780232b83
feat(task): Parse Task Options using Flux AST Helpers (#19326)
* feat(task): Extract options using AST-based method.

* feat(task): Use AST-based option APIs for updating task option.

* chore(task): Use the old way of parsing durations.

* fix(task): Ordering changed on us. Fixing tests to reflect the new order.

* fix(task): There's no way for us to know if there are multiples with the current APIs.

* chore(task): Guard against duplicate options. Minor cleanup.

* fix(kit/feature): Break cyclical dependency between influxdb and pkgs that use feature.

* chore(task): Feature flag updating Flux options.

* chore(task): Ensure we are testing both paths of feature flag.

* chore: Remove dead code.

* chore(task/options): Remove unnecessary conditional.

* chore(task/options): Unexport some error helpers.
2020-08-20 11:57:23 -04:00
Stuart Carnie 057285e23a
Merge remote-tracking branch 'origin/master' into sgc/tsm1
# Conflicts:
#	query/logging.go
#	query/logging_test.go
#	query/stdlib/influxdata/influxdb/rules.go
#	query/stdlib/influxdata/influxdb/rules_test.go
#	query/stdlib/testing/testing.go
#	storage/flux/reader.go
#	storage/flux/table.gen.go
#	storage/flux/table.gen.go.tmpl
#	storage/flux/table.go
#	storage/flux/table_test.go
2020-08-11 10:25:01 -07:00
George 5cbe74630e
chore(tenant): make tenant and kv both conform with harness (#19266) 2020-08-11 15:56:42 +01:00
Lyon Hill 1891479780
feat(onboard): allow optional password (#19225)
* feat(onboard): allow optional password

We can now allow passwords as an optional arguement. This facilitates
api only users.
2020-08-05 12:42:17 -06:00
Stuart Carnie 4124968b28
fix(kv): Really use inmem store for in memory URM tests 2020-08-03 15:14:15 -07:00
Stuart Carnie 21c3733464
fix(storage): meta.Client persists to kv and updates via BucketService
Includes initial migration to add metadata bucket
2020-08-03 09:21:02 -07:00
Stuart Carnie 3d14b1128e
fix: Speed up tests by disabling bolt fsync 2020-08-03 09:20:51 -07:00
Lyon Hill 0a9e8fdb4a
chore: update task tests to use the tenant service (#19169)
* chore: update task tests to use the tenant service

After the introduction of the tenant system we need to switch the testing frameworks
to use it instead of the old kv system

* chore: update onboarding to allow injected middleware
2020-08-03 09:33:46 -06:00
Lyon Hill a7273f89d7
chore: Remove urmFreeTask feature flag (#19112)
This feature flag has been enabled for over a month in the production and have not seen any new issues arrise
2020-07-28 14:05:43 -06:00
Alirie Gray 9ccd366398
refactor: remove outdated URM deletion from kv dashboard service (#19098) 2020-07-28 08:31:28 -07:00
George 1b6d9abc00
chore(bolt): add option to skip fsync for test purposes (#19037) 2020-07-24 10:13:05 +01:00
Lyon Hill a31b651057
feat(task): Add new permission lookup pattern for executor (#18920)
* feat(task): Add new permission lookup pattern for executor

We can now use the user service to populate task owners permissions.
This should improve the task lookup time and decouple the task system
from the URM system. In the future we will have the ability to better isolate
tenant pieces from the rest of the service.

* feat: add feature flagging
2020-07-13 14:47:58 -06:00
George b8f5604613
revert(tasks): Add new permission lookup pattern for executor (#18869) (#18915)
This reverts commit e9e4d794cf.
2020-07-10 11:05:07 +01:00
Lyon Hill e9e4d794cf
feat(task): Add new permission lookup pattern for executor (#18869)
We can now use the user service to populate task owners permissions.
This should improve the task lookup time and decouple the task system
from the URM system. In the future we will have the ability to better isolate
tenant pieces from the rest of the service.
2020-07-09 14:06:46 -06:00
George 4a6bc1d74f
chore: remove kv Session service and sessionsv1 bucket (#18823)
* chore: remove sessionsv1 bucket

* chore: add extra configuration to sessions.Service
2020-07-02 15:15:08 +01:00
George bb95969ccd
fix: typo in migration name (#18830) 2020-07-01 19:55:58 +01:00
George 96d84b9126
refactor: migrator and introduce Store.(Create|Delete)Bucket (#18570)
* refactor: migrator and introduce Store.(Create|Delete)Bucket

feat: kvmigration internal utility to create / managing kv store migrations

fix: ensure migrations applied in all test cases

* chore: update kv and migration documentation
2020-07-01 12:08:20 +01:00
Jonathan A. Sternberg 5aeca082c8
chore: update staticcheck and fix newly identified lint checks (#18737) 2020-06-26 18:54:09 -05:00
Brett Buddin 81e4b02b42
fix(kv): Install feature-flag for switching between normal and simplified options parsing. (#18662) 2020-06-23 12:22:53 -04:00
Lyon Hill c9177b8913
feat: migrate task records to always have an owner id (#18513)
* feat: migrate task records to always have an owner id

Co-authored-by: Alirie Gray <alirie.gray@gmail.com>
Co-authored-by: George <me@georgemac.com>
2020-06-17 12:30:37 -06:00
Lyon Hill 4809285c91
fix: remove urm create from task create request. (#18519)
* fix: remove urm create from task create request.

This will greatly reduce the amount of urms created in the system. To make this change to the system we need to also remove our direct reliance on the urm's in tasks.
Remove the create and delete portion of the task actions that are creating and deleting urms
Remove reliance on urm's when we are doing FindTaskByUser and instead rely on the user filter matching the task.OwnerID

One test had to be changed because the test was explicitly hacking the task to remove the owner ID and then trying to successfully look up the task by ownerID

* fix: add in feature flag

* fix: apply cursor cleanliness and permission error handling
2020-06-17 08:20:05 -06:00
Alirie Gray ec3a857fd0
refactor: remove org service from kv dashboard service (#18504) 2020-06-16 14:03:42 -07:00
Johnny Steenbergen 003816684a chore(kv): update tracing with bucket/resource tags for store base 2020-06-05 12:45:50 -07:00
jlapacik 7db9f4c520 Merge branch 'master' into chore/merge-master 2020-05-26 10:03:42 -07:00
Alirie Gray 7f4ddabe8a
refactor: add new label package (#18078) 2020-05-21 11:30:19 -07:00
jlapacik 34e581ca0a Merge branch 'master' into chore/merge-master 2020-05-12 11:18:25 -07:00
George f9fd9d4717
refactor: remove urm and org service from check service interface definition (#17969) 2020-05-12 11:11:42 +01:00
Lyon Hill bdc882f6ce
feat(session): Build out a new session service (#17950)
This new session service has the ability to work independant of other systems
it relies on having its own store type which should allow us to be more flexible
then using the built in kv system.

I have included an in mem session store.
2020-05-11 15:04:11 -06:00
jlapacik 4aec0dc48e Merge branch 'master' into chore/update-flux 2020-05-06 10:00:09 -07:00
Johnny Steenbergen 8e52b6cf56 fix: delete unique keys when record not found
was missign this in one code path. Decided to throw this into a defer
so its always caught on exit regardless of what path it follows.
2020-05-05 11:01:13 -07:00
jlapacik 2ef9999907 Merge branch 'master' into chore/merge-master 2020-04-30 09:53:04 -07:00
Brett Buddin af4f8e40f7
fix(kv): Ensure UpdateUser cleans up the index when updating names. 2020-04-29 17:46:18 -04:00
jlapacik 63fd3655be Merge branch 'master' into chore/merge-master-into-algo-w 2020-04-22 14:52:59 -07:00
Johnny Steenbergen e5e5500401 feat(dashboards): extend dashboard update API to take cells as a put doc operation 2020-04-20 14:04:45 -07:00
jlapacik 90fb7543ce Merge branch 'master' into chore/merge-master 2020-04-16 14:43:52 -07:00
Lyon Hill c02e83038f
fix: org filtering for both kv and tenant need to match behaviors. (#17758) 2020-04-16 12:22:21 -06:00
Alirie Gray 4e690062cb
fix(labels): prevent adding duplicate labels to resources in kv (#17340) 2020-04-16 09:02:50 -07:00
jlapacik 7541af8414 chore: merge master into algow 2020-04-15 14:42:03 -07:00
George 00eb982b18
fix(kv): don't set session expiration time to earlier than existing expiration on renew session (#17751)
* chore(kv): add failing test for session renewal extension

* fix(kv): ensure renew session only updates expiration if it is newer than existing

* chore: update changelog to reflect renew session expiration fix
2020-04-15 16:45:29 +01:00
George 655f0df2d9
feat(kv): enable reading from URM by user index (#17618) 2020-04-15 10:36:39 +01:00
Lyon Hill 4421a39639
feat(tenant): Build out the onboarding system in tenant and integrate it into launcher (#17558)
We are adding in a setup/user route this is not in swagger at the moment but will be
added once we feel it is stable.
2020-04-06 15:58:15 -06:00
Jonathan A. Sternberg d3fa60991f
Merge branch 'master' into chore/merge-master 2020-04-06 12:17:47 -05:00
Jonathan A. Sternberg 0ae8bebd75
refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
George 2840e6f26e
feat(kv): add ability to configure a max permissions using auth filter function (#17598) 2020-04-03 17:02:51 +01:00
Jonathan A. Sternberg 469c5849c4
Merge branch 'master' into feat/use-algo-w 2020-04-03 09:30:04 -05:00
George 0a7772ac93
fix(kv): update index to use new bucket.GetBatch (#17544)
* fix(kv): update index to use new bucket.GetBatch

* chore(kv): add index walk benchmark for inmem and bolt
2020-04-02 13:12:35 +01:00
Jonathan A. Sternberg f385840f3a
refactor(kv): set the default session length when not specified (#17547)
At the moment, the default session length only gets set to the default
when no service config is specified. So if a service config is used and
it does not set a value for the session length, then the session length
will be zero.

This modifies the creation of the kv service so that it will set the
default session length if the session length is set to zero (the default
value) instead of only doing it when no service config is specified.
2020-04-01 15:02:22 -05:00
George 9d5d63518d
feat(kv): add support for batch getting keys on bucket interface (#17531) 2020-04-01 17:51:35 +01:00
George 173ded1a10
fix(kv): make index walk use cursor instead of get (#17501) 2020-03-31 17:26:21 +01:00
Yiqun (Ethan) Zhang 48efdb52ea
build(flux): update Flux to v0.65.0 (#17484) 2020-03-27 18:42:19 -04:00
Lorenzo Affetti 1e36e7b3ad
feat(tenant): add duplicate read service 2020-03-25 12:06:28 +01:00
Marc Delagrammatikas 71ee028973 feat: export transactions to support importing kv as a library
Co-authored-by: Chris Goller <goller@gmail.com>
2020-03-20 11:59:11 -07:00
Marc Delagrammatikas ea8e6d15d0 refactor: fixes typo in OnboardInitialUser method
Fixes typo introduced by 7b99c28a99
2020-03-20 10:48:20 -07:00
Johnny Steenbergen 481ee1653d fix: add validation for existing resource for index store base
issue was that all checks were being made excdept for the initial check
in the entity store. fix added with tests here to validate.
2020-03-20 10:15:02 -07:00
George 6f0d769625
feat(kv): add user resource mapping by user index (#17349)
* feat(kv): add user resource mapping by user index

* feat(kv): add support for reading from URM user index when enabled
2020-03-20 11:03:00 +00:00
Lorenzo Affetti 413f7ad126
test: add tests for tenant service 2020-03-19 11:34:15 +01:00
Marc Delagrammatikas 7b99c28a99 refactor: rename Generate to OnboardInitialUser
Renaming Generate in anticipation of a new method that will onboard
users other than the initial user. The intent is to simplify multi-user
setups.

Co-authored-by: Chris Goller <goller@gmail.com>
2020-03-18 15:35:26 -07:00
George 1d400a4f0f
feat(kv): support for migrations (#17145)
* feat(kv): migration types for managing kv buckets and indexes over time

chore(kv): fixup comments in migrator types

fix(kv): initialize migrator bucket on kv service initialize

chore(kv): remove currently unused auth index

chore(kv): remove currently unused urm index

* chore(kv): move migrator tests into testing package and run for inmem and bolt

* chore(changelog): update changelog to reflect kv migrator type

* fix(kv): update auto migration store to return migratable store

* chore(kv): wrap error using func instead of defer in index

* chore(kv): rename Name method to MigrationName for clarity

* chore(kv): update migration log messages to match influxdb standard
2020-03-18 12:23:51 +00:00
Gavin Cabbage f5e8547482
fix(buckets): prevent returning system buckets to unauthorized users (#17117) 2020-03-11 13:06:08 -04:00
Greg f98874566c
fix: allow authorized label service to be called indirectly (#17111)
* fix: allow authorized label service to be called indirectly

17071 exists because pkger loads all service resources as authorized on
start, resulting in them all being authorized when referenced indirectly
(not hit directly via api by consumer). Rather than restructure pkger to
only authorize direct services, this allows proper indirect auth to
labels (the cause of 17071).

* Add orgService to tests

* Add resource types to find orgID from
2020-03-11 10:58:39 -06:00
George e25b8e5931
feat(kv): index utility type (#16910)
* feat(kv): new index type for managing kv indexes

* feat(kv): index verify diff now can produce list of corrupt foreign keys

* fix(testing): refactor kv index tests into testing package and integrate with bolt

* chore(kv): fix go lint error in index

* fix(kv): add test for index walk

* fix(kv): change index cursing strategy to reduce calls to source bkt.Get

* feat(kv): add delete and populate remove dangling foreign keys to index
2020-03-11 14:42:29 +00:00
Jonathan A. Sternberg 7012470479
Merge branch 'master' into feat/use-algo-w 2020-03-10 14:52:28 -05:00
Jonathan A. Sternberg 2374717c15 refactor(kv): when no session length is set, use the default
In the past, the default was only being set if a service config wasn't
provided. But if a service config was provided and gave a zero value, it
would not fill in the default value. This changes the code so that it
will always set the default value if the session length is set to zero.
2020-03-09 16:56:45 -05:00
Lorenzo Affetti fd729f8a38
fix(http): refactor document service and fix auth 2020-03-09 20:32:31 +01:00
Jonathan A. Sternberg 0d6e4e310b
Merge branch 'master' into feat/use-algo-w 2020-03-06 16:46:49 -06:00
Jonathan A. Sternberg 834a8740e0
refactor(task/backend): move the task/backend constants to the global package (#17133)
This moves a few types and constants to the global package so it can be
used without importing the `task/backend` package. These constants are
referenced in non tasks-specific code.

This is needed to break a dependency chain where the task backend will
call into the flux runtime to perform parsing or evaluation of a script
and to prevent the http package from inheriting that dependency.
2020-03-06 16:19:32 -06:00
Jonathan A. Sternberg bcbb9df72e
refactor(task): tasks will now use the flux language service (#17104)
The tasks subsystem will now use the flux language service to parse and
evaluate flux instead of directly interacting with the parser or
runtime. This helps break the dependency on the libflux parser for the
base influxdb package.

This includes the task notification packages which were changed at the
same time.
2020-03-05 14:36:58 -06:00
jlapacik 2c184ead7f chore: update flux dependency and unskip notification tests
Fixes https://github.com/influxdata/influxdb/issues/16809.
2020-02-21 14:58:41 -08:00
Lorenzo Affetti 9defb8a77f
feat(http): add document service 2020-02-21 15:58:40 +01:00
George f239a2ed9c
fix(kv): remove URM and Authorizations by UserID Index (#16852)
* Revert "fix(kv): Don't stop when key not found from index."

This reverts commit bd9167d383.

* Revert "fix(kv): push down org ID to skip in delete URM (#16841)"

This reverts commit a5f508de77.

* Revert "fix(kv): delete authorization from correct index bucket (#16835)"

This reverts commit 7349216e94.

* Revert "feat(kv): Index Authorizations by User ID (#16818)"

This reverts commit df36fe957b.

* Revert "feat: add indexes to urm for user lookups (#16789)"

This reverts commit 9561d0a4f4.
2020-02-13 15:27:57 +00:00
Brett Buddin bd9167d383
fix(kv): Don't stop when key not found from index. 2020-02-12 21:38:17 -05:00
Chris Goller a5f508de77
fix(kv): push down org ID to skip in delete URM (#16841)
* fix(kv): push down org ID to skip in delete URM

* fix(kv): use database key rather than resource id

We are trying to skip deletes that would remove keys
that have already been deleted.  This is a rather
extreme approach and I believe we should think about how
to fix user-resource-mappings.

Co-authored-by:  Lyon Hill <lyondhill@gmail.com>
Signed-off-by: Chris Goller <goller@gmail.com>

Co-authored-by: George <me@georgemac.com>
Co-authored-by: Lyon Hill <lyondhill@gmail.com>
2020-02-12 14:33:57 -06:00
George 7349216e94
fix(kv): delete authorization from correct index bucket (#16835)
* fix(kv): delete authorization from correct index bucket

* fix(kv): return not found code when user resource mapping indexed by not in source

* chore(kv): define failing test for URM on delete
2020-02-12 18:36:45 +00:00
Christopher M. Wolff d6766962d1
test(query): skip tests that are not passing in feat/use-algo-w (#16813) 2020-02-11 15:02:26 -08:00
George df36fe957b
feat(kv): Index Authorizations by User ID (#16818)
* feat(kv): add user id index on authorizations

* chore(auths): test FindAuthorizations both with and without a populated index

* chore(kv): cleanup index skipping flag in auths service

* fix(kv): bad flag around auth by user index population

* fix(kv): auth by user index lookup use correct buckets

* chore(kv): ensure indexer is called as expected when auth user index missing

* chore(kv): add benchmarks around authorization lookup
2020-02-11 17:34:20 +00:00
Lyon Hill 9561d0a4f4
feat: add indexes to urm for user lookups (#16789) 2020-02-11 09:17:37 -07:00
Lyon Hill ec13042c57
feat(kv): Create a indexer to allow the addition of indexes (#16745)
* feat(kv): Create a indexer to allow the addition of indexes

This will allow the population of indexes to be incremental and allow
for a rolling update to the index's to be handled cleanly.
2020-02-07 09:01:37 -07:00
George bc64968b0b
chore(task): add test around paging using after (#16774)
* chore(task): add test around paging using after

* fix(kv): support filter.After in FindTasksByUser
2020-02-07 15:48:55 +00:00
George fe990aa4db
feat(kv): add cursor option skip first item (#16758) 2020-02-06 12:18:47 -07:00
Lyon Hill ef848d0aa4
fix(kv): task lookup for all tasks will now skip the after key (#16757) 2020-02-06 10:44:36 -07:00
Kelvin Wang 53d9caf1c6 fix(kv): fix patching panics 2020-02-05 11:12:03 -05:00
Greg e593119c3d
feat: report telegraf plugin usage metrics (#16378)
* Begin implementing retreival of telegraf plugin stats

* Implement storing/deletion of telegraf plugin stats

* Test plugin stats

* Initialize plugins bucket for tests

* Add comment

* Shorten time and frequency in bolt when providing telegraf plugins metrics

* Simplify ticker loop

* Leak underlying ticker while still satisfying linter
2020-02-04 08:24:58 -07:00
Lyon Hill 8bd6044398
fix(kv): update user and variables to use forward cursor (#16671) 2020-02-03 08:50:06 -07:00
Lyon Hill f385d19713
fix(kv): update tasks kv to use forward cursor (#16670) 2020-02-03 08:49:51 -07:00
Lyon Hill cb7f053d45
fix(kv): Update scrapers to use new forward cursor (#16647)
* fix(kv): Update scrapers to use new forward cursor

I also made a minor update to move a db lookup outside of a for loop to save
time and optimize

* fix(inmem): fix a potential race condition
2020-01-24 13:35:47 -07:00
Lyon Hill d1c0ddc362
fix(kv): update kv source to use the new forward cursor (#16659) 2020-01-24 09:46:01 -07:00
Lyon Hill 0fa52eec9d
fix(kv): update kv secrets to use new forward cursor (#16648) 2020-01-24 09:24:20 -07:00