Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Spaces] Enable Per-Space Advanced Settings #19869

Closed
legrego opened this issue Jun 13, 2018 · 8 comments
Closed

[Spaces] Enable Per-Space Advanced Settings #19869

legrego opened this issue Jun 13, 2018 · 8 comments
Labels
Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more!

Comments

@legrego
Copy link
Member

legrego commented Jun 13, 2018

Each Space within Kibana should have its own set of Advanced Settings. It's possible that not all settings will translate properly, so I'm creating this issue to track research and findings as we go.

NOTE Our approach has changed. See this comment for more information

Space Aware

UI Setting Name Description
buildNum undefined
query:queryString:options Query string options Options for the lucene query string parser
query:allowLeadingWildcards Allow leading wildcards in query When set, * is allowed as the first character in a query clause. Currently only applies when experimental query features are enabled in the query bar. To disallow leading wildcards in basic lucene queries, use query:queryString:options
search:queryLanguage Query language Query language used by the query bar. Kuery is an experimental new language built specifically for Kibana.
sort:options Sort options Options for the Elasticsearch sort parameter
dateFormat Date format When displaying a pretty formatted date, use this format
dateFormat:tz Timezone for date formatting Which timezone should be used. "Browser" will use the timezone detected by your browser.
dateFormat:scaled Scaled date format Values that define the format used in situations where time-based data is rendered in order, and formatted timestamps should adapt to the interval between measurements. Keys are ISO8601 intervals.
dateFormat:dow Day of week What day should weeks start on?
defaultIndex Default index The index to access if no index is set
defaultColumns Default columns Columns displayed by default in the Discovery tab
metaFields Meta fields Fields that exist outside of _source to merge into our document when displaying it
discover:sampleSize Number of rows The number of rows to show in the table
discover:aggs:terms:size Number of terms Determines how many terms will be visualized when clicking the "visualize" button, in the field drop downs, in the discover sidebar.
discover:sort:defaultOrder Default sort direction Controls the default sort direction for time based index patterns in the Discover app.
doc_table:highlight Highlight results Highlight results in Discover and Saved Searches Dashboard. Highlighting makes requests slow when working on big documents.
courier:maxSegmentCount Maximum segment count Requests in discover are split into segments to prevent massive requests from being sent to elasticsearch. This setting attempts to prevent the list of segments from getting too long, which might cause requests to take much longer to process.
courier:ignoreFilterIfFieldNotInIndex Ignore filter(s) This configuration enhances support for dashboards containing visualizations accessing dissimilar indexes. When set to false, all filters are applied to all visualizations. When set to true, filter(s) will be ignored for a visualization when the visualization's index does not contain the filtering field.
courier:setRequestPreference Request preference Allows you to set which shards handle your search requests.
  • sessionId: restricts operations to execute all search requests on the same shards. This has the benefit of reusing shard caches across requests.
  • custom: allows you to define a your own preference. Use courier:customRequestPreference to customize your preference value.
  • none: means do not set a preference. This might provide better performance because requests can be spread across all shard copies. However, results might be inconsistent because different shards might be in different refresh states.
courier:customRequestPreference Custom request preference Request Preference used when courier:setRequestPreference is set to "custom".
fields:popularLimit Popular fields limit The top N most popular fields to show
histogram:barTarget Target bars Attempt to generate around this many bars when using "auto" interval in date histograms
histogram:maxBars Maximum bars Never show more than this many bars in date histograms, scale values if needed
visualize:enableLabs Enable labs Enable lab visualizations in Visualize.
visualization:tileMap:maxPrecision Maximum tile map precision The maximum geoHash precision displayed on tile maps: 7 is high, 10 is very high, 12 is the max. Explanation of cell dimensions
visualization:tileMap:WMSdefaults Default WMS properties Default properties for the WMS map server support in the coordinate map
visualization:regionmap:showWarnings Show region map warning Whether the region map shows a warning when terms cannot be joined to a shape on the map.
visualization:colorMapping Color mapping Maps values to specified colors within visualizations
visualization:loadingDelay Loading delay Time to wait before dimming visualizations during query
visualization:dimmingOpacity Dimming opacity The opacity of the chart items that are dimmed when highlighting another element of the chart. The lower this number, the more the highlighted element will stand out. This must be a number between 0 and 1.
csv:separator CSV separator Separate exported values with this string
csv:quoteValues Quote CSV values Should values be quoted in csv exports?
history:limit History limit In fields that have history (e.g. query inputs), show this many recent values
shortDots:enable Shorten fields Shorten long fields, for example, instead of foo.bar.baz, show f.b.baz
truncate:maxHeight Maximum table cell height The maximum height that a cell in a table should occupy. Set to 0 to disable truncation
indexPattern:fieldMapping:lookBack Recent matching patterns For index patterns containing timestamps in their names, look for this many recent matching patterns from which to query the field mapping
indexPatterns:warnAbout UnsupportedTimePatterns Time pattern warning When an index pattern is using the now unsupported "time pattern" format, a warning will be displayed once per session that is using this pattern. Set this to false to disable that warning.
format:defaultTypeMap Field type format name Map of the format name to use by default for each field type. "default" is used if the field type is not mentioned explicitly
format:number:defaultPattern Number format Default numeral format for the "number" format
format:bytes:defaultPattern Bytes format Default numeral format for the "bytes" format
format:percent:defaultPattern Percent format Default numeral format for the "percent" format
format:currency:defaultPattern Currency format Default numeral format for the "currency" format
format:number:defaultLocale Formatting locale Numeral language locale
savedObjects:perPage Objects per page Number of objects to show per page in the load dialog
savedObjects:listingLimit Objects listing limit Number of objects to fetch for the listing pages
timepicker:timeDefaults Time picker defaults The timefilter selection to use when Kibana is started without one
timepicker:refreshIntervalDefaults Time picker refresh interval The timefilter's default refresh interval
timepicker:quickRanges Time picker quick ranges The list of ranges to show in the Quick section of the time picker. This should be an array of objects, with each object containing "from", "to" (see accepted formats), "display" (the title to be displayed), and "section" (which column to put the option in).
dashboard:defaultDarkTheme Dark theme New dashboards use dark theme by default
filters:pinnedByDefault Pin filters by default Whether the filters should have a global state (be pinned) by default
filterEditor:suggestValues Filter editor suggest values Set this property to false to prevent the filter editor from suggesting values for fields.
notifications:banner Custom banner notification A custom banner intended for temporary notices to all users. Markdown supported.
notifications:lifetime:banner Banner notification lifetime The time in milliseconds which a banner notification will be displayed on-screen for. Setting to Infinity will disable the countdown.
notifications:lifetime:error Error notification lifetime The time in milliseconds which an error notification 'will be displayed on-screen for. Setting to Infinity will disable.
notifications:lifetime:warning Warning notification lifetime The time in milliseconds which a warning notification 'will be displayed on-screen for. Setting to Infinity will disable.
notifications:lifetime:info Info notification lifetime The time in milliseconds which an information notification will be displayed on-screen for. Setting to Infinity will disable.
metrics:max_buckets Maximum buckets The maximum number of buckets a single datasource can return
state:storeInSessionStorage Store URLs in session storage The URL can sometimes grow to be too large for some browsers to handle. To counter-act this we are testing if storing parts of the URL in session storage could help. Please let us know how it goes!
indexPattern:placeholder Index pattern placeholder The placeholder for the field "Index name or pattern" in the "Settings > Indices" tab.
context:defaultSize Context size The number of surrounding entries to show in the context view
context:step Context size step The step size to increment or decrement the context size by
context:tieBreakerFields Tie breaker fields A comma-separated list of fields to use for tie-breaking between documents that have the same timestamp value. From this list the first field that is present and sortable in the current index pattern is used.
xpackReporting:customPdfLogo PDF footer image Custom image to use in the PDF's footer
xpackDashboardMode:roles Dashboards only roles Roles that belong to View Dashboards Only mode
xPack:defaultAdminEmail Admin email Recipient email address for X-Pack admin operations, such as Cluster Alert email notifications.

/ cc @kobelb

@legrego legrego added the Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more! label Jun 13, 2018
@legrego legrego mentioned this issue Jul 10, 2018
33 tasks
@legrego
Copy link
Member Author

legrego commented Jul 10, 2018

@kobelb @jen-huang

When editing advanced settings, we need to be able to visually differentiate between space-aware and non-space-aware options. For example, we need to make it abundantly clear that changing telemetry:optIn is a Kibana-wide setting, rather than a space-specific setting.

Additionally, this needs to be done in a way that allows the Advanced Settings UI to remain ignorant of the Spaces plugin.

Do you have any initial thoughts on how we could accomplish this? Jen, I tagged you since you did the Reactification of the settings screen, so I thought you might have some insight that I'm lacking

@kobelb
Copy link
Contributor

kobelb commented Jul 10, 2018

@legrego, we probably want to discuss with @elastic/kibana-design to figure out the best way to represent this and disclose to the user that the advanced settings are "space specific" and let that drive our implementation. I doubt there's anything architecturally in place right now that will afford us this capability and we'll have to add some extension points.

@cchaos
Copy link
Contributor

cchaos commented Jul 10, 2018

Right off the bat, I would say that space-aware settings and kibana-wide settings should not live in the same list. Even if you surround the kibana-wide settings in some alert, the user should know before-hand if they are going to be modifying just the current space's settings or all spaces. We may want to discuss how this might affect the management index page and the best way to disclose this type of information.

@kobelb
Copy link
Contributor

kobelb commented Jul 10, 2018

@cchaos how would you feel about "tabs" at the top to separate between the two "sections"?

@cchaos
Copy link
Contributor

cchaos commented Jul 10, 2018

@kobelb I worry that tabs aren't enough to signify the severe differences between the two.

@kobelb
Copy link
Contributor

kobelb commented Jul 10, 2018

@cchaos are you alluding to you thinking that we need two separate "pages"?

@cchaos
Copy link
Contributor

cchaos commented Jul 10, 2018

@kobelb I am alluding. :)

Right now we've got this idea of hierarchy:
Management > Kibana > Advanced settings

But with spaces, I would expect that space management (including space-specific settings) would be under Management > Kibana > Current Space. It would probably be even further like: Management > Kibana > Current Space > Advanced settings. That would leave Management > Kibana > Advanced settings still available with the few options that are Kibana-wide.

@legrego
Copy link
Member Author

legrego commented Aug 23, 2018

For anyone following this issue, we have changed our approach. Rather than having a few exceptions to the space-aware settings, we are instead revising our implementation so that we do not have any exceptions to the space-aware rule. Specifically:

  1. Telemetry will no longer be managed as a UI setting: (Manage telemetry opt-in via a dedicated document #22268)
  2. xpackDashboardMode:roles will become a space-aware setting.
  3. xPack:defaultAdminEmail will become a space-aware setting, but its usage will be reduced. It will only be used to manage the default email shown in the UI when configuring a new watcher. Monitoring's use of this setting will be deprecated in favor of a new configuration option in kibana.yml (Deprecate xpack:defaultAdminEmail for monitoring alerts #22195)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Team:Security Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more!
Projects
None yet
Development

No branches or pull requests

3 participants