Commit Graph

317 Commits (9b6d4f949975b9f9db8228a961090b5b4f49b1a4)

Author SHA1 Message Date
George 8ca2989717 feat(dashboards): isolate service in own package (#19852)
feat(dashboard): add owner ID to dashboard model

This adds the explicit OwnerID field to Dashboard and also adds a
migration which populates dashboard owners IDs based on dashboard owner
URMs.

feat(dashboards): isolate service in own package

This change isolates the dashboards service into its own package. It
also updates the API to no longer interface with user resource mappings.
Instead it defines new handlers which rely on the newly populated owner
ID field.

chore(dashboards): port tests from http package into new service transport package

chore(launcher): use dashboard transport package client in launcher tests

chore(kv): remove now defunkt dashboard service implementations
2020-11-04 15:53:02 +00:00
George MacRorie b274e15eac fix(telegraf): support pagination parameters when listing 2020-11-04 15:53:02 +00:00
George MacRorie 5feea36e16 refactor(telegraf): remove references to kv service telegraf service implementation 2020-11-04 15:53:02 +00:00
George MacRorie 222470b1ef refactor(telegraf): add new isolated config service 2020-11-04 15:53:02 +00:00
Dan Moran ace60ed322 fix(kv): remove extra multiplication of RP to avoid overflow
Mirrors change from the onboarding service.
2020-11-03 12:37:50 -05:00
Stuart Carnie 6bc4158a46 feat(authorization): Add bcrypt password support to v1 authorizations
This commit extends the `v1/authorization` package to support
passwords associated with a token.

The summary of changes include:

* authorization.Service implements influxdb.PasswordsService
* Setting passwords for authorizations
* Verifying (comparing) passwords for a given authorization
* A service to cache comparing passwords, using a weaker hash
  that will live in memory only. This implementation is copied
  from InfluxDB 1.x
* Extended HTTP service to set a password using
  /private/legacy/authorizations/{id}/password

Closes #
2020-10-28 13:03:42 -07:00
George 78cafa861b
refactor(notifications): isolate endpoint service (#19818)
* refactor(notifications): isolate endpoint service

Following the ongoing effort to isolate behaviours into their own
packages and off of kv.Service, this change move the notification
endpoints service implementation into its own package. It removes the
endpoint behaviors from the kv service completely.

* chore(influxd): wire up the isolated check service in place of kv service
2020-10-28 15:22:14 +00:00
Stuart Carnie 5c63c2163d feat(authorization): Create a v1 authorization service
This service is a private API for managing authorization tokens
for v1 API requests.

Note that this commit does not hook up the service to the v1
`/query` and `/write`, which will occur in a subsequent PR.

Closes #19812
2020-10-27 08:26:10 -07:00
George 3d643e0681
refactor(notification): move rule service into own package (#19804)
* refactor(notification): move rule service into own package

* chore(launcher): fix tests to use clients as opposed to direct kv service

* chore(influx): update task cli to consume core domain model task from client

* chore(kv): remove rule service behaviours from kv

This also introduces the org id resolver type. Which is transplanted
from the kv service. As this one function coupled all resource
capabilities onto the kv service. Making removing these capabilities
impossible. Moving this type out into its own package which depends on
each service explicitly ensures we don't have one type which has to
implement all the service contracts.

* fix(launcher): remove double reference to influxdb package
2020-10-27 11:45:05 +00:00
Stuart Carnie d28e55d3b6 fix(kv): Reorganize bcrypt password hashing outside transactions
This ensures that transaction lifetimes are shorter to reduce lock
contention.

Additionally, this PR removes the ability to set an empty password
when running the initial on-boarding process. According to the
original developer, this behavior was required to permit Cloud
processes to complete. As this code is no longer shared, this security
issue is corrected.
2020-10-12 08:06:32 -07:00
greg linton 13cb2927bb Merge branch 'master' into feat/18733 2020-09-21 17:21:06 -06:00
Ayan George ca2055c16c
refactor: Replace ctx.Done() with ctx.Err() (#19546)
* refactor: Replace ctx.Done() with ctx.Err()

Prior to this commit we checked for context cancellation with a select
block and context.Context.Done() without multiplexing over any other
channel like:

  select {
    case <-ctx.Done():
      // handle cancellation
    default:
      // fallthrough
  }

This commit replaces those type of blocks with a simple check of
ctx.Err().  This has the following benefits:

* Calling ctx.Err() is much faster than entering a select block.

* ctx.Done() allocates a channel when called for the first time.

* Testing the result of ctx.Err() is a reliable way of determininging if
  a context.Context value has been canceled.

* fix: Fix data race in execDeleteTagValueEntry()
2020-09-16 12:20:09 -04:00
Yoofi Quansah 99bb1bba4d
Merge pull request #19548 from influxdata/yq-issue-19547
chore: remove hardcoded constants for ids
2020-09-14 09:20:45 -07:00
greg linton 53b325c7d0 Merge branch 'master' into feat/18733 2020-09-11 14:23:24 -06:00
Yoofi Quansah 2099b64578 chore: total removal of references to hardcoded IDs 2020-09-11 12:29:00 -07:00
Alirie Gray 12039918e4 fix(variables): use Update function for Put Variable 2020-09-11 11:48:11 -07:00
Yoofi Quansah 48f72e0dfd chore: remove hardcoded constants for ids 2020-09-10 12:35:25 -07:00
Stuart Carnie f9b058772b
Merge remote-tracking branch 'origin/master' into sgc/tsm1 2020-09-02 11:11:28 -07:00
Lyon Hill 46d4f7d7bb
chore(tenant): point tests to new tenant service (#19477)
Now that the tenant service is complete we should be using it for all
test instead of the kv.Service.
2020-09-02 11:50:26 -06:00
greg linton 4e1bc7ceb2 feat(pkger): add ability to export dashboards by name 2020-08-27 15:32:04 -06:00
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