feat: enable notebooks and annotations (#21972)

* feat: remove notebooks feature flags

* feat: turn on annotations feature flag

* chore: removed unused UI feature flags

* docs: add line to CHANGELOG about notebooks and annotations

* chore: update CHANGELOG
pull/21998/head
William Baker 2021-07-29 16:32:12 -06:00 committed by GitHub
parent 09f5f48aeb
commit 11e5ce0dd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 8 additions and 119 deletions

View File

@ -22,6 +22,10 @@ This release upgrades the project to `go` version 1.16.
Because of the version bump to `go`, the macOS build for this release requires at least version 10.12 Sierra to run.
### Notebooks and Annotations
Support for Notebooks and Annotations is included with this release.
### SQLite Metadata Store
This release adds an embedded SQLite database for storing metadata required by the latest UI features like Notebooks and Annotations.
@ -53,6 +57,7 @@ This release adds an embedded SQLite database for storing metadata required by t
1. [21910](https://github.com/influxdata/influxdb/pull/21910): Added `--ui-disabled` option to `influxd` to allow for running with the UI disabled.
1. [21938](https://github.com/influxdata/influxdb/pull/21938): Added route to delete individual secret.
1. [21958](https://github.com/influxdata/influxdb/pull/21958): Telemetry improvements: Do not record telemetry data for non-existant paths; replace invalid static asset paths with a slug.
1. [21972](https://github.com/influxdata/influxdb/pull/21972): Added support for notebooks and annotations.
### Bug Fixes

View File

@ -55,26 +55,6 @@
contact: Query Team
lifetime: permanent
- name: Notebooks
description: Determine if the notebook feature's route and navbar icon are visible to the user
key: notebooks
default: false
contact: Monitoring Team
lifetime: temporary
expose: true
# This notebooksApi flag only controls the specific API calls that the frontend uses,
# not if the notebooks button is enabled on the sidebar. The notebooks flag (above) controls
# the display of the notebooks button on the sidebar. The notebooksAPI flag should be set to true
# to ensure the UI sends requests that the OSS backend can handle.
- name: Notebooks Service API
description: Enable the Equivalent notebooksd Service API
key: notebooksApi
default: true
contact: Edge Team
lifetime: temporary
expose: true
- name: Inject Latest Success Time
description: Inject the latest successful task run timestamp into a Task query extern when executing.
key: injectLatestSuccessTime
@ -94,22 +74,6 @@
default: false
expose: true
- name: UI CSV Uploader
description: Adds the ability to upload data from a CSV file to a bucket
key: csvUploader
default: true
contact: Monitoring Team
expose: true
lifetime: temporary
- name: Editable Telegraf Configurations
description: Edit telegraf configurations from the UI
key: editTelegrafs
default: true
contact: Monitoring Team
expose: true
lifetime: temporary
- name: Default Monaco Selection to EOF
description: Positions the cursor at the end of the line(s) when using the monaco editor
key: cursorAtEOF
@ -137,7 +101,7 @@
- name: Annotations UI
description: Management, display, and manual addition of Annotations from the UI
key: annotations
default: false
default: true
contact: Monitoring Team
lifetime: temporary
expose: true

View File

@ -86,34 +86,6 @@ func QueryTracing() BoolFlag {
return queryTracing
}
var notebooks = MakeBoolFlag(
"Notebooks",
"notebooks",
"Monitoring Team",
false,
Temporary,
true,
)
// Notebooks - Determine if the notebook feature's route and navbar icon are visible to the user
func Notebooks() BoolFlag {
return notebooks
}
var notebooksApi = MakeBoolFlag(
"Notebooks Service API",
"notebooksApi",
"Edge Team",
true,
Temporary,
true,
)
// NotebooksServiceApi - Enable the Equivalent notebooksd Service API
func NotebooksServiceApi() BoolFlag {
return notebooksApi
}
var injectLatestSuccessTime = MakeBoolFlag(
"Inject Latest Success Time",
"injectLatestSuccessTime",
@ -156,34 +128,6 @@ func TimeFilterFlags() BoolFlag {
return timeFilterFlags
}
var csvUploader = MakeBoolFlag(
"UI CSV Uploader",
"csvUploader",
"Monitoring Team",
true,
Temporary,
true,
)
// UiCsvUploader - Adds the ability to upload data from a CSV file to a bucket
func UiCsvUploader() BoolFlag {
return csvUploader
}
var editTelegrafs = MakeBoolFlag(
"Editable Telegraf Configurations",
"editTelegrafs",
"Monitoring Team",
true,
Temporary,
true,
)
// EditableTelegrafConfigurations - Edit telegraf configurations from the UI
func EditableTelegrafConfigurations() BoolFlag {
return editTelegrafs
}
var cursorAtEOF = MakeBoolFlag(
"Default Monaco Selection to EOF",
"cursorAtEOF",
@ -230,7 +174,7 @@ var annotations = MakeBoolFlag(
"Annotations UI",
"annotations",
"Monitoring Team",
false,
true,
Temporary,
true,
)
@ -247,13 +191,9 @@ var all = []Flag{
memoryOptimizedFill,
memoryOptimizedSchemaMutation,
queryTracing,
notebooks,
notebooksApi,
injectLatestSuccessTime,
enforceOrgDashboardLimits,
timeFilterFlags,
csvUploader,
editTelegrafs,
cursorAtEOF,
refreshSingleCell,
rangeAnnotations,
@ -267,13 +207,9 @@ var byKey = map[string]Flag{
"memoryOptimizedFill": memoryOptimizedFill,
"memoryOptimizedSchemaMutation": memoryOptimizedSchemaMutation,
"queryTracing": queryTracing,
"notebooks": notebooks,
"notebooksApi": notebooksApi,
"injectLatestSuccessTime": injectLatestSuccessTime,
"enforceOrgDashboardLimits": enforceOrgDashboardLimits,
"timeFilterFlags": timeFilterFlags,
"csvUploader": csvUploader,
"editTelegrafs": editTelegrafs,
"cursorAtEOF": cursorAtEOF,
"refreshSingleCell": refreshSingleCell,
"rangeAnnotations": rangeAnnotations,

View File

@ -9,11 +9,9 @@ import (
"github.com/golang/mock/gomock"
"github.com/influxdata/influxdb/v2"
"github.com/influxdata/influxdb/v2/kit/feature"
"github.com/influxdata/influxdb/v2/kit/platform"
"github.com/influxdata/influxdb/v2/mock"
"github.com/stretchr/testify/require"
"go.uber.org/zap"
"go.uber.org/zap/zaptest"
)
@ -200,9 +198,7 @@ func TestNotebookHandler(t *testing.T) {
func newTestServer(t *testing.T) (*httptest.Server, *mock.MockNotebookService) {
ctrlr := gomock.NewController(t)
svc := mock.NewMockNotebookService(ctrlr)
// server needs to have a middleware to annotate the request context with the
// appropriate feature flags while notebooks is still behind a feature flag
server := annotatedTestServer(NewNotebookHandler(zaptest.NewLogger(t), svc))
server := NewNotebookHandler(zaptest.NewLogger(t), svc)
return httptest.NewServer(server), svc
}
@ -227,15 +223,3 @@ func doTestRequest(t *testing.T, req *http.Request, wantCode int, needJSON bool)
}
return res
}
func annotatedTestServer(serv http.Handler) http.Handler {
notebooksFlag := feature.MakeFlag("", "notebooks", "", true, 0, true)
notebooksApiFlag := feature.MakeFlag("", "notebooksApi", "", true, 0, true)
return feature.NewHandler(
zap.NewNop(),
feature.DefaultFlagger(),
[]feature.Flag{notebooksFlag, notebooksApiFlag},
serv,
)
}