* refactor(ui): extend url activator to check on deeper URLs
* refactor(ui): create load data nav and page components
* refactor(ui): update telegrafs, scrapers, and buckets to use load data nav
* refactor(ui): update side nav and router to expose load data tab
* chore(ui): update changelog
* refactor(ui): update link to telegrafs page from status page
* refactor(ui): fix broken routes
* refactor(ui): make settings page tabs consistent with load data tabs
* refactor(ui): appease the linter gods
* refactor(ui): attempt to fix e2e tests
* feat(task): Remove token's from task structures
We had previously removed token's from the task api but left the token in place in several locations in the stack.
Now we can cleanly remove the extra tokens.
* refactor(ui): create shared component for settings pages
* refactor(ui): use clockface tabs in settings nav
* refactor(ui): ensure all settings pages use SettingsTabbedPage component
* refactor(ui): replace TabsContentHeader with SettingsTabbedPageHeader
* refactor(ui): remove unused logic from when tasks page was rendered in 2 places
* refactor(ui): add testID to searchWidget
* refactor(ui): standardize use of SearchWidget across settings pages
* refactor(ui): delete locally defined Tabs components
* refactor(ui): appease the linter gods
* refactor(ui): rename Alerting related page titles
* refactor(ui): update copy in alerting index empty state
* refactor(ui): shrink dashed buttons slightly
* refactor(ui): update copy in VEO and alerting overlays
* refactor(ui): ensure AND in rule builder is a different color
* refactor(ui): fix linter error for reals
The ResponseWriter would truncate the last series if the byte size of
the points frames exceeded the writeSize constant, causing a Flush to
occur and the cumulative ResponseWriter.sz to reset to zero. Because
ResponseWriter.sz was not incremented for each frame, it remained at
zero, which resulted in the final Flush short circuiting.
This commit implements the Size method for the cursors.Array types
to be used to estimate the size of frame. This is in place of calling
the Protocol Buffer `Size` function, which can be very expensive.
* feat(task): impersonate user on task execution
Passing tokens to tasks is cumbersome and we needed a way to more easily create tasks. With this change we no longer need a token on task create. We take the user that created the task and pass that in as the "owner". As far as the task is concerned the owner is the source of permissions.
This is done by adding an additional field on task create that is OwnerID. We will no longer respect the token passed in and it will be deprecated soon.
Things to do still:
Task updates need to allow for owners to be set.