Commit graph

3153 commits

Author SHA1 Message Date
dave.snider@gmail.com
76fb809633 EUI 12.3.1 (#41061)
* eui 12.3.1

* add data logos

* Fix TS uses, one SCSS use of euiOverflowShadow

* fix overflow shadow mixin in sass

* homepage logos

* refix typo on homepage

* hp snaps
2019-07-15 12:11:37 -06:00
spalger
f0e7b9e5b9 skip flaky suite (#41088) (#41087) 2019-07-15 08:35:03 -07:00
spalger
bafc25b68b skip flaky test (#41050) 2019-07-13 14:04:14 -07:00
Dmitry Lemeshko
df9d8e6f5d
FTR: upgrade chromedriver to 75 (#40791)
* ftr: update services to support chromedriver 75

* [services/webdriver] add browser logging

* update comment for W3C scrolling bug
2019-07-12 19:49:51 +02:00
Stacey Gammon
66b99ecbed
Use embeddable v2 (#39126)
* Final Embeddable API V2 PR

* fix: import discover embeddable scss file

* address code review comments

* Add a functional test that would have caught the bug... will look to add a unit version once I discover the error.

* Fix bug cause by async loading calls and changes to parent input while child is being created. added jest test

* remove outdated readme in dashboard folder

* need to always refresh dashboard container, not just when "dirty"

* add a wait, this issue started appearing right when I added this to the test

* Remove test that kills kibana ci so it's not a blocker. jest test was added for this scenario

* fix issues when panel is added then removed before it completes loading

* fix logic error with maps embeddable and isLayerTOCOpen
2019-07-12 13:31:43 -04:00
Dmitry Lemeshko
9f9d0dcbb8
WebElementWrapper: Retry WebDriver atomic calls (#40423)
* [services/lib/web_element_wrapper] use Generics in replyCall

* [services/lib/web_element_wrapper] remove redundant return types

* [services/lib/web_element_wrapper/] set retryCall timeout to 200 ms

* [services/find] explcitly pass element to have locator===null by default

* use static method to create WebElementWrapper

* missed a couple uses

* move some values to constants

* remove some unnecessary type info
2019-07-12 13:47:26 +02:00
Spencer
3e1afa347b
[visualize] wait for save to complete before proceeding (#40916) 2019-07-12 05:32:46 -06:00
spalger
57e959ef0e skip flaky test (#40670) 2019-07-11 14:22:40 -07:00
spalger
3a13b7ce23 skip flaky test (#40458) 2019-07-11 13:33:31 -07:00
Peter Pisljar
b8709e1e86
unskipping interpreter functional tests (#40840) 2019-07-11 14:37:21 +02:00
Thomas Neirynck
6ae5b56df6
[Maps] show dialog to save map when leaving app (#40215) 2019-07-11 08:28:49 -04:00
Spencer
415e3bca27
[ts] upgrade to 3.5.3 (#40228)
* [ts] upgrade to 3.5.2

* [ts] run from cwd so that relative paths are correct

* move eslint-disable-line comment into jsx attribute

* autofix eslint violations

* avoid generic type, it's not necessary and problematic

* make elasticsearch.cluster optional, many instances don't have them

* remove invalid prop

* expand AllowUnknownProperties to cleanly handle arrays

* esfilter values can sometimes be an array of strings

* allow exception objects to have unknown properties

* define accumulator as a boolean

* fix return type

* return a 404 if beat isn't found after update

* use Object.values for better types

* define return type of get() call

* define value type for Set

* define return value of get()

* define State property type

* use less get(), so ts can infer types

* define Set item type

* map state type

* make default_operator optional, since it's not always defined

* remove seemingly unused prop

* define return type of get() fn

* define inner type for state

* don't define base types are objects with index signatues

* regenerate public api docs

* make indices privileges optional too

* remove unnecessary index-signature from Exception interface

* use variadic _arg instead

* [core/plugin] use Record<string, any> rather than {}

* replace a couple more instances of {}

* revert some unnecessary changes

* remove unused types

* [reporting] output, payload, and meta are required properties

* bump to latest patch version
2019-07-10 12:26:23 -07:00
Dmitry Lemeshko
e9f84ae83d
[ftr] replace getProperty with getAttribute (#40358)
* [ftr] replace getProperty with getAttribute

* fix failing tests

* [services/pipeline_editor] revert change
2019-07-04 21:18:14 +02:00
Spencer
a95ae8c037
[prettier] upgrade to 1.18.2 (#40229)
* [prettier] upgrade to 1.18.2

* autofix prettier violations
2019-07-03 12:36:44 -07:00
Spencer
868c7125c6
[ftr/common] remove defaultIndex check (#39714) 2019-07-02 14:47:08 -07:00
spalger
0f5bfc0fce disable fully skipped suite (#40173) 2019-07-02 12:22:18 -07:00
spalger
8a6ac547a8 disable flaky test (#40173) 2019-07-02 09:07:46 -07:00
Nathan Reese
251e164e89
[Maps] replace legacy map visualizations with maps in sample data dashboards (#35997)
* merge with master

* fix functional test expect

* set custom labels for term joins and geo grid aggregations for sample data maps
2019-07-02 09:53:32 -06:00
Spencer
a8fc3619ca
[ftr/browser] poll for logs and stream them (#40098) 2019-07-02 07:47:20 -07:00
Maryia Lapata
c0c905f886
[Vis Editor] EUIfication of agg-params directive (#39502)
* Create DefaultEditorAggParams

* Create state for aggPrams

* Add useEffect when params were updated

* Move angular logic to agg.js

* Validation with from

* Working validation

* Change error message

* Rename AggParamReactWrapper to DefaultEditorAggParam and move

* Move schema editor to agg.js

* Migrate orderAgg control

* Migrate sub_metric

* Migrate sub_agg control

* Remove config from props

* Remove agg_params.html

* Remove unused agg_select and styles

* Add TS for agg.params object

* Update functional tests

* Create useUnmount custom hook

* Move useUnmount effect to agg-params

* Rename func getFormTouched to isInvalidParamsTouched

* Remove extra setValidity call

* Move setTouched into useEffect in field.tsx

* Refactor isInvalidParamsTouched function

* Rename validity to valid

* Remove describeErrors() and inline error strings

* Replace Object.keys with Object.entries

* Fix interval for rollup date histogram

* Update parameters when aggType changed

* Remove unused safe_make_label

* Remove unused translations

* Skip failed mocha tests. They will be updated in a separate PR

* Include schema errors into validation flow
2019-07-02 12:53:09 +03:00
Vadim Dalecky
f18e7439d9
「AppArch」Interpreter 👉 New Platform (#39329)
* feat: 🎸 set-up NP data plugin

* refactor: 💡 move interpreter functions registry to NP

* refactor: 💡 move interpreter renderer registry to NP plugin

* refactor: 💡 move interpreter typesRegistry to NP

* refactor: 💡 move interpreter types to NP

* chore: 🤖 import typeRegistry from NP and change TS type folder

* refactor: 💡 move interpreter expression types to NP

* refactor: 💡 move rest of interpreter common folder to NP plugin

* fix: 🐛 fix TypeScript errors

* test: 💍 improve typings and test mocks

* refactor: 💡 make Interpreter internal registry impl private

* test: 💍 inline NP backdoor mock creation in test suites

* chore: 🤖 change @kbn/interpreter import paths to try fix errors

* fix: 🐛 improve core Plugin interfaces

* feat: 🎸 add stop() lifecycle to NP data plugins

* refactor: 💡 move interpreter into expressions service data NP

* refactor: 💡 inline Registry @kbn/interpreter class

* refactor: 💡 remove dependency on @kbn/interpreter in data pub

* refactor: 💡 move interpreter common dir into expressions dir

* fix: 🐛 use TS types in kibana_context

* feat: 🎸 add types suggested in PR review

* feat: 🎸 add semantic interpreter registration functions

* refactor: 💡 use require for all @kbn/interpreter imports

* test: 💍 add Karma test mocks, thx @spalger 🙏

* docs: ✏️ update Core docs

* test: 💍 add Sinon stubs for registries

* chore: 🤖 change import syntax in hopes CI will work

* chore: 🤖 set App Architecture as owners of data plugin

* docs: ✏️ add README

* chore: 🤖 change import in hopes to fix optimizer

* fix: 🐛 make stop() plugin life-cycle optional

* docs: ✏️ update Core API docs

* test: 💍 remove unnecessary Jest mock

* chore: 🤖 don't import from deeply inside a plugin

* refactor: 💡 try different interpreter import

* fix: 🐛 fix Karma mocking

* fix: 🐛 fix TypeScript type imports

* test: 💍 fix broken test
2019-07-02 09:07:07 +02:00
dave.snider@gmail.com
53273ecff4
EUI@12.2.0 (#40039)
* EUI@12.2.0

* update EuiFormRow to hold a single child, removes comments only
2019-07-01 13:33:22 -04:00
spalger
0922772b70 skip flaky test (#39927) 2019-06-28 15:46:43 -07:00
Stacey Gammon
698efe7566
More dashboard migrations (#39387)
* More dashboard migrations

* address review comments

* remove unused translations

* use logger instead of console

* remove need for lodash

* clean up translations

* Add ui metric tracking so we have a better idea whether being stricter with migrations will cause issues

* undo trackUiMetric... not available when migrations run
2019-06-28 13:59:02 -04:00
Peter Pisljar
444bafbe0e
updating metricvis interpreter func arguments (#34532) 2019-06-28 05:44:43 +02:00
Greg Thompson
c59875573e
Upgrade EUI to 12.1.0 (#39601)
* eui@12.1.0

* jest regenerator-runtime babel-polyfill

* TS Toast -> EuiGlobalToastListToast

* EuiBadge

* EuiCopy

* snapshot updates

* simplify toast interface usage

* misc review cleanup

* remove eui core-js resolution
2019-06-26 11:00:27 -05:00
Dmitry Lemeshko
3ded411527
Update functional tests to run faster and pass locally (#39557)
* [shakespeare] adjust verification to pass in both headless/head runs

* [services/visualizations/pie_chart] speedup tests with timeout decrease

* [services/dashboard/expectations] speedup tests with timeout decrease
2019-06-26 07:41:35 +03:00
Spencer
ec26ffbdd1
[percy] define snapshot width to match current client width (#39631) 2019-06-25 21:37:14 -07:00
Stacey Gammon
1bcf7ceb8e
Dashboard embeddable container plugin (#38974)
* Dashboard embeddable plugin

* comment out duplicate scss styles

* review: conform closer to NP standards

* export/import from index file in folder
2019-06-25 08:43:28 -04:00
Daniil Suleiman
d39c6b267d
[Vis: Default editor] Euificate schema editors (#39331)
* EUIficate schema editors

* Fix types

* Fix comments and functional tests

* Add percentage to a tooltip

* Remove extra ts-ignore
2019-06-25 12:12:02 +03:00
Nathan Reese
e779ae71be
[Maps] do not allow save when map has unsaved layer changes (#39529)
* [Maps] do not allow save when map has unsaved layer changes

* fix jest test

* refactor add layer panel functional tests
2019-06-24 19:39:03 -06:00
liza-mae
16b8f3bef7
Add rendering of canvas images and update percy agent package (#39456)
* Add rendering of canvas images and update percy agent package

* Spencer's fix for eslint issues

* restore canvas elements after taking snapshot

* copy over all styles from canvas to image stand-in

* percy snapshots only run in chrome, so they can use modern js features

* only run visual regression suites

* add stub maps test

* fix arg order

* use more modern syntax that totally works in chrome

* typo

* fix ftr test timeout when using --inspect-brk

* Revert "add stub maps test"

This reverts commit 32dc965adb.
2019-06-24 08:34:59 -06:00
Daniil Suleiman
3d4a3ce673
[Vis: Default editor] Euificate vis-editor-agg-add (#38898)
* Euificate vis-editor-agg-add

* Rebuild UI and fix functional tests

* Make all labels sentence case

* Disable schema instead of filter

* Calculate disabled only in open state
2019-06-21 16:01:22 +03:00
Court Ewing
2d171c92f5 Fix path references into and out of x-pack/legacy 2019-06-20 13:34:48 -04:00
Vadim Dalecky
071a52d4d4
No common registry implementation (#39168)
* refactor: 💡 use new Map() in Embeddables

* refactor: 💡 remove IndexPatternCreationConfigRegistry

* refactor: 💡 make indexPatternTypes registry semantic

* fix: 🐛 fix TypeScript errors
2019-06-19 22:21:15 +02:00
Matthias Wilhelm
99c1597e93
Fix broken "View single document" link of Discover using Elasticsearch 8.x (#39178)
* Remove type from ES request at doc view
- in ES 7.0 types were deprecated
- in ES 8.0 types were removed
Using ES 8.0 'View single document' of Discover didn't work

* Remove type from 'View single document' link

* Add functional test
2019-06-19 21:14:52 +02:00
Stacey Gammon
184111d971
Migrate old style queries stored in filters array (#38945)
* Migrate old query filters

* Null check instead of undefined for more completeness

* remove unnecessary undefined check

* Use good defaults, not undefined, for brand new dashboards.

* fix: typescript errors

* be explicit instead of matchinline snapshot.

* default to Kuery when there is no query given
2019-06-19 11:09:25 -04:00
Tim Roes
b550bfd810
Rename Visual Builder to TSVB (#39125)
* Rename Visual Builder to TSVB

* A, B, C, D, E, F, G ...
2019-06-18 13:30:11 +02:00
Rudolf Meijering
260d907f90
[Core] Move Saved objects files to core (#38771)
* Move src/legacy/server/saved_objects -> src/core/server/saved_objects

* Fix SavedObject import references after moving files to core

* First pass at SavedObjects api docs

* Expose and import all saved object types through core/server

* Don't expose SavedObjectsManagement from core and fix imports

* Improve typings for SavedObject error helpers

* Fix type errors after master merge

* Fix SavedObjectErrorHelpers tests
2019-06-18 13:10:23 +02:00
Dmitry Lemeshko
581755098a
[firefox] Run functional tests in dedicated CI groups (#38416)
* 2 jobs for Firefox tests

* review fixes

* make sh files executable

* add check reporter
2019-06-17 19:31:41 +03:00
Spencer
9c1bdb9298
[percy] only execute percy setup when necessary (#39043) 2019-06-16 07:23:36 -07:00
Greg Thompson
c22b706b25
Upgrade EUI to 11.3.2 (#38262)
* eui 11.3.1

* EuiSuperSelect TS updates

* EuiColorPicker updates

* EuiBadge updates

* a11y updates

* i18n service updates

* remove unused translations

* move valueOfSelected logic to private method

* update EuiColorPicker class name

* Updated canvas storyshots

* i18n fixes; maps color selection position

* i18n snapshot updates

* update canvas storyshots

* snapshot updates

* 11.3.2

* maps colorpicker

* space avatar colorpicker
2019-06-14 15:45:35 -05:00
liza-mae
0003a32f56
[WIP] FTR Percy changes (#36897)
* [ftr/percy] integrate percy with functional test runner

* execute ftr within `percy exec`

* share PERCY_BIN and GRUNT_BIN vars in setup

* [license] whitelist `(Unlicense OR Apache-2.0)`

* [percy] include pr/parallel info in env

* echo the actual variable value

* destructure required modules

* [ci] calculate percy env in a script

* remove outdated eslint overrides

* oops, nonce should be the same for each build

* take snapshots in context tests

* add percy snapshots to some dashboard tests

* account for extra execution of PERCY_BIN

* remove usage of percy service

* rename service to `visualTesting`

* write a simple test

* switch left-over percy test to visualTesting

* set log level for percy agent

* trigger ci

* try using the system chrome install instead of downloading one

* fix export definition

* Don't skip chromium download

* Add Spencer's fix to point to chrome installation

* Attempting to split tests into own ci job and test files

* Renumber job

* Add tag to decorations file

* Try new files with existing CI job

* Try again to create a new CI job

* Fix eslint problem with space

* eslint updates

* fix console test

* make test names unique

* Update ci group names

* Try old name again

* save

* add separate visual_regression ci job

* add visual regression ci job

* add new job to jobs.yml

* update path to take_percy_snapshot script

* use fixed percy job total

* fix common services import

* move visual_create_and_add_embeddables to visual_regression project

* finish moving create_and_add_embeddables

* add x-pack visual regression job

* migrate dashboard_snapshots tests to visual_regression

* remove references to removed test files

* restore some unnecessary changes

* reimplement the login page tests

* yarn.lock update

* fix test

* remove old CI_GROUP 100 block

* update failed_tests trap

* reduce yarn.lock changes

* disable debug logging

* disable visual-regression tests for now, we can enable them in specific prs
2019-06-14 10:35:23 -06:00
Tim Roes
5f3f1966cb
Rename Visual Builder to Timeseries (#38777) 2019-06-13 14:44:53 +02:00
Vitali Haradkou
a15b15aae3
[TSVB] [AT] time series formatter duration (#38256)
* Add new tests for the duration formatter
2019-06-13 15:31:26 +03:00
Maryia Lapata
386619e577
[Vis: Default editor] EUIficate Sub agg control (#37979)
* EUIficate metric agg control

* Fix translation errors

* Display agg error underneath the last bucket agg form control

* Update functional test

* Update error message

* Update parent_pipeline_agg_controller.js

* Fix validation when metricAgg is invalid

* Show error message when a filed is selected

* Delete _terms_helper.tsx

* Remove extra empty line

* Update parent_pipeline_agg_helper.js

* Update selector for test
2019-06-13 11:18:26 +03:00
Philipp B
722559129d
[Accessibility] A <label> for time bucket size selector on discover (#38396)
* Replace <span> with a <label for=''> used as a label for a dropdown <select>
* Change CSS selector for functional test
2019-06-12 21:46:10 +03:00
Vitali Haradkou
a7abe1999d
[TSVB] [AT] new markdown tests (#38545)
* perform new markdown tests
2019-06-12 14:25:36 +03:00
Matthias Wilhelm
a33201cf39
Support for date_nanos type timestamps in context view (#38023)
* Reenable context view for time_nanos based index patterns
2019-06-11 15:04:54 +02:00
Spencer
3bc5595ce3
[testFailureReporting] only run on master/version jobs (#38497) 2019-06-10 07:04:32 -07:00
Frank Hassanabad
fdd4621601
[SIEM] Add build step to find cyclic deps in SIEM project (#38329)
## Summary

* Adds a build step to find cyclic deps and error out in the SIEM project when found as part of a build step.

* Fixes typescript files that have cycles with their constants and types.

You run this like so:

```
cd kibana/x-pack/plugins/siem
node scripts/check_circular_deps.js
```

And get this message:
<img width="846" alt="Screen Shot 2019-06-07 at 11 22 24 AM" src="https://user-images.githubusercontent.com/1151048/59121970-b629f680-8916-11e9-8683-326a881c4725.png">

Or you will get an error with a listing of deps that need to be updated which have cycles in them.

### Checklist

Use ~~strikethroughs~~ to remove checklist items you don't feel are applicable to this PR.

~~- [ ] This was checked for cross-browser compatibility, [including a check against IE11](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility)~~
~~- [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/master/packages/kbn-i18n/README.md)~~
~~- [ ] [Documentation](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#writing-documentation) was added for features that require explanation or tutorials~~
- [x] [Unit or functional tests](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) were updated or added to match the most common scenarios

~~- [ ] This was checked for [keyboard-only and screenreader accessibility](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Accessibility_testing_checklist)~~

### For maintainers

~~- [ ] This was checked for breaking API changes and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)~~
~~- [ ] This includes a feature addition or change that requires a release note and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)~~
2019-06-07 14:40:06 -06:00
Stacey Gammon
bd484391fc
Embeddable API V2 (#37510)
* Embeddable API plugin

* Expose new embeddableActions uiExport endpoint

* Add missing getInjectedUIAppVars to Server type

* Add jest tests

* Most basic skeleton of the sample plugin to see if it still kills ci

* strip even more out to see if it passes ci

* It passed, put back init fn

* add back in a uiExport to see if that is what is killing ci

* Passed again, add back embeddableActions uiExports and require kibana line

* Add everything back but the sass import

* Found two bugs with customize panel title action, added jest test coverage and fixes

* Functionally test embeddable explorer plugin

* Addressing review feedback part 1

* Simplify action context menu - remove support for nested actions/child panels, which was never exposed anyway.

* More review feedback

* Spread out orders to let developers inject their own actions in the middle.

* Remove check for overwriting ApplyFilterAction

* use createRegistry for EmbeddableFactoryRegistry

* Add comment for getInheritedInput

* Use kbn-es-query Filter types

* Fix missed file after createRegistry switch over for EmbeddableFactoryRegistry

* Use delete instead of setting to undefined

* upgrade EUI to match kibana version

* Add getIsContainer on base embeddable class

* Run functional tests of sample plugin

* move all tests classes outside __test__ and inside test_samples folder so not to potentially create issues with mocha

* fix: 🐛 remove unused imports

* fix: 🐛 set to undefined explicitly

* chore: refactored getRoot functionality

* fix: refactor miss from folder rename __test__ -> test_samples

* fix: add eui switch to let the user indicate “hide this title” to improve ux.

* fix: customize panel flout test

* Try to fix issue with multiple rxjs bundles I hit before.

See https://github.com/ReactiveX/rxjs/issues/3828

* Use an rxjs polyfill to work around the issue of multiple rxjs bundles

* chore: change customize panel flyout to modal post design feedback

* capitalize Reset

* fix: type errors in customize panel modal

* fix: remove extra line added to prevent EUICallout overflow from spilling over panel edges

The bug this was intended to fix doesn’t appear yet because dashboard isn’t using this, and it causes other issues, so for now, just remove.

* Clean up some classes and SASS

* Inline styles needed to get the containers to take up the full height of the app.

* Use the same old style of error messaging in panels

* chore: add untilEmbeddableLoaded tests, expose on interface, and use in embeddable_child_panel

* Remove unused styles, add padding

* Verify trigger Context containers an array of Filters for apply filter action

* Remove panel.embeddableId param, use panel.explicitInput.id instead

* Check `isCompatible` as well as the type guard needed for typescript.

* executeTriggerActions should account for getHref

* Remove unnecessary check for context being defined

* use npStart instead of getNewPlatform

* Conform to latest NP changes

* Use new np_mocks in all the tests

* Address review feedback on rxjs polyfill
2019-06-07 13:30:55 -04:00
Nathan Reese
8dbfbddb53
Fetch options for input control child select boxes (#38148) 2019-06-07 06:57:56 -06:00
Spencer
acba93a38c
[jest] don't be crazy, run with caching enabled (#38332) 2019-06-06 16:56:52 -07:00
spalger
c655a11ece [ci] disable firefox tests 2019-06-06 14:26:53 -07:00
Matthias Wilhelm
e11277fc89
Undo setting of $scope.refreshInterval at dashboard (#37175)
* Add test for passing on dashboard url params to timepicker values

* Revert unnecessary setting of $scope.refreshInterval

refreshInterval is set at $scope.model, no need to set it directly at $scope like in discover and vis
2019-06-06 19:33:03 +02:00
Josh Dover
02ff1adcbd
[new-platform] Simplify the frontend integration with the legacy platform (#37734) 2019-06-05 17:46:03 -05:00
Luke Elmers
1e016a62a9
Fix broken filtering on metric visualizations. (#38029) 2019-06-05 11:48:30 -06:00
Vitali Haradkou
a7dedb63d5
[TSVB] [AT] implement new test cases for time series formatter (#37506)
* implement new test cases for time series formatter
2019-06-05 18:13:04 +03:00
Dmitry Lemeshko
27e219e20b
functional tests/firefox wait for loading after page refresh (#38082) 2019-06-05 16:52:48 +02:00
Lee Drengenberg
e9938a54b1
Add 1/2 second sleep to fix test (#37903) 2019-06-04 11:16:52 -05:00
Chandler Prall
86fea48875
Upgrade EUI to 11.0.1; support dynamic import() calls in UI code + eui (#36316)
* Upgrade EUI to 11.0.1; support dynamic import() calls in UI code + eui

* update snaps

* Clicking on the svg itself once loaded

* updated snaps

* update icon in snapshots

* Fix snapshot
2019-06-03 12:01:01 -04:00
Dmitry Lemeshko
f82e92a077 FTR: add support for Firefox browser (#32509)
* skip and adjust functional tests for Firefox

* downgrade geckodriver to 0.22.0

* [ftr] add firefox specific config file

* remove hard coded firefox adjustments

* remove firefox specific screenshot directory

* run functional tests in firefox in x-pack

* pass the logger to readConfigFile()

* rename local var

* skip xpack firefox config

* run xpack firefox functional tests in separate command

* update report name for XPack firefox results

* adjust viz shared item test

* skip shared item test

* [test/feature_controls] increase timeout to 20 sec & use forceLogout

* FF timeout on TSVB, refresh page on failure for url navigation

* [feature_controls/visualize_security] increase timeout to 20 sec

* skip dev_tools_spaces tests on FF

* run all groups 3 times

* skip more func tests

* skip more tests

* skip all feature controls tests for Firefox

* revert back changes in feature controls tests

* rename xpack report for chrome

* skip tile map for FF, wait for render before saving

* Revert "run all groups 3 times"

This reverts commit 12b4f69627.

* revert refresh on login

* apply feedback
2019-05-31 15:49:18 -07:00
Maryia Lapata
64e36abef0
Import func tests "_metric_chart" to ciGroup10 (#36623)
* Add metric_chart tests to job and update them

* Revert removing file

* Remove obsolete test

* Move _metric_chart.js to ciGroup10
2019-05-31 14:03:29 +03:00
Vitali Haradkou
b969fbf3ca
revert missing test for TSVB Time Series (#37336) 2019-05-31 14:01:06 +03:00
Matthias Wilhelm
953930be49
Support Elasticsearch date_nanos datatype (#36111)
* Add date_nanos to date type in kibana field types
* date_nanos by default is formatted by "Date Nanos" format
* Format computed date_nanos field to strict_date_time to prevent rounding
* Hide Discover - "View surrounding documents" btn for date_nanos (will be subject of another PR)
* Append number of nano seconds to formatted timeField
* Add new key dateNanosFormat to UI setting defaults
2019-05-31 08:52:32 +02:00
Nick Peihl
1ea3431c69
Skip tilemap zoom warning functional test on cloud (#37570) 2019-05-30 16:37:58 -07:00
Justin Kambic
109d10fcf5
Add a function to the time picker page object to set a commonly-used timespan option. (#37374) 2019-05-30 07:33:56 -04:00
Tim Roes
58ef3a3c49 Add addError function to toastNotifications (#32187) 2019-05-29 13:24:35 -05:00
Daniil Suleiman
a2542d35c6 [Vis: Default editor] EUIficate order_agg param editor (#36984)
* EUIficate order_agg param editor

* Update browser tests

* Add types

* Update enzyme version in x-pack

* Fix functional tests

* Changes due to comments

* Update_terms_helper.tsx

Co-Authored-By: Maryia Lapata <mary.lopato@gmail.com>

* Fix code review comments

* Update yarn.lock
2019-05-29 15:53:06 +03:00
Vitali Haradkou
8007c3fb1b
[TSVB] [AT] TimeSeries refactor (#36987)
* move tsvb timeseries tests into new file
2019-05-29 12:10:27 +03:00
Daniil Suleiman
38b95b1cc1 [Vis: Default editor] EUIficate top_sort param editor (#36629)
* EUIficate top_sort param editor

* Set field if only one available

* Remove unused translations

* Fix functional tests

* Fix browser tests

* Rewrite functional test for combo_box field select

* Remove unused translations

* Update label
2019-05-29 11:43:47 +03:00
Dmitry Lemeshko
ddc24b8255
[visualize/_shared_item] skip test due to #37130 (#37131) 2019-05-28 22:51:07 +02:00
Dmitry Lemeshko
7c556ca337
TSVB: functional test for color picker, preview disable and series clone (#37186)
* [visualize/_tsvb_chart] test for color picker, changing  preview and cloning series
2019-05-28 14:44:46 +02:00
Vitali Haradkou
ed29276c5f
[TSVB] markdown variables(revert fix) (#34067)
* add markdown tests
2019-05-28 00:26:28 +03:00
Vitali Haradkou
3c0bc3086a
Tsfy screenshot service and comparepng internal lib (#37177) 2019-05-28 00:09:18 +03:00
Lee Drengenberg
67dc8a45aa
Split ciGroup3 and ciGroup5 (#36928)
* split large x-pack ciGroup5 into 3 groups

* split large x-pack ciGroup3 into 2 groups

* Add groups to the jenkins xpack ci group file

* Re-level some more work

* move es_search_source test to new describe block

* move es_search_source to first in ciGroup7
2019-05-24 14:20:43 -05:00
Chris Roberson
eb2ede6ca2
[Monitoring] Fix 500 error from /api/stats (#36986)
* Fix 500 and add test for it

* Return an empty object so the logic later will still execute

* Update tests
2019-05-24 09:11:05 -04:00
Vitali Haradkou
2db82c549f
[TSVB] Table tests (#36762)
* implement table tests
2019-05-24 12:09:35 +03:00
Lee Drengenberg
d21476c453
Check visualize timezone (#36416)
* check newest doc timestamp in diff timezones

* Check that data shifts with the timezone

* use retry.waitFor instead of sleep
2019-05-22 14:11:21 -05:00
Josh Dover
91b167424d
Consolidate Plugin{Setup,Start}Context and Core{Setup,Start} (#36732) 2019-05-22 13:50:31 -05:00
Vitali Haradkou
e9411f4a0c
FTR tsfy combobox service (#35493)
* migrate combobox to typescript
2019-05-21 10:54:47 +03:00
Greg Thompson
671760e924 EUI@10.4.1 (#36711)
* update eui to 10.4.1

* revert lock
2019-05-20 18:10:32 -04:00
Todd Kennedy
5f56c30ffd
[chore] upgrade wreck (#36527)
wreck has been deprecated and will receive no further security updates
in favor of @hapi/wreck
2019-05-13 15:36:22 -07:00
Lee Drengenberg
3c9dc690d0
check newest doc timestamp in diff timezones (#36322) 2019-05-09 15:58:37 -05:00
Nathan Reese
5349f673d3
Allow embeddable to specify edit label (#36296)
* Allow embeddable to specify edit label

* update test plugins

* pass getDisplayName in options parameter to ContextMenuAction constructor in plugin example

* more typescript clean-up magic

* some more typescript error fun

* change maps embeddable edit label i18n prefix

* clean-up localization
2019-05-09 14:26:49 -06:00
Spencer
2605d16083
[ftr/tsvb] retry if the legent count is off (#36375) 2019-05-09 11:04:55 -07:00
Matt Bargar
3070d25e46
Extract QueryBarInput component from QueryBar (#35827)
Solution for use cases that need a query bar without a submit button or date picker that still want KQL and autocomplete. Necessary for the KQL in TSVB and KQL in filters aggregation efforts.
2019-05-09 11:15:50 -05:00
Va Da
c6bfa02d2f
Better scripted field editor (#36064)
* fix: 🐛 make script input field full width

* test: 💍 update Jest snapshots

* feat: 🎸 add Groovy syntax highlighting

* test: 💍 update test snapshot

* test: 💍 fix scripted field form functional test

* test: 💍 fix more functional tests for scripted field input

* refactor: 💡 use import instead of require()
2019-05-09 11:19:19 +02:00
Mike Côté
3efaf756d0
Allow any type of saved object to import / export (#34896)
* Modify the relationships API and UI

* Remove type validation on export

* Update relationship test snapshots

* Change relationships table titles

* Change relationships UI to share one table

* Add server side logic to inject meta data into saved objects from plugins

* Manually enable each type of saved object to support

* Use injected vars to determine what types are import / exportable

* Fix some broken tests

* Remove unused translations

* Fix relationships mocha tests

* Remove tests that ensured types are restricted, functionality removed

* Move kfetch logic into separate file

* Add inAppUrl to missing types

* Add tooltip to management table titles that aren't links

* Make relationships screen support filtering by type

* Fix failing tests

* Add refresh support for inAppUrls

* Add error notifications when export API call fails

* Add relationship direction

* Fix broken tests

* Remove graph workspace from import / export

* Use parent / child terminology for relationships

* Use direct relationship terminology

* Flip view / edit logic in saved object management app

* Make config saved object redirect to advanced settings

* Fix broken tests

* Remove unused translations

* Code cleanup

* Add tests

* Add fallback overwrite confirmation object title

* Enforce supported types on import, export and resolve import errors

* Fix broken tests

* Fix broken tests pt2

* Fix broken tests pt3

* Test cleanup

* Use server.decorate to access savedobjectschemas

* Fix some broken tests

* Fix broken tests, add new title to relationships screen

* Fix some broken tests

* Handle dynamic versions

* Fix inAppUrl structure in tests

* Re-use generic canGoInApp

* Fix broken tests

* Apply maps PR feedback

* Apply PR feedback pt1

* Apply PR feedback pt2

* Add savedObjectsManagement to uiExports

* Fix broken tests

* Fix encodeURIComponent implementation

* Merge 403 and unsupported type errors into single error

* Apply suggestion

* Remove import / exportable by default, opt-in instead

* Fix type config to show up properly in the table

* Change config type title and fix tests

* Remove isImportableAndExportable where set to false (new default)

* Remove comments referencing to authorization

* Add unit tests for spaces

* Add unit tests for security plugin

* Change can* signature to be the same as their equivalent function, apply PR feedback

* Cleanup git diff

* Revert "Change can* signature to be the same as their equivalent function, apply PR feedback"

This reverts commit b657ac8fc1.

* Revert "Add unit tests for security plugin"

This reverts commit 6287a8cecf.

* Revert "Add unit tests for spaces"

This reverts commit 2674a9d78f.

* Revert "Remove comments referencing to authorization"

This reverts commit 9618c2cc3a.

* Revert "Merge 403 and unsupported type errors into single error"

This reverts commit 99aea10c0f.

* Add CUSTOM_ELEMENT_TYPE for import / export

* Fix broken tests

* Fix broken tests pt2

* Prevent crashing app when inAppUrl is undefined
2019-05-06 14:44:43 -04:00
dave.snider@gmail.com
d1b189442c
EUI@10.4.0 (#36085)
* EUI@10.4.0

* Fix TS typing in src/legacy/ui/public/chrome/directives/header_global_nav/components/header.tsx
2019-05-05 21:37:07 -07:00
Dmitry Lemeshko
f5bbe82023
adjust tests to pass on Firefox (#35597)
* adjust tests to pass on Firefox

* update feature controls tests to pass on Firefox

* use xpath to search for index pattern
2019-05-03 20:12:15 +02:00
Maryia Lapata
9c8894c705 [Vis: Default editor] EUIficate time interval control (#34991)
* EUIficate time interval control

* Update tests

* Remove empty option, update fix tests

* Bind vis to scope for react component only

* Combine two interval inputs into one EuiCombobox

* Add error message

* Add migration script; remove unused translations

* Update fuctional tests

* Update unit test

* Update tests; refactoring

* Use flow to invoke several functions

* Update test

* Refactoring

* Reset options when timeBase

* Add type for editorConfig prop

* Add placeholder

* Fix lint errors

* Call write after interval changing

* Fix code review comments

* Make replace for model name global

* Revert error catch

* Remove old dependency

* Add unit test for migration test

* Fix message

* Fix code review comments

* Update functional test
2019-05-03 10:44:14 +03:00
Daniil Suleiman
b96e316c18
[Vis: Default editor] EUIficate order and size controls (#35134)
* EUIficate order and size controls
2019-05-03 10:38:55 +03:00
Chandler Prall
d449ff4e3f
Update EUI 10.1.0 -> 10.3.1 (#35970) 2019-05-02 12:27:36 -06:00
Dmitry Lemeshko
609297bac4
Update services to support functional tests in Firefox (#35648)
* add Browsers enum & changes to support FF

* revert moveTo signature to Promise<void>
2019-05-02 15:02:59 +02:00
Alexey Antonov
9d2be1b730
Have TSVB signal render-complete equals true on rendering (#35215)
Fix: #16290
2019-05-02 13:41:09 +03:00
Matthew Kime
e7290e3490
implementing github checks - second attempt (#35757)
implement github checks in ci
2019-05-01 16:02:33 -05:00
Caroline Horn
6268ee7e8c
Fix some EuiFlyout and EuiModal usages (#35829)
* Fix maps layer flyout

* Fixing some flyout headers with border and size

* Using euiOverflowShadow to remove warnings

* Fixed up some regular modal usages

* Added danger colors to EuiConfirmModals where necessary
2019-05-01 15:19:55 -04:00
Daniil Suleiman
44db613285
[Vis: Default editor] EUIficate other bucket control (#34945)
* EUIficate other_bucket control

* Filter invalid string params

* Fix functional tests

* Fix browser tests
2019-04-30 12:05:26 +03:00
Brandon Kobel
5ae5e3d8c6
Feature Controls - Read only badges (#35252)
* Adding readonly badge to the discover application

* Dashboard get a badge

* Visualize gets a badge

* Timelion gets a badge

* Canvas gets a badge

* Maps gets a badge

* Infra gets a badge

* Graph gets a badge

* Dev Tools gets a badge

* Index Patterns get badges

* Advanced Settings get badges

* Infra and i18n are super chill friends

* Using proper i18n prefix for xpack

* Adding badges to the uptime application

* APM gets a badge!

* Adding functional tests for the discover read-only badge

* Functional tests for everyone!

* Removing unused import

* Fixing chrome service mock

* Switching from ChromeBadge | null to ChromeBadge | undefined

* Fixing canvas badge assertst

* Fixing Logs ui capabilities

* More ChromeBrand | null to ChromeBrand | undefined related changes

* Using named badges

* Revert "Using named badges"

This reverts commit c0e341bee1.

* i18n'ing the uptime read-only badges

* Adding ChromeService tests for badges

* Starting to add tests for the legacy badge API

* Changing capitalization of "Read Only" to "Read only"

* Adjusting styles

* Adding $setupBadgeAutoClear tests

* Changing the badge tooltip

* Fixing timelion i18n prefix

* Changing where Canvas sets the breadcrumbs

* Using a read-only badge with an icon

* Update x-pack/plugins/canvas/public/angular/controllers/canvas.js

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update src/legacy/core_plugins/timelion/public/app.js

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Changing discover's read-only verbiage

* Removing tests for code that moved to an untested part of Kibana

* Fixing issues introduced with the rebase

* Fixing priv ileges snapshot

* Adding back dropped docs

* Fixing plugin plugin doc

* Ensuring iconType is set as well

* Updating badge api, angular components moved

* graph to Graph

* Fixing linter

* Switching from aria-label to data-test-badge-label for testing

The tabIndex allows screenreaders to work properly

* Fixing eslint error

* Fixing more issues introduced by the merge from master

* APM updates badge in React hook

* Applying changes suggested by Aleh
2019-04-29 12:48:43 -07:00
Maryia Lapata
4c3a366a1f
[Vis: Default editor] EUIficate number interval (#35478)
* EUIficate number interval

* Add type for EditorConfig

* Update functional tests

* Add placeholder

* Update placeholder

* Use FormattedMessage instead of i18n

* Set validity in the effect only

* Refactoring: add showValidation prop and remove isInvalid

* Update prop
2019-04-29 14:47:33 +03:00
Shaunak Kashyap
0b92436383
Exclude usage stats when exclude_usage flag is specified (#35691)
* Exclude usage stats when `exclude_usage` flag is specified

* Entirely excluding the usage key altogether

* Adding API integration test

* Fixing param name in comment + adding more info to comment

* Fix API test copy-pasta

* Fixing test assertion syntax
2019-04-26 21:52:03 -07:00
Aaron Caldwell
6daaff1021
Fix map embeddable test (#34648)
* Remove skip for testing on server. Unable to repro locally

* run kibana-ciGroup2 40 times per build

* Temporarily skip 'geo map' check

* Left out 'Rendering Test: ' in filter string

* Revert "run kibana-ciGroup2 40 times per build"

This reverts commit 103a5c9c6e.

* Review feedback. Remove 'Flaky' test ref
2019-04-25 11:42:26 -06:00
Matt Bargar
539bc6f3a2
Improve KQL error messages (#34900)
Attempts to make KQL syntax errors more sensical to the average user.

I initially tried to use a similar solution to the one we used for detecting usage of old lucene syntax. In other words, I tried to create rules in the grammar that would match strings containing common mistakes the user might make and throw custom error messages for each situation. This proved to be more difficult for detecting errors in the regular language. While the Lucene rules could be completely separated from the main grammar, the KQL error rules had to be mixed into the main grammar which made it much more complex and had a lot of unintended side effects.

So instead I decided to lean more heavily on PEG's built in error reporting. Giving certain rules human readable names allows the parser to use those names in the error reporting instead of auto generating a long list of possible characters that might be expected based on the matching rules. Since the PEG errors contain location information I was also able to add ascii art that points the user to exactly where the error occurred in their query string. While this approach is not quite as nice as bespoke error messages that tell the user exactly what is wrong in plain English, it's much more maintainable and I think it still results in much better error messages compared to what we have today.

I've also removed the old original kuery grammar (for queries like is(response, 200)). We were only using it to display an error if I user was still using the old syntax. This version of kuery hasn't existed since 6.3 and we've had error messages telling users this since then. I think it's safe to remove the legacy parser at this point, which greatly reduces the complexity of our error reporting.
2019-04-24 16:40:38 -04:00
Joe Reuter
b014abdb53
Correctly apply timezone to formatted dates and ticks (#33831) 2019-04-24 09:29:54 +02:00
Marco Vettorello
57b66c6085
Fix filling x axis values for date histogram (#35247)
The interval parameter is used to fill the gaps between missing buckets. If we are using a calendar interval it not always correspond correctly to his milliseconds representation. E.g. 1y interval can correspond to 365 or 366 days depending on the interval and. If transformed to milliseconds it can get one of those two values depending of the interval start and end. The same happens for months.

Add a new esarchive with 7 years of data, used for those functional tests

Removed angular dependency from zero injection
2019-04-24 07:37:11 +02:00
spalger
76834031aa Revert "implementing github checks (#34673)"
This reverts commit 7e81413572.
2019-04-23 15:47:05 -07:00
Josh Dover
c2f4123b8c
Introduce start lifecycle event to client (#35269) 2019-04-23 11:50:08 -05:00
Vitali Haradkou
9947045f69
Ftr tsfy webelement wrapper (#35355)
* tsfy webelement wrapper
2019-04-23 19:05:46 +03:00
John Dorlus
e79959273f
Removed createIndexPattern via UI and used ES Archiver. (#35374) 2019-04-23 10:50:04 -04:00
Vitali Haradkou
9398cb4847
[FTR] tsfy TestSubject (#35412)
* migrate test_subjects service to typescript
2019-04-23 12:53:52 +03:00
Matt Bargar
03624a1c12
Add esTypes property to index pattern field (#35251)
Adds an array property to the Field object containing all of the types the field is mapped as across ES indices.
2019-04-22 19:10:08 -04:00
Chandler Prall
dc9b299903
Update EUI to v10.1.0 (#35402) 2019-04-22 09:41:51 -06:00
Matthew Kime
7e81413572
implementing github checks (#34673)
implement github checks with github-checks-reporter
2019-04-19 15:33:48 -05:00
Spencer
9122511370
[ftr] convert remaining JS to TS (#35110) 2019-04-18 12:06:24 -07:00
spalger
bb0e03e09a [interpreter] disable flaky test 2019-04-18 10:39:00 -07:00
Vitali Haradkou
25f825951f
[FTR] tsfy find & webdriver (#33494)
* migrated find and browser services to typescript
2019-04-18 10:19:11 +03:00
Spencer
27bd635397
[esArchiver] refresh all, stop being too clever (#35186)
* [esArchiver] refresh all, stop being too clever

* wait for save notification before ending tests

I have a hunch that Timelion/Kibana are still mucking with the .kibana index when the test ends, and the `esArchiver.unload()` call is conflicting because of those modifications being still in progress.
2019-04-17 08:20:23 -07:00
Greg Thompson
e05098dd27
Upgrade EUI to v10.0.1 (#35112)
* eui@10.0.0; tsconfig update

* limit key lookups to strings

* Search Profiler hightlight details flyout classes

* bump

* snapshot updates

* x-pack snapshot updates
2019-04-17 09:16:34 -05:00
Dmitry Lemeshko
d37bbcfd78
update functional tests to support Firefox (#34635) 2019-04-17 09:42:54 +02:00
Mike Côté
cd0db0d07c
Avoid validating saved object migrationVersion in tests where not needed (#35010)
* Avoid validating migrationVersion in tests where not needed

* Ensure migrationVersion is at least defined
2019-04-12 21:29:40 -04:00
Dmitry Lemeshko
7a910632c0
bump chromedriver to 2.46.0 (#27302)
* bump chromedriver up to 2.46.0

* print chromedriver version

* [services/web_element_wrapper] use js to clear input field

* add clearValueWithKeyboard

* fix clearing datePattern input

* fix scripted fileds preview tests
2019-04-12 19:33:45 +02:00
Brandon Kobel
80aae6bba8
Feature Controls (#31652)
* Restructure user profile for granular app privs (#23750)

merging to feature branch for further development

* Introducing uiCapabilities, removing config providers & user profile (#25387)

## Summary
Introduces the concept of "UI Capabilities", which allows Kibana applications to declare capabilities via the `uiCapabilities` injected var, and then use them client-side via the `ui/capabilities` module to inform their rendering decisions.

* GAP - Actions Restructured and Extensible (#25347)

* Restructure user profile for granular app privs (#23750)

merging to feature branch for further development

* Fixing saved object capability checking

* Beginning to restructure actions to be used for all action building

* Using actions to build ui capabilities

* dropping /read from client-side userprovide ui capabilities

* Adding some actions

* Using different syntax which will hopefully help with allowing apps to
specify the privileges themselves

* Exposing all saved object operations in the capabilities

* Using actions in security's onPostAuth

* Only loading the default index pattern when it's required

* Only using the navlinks for the "ui capabilities"

* Redirecting from the discover application if the user can't access
kibana:discover

* Redirecting from dashboard if they're hidden

* Features register their privileges now

* Introducing a FeaturesPrivilegesBuilder

* REmoving app from the feature definition

* Adding navlink specific ations

* Beginning to break out the serializer

* Exposing privileges from the authorization service

* Restructuring the privilege/resource serialization to support features

* Adding actions unit tests

* Adding features privileges builders tests

* Adding PrivilegeSerializer tests

* Renaming missed usages

* Adding tests for the privileges serializer

* Adding privileges tests

* Adding registerPrivilegesWithCluster tests

* Better tests

* Fixing authorization service tests

* Adding ResourceSerializer tests

* Fixing Privileges tests

* Some PUT role tests

* Fixing read ui/api actions

* Exposing features from xpackMainPlugin

* Adding navlink:* to the "reserved privileges"

* navlink -> navLink | nav_linknavlink -> navLink | nav_linknavlink ->
navLink | nav_linknavlink -> navLink | nav_linknavlink -> navLink |
nav_linknavlink -> navLink | nav_linknavlink -> navLink |
nav_linknavlink -> navLink | nav_linknavlink -> navLink | nav_link

* Automatically determining navlink based ui capabilities

* Backing out changes that got left behind

* Using ui actions for navlinks

* Adding TODOs

* Ui -> UI

* Deleting unused file

* Removing api: [] as it's not necessary anymore

* Fixing graph saved object privileges

* Privileges are now async

* Pushing the asycnchronicity to the privileges "service"

* Adding TODO

* Providing initial value for reduce

* adds uiCapabilities to test_entry_template

* Adding config to APM/ML feature privileges

* Commenting out obviously failing test so we can get CI greeenn

* Fixing browser tests

* Goodbyyeee

* Adding app actions to the reserved privileges

* update snapshot

* UI/API changes to facilitate disabling features within spaces (#24235)

* Restructure user profile for granular app privs (#23750)

merging to feature branch for further development

* Introducing uiCapabilities, removing config providers & user profile (#25387)

## Summary
Introduces the concept of "UI Capabilities", which allows Kibana applications to declare capabilities via the `uiCapabilities` injected var, and then use them client-side via the `ui/capabilities` module to inform their rendering decisions.

* GAP - Actions Restructured and Extensible (#25347)

* Restructure user profile for granular app privs (#23750)

merging to feature branch for further development

* Fixing saved object capability checking

* Beginning to restructure actions to be used for all action building

* Using actions to build ui capabilities

* dropping /read from client-side userprovide ui capabilities

* Adding some actions

* Using different syntax which will hopefully help with allowing apps to
specify the privileges themselves

* Exposing all saved object operations in the capabilities

* Using actions in security's onPostAuth

* Only loading the default index pattern when it's required

* Only using the navlinks for the "ui capabilities"

* Redirecting from the discover application if the user can't access
kibana:discover

* Redirecting from dashboard if they're hidden

* Features register their privileges now

* Introducing a FeaturesPrivilegesBuilder

* REmoving app from the feature definition

* Adding navlink specific ations

* Beginning to break out the serializer

* Exposing privileges from the authorization service

* Restructuring the privilege/resource serialization to support features

* Adding actions unit tests

* Adding features privileges builders tests

* Adding PrivilegeSerializer tests

* Renaming missed usages

* Adding tests for the privileges serializer

* Adding privileges tests

* Adding registerPrivilegesWithCluster tests

* Better tests

* Fixing authorization service tests

* Adding ResourceSerializer tests

* Fixing Privileges tests

* Some PUT role tests

* Fixing read ui/api actions

* Exposing features from xpackMainPlugin

* Adding navlink:* to the "reserved privileges"

* navlink -> navLink | nav_linknavlink -> navLink | nav_linknavlink ->
navLink | nav_linknavlink -> navLink | nav_linknavlink -> navLink |
nav_linknavlink -> navLink | nav_linknavlink -> navLink |
nav_linknavlink -> navLink | nav_linknavlink -> navLink | nav_link

* Automatically determining navlink based ui capabilities

* Backing out changes that got left behind

* Using ui actions for navlinks

* Adding TODOs

* Ui -> UI

* Deleting unused file

* Removing api: [] as it's not necessary anymore

* Fixing graph saved object privileges

* Privileges are now async

* Pushing the asycnchronicity to the privileges "service"

* Adding TODO

* Providing initial value for reduce

* adds uiCapabilities to test_entry_template

* Adding config to APM/ML feature privileges

* Commenting out obviously failing test so we can get CI greeenn

* Fixing browser tests

* Goodbyyeee

* Adding app actions to the reserved privileges

* Begin to allow features to be disabled within spaces

typescript fixes

additional cleanup

attempt to resolve build error

fix tests

more ts updates

fix typedefs on manage_spaces_button

more import fixes

test fixes

move user profile into xpack common

Restructure space management screen

fix SASS references

design edits

remove Yes/No language from feature toggles

fix casing

removed unused imports

update snapshot

fix sass reference for collapsible panel

Fix sass reference, take 2

* Restructure user profile for granular app privs (#23750)

merging to feature branch for further development

* extract migration logic into testable unit

* Introducing uiCapabilities, removing config providers & user profile (#25387)

## Summary
Introduces the concept of "UI Capabilities", which allows Kibana applications to declare capabilities via the `uiCapabilities` injected var, and then use them client-side via the `ui/capabilities` module to inform their rendering decisions.

* Design edits (#12)

enables customize avatar popover

update tests, and simplify editing space identifier

remove references to user profile

remove unused test suite

remove unnecessary sass import

removes security's capability_decorator

* fix i18n

* updates toggleUiCapabilities to use new feature definitions

* cleanup and testing

* remove references to old feature interface

* readd lost spacer

* adds feature route testing

* additional i18n

* snapshot update

* copy edits

* fix ml app icon

* add missing export

* remove unnecessary sass import

* attempt to fix build

* fix spaces api tests

* esArchiver mapping updates

* rename toggleUiCapabilities -> toggleUICapabilities

* removes shared collapsible_panel component in favor of plugin-specific components

* some copy and style adjustments

* fix test following rebase

* add lost types file

* design edits

* remove stale export

* feature feedback; fixes cached disabled features

* GAP: Security disables UI capabilities (#25809)

* Restructure user profile for granular app privs (#23750)

merging to feature branch for further development

* Fixing saved object capability checking

* Beginning to restructure actions to be used for all action building

* Using actions to build ui capabilities

* dropping /read from client-side userprovide ui capabilities

* Adding some actions

* Using different syntax which will hopefully help with allowing apps to
specify the privileges themselves

* Exposing all saved object operations in the capabilities

* Using actions in security's onPostAuth

* Only loading the default index pattern when it's required

* Only using the navlinks for the "ui capabilities"

* Redirecting from the discover application if the user can't access
kibana:discover

* Redirecting from dashboard if they're hidden

* Features register their privileges now

* Introducing a FeaturesPrivilegesBuilder

* REmoving app from the feature definition

* Adding navlink specific ations

* Beginning to break out the serializer

* Exposing privileges from the authorization service

* Restructuring the privilege/resource serialization to support features

* Adding actions unit tests

* Adding features privileges builders tests

* Adding PrivilegeSerializer tests

* Renaming missed usages

* Adding tests for the privileges serializer

* Adding privileges tests

* Adding registerPrivilegesWithCluster tests

* Better tests

* Restructure user profile for granular app privs (#23750)

merging to feature branch for further development

* Fixing authorization service tests

* Adding ResourceSerializer tests

* Fixing Privileges tests

* Some PUT role tests

* Fixing read ui/api actions

* Introducing uiCapabilities, removing config providers & user profile (#25387)

## Summary
Introduces the concept of "UI Capabilities", which allows Kibana applications to declare capabilities via the `uiCapabilities` injected var, and then use them client-side via the `ui/capabilities` module to inform their rendering decisions.

* Exposing features from xpackMainPlugin

* Adding navlink:* to the "reserved privileges"

* navlink -> navLink | nav_linknavlink -> navLink | nav_linknavlink ->
navLink | nav_linknavlink -> navLink | nav_linknavlink -> navLink |
nav_linknavlink -> navLink | nav_linknavlink -> navLink |
nav_linknavlink -> navLink | nav_linknavlink -> navLink | nav_link

* Automatically determining navlink based ui capabilities

* Backing out changes that got left behind

* Using ui actions for navlinks

* Adding TODOs

* Ui -> UI

* Deleting unused file

* Removing api: [] as it's not necessary anymore

* Fixing graph saved object privileges

* Privileges are now async

* Pushing the asycnchronicity to the privileges "service"

* Adding TODO

* Providing initial value for reduce

* adds uiCapabilities to test_entry_template

* Adding config to APM/ML feature privileges

* Commenting out obviously failing test so we can get CI greeenn

* Fixing browser tests

* First, very crappy implementation

* Adding tests for disabling ui capabilities

* All being set to false no longer requires a clone

* Using _.mapValues makes this a lot more readable

* Checking those privileges dynamically

* Fixing some broken stuff when i introduced checkPrivilegesDynamically

* Adding conditional plugin tests

* Renaming conditional plugin to optional plugin

* Fixing type errors

* GAP - Actions Restructured and Extensible (#25347)

* Restructure user profile for granular app privs (#23750)

merging to feature branch for further development

* Fixing saved object capability checking

* Beginning to restructure actions to be used for all action building

* Using actions to build ui capabilities

* dropping /read from client-side userprovide ui capabilities

* Adding some actions

* Using different syntax which will hopefully help with allowing apps to
specify the privileges themselves

* Exposing all saved object operations in the capabilities

* Using actions in security's onPostAuth

* Only loading the default index pattern when it's required

* Only using the navlinks for the "ui capabilities"

* Redirecting from the discover application if the user can't access
kibana:discover

* Redirecting from dashboard if they're hidden

* Features register their privileges now

* Introducing a FeaturesPrivilegesBuilder

* REmoving app from the feature definition

* Adding navlink specific ations

* Beginning to break out the serializer

* Exposing privileges from the authorization service

* Restructuring the privilege/resource serialization to support features

* Adding actions unit tests

* Adding features privileges builders tests

* Adding PrivilegeSerializer tests

* Renaming missed usages

* Adding tests for the privileges serializer

* Adding privileges tests

* Adding registerPrivilegesWithCluster tests

* Better tests

* Fixing authorization service tests

* Adding ResourceSerializer tests

* Fixing Privileges tests

* Some PUT role tests

* Fixing read ui/api actions

* Exposing features from xpackMainPlugin

* Adding navlink:* to the "reserved privileges"

* navlink -> navLink | nav_linknavlink -> navLink | nav_linknavlink ->
navLink | nav_linknavlink -> navLink | nav_linknavlink -> navLink |
nav_linknavlink -> navLink | nav_linknavlink -> navLink |
nav_linknavlink -> navLink | nav_linknavlink -> navLink | nav_link

* Automatically determining navlink based ui capabilities

* Backing out changes that got left behind

* Using ui actions for navlinks

* Adding TODOs

* Ui -> UI

* Deleting unused file

* Removing api: [] as it's not necessary anymore

* Fixing graph saved object privileges

* Privileges are now async

* Pushing the asycnchronicity to the privileges "service"

* Adding TODO

* Providing initial value for reduce

* adds uiCapabilities to test_entry_template

* Adding config to APM/ML feature privileges

* Commenting out obviously failing test so we can get CI greeenn

* Fixing browser tests

* Goodbyyeee

* Adding app actions to the reserved privileges

* Restructure user profile for granular app privs (#23750)

merging to feature branch for further development

* Introducing uiCapabilities, removing config providers & user profile (#25387)

## Summary
Introduces the concept of "UI Capabilities", which allows Kibana applications to declare capabilities via the `uiCapabilities` injected var, and then use them client-side via the `ui/capabilities` module to inform their rendering decisions.

* GAP - Actions Restructured and Extensible (#25347)

* Restructure user profile for granular app privs (#23750)

merging to feature branch for further development

* Fixing saved object capability checking

* Beginning to restructure actions to be used for all action building

* Using actions to build ui capabilities

* dropping /read from client-side userprovide ui capabilities

* Adding some actions

* Using different syntax which will hopefully help with allowing apps to
specify the privileges themselves

* Exposing all saved object operations in the capabilities

* Using actions in security's onPostAuth

* Only loading the default index pattern when it's required

* Only using the navlinks for the "ui capabilities"

* Redirecting from the discover application if the user can't access
kibana:discover

* Redirecting from dashboard if they're hidden

* Features register their privileges now

* Introducing a FeaturesPrivilegesBuilder

* REmoving app from the feature definition

* Adding navlink specific ations

* Beginning to break out the serializer

* Exposing privileges from the authorization service

* Restructuring the privilege/resource serialization to support features

* Adding actions unit tests

* Adding features privileges builders tests

* Adding PrivilegeSerializer tests

* Renaming missed usages

* Adding tests for the privileges serializer

* Adding privileges tests

* Adding registerPrivilegesWithCluster tests

* Better tests

* Fixing authorization service tests

* Adding ResourceSerializer tests

* Fixing Privileges tests

* Some PUT role tests

* Fixing read ui/api actions

* Exposing features from xpackMainPlugin

* Adding navlink:* to the "reserved privileges"

* navlink -> navLink | nav_linknavlink -> navLink | nav_linknavlink ->
navLink | nav_linknavlink -> navLink | nav_linknavlink -> navLink |
nav_linknavlink -> navLink | nav_linknavlink -> navLink |
nav_linknavlink -> navLink | nav_linknavlink -> navLink | nav_link

* Automatically determining navlink based ui capabilities

* Backing out changes that got left behind

* Using ui actions for navlinks

* Adding TODOs

* Ui -> UI

* Deleting unused file

* Removing api: [] as it's not necessary anymore

* Fixing graph saved object privileges

* Privileges are now async

* Pushing the asycnchronicity to the privileges "service"

* Adding TODO

* Providing initial value for reduce

* adds uiCapabilities to test_entry_template

* Adding config to APM/ML feature privileges

* Commenting out obviously failing test so we can get CI greeenn

* Fixing browser tests

* Goodbyyeee

* Adding app actions to the reserved privileges

* Update x-pack/plugins/security/server/lib/authorization/disable_ui_capabilities.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update x-pack/plugins/security/server/lib/authorization/check_privileges_dynamically.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Disabling all ui capabilities if route is anonymous

* More typescript

* Even more typescript

* Updating snapshot

* Less any

* More safer

* Another one

* Restructure user profile for granular app privs (#23750)

merging to feature branch for further development

* Introducing uiCapabilities, removing config providers & user profile (#25387)

## Summary
Introduces the concept of "UI Capabilities", which allows Kibana applications to declare capabilities via the `uiCapabilities` injected var, and then use them client-side via the `ui/capabilities` module to inform their rendering decisions.

* GAP - Actions Restructured and Extensible (#25347)

* Restructure user profile for granular app privs (#23750)

merging to feature branch for further development

* Fixing saved object capability checking

* Beginning to restructure actions to be used for all action building

* Using actions to build ui capabilities

* dropping /read from client-side userprovide ui capabilities

* Adding some actions

* Using different syntax which will hopefully help with allowing apps to
specify the privileges themselves

* Exposing all saved object operations in the capabilities

* Using actions in security's onPostAuth

* Only loading the default index pattern when it's required

* Only using the navlinks for the "ui capabilities"

* Redirecting from the discover application if the user can't access
kibana:discover

* Redirecting from dashboard if they're hidden

* Features register their privileges now

* Introducing a FeaturesPrivilegesBuilder

* REmoving app from the feature definition

* Adding navlink specific ations

* Beginning to break out the serializer

* Exposing privileges from the authorization service

* Restructuring the privilege/resource serialization to support features

* Adding actions unit tests

* Adding features privileges builders tests

* Adding PrivilegeSerializer tests

* Renaming missed usages

* Adding tests for the privileges serializer

* Adding privileges tests

* Adding registerPrivilegesWithCluster tests

* Better tests

* Fixing authorization service tests

* Adding ResourceSerializer tests

* Fixing Privileges tests

* Some PUT role tests

* Fixing read ui/api actions

* Exposing features from xpackMainPlugin

* Adding navlink:* to the "reserved privileges"

* navlink -> navLink | nav_linknavlink -> navLink | nav_linknavlink ->
navLink | nav_linknavlink -> navLink | nav_linknavlink -> navLink |
nav_linknavlink -> navLink | nav_linknavlink -> navLink |
nav_linknavlink -> navLink | nav_linknavlink -> navLink | nav_link

* Automatically determining navlink based ui capabilities

* Backing out changes that got left behind

* Using ui actions for navlinks

* Adding TODOs

* Ui -> UI

* Deleting unused file

* Removing api: [] as it's not necessary anymore

* Fixing graph saved object privileges

* Privileges are now async

* Pushing the asycnchronicity to the privileges "service"

* Adding TODO

* Providing initial value for reduce

* adds uiCapabilities to test_entry_template

* Adding config to APM/ML feature privileges

* Commenting out obviously failing test so we can get CI greeenn

* Fixing browser tests

* Goodbyyeee

* Adding app actions to the reserved privileges

* update snapshot

* Update x-pack/plugins/security/server/lib/authorization/check_privileges.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update x-pack/plugins/security/server/lib/authorization/check_privileges.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Fixing type errors

* Only disabling navLinks if a feature is registered for them

* Adding non i18n'ed tooltip

* Making metadata and tooltip optional

* i18n'ing tooltips

* Responding to peer review comments

* GAP - Role API Structure (#26740)

* Updated the role api PUT structure

* Minimum is an array now

* Updating get route to naively support the new structure

* Renaming and removing some serialized methods

* Updating Role PUT api tests

* Fixing PUT jest tests

* Fixing GET tests

* Updating PrivilegeSerializer tests

* Renaming features to feature for the GET, so we're consistent

* Validating features and feature privileges

* Update x-pack/plugins/security/server/lib/authorization/privilege_serializer.test.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update x-pack/plugins/security/server/lib/authorization/privilege_serializer.test.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update x-pack/plugins/security/server/lib/authorization/privilege_serializer.test.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Renaming some variables/members of the PrivilegesSerializer

* Fixing privileges serializer tests

* Fixing register privileges with cluster tests

* Fixing the role creation for the api integration tests

* Generalizing regex within the feature registry

* update tests

* [GAP] - Support infra features (#26955)

## Summary
This PR adds the `Infrastructure` and `Logs` apps as toggle-able features via Granular Application Privileges.

* [GAP] - Enables xpack_main to populate UI Capabilities (#27031)

## Summary

Currently, plugins that register features via `xpackMainPlugin.registerFeature({...})` also have to specify their own `uiCapabilities` via `injectDefaultVars`, which is counter-intuitive and cumbersome. We've accepted this complexity for OSS plugins, but x-pack and third-party plugins should not have to concern themselves with such implementation details.

This PR removes that requirement for x-pack and third-party plugins, so all they have to do is register features, and ensure that their feature privileges contain the appropriate UI Capabilities in the `ui` property.

### Notes
This implementation intentionally does not alter UI Capabilities that come in via OSS Kibana. The capabilities defined there should be the source of truth, regardless of which distribution is used.


### Example
<pre>
xpackMainPlugin.registerFeature({
  id: 'graph',
  name: 'Graph',
  icon: 'graphApp',
  <b>navLinkId: 'graph',</b>
  privileges: {
    all: {
      app: [],
      savedObject: { ... },
      <b>ui: ['showWriteControls'],</b>
    },
    read: {
      app: [],
      savedObject: { ... },
      <b>ui: ['someOtherCapability],</b>
    }
  }
});
</pre>

Will be translated to the following UI Capabilities:
```
uiCapabilities: {
  navLinks: {
    graph: true
  },
  graph: {
    showWriteControls: true,
    someOtherCapability: true, 
  }
}
```


xpack_main is **not responsible** for disabling UI capabilities, so this will initialize all capabilities with a value of `true`.

* Hide write controls for the visualization application (#26536)

* Hide write controls for the timelion application (#26537)

* blacklist feature ids (#27493)

* [GAP] - Support management links (#27055)

## Summary

This enables management links to be toggled via UI Capabilities.

## TODO
- [x] Implement spaces controls
- [x] Implement security controls
- [x] Testing
- [ ] (optional) - dedicated display for managing management links?

* Enables the feature catalogue registry to be controlled via uiCapabil… (#27945)

* Enables the feature catalogue registry to be controlled via uiCapabilities

* update snapshot

* xpack_main populates uiCapabilities with the full list of catalogue entries

* builds application privileges using catalogue actions

* prevent 'catalogue' from being registered as a feature id

* fix mocha tests

* fix merge

* update snapshots

* GAP - Discover and NavLinks Functional Testing (#27414)

* Adding very basic Discover tests

* Ensuring discover is visible in both spaces

* Parsing the DOM to determine the uiCapabilities

* Making this.wreck `any` because the type definitions suck

* Specifying auth when requesting ui capabilities

* Beginning architecture to support permutation testing

* Adding documentation of the different configurations we'd like to test

* Fixing type errors

* Beginning to work on the framework to test the combinations

* Adding some factories

* Pushing forward, not a huge fan of what I have right now

* The new-new

* Less weird types

* Revising some things after talking with Larry

* Switching from wreck to axios

* Restructuring some files

* Changing to a space with all features, and a space with no features

* Beginning to add the security only tests

* Adding a navLinksBuilder

* Adding spaces only tests

* Not disabling ui capabilities, or authing app/api access when we
shouldn't be

* Can't get rid of management

* Adding more user types

* More users, this is starting to really suck

* Renaming some things...

* Revising which users we'll test in which ui capabilities "test suite"

* Adding some more user scenarios for the security_only configuration

* Adding security_only user scenarios

* Adding space scenarios

* Fixing type errors

* Udpating the readme for the spaces we're testing with

* Adding global read discover security ui functional tests

* Adding tests to make sure save buttons are shown/hidden

The actual implementation is broken somewhere

* Fixing tests after GIS is added and conflicts happened for infra

* Adding discover ui capability tests

* Fixing navlinks tests

* Adding discover view tests

* Adding UI tests for spaces being disabled

* Fixing tests

* Removing wreck dependency, it's garbage

* Fixing typo

* Updating ui capabilities README.md and adding another user for the
security and spaces ui capability tests

* Updating yarn lock file

* Consolidation some types

* Adding VisualizeDisabledSpace to the scenarios.

* Fixing esArchives with .kibana_2

* Disable features optional again

* Adding ensureCurrentUrl: false

* Fixing space selector tests

* Fixing gis privileges, they use saved objects

* Fixing find's element staleness checks

* Update x-pack/test/functional/es_archives/spaces/disabled_features/data.json

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Generalizing logic to get appNavLinksText

* Removing duplicate license header

* Adding GIS mappingst

* Fixing readme

* We love our future selfs

* Adding GisRead scenario

* Whoops

* Adding note about funky syntax for use with exhaustive switches

* Using a centralized list of features

* Give it some time

* Even more time?

* Space Management - accessibility & i18n improvements (#28195)

## Summary

1) Improves the accessibility for the spaces management screen:
    - Customize Space Avatar popover now receives focus when toggled
    - Labels are more descriptive, providing context
    - Delete Space modal correctly focuses

2) Improves i18n support
    - fixed a couple hard-coded strings

3) Adds a "Features" column to the spaces grid page, which shows a brief summary of the number of features enabled for each space:

![image](https://user-images.githubusercontent.com/3493255/50785093-93b78280-127d-11e9-975e-7209d35211ff.png)



Related: https://github.com/elastic/kibana/issues/28184

* Feature Controls - spaces - functional tests (#28213)

* adds tests for /api/features/v1 endpoint

* update failing management test

* Fc/run ui capability tests (#28362)

* Running the UI Capability Tests as part of the normal CI runs

* Adding uptime feature to get these tests passing

* Adding features and sorting

* Adding uptime security_only uiCapability tests, and fixing devTools

* Fixing the docs

* Fixing section panel i18n issue

* Removing unused import

* Updating snapshots

* Feature Controls - The new new role API (#28441)

These changes allow us to build the most recent UI where spaces can be "grouped" and edited at once. This changes the kibana section of the role definition to the following:

```
{
  kibana: [
    {
        base: ['read'],
        feature: {
          discover: ['all'],
          dashboard: ['all']
        },
        spaces: ['*']
    },
    {
        base: ['read'],
        feature: {
          discover: ['all'],
          dashboard: ['all']
        },
        spaces: ['marketing', 'sales']
    }
  ]
}
```

If the `spaces` property isn't provided (for example if the user isn't using Spaces) then it'll default to `['*']`. 

There are a few other stipulations that we're implementing with this approach. 

1. Each "item" can be for 1 to many spaces OR globally. We can't specify both space privileges and global privileges in the same "item" because for Spaces we translate `all` to `space_all`, etc. so we can give them different privileges, and this becomes problematic when trying to serialize/deserialize to ES.
2. Additionally, each space can only appear once. The ES model would allow this, but the role management UI becomes more complicated if we were to allow this when calculating effective privileges.

* Feature Controls - Discover Save Button Test #28500 (#28501)

* Adding some debug logs

* Setting ui settings using the functional services

* Doing the same for the spaces disabled features

* Removing console.log debug statements

* Using save instead of showWriteControls

* Reload when adjusting visible features within the users active space (#28409)

## Summary

Changes to the visible features within a space are not visible until the page is refreshed. Because of this, when a user is editing their active space, their changes are not immediately visible.

This updates the space management screen to force a refresh when updating the visible features inside the active space. It also introduces a modal warning that this will happen:

![image](https://user-images.githubusercontent.com/3493255/50923423-ebd7bb80-141a-11e9-92bd-2779020578a4.png)

* Throwing error if we register a feature after getAll is called (#29030)

* Throwing error if we register a feature after getAll is called

* Fixing some tests

* Fixing feature route tests

* Removing unused imports

* Fixing merge conflict

* Feature Controls - Fixing fallout of removing the legacy fallback (#29141)

* Fixing use of mode.useRbacFoRequest to mode.useRbac

* Fixing ui capability tests

* [Feature Controls] - Fix a11y for customize feature section (#29174)

## Summary

Fixes the displayed and announced text for the "show"/"hide" button of the Customize Visible Features section of the spaces management page.

This was inadvertently broken following a merge from master at some point.

* Feature Controls: Fixing k7's new "nav links" (#29198)

* Fixing k7's new applist for feature controls

* Renaming appSwitcher to appsMenu

* Feature Controls - Dashboard (#29139)

* Using addRouteSetupWork to implement the redirect

* Using centralized addSetupWork

* Fixing dashboard functional feature privileges tests

* Ensuring landing page and create dashboard redirect to the home-page

* Adding more tests to ensure the redirects work properly

* Adding disabled space feature tests for Dashboards

* Update src/ui/public/capabilities/route_setup.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update test/functional/page_objects/common_page.js

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Fixing ui capability tests after adding createNew

* Removing unnecessary `return undefined`

* requireUICapabilities -> requireUICapability

* Updating dashboard ui capability tests

* Fixing issue with the selection column appearing on Dashboards

* Fixing ui capability dashboard space only tests

* [FC] - Move management and catalogue entries out of privilege definition (#28354)

* Moves catalogue and management entries from privilege defintion to base feature definition

* Update new management menu to respect items disabled via UI Capabilities

* add test

* re-add index pattern entries

* re-add advanced settings icon

* fix tests

* remove management and catalogue entries from read-only users

* bring it back now y'all

* catalogue updates for xpack plugins

* Introduces 'grantWithBaseRead' flag

* update privileges from all -> read where necessary

* rename feature builder functions

* catalogue and management items should cascade to privileges when not specified

* add catalogue entry for uptime app

* Simplify feature registrations using inherited catalogue/management entries

* consolidate and fix privilege building logic

* rename variables

* remove debug code

* remove duplicate lodash import

* Update x-pack/plugins/xpack_main/server/lib/feature_registry/feature_registry.ts

Co-Authored-By: legrego <lgregorydev@gmail.com>

* [GAP] - Role Management UI (#26840)

 
![image](https://user-images.githubusercontent.com/3493255/51063094-72310080-15c7-11e9-9274-debf0e9b84f1.png)

![image](https://user-images.githubusercontent.com/3493255/51063108-8aa11b00-15c7-11e9-92fc-31c922086e05.png)


![image](https://user-images.githubusercontent.com/3493255/51063165-cb992f80-15c7-11e9-894d-630c109211d3.png)






---------
Edge-case scenarios:
  1) [x] '*' and spaces in the same "entry"
Handled via `_transform_errors` at the API level. Renders a partial read-only view in the UI.
  2) [x] same space appearing in multiple "entries"
Handled via `_transform_errors` at the API level. Renders a partial read-only view in the UI.
  3) [x] base and feature privileges being set on the same "entry"
UI does not allow this to be set, but UI is smart enough to display the correct effective privilege in this case.
  4) [x] multiple base privileges set in the same "entry"
UI does not allow this to be set, but UI is smart enough to apply the most permissive base privilege when displaying and performing privilege calculations.
  5) [x] multiple feature privileges for the same "entry" (ml_all and ml_read)
UI does not allow for this to be set, but UI is smart enough to apply the most permissive base privilege when displaying and performing privilege calculations.


--------

## Summary
This updates the role management UI to allow application privileges to be customized globally and per-space.

## TODO:
- [x] [First Design review](https://github.com/legrego/kibana/pull/13)
- [ ] Second Design review
- [ ] Copy review
- [x] i18n
- [x] Handle deleted/unknown features
- [x] Handle deleted/unknown spaces
- [x] Cleanup & refactoring
- [x] Testing

* [Feature Controls, Spaces] - Don't load bundles for hidden apps (#29617)

## Summary
This enables the spaces plugin to issue a 404 if the requested application is disabled within the users active space.

To enable this functionality, the `app` property was moved to the root feature level, with the option to override at the privilege level. This follows the same logic as `catalogue` and `management` sections.

This will enable automatic app "protections" for those which only specify a single UI application, including:

1) Timelion
2) Canvas
3) Monitoring
4) APM
5) Code (when it merges)
6) GIS
7) Graph
8) ML

* [Feature Controls] - Copy Edits (#29651)

## Summary
Copy edits from today's session

* [Feature Controls] - Rename-a-thon (#29709)

* post-merge cleanup

* [Feature Controls] - fixes from recent merge from master (#29826)

## Summary

this pr will contain any required changes to fix CI from the recent merge from master, which includes the new k7 redesign design and dark mode

* Feature Controls: Adding privileges tooltip for Dev Tools (#30008)

* Adding privileges tooltip for Dev Tools

* appeasing the linter

* [Feature Controls] - Fix displayed space base privilege (#30133)

## Summary
This fixes the displayed space base privilege when a global base privilege is influencing the dropdown control:

1) Add global 'read' privilege
2) Configure space privilege -- note default base privilege of 'read'
3) Change space base privilege to 'custom'

Prior to this fix, the dropdown would not honor the change; it would keep 'read' as the selected option.

* Feature Controls: Adding read privileges for advanced settings and index patterns (#30106)

* Adding read privileges for advanced settings and index patterns

* Fixing the tests and the actual code itself

* Feature Controls - spaces not a security mechanism warning (#29853)

* Changing copy for the spaces not a security mechanism warning

* Using Gail's wording

* [Feature Controls] - Fixes from merging from master (8.0) (#30267)

* improve typings

* fix xpack_main type definitions

* test updates

* Fc/functional test move (#29835)

* Moving dashboard feature control tests to the dashboard application

* Moving more tests around

* Fixing some tests, no longer using uiSettings service, doesn't play
nicely with spaces

* Fixing esarchived issue

* Renaming some files

* [Feature Controls] - Readonly view for Advanced Settings using UICapabilities (#30243)

## Summary
This builds on the work done in https://github.com/elastic/kibana/pull/30106 to enable a read-only mode for the Advanced Settings screen:

- Input fields are disabled
- Save options are not displayed
- "Reset to default" options are not displayed

* Feature Controls: No Wildcards (#30169)

* A poorly named abstraction enters the room

* No more wildcards, starting to move some stuff around

* Splitting out the feature privilege builders

* Using actions instead of relying on their implementation

* We don't need the saved object types any longer

* Explicitly specifying some actions that used to rely on wildcards

* Fixing api integration test for privileges

* Test fixture plugin which adds the globaltype now specifies a feature

* Unauthorized to find unknown types now

* Adding tests for features with no privileges

* Update x-pack/test/saved_object_api_integration/security_and_spaces/apis/find.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Adding back accidentally deleted test

* Using the shared XPackMainPlugin definition

* Fixing privileges

* [Feature Controls] - Readonly mode for Canvas using UICapabilities (#29264)

## Summary

Updates Canvas to respect UICapabilities when determining if a user has read or read/write access to the application:

1) Adds a `showWriteControls` UI Capability to the Canvas's `all` privilege.
2) Removes the `setCanUserWrite` Redux action
3) Sets the initial (and only) state for `state.transient.canUserWrite` based on the UI Capability.

Closes https://github.com/elastic/kibana/issues/27695

* [Feature Controls] - Readonly mode for Maps using UICapabilities (#30437)

## Summary

This updates the maps application to support a read-only mode:

1) Removes selection/delete from Maps listing page
2) Removes "save" option

## TODO:
- [x] Functional UI Tests

* Add typings for x-pack/test to support .html imports (#30570)

We're importing `ui/capabilities` from the x-pack/test project, which
implicitly traverses into typings which are potentially importing .html
files, so we have to teach TypeScript about it.

* [Feature Controls] - Readonly mode for Timelion using UICapabilities (#30128)

## Summary

Updates Timelion to respect UICapabilities when determining if a user has read or read/write access to the application.

A previous PR was responsible for hiding the save controls, but this PR adds testing and the appropriate UICapabilities to the registered privilege definition.

* remove stray debug code

* [Feature Controls] - Updates from src/ui move to src/legacy/ui (#30678)

* dummy commit

* fix import path

* update message identifier

* fix snapshot

* remove unused translations

* Feature Controls: Adding read/write privileges for all applications (#30732)

* Adding read/write privileges for all applications

* Using default for advanced settings, canvas, maps and timelion

* Update x-pack/test/ui_capabilities/security_only/tests/canvas.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update x-pack/test/ui_capabilities/security_only/tests/canvas.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update x-pack/test/ui_capabilities/security_only/tests/maps.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update x-pack/test/ui_capabilities/security_only/tests/maps.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update x-pack/test/ui_capabilities/security_only/tests/timelion.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* [Feature Controls] - Readonly mode for Visualize using UICapabilities (#29714)

* enable read-only view, and enable app redirection for visualize app

* Hide 'Edit Visualization' dashboard context menu item if visualizations are not editable

* Hide 'Add new visualization' button if action is not available

* show 'Visualize' button on discover view only if viz app is available

* update tests

* allow visualizations to be created, but not saved for read-only users

* adds functional tests for visualize

* add tests for showing/hiding the visualize button in the discover app

* fix visualize tests following merge from master

* tests for edit viz feature from dashboards

* cleanup

* remove unnecessary call to set ui settings

* remove unused variables

* reduce flakyness of tsvb tests

* renames visualize.showWriteControls => visualize.save

* fix ui capability tests

* fix tests

* fix references to timePicker page object

* fix ts errors

* adds 'editable' property to embeddable metadata instead of hardcoded capability checks

* Remove unnecessary read-only considerations

* revert unnecessary mock changes

* [Feature Controls] - Adds missing uptime icon (#30716)

## Summary
Adds missing feature icon for Uptime application.

Needs https://github.com/elastic/kibana/pull/30678 to merge before this will go green.

* Feature Controls - Fix branch (#31135)

* Updating snapshot

* Switching visualize to use the default branch of the switch

* Fixing esarchive

* Feature Controls - Graph (#30762)

* Adding graph functional tests

* Fixing Privilieges API test

* Adding graph ui capability tests

* Update x-pack/test/ui_capabilities/security_only/tests/graph.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update x-pack/test/ui_capabilities/security_only/tests/graph.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update x-pack/test/ui_capabilities/security_and_spaces/tests/graph.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update x-pack/test/ui_capabilities/security_only/tests/graph.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Update x-pack/test/ui_capabilities/spaces_only/tests/graph.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Apply suggestions from code review

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Removing hard-coded constants

* Adding Graph delete button

* Fixing ui capability tests

* [Feature Controls] - Fixes page width for spaces management screen (#30723)

## Summary

Fixes the skinny spaces management screen following the redesign of the overall management area.

Needs https://github.com/elastic/kibana/pull/30678 to merge before this will go green.

* Feature Controls - Dev Tools (#30712)

* Adding functional tests

* Addingn Dev_Tools ui capability tests

* Adding some api tests for console's API

* Apply suggestions from code review

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Moving uiCapability definition

* Giving user_1 dashboard access to space_2

* Using the default in the switch for devtools/visualize

* Using forceLogout, maps are leaving us on a 404 page

* Fixing privileges API tests

* Feature Controls- Fix Merge Conflicts (#31651)

* Removing duplicated and outdated tests

* Updating snapshot

* Fixing type script errors

* Getting rid of some double quotes

* Adding saved_object:url access to discover temporarily to fix tests

* Fixing dashboard tests, updating snapshots

* Fixing security only find tests

* Removing reduntant test

* Trying to give it more time

* Fixing it 20 seconds to redirect away from the create new dashboard

* Feature Controls - No more route defaults for dashboards (#31767)

* No more route defaults for dashboards

* Verbose logging...

* Changing some ciGroups to try to narrow down the problem

* Revert "Verbose logging..."

This reverts commit 3198e73b61.

* Revert "No more route defaults for dashboards"

This reverts commit 525cd94dc5.

* Chaning the method in which we do the redirect

* Fixing type issue

* Update index.ts

* Update index.ts

* Feature Controls - Only allowing features to register all and read privileges (#31526)

* Only allowing features to register all and read privileges

* Making all and read optional properties required some existence checks

* Using Aleh's superior solution!

* No more unnecessary `as any`

* Feature Controls - Saved Object Management (#31332)

* Adding savedObject uiCapabilities that mirror the savedobject actions

* Using uiCapabilities to limit which types to search for

* Restricting which saved objects can be deleted based on type

* Hiding "view in app" button when we aren't allowed to

* Filtering the saved objects relationships based on the valid saved
object types

* Using dedicated savedObjectsManagement ui capabilities

* Adding readonly mode of viewing an object

* Displaying View In App if you can actually do so

* No more operations

* Moving saved objects ui capability population to kibana plugin

* Updating x-pack jest tests

* Adding security only saved objects management ui capability tests

* Adding security and spaces tests

* Adding spaces only saved objects managment ui capability tests

* Adding saved object management listing page functional tests

* Adding functional tests for edit visualization

* Consolidating canViewInApp and getInAppUrl into the same file

* Fixing imports

* One more stray import/export

* Adding back esFrom source

* Revert "Adding back esFrom source"

This reverts commit dfb626ace3.

* Updating jest snapshots

* Updating privileges

* Adding some logging

* Back to 10 seconds

* Trying to get more logs...

* Back to normal logging levels

* Fixing ui capability tests

* Putting timeouts back.

* Feature Controls - UI capability API integration tests with fixture plugins (#32086)

* Only testing the foo plugin for security and spaces

* Using the foo plugin with the security_only tests

* Changing spaces only tests to use the foo plugin

* Using list of features from api, and fixing bug with the spaces
interceptor

* Adding catalogue tests, which are alluding to another bug

* saved_objects catalogue aren't driven by ui capabilites presently

* Expanding the coverage for the spaces only catalogue tests

* Fixing some catalogue asserts

* Fixing catalogue tests for spaces_only, I had it backwards

* Adjusting Readme, adding "global read" scenario for security only tests

* Responding to PR feedback

* Adding back saved objects tests I accidentally deleted

* Fixing typescript issues, we can't import EUI on the server

* Fixing eslint error

* Updating Jest snapshots, fixing chrome mock

* Fixing dashboard listing test

* Adding missing await and forcing logout for graph functional tests

* Putting i18n string back

* Fixing type script issue

* Fixing canvas assert because of merge

* Fixing saved object api error assertations

* user-action is now a saved object type

* Fixing typescript error

* Fixing saved object actions as a result of the merge

* Feature Controls - Infrastructure and Logging (#31843)

* hide infra/logs apps if disabled via UICapabilities

* adds tests

* adds UICapability tests for infra and log apps

* update expected privilege/action mapping

* adds feature controls security tests for infraHome

* adds infra spaces feature control tests

* remove debug code

* a sample readonly implementation, ignoring 'logs' privileges

* ts fixes

* fix capability expectations

* Removing RequiresUICapability component, since there are no usages

* Driving the source configuration seperately for logs/infrastructure

* Adding infrastructure feature controls security functional tests

* Adding spaces infrastructure tests

* Adding logs functional tests

* Reworking the ui capability tests to be more consistent

* Fixing privileges API

* Forcing logout

* Fixing comma issue introduced by merge

* Fix merge conflicts and loading/unloading esarchives more consistently

* Removing unnecessary !!

* Fixing saved object management tests

* Fixing more tests

* Using the new context APIs

* Revert "Using the new context APIs"

This reverts commit 4776f1fc86.

* Adding future version of ui capabilities react provider

* Switching the order of the HOC's for infra and making the future the
default

* Applying Felix's PR feedback

* Protecting Infra's GraphQL APIs

* Updating privileges list

* Using the introspection query

* No longer using apollo context library, rephrasing test descriptions

* Fixing issue introduced by merge conflict, I forgot a }

* Putting back missplaced data test subj

* Updating jest snapshots

* Feature Controls - Short URLs (#32418)

* Discover is showing creating short urls properly

* Adding Discover functional tests

* When dashboards show the share menu you can always create short urls

* Visualize now displays the short urls link appropriately

* Dashboard all gets access to saved objects and updating privileges api
test

* Updating and adding short url test to url panel content

* Fixing misspelling

* Updating jest snapshot

* Adding comment why allowShortUrl is always true for Dashboards

* Updating snapshots

* Fixing snapshots, mocking chrome.getInjected

* Feature Controls - Uptime (#32577)

* Adding uptime functional tests

* Enabling feature controls for uptime

* Updating the privileges API's actions

* Using a single access tag for limiting API access

* Revising the behavior of maps read-only mode (#33338)

* Feature Controls - APIs (#32915)

* Using HapiJS's scopes to perform authorization on api endpoints

* Revert "Using HapiJS's scopes to perform authorization on api endpoints"

This reverts commit f73810c22d.

* Switching the syntax of the api tags

* Fixing privileges API

* Typescriptifying some dependencies of the api authorization extensions

* Using dedicated typescript file for api post auth filtering

* Adding tests and restructuring the flow of the api authorization

* Adjusting uptime's usage of privileges and the privileges test

* Integrating PR feedback

* Fixing graph test subject, thanks Joe!

* Consolidating hideWriteControls dashboard listing test

* Reusing maps constants

* Adding type to saved object management ui capability tests

* Feature Controls - Index Pattern Management (#33314)

* Enabling feature controls for index patterns

* Updating privileges API tests

* Fixing saved object management's view index patterns in app logic

* Fixing forgotten canViewInApp tests

* Fixing maps spaces functional tests

* Feature Controls - Differentiating the privileges with the same actions (#32266)

* Differentiating the privileges with the same actions

* The types for the lodash.uniqwith packare aren't right, and we need to
customize the isEqual also, so we're gonna do it ourselves

* Fixing dev tools ui capability

* Removing are equivalent privileges prevention, it's not what we really
need

* Requiring all to be more permissive than read on startup

* Transparently differentiating "all" from "read" feature privileges

* Fixing jest tests

* Adding the allHack: action to the space and global base privileges

* Changing actions to be readonly

* Adding JSDoc's for the Actions class and specifically the `allHack`
action

* Making the import of xpack_main types consistent

* Feature Controls: APM (#32812)

* Adding APM read privilege and adding functional UI tests

* Beginning to validate the APM routes are protected properly

* Protecting APM's APIs

* Specifying CI group

* Fixing privileges

* Adding forgotten apm show ui capability

* Fixing apm's privileges

* Fixing merge-conflict with privileges allHack: and APM

* address canvas feedback (#34269)

* [Feature Controls] - Plugin postInit (#29172)

## Summary

Throwing this up as a straw ~man~ person. If we like it, I can split it out and point the OSS changes against master if we'd prefer.

Introduces a `postInit` plugin hook that is called after all plugins have gone through their `preInit` and `init` phases, which allows the security plugin to call `registerPrivilegesWithCluster` after all plugins have had an opportunity to register their features.

* Feature Controls - Adds bulk toggle for showing/hiding features within a space (#34288)

## Summary

Adds a "Change all" option to the spaces management screen to allow all features to be shown/hidden:

![image](https://user-images.githubusercontent.com/3493255/55344105-85db5d00-547a-11e9-9325-136d1c13f40e.png)


Closes #34184

* Feature Controls - Unregistered Applications Authorization (#34122)

* Converting the app authorization to use typescript

* Adding jest tests

* Only authorizing app routes that are registered for features

* Using ProtectedApplications to lazily get feature applications

* Removing unneeded mocked headers as part of the authorization

* Adding some logging for the app authorization

* Fixing imports, thanks tslint --fix!

* Updating snapshots

* Feature Controls - Disable privilege form until spaces are selected (#34386)

## Summary
This disables the privilege selection until one or more spaces are selected in the role management form:

![image](https://user-images.githubusercontent.com/3493255/55432524-1724ff00-5561-11e9-86f6-1589ba3fa701.png)

* Feature Controls - Visualize read-only create new (#34209)

* Allowing users to create new visualizations, even if they can't be saved

* Fixing privileges and tests

* Updating snapshot

* Removing visualize edit ui capability

* Feature Controls - Actions Version Prefix (#34405)

* Prefixing actions with version

* Updating privileges api integration test

* Update x-pack/plugins/security/server/lib/authorization/actions/saved_object.ts

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Requiring version to be a not empty string

* Updating jest snapshots

* Changing the 403 messages for the saved object client

* Fixing ui/chrome mock

* Feature Controls - Displaying share menu on dashboards when in read-only mode (#34207)

* Displaying share menu on dashboards when in read-only mode

* Fixing test description, thanks Luke!

* Fixing dashboard view mode tests because the share menu is now visible

* migrate from tslint to eslint

* Feature Controls - Reserved Role Apps (#30525)

* Removing feature privileges from ml/monitoring/apm

* Adding monitoring/ml/apm as hard-coded global privileges

* A poorly named abstraction enters the room

* No more wildcards, starting to move some stuff around

* Splitting out the feature privilege builders

* Using actions instead of relying on their implementation

* We don't need the saved object types any longer

* Explicitly specifying some actions that used to rely on wildcards

* Fixing api integration test for privileges

* Test fixture plugin which adds the globaltype now specifies a feature

* Unauthorized to find unknown types now

* Adding reserved privileges tests

* Adding reserved privileges in a designated reserved bucket

* Fixing ui capability tests

* Adding spaces api tests for apm/ml/monitoring users

* Adding more roles to the security only ui capability tests

* You can put a role with reserved privileges using the API

* Adding support to get roles with _reserved privileges

* Adding APM functional tests

* Adding monitoring functional tests

* Fixing typo

* Ensuring apm_user, monitoring_user alone don't authorize you

* Adding ml functional tests

* Fixing test

* Fixing some type errors

* Updating snapshots

* Fixing privileges tests

* Trying to force this to run from source

* Fixing TS errors

* Being a less noisy neighbor

* Forcing logout for apm/dashboard feature controls security tests

* Fixing the security only ui capability tests

* Removing test that monitoring now tests itself

* Fixing some ui capability tests

* Cleaning up the error page services

* Fixing misspelling in comment

* Using forceLogout for monitoring

* Removing code that never should have been there, sorry Larry

* Less leniency with the get roles

* Barely alphabetical for a bit

* Apply suggestions from code review

Co-Authored-By: kobelb <brandon.kobel@gmail.com>

* Removing errant timeout

* No more hard coded esFrom source

* More nits

* Adding back esFrom source

* APM no longer uses reserved privileges, reserved privileges are
pluggable

* Fixing typescript errors

* Fixing ui capability test themselves

* Displaying reserved privileges for the space aware and simple forms

* Removing ability to PUT roles with _reserved privileges.
Removing ability to GET roles that have entries with both reserved and
feature/base privileges.

* Updating jest snapshots

* Changing the interface for a feature to register a reserved privilege to
include a description as well

* Displaying features with reserved privileges in the feature table

* Adjusting the reserved role privileges unit tests

* Changing usages of expect.js to @kbn/expect

* Changing the CalculatedPrivilege's _reserved property to reserved

* Allowing reserved privileges to be assigned at kibana-*

* Updating forgotten snapshot

* Validating reserved privileges

* Updating imports

* Removing --esFrom flag, we don't need it anymore

* Switching from tslint's ignore to eslint's ignore

* Feature Controls - Adds feature registration to plugin generator (#34537)

## Summary

This updates the plugin generator to allow plugin authors to automatically register their feature with the Feature Registry, for control via Spaces/Security.

Running:
```
elastic-mbp:kibana larry$ node scripts/generate_plugin.js test-plugin
? Provide a short description An awesome Kibana plugin
? What Kibana version are you targeting? master
? Should an app component be generated? Yes
? Should translation files be generated? Yes
? Should a hack component be generated? Yes
? Should a server API be generated? Yes
? Should SCSS be used? Yes
```

Generates the following:
```js
import { resolve } from 'path';
import { existsSync } from 'fs';


import { i18n } from '@kbn/i18n';

import exampleRoute from './server/routes/example';

export default function (kibana) {
  return new kibana.Plugin({
    require: ['elasticsearch'],
    name: 'test_plugin',
    uiExports: {
      app: {
        title: 'Test Plugin',
        description: 'An awesome Kibana plugin',
        main: 'plugins/test_plugin/app',
      },
      hacks: [
        'plugins/test_plugin/hack'
      ],
      styleSheetPaths: [resolve(__dirname, 'public/app.scss'), resolve(__dirname, 'public/app.css')].find(p => existsSync(p)),
    },

    config(Joi) {
      return Joi.object({
        enabled: Joi.boolean().default(true),
      }).default();
    },

    init(server, options) { // eslint-disable-line no-unused-vars
        const xpackMainPlugin = server.plugins.xpack_main;
        if (xpackMainPlugin) {
          const featureId = 'test_plugin';

          xpackMainPlugin.registerFeature({
            id: featureId,
            name: i18n.translate('testPlugin.featureRegistry.featureName', {
              defaultMessage: 'test-plugin',
            }),
            navLinkId: featureId,
            icon: 'discoverApp',
            app: [featureId, 'kibana'],
            catalogue: [],
            privileges: {
              all: {
                api: [],
                savedObject: {
                  all: [],
                  read: ['config'],
                },
                ui: ['show'],
              },
              read: {
                api: [],
                savedObject: {
                  all: [],
                  read: ['config'],
                },
                ui: ['show'],
              },
            },
          });
        }
      // Add server routes and initialize the plugin here
      exampleRoute(server);
    }
  });
}

```

* Updating core system docs

* Fixing infra's dates with data for the functional tests

* [Feature Controls] - Move UICapabilities to the new platform (#30585)

## Summary

This moves the UI Capabilities service into the new platform, shimming into the old platform in a way that is consistent with the `i18n` service.

* Fixing uptime functional api tests

* Removing .only...
2019-04-12 09:16:13 -07:00
Maryia Lapata
870552dd78
[Vis: Default editor] EUIficate field selection control and apply form validation (#34548)
* EUIficate field selection control

* Refactoring

* Remove unused commaList filter

* Remove field.html, update functional tests

* Update functional tests

* Remove unused translation

* Update unit test since wrapped React component haven't compiled yet

* Move setValidity invocation to the component

* Update functional test

* Fix type export

* Wrap setValidity into useEffect due to react warning on init load with empty value

* Update types

* Remove extra tag

* Removed changed translations

* Update functional test

* Add help and error message

* Update error message

* Remove unused dependency

* Remove helpText

* Remove unused dependencies

* Remove unused translation

* Refactoring

* Refactoring

* Update form validation; remove setTouched

* Update from validation

* Update form validation

* Update agg select validation

* Refactoring

* Add ariaLabel

* Revert changes

* Update comments

* Remove unnecessary aria-label

* Disable selector with no options

* Add 'required' support for string control

* Update messages

* Fix merge conflict

* Update message

* Fix eslint
2019-04-11 18:13:46 +03:00
Liza Katz
9f86745bdb
Editing a scripted field causes errors #33251 (#34679)
* Changed the default fieldFormatMap to undefined - bugfix

* Test for bug #33251

* Remove only
2019-04-11 12:13:00 +03:00
Dmitry Lemeshko
aa08669ca3
Fix visualize tests (#34390)
* wait for rendering

* run ciGroup12 x60 times

* [visualize/_tsvb_chart] redesign tests

* wait for viz initial loading before navigation

* [visualize/_tsvb_chart] assert tab is loaded

* Revert "wait for viz initial loading before navigation"

This reverts commit 1023db4fb9.

* [TSVB] [Performance]request for api/metrics/fields triggered after all UI changes

Fix: #34433

* [TSVB] [Performance]request for api/metrics/fields triggered after all UI changes - prevent reRender in case of no changes

Fix: #34433

* improve tests

* Revert "[TSVB] [Performance]request for api/metrics/fields triggered after all UI changes - prevent reRender in case of no changes"

This reverts commit a04ed55103.

* Revert "[TSVB] [Performance]request for api/metrics/fields triggered after all UI changes"

This reverts commit 040f0b106b.

* Revert "run ciGroup12 x60 times"

This reverts commit c38427f67f.

* rename dataTestSubj
2019-04-10 21:07:38 +02:00
dave.snider@gmail.com
ce6c33a3e4
Upgrade eui@9.9.0 (#34824) 2019-04-09 15:44:02 -07:00
Mike Côté
fcd60ca0d9
Ensure migrations run on saved object import (#34793)
* Ensure migrations run on saved object import

* Fix broken tests

* Fix ESLint errors
2019-04-09 15:18:49 -04:00
Mike Côté
962722ae8a
Convert saved objects UI to use new import / export API (#33513)
* Initial work converting UI to use new server side APIs

* Remove missed file

* Fix jest tests

* Code cleanup pt1

* Fix file casing

* Fix jest tests

* Modify UI to support including nested references

* Fix button layout

* Connect includeReferencesDeep, remove references_missing_references logic

* Fix broken tests

* Cleanup

* Display success notifications and auto close modals on export

* More code cleanup

* Log to server when user imports using legacy .json file

* Final cleanup

* Update test snapshots to match updated text

* Apply PR feedback pt1

* Remove isLoading and wasImportSuccessful state variables, use single status variable instead

* Move business logic out of flyout component

* Apply PR feedback

* Update wordings
2019-04-09 12:02:54 -04:00
Dmitry Lemeshko
f39339d9d3
Functional tests: improve waiting in combobox service (#34707)
* [services/lib/web_element_wrapper] set custom wait for findAll

* [services/remote] print browser name and version on init

* [services/combo_box] fix return statement

* fix lint error
2019-04-08 18:48:55 +02:00
Rudolf Meijering
2e13faf8af
Overlay core service (#34261)
* Move ui/flyout to overlay core service

* Remove onClose in parameter (use FlyoutSession instead)

* Fix tests

* Remove old inspector tests

* Proper TODO message

* Convert flyout service to class

* Use correct i18n

* Resolving weird merge conflicts

* Fix panel plugin test

* Change new platform access

* Add more tests

* Remove commented tests

* Revert test fix (core is actually not fixed yet)

* Fix tests

* Expose onClose as Observable

* Use jest.doMock

* Fix typos

* Core start() -> setup()

* Remove @extends EventEmitter docs

* Refactor and test flyoutservice

* Fix comments: promise -> observable

* Fix tests

* Explicitly define OverlaySetup

* Fix OverlaySetup type signature

* Update Core API review file and docs

* Remove redudant if case

* Change FlyoutRef.onClose into a promise

* Remove redundante cleanup

* Use promise.finally

* Remove targetDomElement from openFlyout()

There's no need to support multiple targetDomElements per FlyoutService
and the current implementation handled this use case incorrectly.

Instead of adding complexity to try to support it, remove this from the
function signature.

* Fix + test to ensure child components are unmounted when a new flyover is displayed

* Wrap flyover in i18n Context component

* TSlint -> ESlint + test improvements
2019-04-08 15:17:59 +02:00
Tiago Costa
ed795d28ee
Migrate from tslint (#33826)
* chore(NA): remove tslint dependencies, configs and enable eslint typescript parser.

* fix(NA): apply recommend eslint typescript rule.s

* chore(NA): upgrade eslint package versions.

* chore(NA): split javascript eslint config in an override section.

* chore(NA): split all eslint configs with overrides.

* chore(NA): remove missing console.log.

* chore(NA): change eslint splits and overrides order.

* chore(NA): replace tslint disable comments with eslint ones.

* chore(NA): solve eslint typescript errors for elastic/kibana-custom/no-default-export

* chore(NA): fixed multiple eslint typescript rule failures.

* chore(NA): add tarfet folder to the eslint ignore.

* chore(NA): apply prettier rule to ts type file.

* chore(NA): remove last mentions to tslint

* chore(NA): add old defined rules

* chore(NA): missing port rules website

* chore(na): ordered rules

* chore(NA): solved eslint typescript problems.

* chore(NA): fix spaced comment problems.

* chore(NA): fix some more eslint typescript rules: import/order no-empty-interface

* chore(NA): fix last rules and comment out what are the ones still failing.

* chore(NA): comment out camelcase rule.

* chore(NA): regenerate kbn pm dist.

* chore(NA): updated snapshots.

* chore(NA): updated snapshots.

* chore(NA): disabled sort-keys rule.

* chore(NA): remove rule prefer-arrow/prefer-arrow-functions.

* chore(NA): fix for @typescript-eslint/no-var-requires rule.

* chore(NA): fixes for @typescript-eslint/camelcase rule.

* chore(NA): fix typo on eslint config kibana typescript.

Co-Authored-By: mistic <tiagoffcc@hotmail.com>

* chore(NA): remove legacy note after the intellij upgrade to 2019.1

* fix(NA): import order plugin.

* chore(NA): fix ts ignore positions after auto fix.

* fix(NA): performance issue with typescript eslint.

* refact(NA): eslint configs organization.

* chore(NA): apply resticted paths to ts files too.

* chore(NA): split comment from eslint ignore.
2019-04-05 17:45:23 +01:00
Matthias Wilhelm
eceeb9fb35
Use enter to submit save modals (#34417)
Now you can use the Enter key to submit the form used e.g. when saving a new dashboard
Good for a11y + a time saver

Adds Form element, migration of Button onClick to Form's onSubmit 
Adds functional test for Enter key submission

Fix #30831
2019-04-05 10:47:30 +02:00
Mike Côté
51e6a009ee
Modify saved object import APIs to handle special use cases from the previous import process (#34161)
* Modify import APIs to handle special use cases from the previous import process

* Cleanup

* Add more examples to the docs

* Make title come from data inside file

* Fix some broken tests

* Fix docs

* Fix docs wording

* Apply PR feedback pt1

* Apply PR feedback pt2
2019-04-04 09:10:54 -04:00
Peter Pisljar
954d3e1093
updating tagcloud interpreter func arguments (#33773) 2019-04-04 14:33:38 +02:00
Greg Thompson
865e6739fd
Upgrade EUI to 9.8.0 (#34486)
* upgrade eui to 9.8.0

* test selector updates
2019-04-03 17:25:10 -05:00
Dmitry Lemeshko
1af565973f
[services/retry] add onRetryBlock function to run before each retry (#34434)
* [services/retry] add onFaliureBlock function to run before each retry
2019-04-03 23:04:20 +02:00
Mike Côté
1e56a48fc7
Modify saved object export API to support exporting nested dependencies (#34225)
* Modify saved object export API to be able to export nested dependencies

* Apply verbal feedback

* Apply PR feedback
2019-04-03 15:51:07 -04:00
Josh Dover
d33e6892da
Introduce UI PluginsService (#32672)
This commit introduces two changes:
- Adds new platform plugins as a new bundles to the optimizer
- A PluginsService in the UI that loads plugin bundles, initializes plugins, and manages the lifecycle of plugins.
2019-04-03 12:02:10 -05:00
Matt Bargar
d8916e37c9
Add multi field info to the IndexPattern (#33681)
Adds two fields to the IndexPattern Field:

* parent - the name of the field this field is a child of
* subType - The type of child this field is. Currently the only valid value is multi but we could expand this to include aliases, object children, and nested children.

The thinking behind implementing these two new properties instead of a simple isMultiField flag is that it should be generic enough to describe other sorts of parent -> child relationships between fields.
2019-04-02 13:52:04 -04:00
spalger
b5cdb6df6e disable failing suite
(cherry picked from commit ab6cedae42)
2019-04-01 11:39:31 -07:00
Tim Roes
71e61e3072
Hide gauge labels when value is hidden (#34171)
* Hide gauge labels when value is hidden

* Only hide subtext when value is hidden

* Use better free space calculation

* Fix tests
2019-04-01 18:04:11 +02:00
Alexey Antonov
852b6e9b1a
x-pack/test/saved_object_api_integration/common/suites/find.ts Fix broken build (#34224) 2019-03-30 20:23:50 +03:00
Alexey Antonov
ed57d3b4d3
Visual builder: percentile ranks should allow multiple values (#33642)
* Visual builder: percentile ranks should allow multiple values

Fix: #33144

* Visual builder: percentile ranks should allow multiple values - fix translation

Fix: #33144

* Visual builder: percentile ranks should allow multiple values - fix translation

Fix: #33144

* Visual builder: percentile ranks should allow multiple values  - add migration script

* Visual builder: percentile ranks should allow multiple values  - fix tests

* Visual builder: percentile ranks should allow multiple values  - add executeMigrations function

* Visual builder: percentile ranks should allow multiple values  - fix table view label

* Visual builder: percentile ranks should allow multiple values  - fix comments

* Visual builder: percentile ranks should allow multiple values  -add multi value row

* Visual builder: percentile ranks should allow multiple values  -add multi value row

* Visual builder: percentile ranks should allow multiple values   fix review comments

* Visual builder: percentile ranks should allow multiple values   fix review comments

* [TSVB] Code cleanup - remove unused file (core_plugins/metrics/public/lib/create_new_panel.js)
2019-03-30 17:41:35 +03:00
CJ Cenizal
8d262bded5
Rename user_action telemetry app to ui_metric (#33904)
* Rename internal references to user actions to UI metrics in Index Management, ILM, and Rollups.
2019-03-29 15:26:31 -07:00
spalger
179b9be6bb disable flaky test (#33468) 2019-03-28 19:21:34 -07:00
dave.snider@gmail.com
d2c077ae59
eui 9.7.1 (#34098) 2019-03-28 12:27:35 -07:00
Nathan Reese
7ab080a97c
[Maps] store mapCenter in embeddable config (#33902)
* embeddable config

* set embeddableConfig when map center changes

* remove console statement

* add functional test for embeddable state
2019-03-28 06:39:36 -06:00
Maryia Lapata
b03f6c3eae
[Vis: Default editor] EUIficate agg-select (#31892)
* EUIficate agg-select

* Improve validation; update TS

* Apply styles for helpLink

* Fix unit test

* Update functional tests

* Adjust comboBox service to chose the item where the text mates exactly

* Update vis page object

* Add default value for agg

* Move aggs grouping function to a separate file

* Use labelAppend prop for help link node

* Add watcher for aggType to manage to discard changes

* Add default value for agg type title

* Fix defining selected option when aggType is defined

* Fix validation issues

* Remove a bootstrap specific class

* Change css selector in test

* Update according to SASS guidelines

* Update functinal comboBox service

* Added check for undefined

* Add jsdoc for groupAggregationsBy function

* Add unit tests for groupAggregationsBy

* Move setValidity invocation to DefaultEditorAggSelect component

* Wrap setValidity into useEffect due to react warning when select is cleaned at the first time

* Move help link definition to select component
2019-03-28 13:02:34 +03:00