Commit graph

999 commits

Author SHA1 Message Date
Mikhail Shustov b32f1358b1
Remove required ConfigClass (#36609)
* remove LoggingConfig class

* get rid of ElasticsearchConfig class

* get rid of PluginsConfig class

* get rid of HttpConfig Class

* update ConfigService

* update LegacyService

* update testbed plugin

* update docs
2019-05-21 10:57:33 +02:00
Tim Roes c252732f02
Improve links (#36639) 2019-05-20 09:08:05 -04:00
gchaps cb0335c095
[DOCS] Updates Advanced Settings doc (#36455)
* [DOCS] Updates Advanced Settings doc

* Update docs/management/advanced-options.asciidoc

Co-Authored-By: Sarah Hersh <schersh@users.noreply.github.com>
2019-05-10 13:22:46 -07:00
Nathan Reese 9f54841095
[Maps] Getting started docs - Adding the map to a dashboard (#35636)
* [Maps] Getting started docs - Adding the map to a dashboard

* clean up instructions

* Update docs/maps/maps-getting-started.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/maps-getting-started.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/maps-getting-started.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/maps-getting-started.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/maps-getting-started.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/maps-getting-started.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/maps-getting-started.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/maps-getting-started.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* combine Filtering sections into single section as suggested

* fix zoom instructions and clean up save map section

* add more wording about why the tutorial is adding a terms join

* talk about static and data-driving styling in Set the vector style section

* more review comments

* add screen shot of document layer

* Update docs/maps/maps-getting-started.asciidoc

Co-Authored-By: gchaps <33642766+gchaps@users.noreply.github.com>

* avoid using lets since there is no we
2019-05-10 13:49:07 -06:00
Brandon Kobel 4d40f12423
Fixing the Kibana Role Management API note syntax (#36314) 2019-05-10 11:16:16 -07:00
Sarah Hersh 0886ab52aa
[DOCS] Update license page (#36448) 2019-05-10 14:05:19 -04:00
Josh Dover 3dacef2901
Move Nav APIs to new platform (#34490)
This moves the core Nav APIs from `ui/chrome` into the `ChromeService` in the new platform.

- `ChromeStart` now exposes a sub-service for reading and making limited updates to navlinks. These are powered by apps registered with the `ApplicationService` and filtered by UI Capabilities before being exposed by the `ChromeService`.
- The `header-global-nav` directive now consumes navlinks from the new platform.
- The `lastSubUrl` feature utilized by legacy apps has been refactored and will remain in `ui/chrome`. This feature utilizes the limited fields that `ChromeService` exposes to updates by outside code.

This change is the main blocker to moving the Chrome UI to the new platform. This will be necessary to enable the new platform to control top-level routing.
2019-05-10 09:03:10 -05:00
Mikhail Shustov 6b5c01c6f8
[New Platform] Validate config upfront (#35453)
* Introduce new convention for config definition.

We need to define a way to acquire configuration schema as a part of
plugin definition. Having schema we can split steps of
config validation and plugin instantiation.

* Discover plugins, read their schema and validate the config.

Config validation finished before core services and plugins read from it.
That allows us to fail fast and have predictable validation results.

* Instantiate plugins using DiscoveredPluginsDefinitions.

* Update tests for new API.

* test server is not created if config validation fails

* move plugin discovery to plugin service pre-setup stage.

Set validation schemes in ConfigService.preSetup stage.

* fix eslint problem

* generate docs

* address Rudolfs comments

* separate core services and plugins validation

* rename files for consistency

* address comments for root.js

* address comments #1

* useSchema everywhere for consistency. get rid of validateAll

* plugin system runs plugin config validation

* rename configDefinition

* move plugin schema registration in plugins plugins service

plugins system is not setup when kibana is run in optimizer mode,
so config keys aren't marked as applied.

* cleanup

* update docs

* address comments
2019-05-10 14:47:45 +02:00
gchaps 883ff0c26b [DOCS] Updates docs for Grok Debugger (#36289) 2019-05-09 15:22:28 -04:00
Stacey Gammon 5b8e303a98 Add open modal core service (#36057) 2019-05-09 11:00:36 -05:00
Rudolf Meijering e535a131d1
Fix core api type exports (#36108)
* Fix missing type exports in core/public

* Fix missing type exports in src/core/server

* Expose HttpStart

* Expose HttpStart: fix test mocks
2019-05-09 08:10:49 +02:00
Rudolf Meijering 4be09997b1
[new-platform] only use Setup API's (#35733)
* Core: only use Setup API's

* Fix linter issues

* Review feedback

* Update core API docs

* Make comment less coupled to Core calling code
2019-05-08 16:27:18 +02:00
Mikhail Shustov 452f529512
[New platform] Support configuring request specific basePath (#35951)
* expose IncomingMessage from KibanaRequest

It's applied to identify incoming requests across New and Legacy platforms. We can rely on the value if want to attach additional information to incoming requests without mutating them.

* support attaching basePath information to incoming requests

*  Support Url changing for incoming requests

* add tests

* use NP API in the legacy platform

* relax KibanaRequest typings

* check basePath cannot be set twice

* address @eli comments

* generate docs
2019-05-08 09:28:08 +02:00
Sarah Hersh 07b0c18593
reformat tables for asciidoctor (#36136) 2019-05-07 10:43:20 -04:00
Josh Dover 8fe1eb2086
[new-platform] Introduce ApplicationService scaffolding and capabilities loading (#35545) 2019-05-06 22:08:25 -05:00
Lisa Cawley c63b2b4ed4
[DOCS] Fixes table format for Asciidoctor (#36130) 2019-05-06 15:41:03 -07:00
Rudolf Meijering 92b7cbbb4d
[Core] Fix core api changes exit code (#36053)
* Bump api-extractor to fix missing warning bug

* Fix api-extractor not failing build on api changes

Workaround for upstream bug

* Don't fail build for api-extractor warnings

Warnings like forgotten exports won't fail the build. Instead these
will be added as comments to the api review files. Thus even though
the build won't break, these warnings will show up in code review and
should be fixed by the author.

This is to allow us to merge the workaround for the upstream bugs
without breaking master until we've addressed all the warnings.
2019-05-06 10:15:40 +02:00
Lisa Cawley 6a5a79359d
[DOCS] Fixes ordered list for asciidoctor (#36065) 2019-05-03 15:55:21 -07:00
Mikhail Shustov 39091e7037
[New platform] Introduce start phase for core services on server (#35297)
* introduce start phase. setup is bloated with start functionality

* fix amp typings: server is part of start contract now

* update mock files

* root.start(): necessary to run test server

* expose  setup&start server api to simplify testing

* move tests to the new API

* test servers also should call root.start()

* update docs

* update snapshots: this functionality is tested in http server

* split setup/start phases

* update docs

* expose http server if it not started

to get rid of Optional<HttpServer> type and make it Require<HttpServer>

* adopt test to exposed Http server via SetupContract

* udpate docs

* cleanup apm changees

* check legacy service setup before start

* check http server setup before start

* restrict server options mutation; unify Promise interface for setup

* introduce start pahse for plugins service for parity with client side

* Revert "introduce start pahse for plugins service for parity with client side"

This reverts commit c04fdd2e26.
2019-04-30 13:22:33 +02: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
Sarah Hersh 71e61fa5ad
adds note on matching multiple wildcards (#35351) 2019-04-25 15:15:56 -04:00
Sarah Hersh 4a21108c29
[DOCS] Updates docs for Console (#35505)
* update docs and screenshots

* [DOCS] Updates Console text and images
2019-04-24 15:06:30 -04:00
kobelb 96054ae0a1 Fixing security token auth doc link 2019-04-23 18:06:00 -07:00
Brandon Kobel 7a1cc70366
[DOCS] - Adding token auth docs (#35431)
* Adding token auth docs

* Revising based on Aleh's input

* Restructuring the token docs a bit

* Linking from the bullets

* More revisions, thanks Gail!!

* Whoops, accidentally added intead of replaced a sentence

* Clarifying the behavior when using both basic and token auth
2019-04-23 15:10:53 -07:00
Sarah Hersh 3d7030cb07
fix link for 18n settings (#35413) 2019-04-22 13:56:59 -04:00
Nathan Reese b3bfe4ea8d
[Maps] layer level filtering and classification styling docs (#34895)
* [Maps] layer level filtering and classification styling docs

* decrease screen shot size

* add note about styling line geometries

* feedback

* asciidoc syntax

* updates from pairing up with gchaps

* add example for static styling

* Update docs/maps/vector-style.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/vector-style.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/vector-style.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* combine class intro sentences into single sentence
2019-04-19 09:58:02 -06:00
Sarah Hersh cc83660389
[DOCS]Adds breaking change for index patterns (#35314)
* adds breaking change

* fix version number
2019-04-18 14:37:13 -04:00
Brandon Kobel d860285da0
Removing mention of legacy roles (#35263)
* Removing mention of legacy roles

* Removing more legacy references
2019-04-18 06:35:43 -07:00
Sarah Hersh d59576b22f
add logging.json setting (#34581) 2019-04-18 09:31:24 -04:00
Tim Roes d8de7231fc
Remove notification dependency from uiSettings (#35239)
* Remove notification dependency from uiSettings

* Update API docs

* Fix prettier

Still had eslint not setup correctly for TS files

* Change i18n id
2019-04-18 12:35:17 +02:00
Aleh Zasypkin 7c2ff2ed75
Add support for SAML IdP initiated login when user already has active session. (#33644) 2019-04-18 10:51:15 +02:00
Larry Gregory 6fdad7f623
Feature Controls - Spaces API Docs (#34575)
## Summary

- Updates the Spaces API documentation to reflect new "disabledFeatures" property
- Introduces Features API documentation to assist the Spaces API docs

Related: https://github.com/elastic/kibana/issues/31053
2019-04-17 09:02:17 -04:00
Rudolf Meijering 764bf252fb
[new-platform] Explicitly define core setup types (#34817)
* Explicitly define BasePathSetup type

* Explicitly define I18nSetup type

* Explicitly define InjectedMetadataSetup type

* Explicitly define FatalErrorSetup type

* Fix lint errors

* Fix BasePathSetup types

* Fix lint errors

* Clarify basePath add() docs

* Upgrade api-documenter for 'do not edit' header

* Use @link references on CoreSetup to improve doc navigation

* Add comment that links to upstream api-documenter issue

* PR Comments: make FatalErrorsService.add() private

* Revert "PR Comments: make FatalErrorsService.add() private"

This reverts commit fe9e6e62df.
2019-04-16 22:19:13 +02:00
Mikhail Shustov a202232438
[New platform] HTTP & Security integration (#34631)
* Add Auth session

* add lifecycles

* add types for hapi-auth-cookie

* expose interceptors from http service

* add integration tests

* update tests

* session storage cleanup

* get SessionStorage type safe

* add redirect, clear cookie security integration tests

* add tests for onRequest

* add tests for onAuth

* register Auth interceptor only once

* refactor redirect tests

* fix typings, change error message, test suit naming

* add integration test for session validation

* add tests for cookie session storage

* update docs

* add integration tests for onRequest

* update docs

* cleanup onRequest integration tests

* Generate docs for AuthToolkit & OnRequestToolkit

* add test for an exception in interceptor

* add test OnRequest interceptors dont share request object

* cleanup

* address comments from @eli

* improve typings for onRequest

* improve plugin typings

* re-generate docs

* only server defines cookie path

* cookieOptions.password --> cookieOptions.encryptionKey

* CookieOption --> SessionStorageCookieOptions

* address comments @joshdover

* resolve conflict leftovers

* update @types/hapi-auth-cookie deps

* update docs
2019-04-16 20:47:20 +02:00
Nathan Reese bc4ad271f1
[Maps] connecting to EMS docs (#34737)
* [Maps] connecting to EMS docs

* remove un-related test file

* worked with gchaps to make much better

* simplify disable intro

* feedback

* add optional flag back to step
2019-04-15 17:00:28 -06: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
Josh Dover b006361e61
[new-platform] Improve naming and consistency in Plugin types (#34725)
* Improve consistency in Plugin types

* Use #has() instead of undefined check

* Rename parameter

* Update core docs

* Internal updates
2019-04-10 13:44:11 -05:00
Brandon Morelli 2a6c7b4cac
remove rogue or (#34830) 2019-04-10 10:28:56 -07:00
Mikhail Shustov c618751bb8
[New platform] Restrict import from core&plugin internals for ts files (#34688)
* eslint-plugin-import should resolve *.ts files

* no_restricted_paths adc support filename exclusion

* fix linter errors

* update autogenerateds docs

* export directly
2019-04-10 14:56:09 +02:00
Shaunak Kashyap 3455cf8519
Docs: Simplifying setup by using module configuration variant syntax (#34599)
Now that https://github.com/elastic/beats/pull/9118 is merged, starting 7.1 users will be able configure Metricbeat for monitoring Kibana instances using a simpler syntax.

Previously, users would have to run `metricbeat modules enable kibana` to enable the `kibana` Metricbeat module, then configure the module for Stack Monitoring by manually editing `modules.d/kibana.yml`. Going forward, users will be able to achieve the same effect by running `metricbeat modules enable kibana-xpack`.

This PR updates the docs with this change.

Related: https://github.com/elastic/elasticsearch/pull/40879
2019-04-08 09:04:57 -07: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
Lisa Cawley a0f8107b90
[DOCS] Updates data recognizer screenshots for ECS (#34596) 2019-04-05 11:29:48 -07:00
gchaps b3f7435ad2
[DOCS] Fixes formatting in plugin and l10 docs (#34594) 2019-04-05 07:01:16 -07:00
Sarah Hersh 4bca194d35
resolve merge conflict between master and 6.7 (#34570)
[DOCS] Adds i18n docs to master
2019-04-04 14:15:14 -04: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
Nathan Reese 30950519f2
[Maps] search bar docs (#34315)
* [Maps] search bar docs

* rename indexes to indicies and other text refinement feedback

* add example queries

* remove unused image

* Update docs/maps/search.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/search.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/search.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/search.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/search.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/search.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/search.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>
2019-04-03 15:15:33 -06: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
Brandon Morelli 357dc6610c
docs: update tutorial (#34295) 2019-04-03 11:53:43 -07:00
Sarah Hersh 73c68b8e0b
[DOCS] Updates 7.0 upgrade guide (#34121) (#34346) 2019-04-03 14:50:47 -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
Rudolf Meijering 5c457972d4
Generate core API docs from TSDoc comments (#32148)
* Generate core API docs from TSDoc comments

Uses api-extractor and api-documenter to generate documentation for
the Kibana core API from TSDoc comments in the source code.

Documentation can be generated using `npm run docs:api`.

I used --no-verify to ignore the following pre-commit hook errors:
1. Filenames MUST use snake_case - api-extractor.json
   It's possible to specify a different config file, but I prefer to keep the "standard" config file name.
2. UNHANDLED ERROR: Unable to find tsconfig.json file selecting "common/core_api_review/kibana.api.ts". Ensure one exists and it is listed in "src/dev/typescript/projects.ts"
   This is not a source file, so safe to ignore.

* Flesh out API docs a little bit

* Ignore snake_case check for api-extractor.json

* Ignore api-extractor's review file from pre-commit check

* Try to fix build failing by using masters yarn.lock

* I'm being stupid

* Found a better home for ignoring common/core_api_review/kibana.api.ts

* Node script for detecting core API changes

I initially wanted to include this as a precommit hook, but it takes
quite long to execute (~12s) so might be better suited as a test or
as part of the release process.

The script currently fails because api-extractor uses an older version
of typescript.

* Fix tslint precommit hook ignore condition

* Write tsdoc-metadata.json into ./build

* Add LogMeta and ElasticSearch to exported types & docs

* Suppress logging when running api-extractor from script

* Improve check_core_api_changes script and run as test

* Inline api-extractor.json config

* Fix check_core_api_changes --help flag

* LogMeta TSDoc comments

* check_core_api_changes: fail if api-extractor produces warnings or errors

And print more useful messages to the console

* Move ignored ts files list into dev/file

* Add back build:types since api-exporter cannot operate on source files

* Upgrade api-exporter/documenter

* api-extractor: independantly analyze core/public and core/server

Becasue of https://github.com/Microsoft/web-build-tools/issues/1029
api-extractor can't use core/index.ts as a single entry point for
analyzing the public and server API's as isolated namespaces.

Instead we analyze these projects separately. This introduces other
problems like the api review files and documentation always being
called "kibana." from the package.json filename.

* Build types as part of build task

* Include types in typescript browser compilation

* Force inclusion of core/public for building types

* Fix api review filename in api-exporter errors

* Update docs and API review files

* Fix api-extractor warnings

* Remove ts file ignored list since it's no longer necessary

* Rename exported api package name

* Review comments

* Export other missing types

* Upgrade api-documenter to latest beta

* Export more missing types

* Fix warnings and add api-exporter to Jenkins tests

* Correctly handle runBuildTypes() exceptions

* Fix another swallowed exception

* Fix api-extractor warnings after master merge
2019-04-03 12:26:00 +02:00
gchaps 8290b56f70
[DOCS] Updates Create Pipeline doc (#34359) 2019-04-02 11:47:42 -07:00
Lisa Cawley d13af852ed
[DOCS] Adds settings section to breaking changes (#34328) 2019-04-02 07:48:04 -07:00
Lisa Cawley 7198a1ffcd
[DOCS] Work around for titleabbrev errors (#34201) 2019-04-01 13:23:59 -07:00
Lisa Cawley 2af3f7a430
[DOCS] Adds X-Pack icon for Canvas (#34173) 2019-04-01 11:26:32 -07:00
Lisa Cawley 7e25b78a6b
[DOCS] Adds X-Pack icon for index management (#34175) 2019-04-01 09:56:46 -07:00
Lisa Cawley bbf4fbc983
[DOCS] Adds X-Pack icon for ILM (#34178) 2019-04-01 09:32:39 -07:00
Lisa Cawley fe40210357
[DOCS] Adds X-Pack icon for rollup management (#34182) 2019-04-01 08:58:59 -07:00
Lisa Cawley 8f66a1e6f4
[DOCS] Adds X-Pack icon for maps (#34170) 2019-04-01 08:32:11 -07:00
Peter Pisljar 61e5300391
adding yml switch for using interpreter in expressions (#33832) 2019-04-01 15:35:12 +02:00
CJ Cenizal 4e51ab863a
Fix docs typo sniffOnConectionFault -> sniffOnConnectionFault. (#34189) 2019-03-29 12:50:06 -07:00
Jonathan Budzenski 28f4bfabf8
remove useUTC deprecation, set default timezone to local (#22696)
* remove useUTC deprecation, set default timezone to local

* no-unused-vars

* rm set, unset import
2019-03-29 10:29:07 -05:00
Lisa Cawley 1d2fbf827c
[DOCS] Fixes anchor in ordered list (#34092) 2019-03-28 10:17:35 -07:00
Sarah Hersh edbc3d49a7
[DOCS]Update UI names in Reporting doc (#34073) 2019-03-28 13:16:28 -04:00
Lukas Olson a848840501
Remove segmented fetch (#33453)
* Remove segmented fetch

* Fix namespace

* Remove unused translations
2019-03-27 14:14:01 -07:00
Lisa Cawley d3e8ee317d
[DOCS] Removes abbrevtitles from parts (#34002) 2019-03-27 13:23:32 -07:00
Lisa Cawley b7fcc7b0e6
[DOCS] Remove out-dated link (#33980) 2019-03-27 10:36:47 -07:00
Tiago Costa 3b020f055b
docs(NA): missing header for unit testing. (#33895) 2019-03-27 00:41:24 +00:00
Sarah Hersh 41fb553ee3
edits to page headers (#33887) 2019-03-26 17:53:35 -04:00
Tiago Costa 20bdf7d4a9
Migration to Babel7 and @babel/preset-typescript (#33093)
* chore(NA): first changes on every package.json order to support new babel 7. chore(NA): build for kbn-pm with babel 7.

* chore(NA): patch babel register to load typescrit

* chore(NA): first working version with babel 7 replacing typescript compiler.

* fix(NA): common preset declaration in order to make it work with babel-loader.

* chore(na): organizing babel preset env package json.

* chore(NA): mocha tests enabled.

* fix(NA): typo on importing

* test(NA): majority of x-pack tests ported to use babel-jest

* fix(NA): report info button test with babel-jest.

* fix(NA): polling service tests.

* test(na): fix server plugins plugin tests.

* test(NA): batch of test fixs for jest tests under babel-jest hoisting.

* chore(NA): add babel plugin to hoist mock prefixed vars on jest tests.

* chore(NA): update yarn.lock file.

* chore(NA): tests passing.

* chore(NA): remove wrong dep

* chore(NA): fix tsconfig

* chore(NA): skip babel for ts-jest.

* chore(NA): selectively apply the plugin to strip off namespace from ts files.

* chore(NA): remove not needed changes from ts tests

* chore(NA): removed ts-jest dependency. chore(NA): migrate ts tests on x-pack to use babel-jest with the new pattern.

* chore(NA): migrate kibana default distribution typescript tests to run with babel-jest and the new test mock pattern.

* chore(NA): merge and solve conflicts with master.

* chore(NA): fix problems reported by eslint

* chore(NA): fix license ovveride for babel-plugin-mock-imports

* chore(NA): update jest integration tests for kbn pm

* chore(NA): update babel jest integration tests for kbn pm.

* test(NA): update jest integration snapshot for kbn pm.

* chore(NA): apply changes according to the pull request reviews.

* chore(NA): apply changes according to the pull request reviews.

* refact(NA): migrate jest tests to the new pattern.

* fix(NA): babel 7 polyfill in the tests bundle.

* chore(NA): restore needed step in order to compile x-pack with typescript.

* chore(NA): change build to compile typescript with babel for the oss code. chore(NA): change transpile typescript task to only transpile types for x-pack. refact(NA): common preset for babel 7

* Revert "chore(NA): change build to compile typescript with babel for the oss code. chore(NA): change transpile typescript task to only transpile types for x-pack. refact(NA): common preset for babel 7"

This reverts commit 2707d538f5.

* fix(NA): import paths for tabConfigConst

* chore(NA): fix transpiling error on browser tests

* chore(NA): simplify kbn babel preset package.

* chore(NA): migrate build to use babel transpiler for typescript excluding xpack.

* fix(NA): introduced error on test quick task.

* fix(NA): fix preset for client side code on build.

* fix(NA): build with babel

* fix(NA): negated patterns in the end.

* fix(NA): kbn_tp_sample_panel_action creation.

* fix(NA): babel typescript transform plugin workaround when exporting interface name.

* refact(NA): remove not needed type cast to any on jest test.

* docs(NA): add developement documentation about jest mocks test pattern.

* chore(NA): missing unmerged path.

* chore(NA): fix jest tests for template.

* [CCR] Client integration tests (table lists) (#33525)

* Force user to re-authenticate if token refresh fails with `400` status code. (#33774)

* Improve performance of the Logstash Pipeline Viewer (#33793)

Resolves #27513.

_This PR is a combination of #31293 (the code changes) + #33570 (test updates). These two PRs were individually reviewed and merged into a feature branch. This combo PR here simply sets up the merge from the feature branch to `master`._

Summary of changes, taken from #31293:

## Before this PR
The Logstash Pipeline Viewer UI would make a single Kibana API call to fetch all the information necessary to render the Logstash pipeline. This included information necessary to render the detail drawer that opens up when a user clicks on an individual vertex in the pipeline.

Naturally, this single API call fetched _a lot_ of data, not just from the Kibana server but also, in turn, from Elasticsearch as well. The "pro" of this approach was that the user would see instantaneous results if they clicked on a vertex in a pipeline and opened the detail drawer for that vertex. The "cons" were the amount of computation Elasticsearch had to perform and the amount of data being transferred over the wire between Elasticsearch and the Kibana server as well as between the Kibana server and the browser.

## With this PR
This PR makes the Kibana API call to fetch data necessary for **initially** rendering the pipeline — that is, with the detail drawer closed — much lighter. When the user clicks on a vertex in a pipeline, a second API call is then made to fetch data necessary for the detail drawer.

## Gains, by the numbers

Based on a simple, 1-input, 1-filter, and 1-output pipeline.

* Before this PR, the Elasticsearch `logstash_stats` API responses (multiple calls were made using the `composite` aggregation over the `date_histogram` aggregation) generated a total of 1228 aggregation buckets (before any `filter_path`s were applied but across all `composite` "pages"). With this PR, the single `logstash_stats` API response (note that this is just for the initial rendering of the pipeline, with the detail drawer closed) generated 12 buckets (also before any `filter_path`s were applied). That's a **99.02% reduction** in number of buckets.

* Before this PR, the Elasticsearch `logstash_stats` API responses added up to 70319 bytes. With this PR, the single `logstash_stats` API response for the same pipeline is 746 bytes. That's a **98.93% reduction** in size.

* Before this PR, the Elasticsearch `logstash_state` API response was 7718 bytes. With this PR, the API response for the same pipeline is 2328 bytes. That's a **69.83% reduction** in size.

* Before this PR the Kibana API response was 51777 bytes. With this PR, the API response for the same pipeline is 2567 bytes (again, note that this is just for the initial rendering of the pipeline, with the detail drawer closed). That's a **95.04% reduction** in size.

* [Maps] split settings into layer and source panels (#33788)

* [Maps] split settings into layer and source panels

* fix SCSS import

* [env] exit if starting as root (#21563)

* [env] exit if starting as root

* fix windows

* s/--allow-root

* Typescript sample panel action (#33602)

* Typescript sample panel action

* Update EUI version to match main cabana version

* update yarn.lock

* add back typings include

* use correct relative path

* Home page "recent links" should communicate saved object type #21896 (#33694)

* adds object type for screen order
* adds object type for pointer hovering
* Update src/legacy/ui/public/chrome/directives/header_global_nav/components/header.tsx

Co-Authored-By: rockfield <philipp.b@ya.ru>
2019-03-26 20:44:03 +00:00
Jonathan Budzenski e24cef3f78
Docs/gettingstarted (#32145) (#32218)
* Docs/gettingstarted (#32145)

* [docs/getting started] remove types

* update urls

* one primary shard

* Update docs/getting-started/tutorial-load-dataset.asciidoc

Co-Authored-By: jbudz <jbudz@users.noreply.github.com>

* dedupe

* Update tutorial-load-dataset.asciidoc
2019-03-26 14:45:35 -05:00
Spencer 2e232c2e31
[@kbn/expect] "fork" expect.js into repo (#33761)
* [@kbn/expect] "fork" expect.js into repo

* [eslint] autofix references to expect.js

* [tslint] autofix all expect.js imports

* now that expect.js is in strict mode, avoid reassigning fn.length
2019-03-25 09:56:48 -07:00
Lisa Cawley ce96df1e70
[DOCS] Adds notable highlights tags (#33675) 2019-03-22 15:04:15 -07:00
Justin Kambic 45d2c84826
[Uptime] Add first draft of uptime docs (#31814)
* Add first draft of uptime docs.

* Add first draft of uptime docs.

* Implement PR feedback.

* Add role info to uptime docs

* Impelement some more PR feedback.

* Attempt to add more copy focusing on the 'why' of each piece of the docs.

* uptime docs: grammar, formatting, order

* move location of uptime docs

* Implement more PR feedback.

* Add screenshots.
2019-03-22 12:59:53 -04:00
Felix Stürmer cee5f7536d
[Infra + Logs UI] Add source configuration ui to the docs (#33535)
This adds the new source configuration ui to the documentation of both the Infrastructure UI and the Logs UI. It also removes the `BETA` badge to reflect the status change.

fixes elastic/kibana#31124

Co-authored-by: Brandon Morelli <bmorelli25@gmail.com>
2019-03-22 12:25:08 +01:00
gchaps c52ca4c8b1
[DOCS] Removes beta tag from Canvas docs (#33630) 2019-03-21 07:53:14 -07:00
gchaps a8c919afc8
[DOCS] Adds information about enabling/disabling rollover (#33600) 2019-03-20 13:28:46 -07:00
Sarah Hersh 6e02912e69
[DOCS]Replaces deprecated timezone (#33330) 2019-03-19 13:09:38 -04:00
Sarah Hersh f64fde7353
[DOCS]Adds info on index naming conventions (#33321) 2019-03-18 09:33:46 -04:00
Tim Sullivan 7a407d0c0b
Reporting: register a single ESQueue worker, simultaneous poll for all export types (#32839)
* Reporting: register a single ESQueue worker, simultaneous poll for all export types

* more typescript

* PLUGIN_ID constant

* move down log / internal state

* fix tests

* jest test for createWorker

* assert arguments to queue.registerWorker

* logic move

* make ts ignore specific

* minor reversion to fix some esqueue worker tests
2019-03-15 12:27:02 -07:00
Mike Côté 34c7e52a87
Return import errors for saved objects referencing a missing index pattern or search (#33005)
* cherry-pick fd2bc9b

* Return errors when objects are missing references

* Fix import tslint

* Fix failing jest tests

* Fix x-pack integration tests

* Rename ensureReferencesExist to validateReferences

* Fix test naming to use validateReferences

* Update resolve_import_errors API to reflect new type attribute

* Validate references for search type as well

* Clarify comment

* Apply PR feedback

* Modify saved object bulkGet to be able to filter fields

* Apply PR feedback
2019-03-14 19:22:30 -04:00
Lisa Cawley 0ebb126560
[DOCS] Add security consideration for Upgrade Assistant (#33215) 2019-03-14 09:48:07 -07:00
Brandon Morelli b5207ecd00
[APM][Docs] Update documentation for 7.0 (#31940) 2019-03-14 09:00:37 -07:00
Sarah Hersh 2da80816fd
adds x-pack logo to ccr (#33195) 2019-03-14 09:05:57 -04:00
Sarah Hersh 20c704dcc3
[DOCS]Replace CCR and CCS with attributes (#33143) 2019-03-13 14:14:08 -04:00
Mike Côté 772d0d71c8
Rename resolve import conflicts API to resolve import errors (#33024) 2019-03-13 09:17:18 -04:00
Nathan Reese 990a72886f
Add link to Maps docs in Kibana getting started with sample data (#32848)
* Add link to Maps docs in Kibana getting started with sample data

* Update docs/getting-started/add-sample-data.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>
2019-03-11 16:53:54 -06:00
gchaps ab4a6b2980
[Maps][Docs] Updates for Maps Getting Started (#32809)
* [Maps] getting started documentation

* [DOCS] Edits for Maps Getting Started

* [DOCS] Incorporates review comments

* [DOCS] Rewrite section on sample data

* [DOCS] Adds link to add sample data page
2019-03-11 15:40:22 -07:00
Nathan Reese d324072acc
Remove Dashboard dark theme setion from docs (#32863) 2019-03-11 14:07:34 -06:00
Peter Goldthorp 2df42f5829 Add a docker run example to Kibana Install doc2 (#32702)
* Add a docker run example to Kibana Install doc2 

See PR #29911

* Update docs/setup/docker.asciidoc

Co-Authored-By: pgoldtho <peter@goldthorp.com>
2019-03-11 20:00:45 +00:00
Mike Côté 7cf91316ca
Basic server side import API for saved objects (#32158)
* Initial work

* Add overwrite and skip support

* Cleanup and add tests

* Move code into separate files

* Remove reduce

* New API parameters

* Add support to replace references

* Add better error handling

* Add spaces tests

* Fix return type in collectSavedObjects

* Apply PR feedback

* Update jest tests due to jest version upgrade

* Add docs

* WIP

* Split import routes pt1

* Add tests

* Fix broken tests

* Update docs and fix broken test

* Add successCount to _import endpoint

* Make skip by default in resolution API

* Update tests for removal of skips

* Add back support for skips

* Add success count

* Add back resolve import conflicts x-pack tests

* Remove writev from filter stream

* Delete _mock_server.d.ts file

* Rename lib/import_saved_objects to lib/import

* Filter records at stream level for conflict resolution

* Update docs

* Add tests to validate documentation

* Return 200 instead of other code for errors, include errors array

* Change [] to {}

* Apply PR feedback

* Fix import object limit to not return 500

* Change some wording in the docs

* Fix status code

* Apply PR feedback pt2

* Lower maxImportPayloadBytes to 10MB

* Add unknown type tests for import

* Add unknown type tests for resolve_import_conflicts

* Fix tslint issues
2019-03-08 13:18:36 -05:00
Eli Perelman 78cbe42982
Prefer third-party plugin development in ./plugins instead of ../kibana-extra (#31748)
* Prefer third-party plugin development in plugins instead of kibana-extra

* Fix failing recursive directory creation and removal

* Add new built version of kbn-pm
2019-03-07 17:04:29 -06:00
gchaps 1d31c2768b
[DOCS] Updates doc for 8.0 Upgrade Assistant (#32528) 2019-03-07 08:13:34 -08:00
Lisa Cawley 5eb24799cb
[DOCS] Adds tagged region for notable breaking changes (#30155) 2019-03-06 09:41:33 -08:00
Mike Côté 399067a491
Basic server side export API for saved objects (#30326)
* Initial work for new server side export API

* Revert UI changes, API only in this PR

* Remove whitespace at top of export.asciidoc

* Add tests around limitations

* Add comment

* Convert some files to typescript

* Move Boom.boomify to where the errors are created

* Use Boom.badRequest for now

* Fix lint issue

* Move files

* Update tests

* Add functional test

* Export all documents by default

* Update test assertions

* Use ~10000 saved objects in export api integration test

* Convert route to typescript, add content-type response header

* Move some tests to api_integration

* Use new sort and rename functions/variables

* Move tests to API integration

* Cleanup and finalize api integration tests

* Make type or objects required but not both in the same call

* Add spaces / security tests

* Add noTypeOrObjects to security / spaces tests

* Use json-stable-stringify and add tests for export ordering

* Address self feedback, add without kibana index test

* Only allow export API to export index-pattern, dashboard, visualization and search type objects

* Make import export size configurable and fix broken tests

* Fix broken tests

* Move test config to mock server

* Add more typescript types instead of using any

* Convert request from GET to POST

* Fix saved objects mixin test

* Update src/legacy/server/saved_objects/lib/export.ts

Co-Authored-By: mikecote <mikecote@users.noreply.github.com>

* Apply PR feedback

* Fix lint error

* Update test snapshots due to jest upgrade

* Add error handling for bulkGet

* Split export API into two endpoints

* Update src/legacy/server/saved_objects/routes/export_by_type.test.ts

Co-Authored-By: mikecote <mikecote@users.noreply.github.com>

* Update docs/api/saved-objects/export_by_type.asciidoc

Co-Authored-By: mikecote <mikecote@users.noreply.github.com>

* Update docs/api/saved-objects/export_by_type.asciidoc

Co-Authored-By: mikecote <mikecote@users.noreply.github.com>

* Update src/legacy/server/saved_objects/routes/export_objects.test.ts

Co-Authored-By: mikecote <mikecote@users.noreply.github.com>

* Apply PR feedback

* MockServer -> createMockServer

* Revert back to single API

* Re-apply PR feedback
2019-03-05 15:42:02 -05:00
Sarah Hersh d0ffd86488
[DOCS]Add sample data (#32244)
* add screenshot to add sample sets

* add sample data overview

* new screenshot

* add next steps

* feedback from Gail
2019-03-05 13:27:30 -05:00
Nathan Reese 4098f3f99b
[Maps] docs (#32130)
* [Maps] docs

* unique ids

* use hyphen instead of underscore in file names

* get everything working

* add screen shots of layer types

* add sources to layer documentation

* terms join example

* vector styling

* clean up

* link to geo_point for grid agg source

* minor clean up

* review feedback

* Update docs/maps/index.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/heatmap-layer.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/heatmap-layer.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* Update docs/maps/heatmap-layer.asciidoc

Co-Authored-By: nreese <reese.nathan@gmail.com>

* rest of changes suggested by gchaps

* update terms join intro
2019-03-04 12:18:20 -07:00
Lukas Olson 598fee3bb4
Add docs for savedObjects:listingLimit advanced setting (#31593) 2019-02-21 08:17:21 -07:00
Tim Sullivan 5197a0a380
[Docs/Reporting] Fix Troubleshooting page issues, Add section in Getting Started (#31539)
* [Docs/Reporting] Fix Troubleshooting page issues, Add section in Get Started

Close https://github.com/elastic/kibana/issues/31518

* update some gs headings

* Kibana doesn't download Chromium!

* Note about verbose logging

* sections

* full path

* has been
2019-02-20 16:25:56 -07:00
Tim Sullivan e2b3cd52da
[DOC] Missing font packages for Chromium (post 6.5) leading to "Caught error spawning Chromium" (#29940) (#31509)
It might occur that users hit the `Caught error spawning Chromium` error.
This is usually linked to missing font packages on the system.

This sub-list has been extracted from [the puppeteer troubleshooting page](https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md) and as a follow up of the issue https://github.com/elastic/kibana/issues/28123

Let me know if I should review the package list or the text.
I might also add directions on how to check Chromium debug logs if necessary.
2019-02-19 14:10:56 -07:00
Brandon Kobel 4224895cda
Adding note about sessions always being bound to browser's lifetime. (#31472)
* Adding note about sessions always being bound to browser's lifetime.

* Update docs/settings/security-settings.asciidoc

Co-Authored-By: kobelb <brandon.kobel@gmail.com>
2019-02-19 10:43:37 -08:00
Sarah Hersh e1c072db78
[Docs]Fixes links in Vega docs (#31283)
* fixes broken links and styles

* reformat getting started
2019-02-19 10:31:37 -05:00
Tim Roes 91a3361975
Renamed the kuery setting to KQL (#29587)
* Allow select settings to specify labels for their values

* Rename kuery setting to KQL

* Change docs for KQL setting

* Add warnings for unused options

* Address review

* Remove chinese translation for modified string

* Fix translations again (... should have pulled first)

* Remove old chinese translation
2019-02-19 11:58:29 +01:00
Chris Cowan cb3dad1317
[Infra UI] Clean up Docker and Kubernetes fields for ECS (#31175)
* [Infra UI] Clean up Docker and Kubernetes fields for ECS

* updating tests with latest ecs fields

* Fixing documentation
2019-02-15 11:19:46 -07:00
Joe Reuter 562edd6578
Downgrade vega to 4.3 (#31274) 2019-02-15 17:50:09 +01:00
Joe Reuter 2ede2e330e
Update vega to version 4 (#30628) 2019-02-14 11:35:05 +01:00
gchaps 26db3855af
[DOCS] Updates index management doc for 6.7 (#30906)
* [DOCS] Updates index management doc for 6.7

* [DOCS] Incorporates review changes into managing indices doc
2019-02-13 13:51:36 -08:00
Josh Dover 7c49336a8d
[docs] Add docs for Upgrade Assistant APIs (#30330)
* [docs] Add docs for Upgrade Assistant APIs

* Apply suggestions from code review

Co-Authored-By: joshdover <me@joshdover.com>

* Link to code tables
2019-02-13 14:12:19 -06:00
gchaps fee05b5da0
[DOCS] Adds information about freeze action and index priority to docs (#30865)
* [DOCS] Adds information about freeze action and index priority to ILM docs

* [DOCS] Incorporates review changes for create policy doc
2019-02-13 05:58:02 -08:00
Lisa Cawley e513c6e96c
[DOCS] Sorts the list of Kibana settings (#30551) 2019-02-11 09:20:19 -08:00
Lisa Cawley f05f0e18d4
[DOCS] Removes X-Pack settings section (#30554) 2019-02-11 08:17:25 -08:00
Court Ewing 2ce51a5be5 Update paths to ui, server, deprecation, plugin_discovery in src/legacy
This commit accompanies the four that precede it. Rather than squash
them altogether, the four previous commits all do nothing except move
files to help avoid conflicts.
2019-02-11 10:41:37 -05:00
Lisa Cawley afdb0509e4
[DOCS] Adds placeholders for release notes, breaking changes, highlights (#30545) 2019-02-08 12:56:52 -08:00
Shaunak Kashyap 753da9370d
Adding breaking changes docs for removed setting (#30505) 2019-02-08 11:42:32 -08:00
Tim Sullivan a9edf2dec2
Fix/reporting vis preserve (#30456)
* add state field for isPreserveLayoutSupported

* doc updates
2019-02-08 11:56:29 -07:00
Matt Bargar af2da97974
Makes KQL the default query language for new searches (#27092)
Changes the default query language to KQL in all apps that respect the `search:queryLanguage` advanced setting.
2019-02-06 17:18:25 -05:00
CJ Cenizal 1c5c175e8d
Update settings docs with new xpack.rollup and xpack.license_management settings. (#30259) 2019-02-06 12:48:07 -08:00
Mike Côté 9bee5b1838
Add breaking changes documentation for references PR (#29963)
* Initial draft of breaking changes

* Add object structure change

* Make id attribute match

* Fix attribute name

* Remove relationships API notes
2019-02-06 10:41:44 -05:00
Sarah Hersh 43c031a2ad
[DOCS] Removes empty image link (#30125) 2019-02-06 10:35:55 -05:00
gchaps 890b2c00ec
[DOCS] Adds descriptions and examples to spaces security doc (#30113) 2019-02-05 15:59:37 -08:00
Court Ewing 7094548bca
Warn legacy browsers that do not support Content Security Policy (#29957)
* csp: warn legacy browsers that do not support CSP

The new csp.warnLegacyBrowsers configuration is enabled by default, and
it shows a warning message to any legacy browser when they access Kibana
to indicate that they are not enforcing the basic security protections
of the current install.

The protections check is the same as csp.strict, so this feature is
designed to be used as an alternative to aid in BWC. When csp.strict is
enabled, warnLegacyBrowsers is effectively ignored.

* fix ChromeService tests

* more test fixes

* csp injectvars in legacy test bundle

* update warning text and make it translatable

* no need to warn in legacy browser unit tests

* tests for chrome legacy browser warning

* document legacy browser warning breaking change

* update csp warning toast message

* add period, remove dev code
2019-02-05 12:27:56 -05:00
Nathan Reese 52e12c7cda
add removal of deprecated tilemap and regionmap kibana.yml settings to breaking changes log (#30083) 2019-02-05 09:48:34 -07:00
Shaunak Kashyap 7b68b89ef1
Removing deprecated xpack.monitoring.report_stats setting (#30017)
* Removing deprecated xpack.monitoring.report_stats setting

* Remove from docs

* Update check in xpack_main plugin to not look at monitoring settings any more
2019-02-04 19:37:32 -08:00
Sarah Hersh bf866030c7
fix broken image link of time filter page (#29961) 2019-02-04 11:14:40 -05:00
Sarah Hersh 3cd087663b
[Docs]Updates to Discover docs (#29868) 2019-02-04 10:20:24 -05:00
Court Ewing 475dd5651b
Content security policy strict mode (#29856)
A content security policy is a great addition to the protections built
into Kibana, but it's not effective in older browsers (like IE11) that
do not enforce the policy.

When CSP strict mode is enabled, right before the Kibana app is
bootstrapped, a basic safety check is performed to see if "naked" inline
scripts are rejected. If inline scripting is allowed by the browser,
then an error message is presented to the user and Kibana never attempts
to bootstrap.
2019-02-04 09:09:40 -05:00
Lisa Cawley b71b815658
[DOCS] Removes problematic float (#29875) 2019-02-01 15:27:09 -08:00
Court Ewing 7a87f03ec7
Introduce content security policy (CSP) (#29545)
* csp: nonce and unsafe-eval for scripts

To kick things off, a rudimentary CSP implementation only allows
dynamically loading new JavaScript if it includes an associated nonce
that is generated on every load of the app.

A more sophisticated content security policy is necessary, particularly
one that bans eval for scripts, but one step at a time.

* img-src is not necessary if the goal is not to restrict

* configurable CSP owned by security team

* smoke test

* remove x-content-security-policy

* document csp.rules

* fix tsconfig for test

* switch integration test back to regular js

* stop looking for tsconfig in test

* grrr, linting errors not caught by precommit

* docs: people -> you for consistency sake

Co-Authored-By: epixa <court@epixa.com>
2019-02-01 17:11:38 -05:00
DeDe Morton f7de675be2
[Docs] Add list of supported config blocks for central management (#27275)
* [Docs] Add list of supported config blocks for central management

* Add Redis to list of supported outputs
2019-01-31 20:03:09 -05:00
Mike Côté 1b0f595f01
Add new "references" attribute to saved objects for relationships (#28199)
* Add new references attribute to saved objects

* Add dual support for dashboard export API

* Use new relationships API supporting legacy relationships extraction

* Code cleanup

* Fix style and CI error

* Add missing spaces test for findRelationships

* Convert collect_references_deep to typescript

* Add missing trailing commas

* Fix broken test by making saved object API consistently return references

* Fix broken api integration tests

* Add comment about the two TS types for saved object

* Only return title from the attributes returned in findRelationships

* Fix broken test

* Add missing security tests

* Drop filterTypes support

* Implement references to search, dashboard, visualization, graph

* Add index pattern migration to dashboards

* Add references mapping to dashboard mppings.json

* Remove findRelationships from repository and into it's own function / file

* Apply PR feedback pt1

* Fix some failing tests

* Remove error throwing in migrations

* Add references to edit saved object screen

* Pass types to findRelationships

* [ftr] restore snapshots from master, rely on migrations to add references

* [security] remove `find_relationships` action

* remove data set modifications

* [security/savedObjectsClient] remove _getAuthorizedTypes method

* fix security & spaces tests to consider references and migrationVersion

* Add space id prefixes to es_archiver/saved_objects/spaces/data.json

* Rename referenced attributes to have a suffix of RefName

* Fix length check in scenario references doesn't exist

* Add test for inject references to not be called when references array is empty or missing

* some code cleanup

* Make migrations run on machine learning data files, fix rollup filterPath for savedSearchRefName

* fix broken test

* Fix collector.js to include references in elasticsearch response

* code cleanup pt2

* add some more tests

* fix broken tests

* updated documentation on referencedBy option for saved object client find function

* Move visualization migrations into kibana plugin

* Update docs with better description on references

* Apply PR feedback

* Fix merge

* fix tests I broke adressing PR feedback

* PR feedback pt2
2019-01-30 15:53:03 -05:00
Brandon Morelli 93faa5fbc3
[APM][docs][WIP] Update APM UI documentation (#28621)
* docs: initial APM UI updates

* docs: using-the-apm-ui updates

* more docs updates

* quick edits

* docs: apply feedback and fix screenshots

* docs: incorporate feedback, bold page names

* finishing touches and clean up

* docs: incorporate feedback from sarah

* docs: add feedback

* docs: incorporate feedback from gchaps
2019-01-30 09:08:11 -08:00
Mike Côté 9eef63f783
Allow passing a default operator to use on saved object client find operations (#29339)
* Allow passing a default operator to use on find operations

* Default operator to OR like elasticsearch to avoid passing null

* Add dashboard search tests

* Make search_operator optional

* Fix query_params.test.js

* Include searchOperator in saved_object_finder

* Apply PR feedback

* Rename searchOperator to defaultSearchOperator
2019-01-30 11:33:44 -05:00
Aleh Zasypkin 86a17bfeea
Remove previously deprecated elasticsearch.* and xpack.monitoring.elasticsearch.* settings. (#29496) 2019-01-30 16:21:06 +01:00
Jonathan Budzenski 166c192c7f
[plugin cli] defer optimization (#26983)
* [plugin cli] defer optimization

* include pr in docs

* update migration docs

* fix merge
2019-01-29 10:35:55 -06:00
Aleh Zasypkin a8e4be0c3b
Removing deprecated i18n.defaultLocale setting. (#29325) 2019-01-29 10:41:08 +01:00
Lisa Cawley 55ad328c93
[DOCS] Overview of automated annotations (#29456) 2019-01-28 13:18:22 -08:00
Bill McConaghy b5bb7c7a31
[DOC] Settings to disable the Rollup and License Management UI (#29278)
Add the settings to disable the Rollup and License Management UI in the Dcoumentation
2019-01-24 13:37:54 -05:00
Lisa Cawley 09f275c761
[DOCS] Remove beta tag from metricbeat monitoring (#29231) 2019-01-24 09:22:55 -08:00
Spencer c052613962
[dashboard+gis] remove dark mode options (#29017)
* [dashboard+gis] remove dark mode options

* [reporting/extract] restore fixtures

* remove mentions of old `.theme-dark` class

* import panel styles from panel/_index.scss
2019-01-23 14:29:35 -08:00
Brandon Kobel 0e00c3ffef
Remove legacy fallback (#29107)
* Remove mode.initialize and change useRbacForRequest to useRbac

* Updating saved object api tests

* Fixing spaces api integration tests

* Removing unused "expect legacy forbidden" declarations and imports

* Updating docs

* Update docs/migration/migrate_7_0.asciidoc

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

* Update docs/migration/migrate_7_0.asciidoc

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

* Updating comment that mentions the scenario when we aren't using RBAC

* Adding back the authorization section of the config

When a config setting is marked as unused using the deprecations, it's
still required to show up in the config declarations so an error isn't
thrown on startup.

* Adding note about watcher jobs

* Update docs/migration/migrate_7_0.asciidoc

Co-Authored-By: kobelb <brandon.kobel@gmail.com>
2019-01-22 12:08:45 -08:00
Lisa Cawley 395560a2dc
[DOCS] Adds info for ML auditbeat module (#28969) 2019-01-21 08:42:30 -08:00
Tim Roes 6c47f10a3c
Remove legacyIcon from visualizations (#28981) 2019-01-21 09:07:17 +01:00
Sarah Hersh e2ab1b0f78
[DOCS] Adds documentation for remote cluster and CCR UIs (#28944)
* [DOCS]Adds docs for new remote cluster UIs
2019-01-18 09:32:24 -05:00
gchaps 996f433467
[DOCS] Removes experimental tag (#28780) 2019-01-16 10:48:06 -08:00
Lisa Cawley 31cd2bc370
[DOCS] User annotations (#28711) 2019-01-16 08:36:54 -08:00
gchaps 9162855775
[DOCS] Adds documentation for index lifecycle policies (#28705)
* [DOCS] Adds documentation for index lifecycle policies

* [DOCS] Updated image for policy options to show all menu items

* Update create-policy.asciidoc

* [DOCS] Incorporated review comments on hot and warm phase

* [DOCS] Additional changes to warm phase

* [DOCS] Removed the word open in the warm phase
2019-01-15 14:11:19 -08:00
Brandon Kobel fe5a083509
Removing deprecated SSL settings (#28622)
* Removing deprecated SSL settings

* Updating breaking changes doc

* Fixing documentation typo

* Fixing LegacyObjectToConfigAdapter tests

* Fixing transformDeprecations tests

* Updating docs

Co-Authored-By: kobelb <brandon.kobel@gmail.com>
2019-01-14 12:37:58 -08:00
Fabien Baligand 9254c829fb Add setting to hide the 'Time' column in discover and saved searches. 2019-01-09 16:23:21 -07:00
Sarah Hersh 76f3816dd1
DOCS/update to reflect new UI text (#28088) 2019-01-09 15:18:53 -05:00
Chris Cowan 4c36db8c2c
[InfraOps] Update docs with data source configuration (#26579)
* Updating docs

- Configure data sources via config/kibana.yml
- Fix typo

* Adding timestamp override

* Documenting all settings

* Removing changes from a different PR

* Add settings docs

* Adding all the settings

* Updating docs based on feed back from PR

* Adding periods to lines; changing disabled to present tense

* Updates to docs per PR

* Updates per PR

* Fixes per PR
2019-01-09 10:50:35 -07:00
Lisa Cawley 6ac4dcbe0b
[DOCS] Use search profiler attribute (#28209) 2019-01-08 10:28:02 -08:00
Lisa Cawley 61fcf98b6e
[DOCS] Updates X-Pack terminology (#28208) 2019-01-08 08:48:36 -08:00
gchaps 61eed842e5
[DOCS] Add docs for 8.0 Upgrade Assistant (#28138) 2019-01-07 08:06:00 -08:00
Sarah Hersh 5654f608eb
DOCS/add detail to managing rollup jobs (#28000) 2019-01-04 10:42:35 -05:00
Nathan Reese faa5bd7288
update docs for reporting move to share menu (#27683) 2019-01-03 15:06:12 -07:00
Tim Sullivan 237e446ba3
[Reporting] Remove Phantom (#27142)
* remove some phantom stuff and tests

* remove phantom

* remove phantom

* remove phantom

* todo comments

* remove from yarn.lock

* edit fix

* use constant in init

* readme edit

* update migration guide

* remove refs to non-existing docs
2019-01-03 14:35:15 -07:00
Nathan Reese fd8c36e372
fix console documenation (#27862) 2018-12-31 11:29:42 -07:00
Sarah Hersh c048fa74ab
remove 7.0alpha2 coming tag (#27634) 2018-12-20 17:26:39 -05:00
Sarah Hersh c8247dcdb0
[DOCS]Fixes broken link in release highlights (#27533)
* fixes broken link in release highlights
2018-12-19 14:51:04 -05:00
Sarah Hersh aad71f026b
Adds release notes for 7.0.0-alpha2 (#27237)
* adding release notes for 7.0.0alpha2

* adding PRs through 12/15 BC
2018-12-19 12:10:23 -05:00
Lisa Cawley e65ad31de7
[DOCS] Fix links to search profiling (#27501) 2018-12-19 07:56:13 -08:00
Brandon Morelli fcb0a6d1ab
docs: add sentence on where to change apm settings (#27069) 2018-12-18 15:05:29 -08:00
Brandon Kobel a3793ecac5
Disabling TLSv1 from being enabled by default (#26415)
* Disabling TLSv1 from being enabled by default

* Adding breaking change docs

* Update docs/migration/migrate_7_0.asciidoc

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

* Using the schema defaults

* Fixing type definitions

* Adjusting logic for no supported protocols

* Adding minSize: 1 to the supported protocols
2018-12-18 12:38:26 -08:00
Jonathan Budzenski b5b64f4706
Support for multiple Elasticsearch nodes and sniffing (#21928)
* Node sniffing

* update monitoring

* cleaning

* remove tests

* rewrite tests using the proxy

* fix monitoring mocha tests

* fix payload

* return full error

* default interval false

* add sniff settings to monitoring

* add docs for sniff settings

* re-add index search integration test

* catch parse error

* capital

* fix merge

* hapi upgrade

* return

* pass by prefix

* rm empty test fille

* split error handling

* fix merge

* update recent elasticsearch.url references

* prettier vs eslint

* transport.request, include query params

* mega comment

* revert elasticsearchUrl

* safe hosts

* more docs es.url references

* remove unused ml/esServerUrl

* log if both set
2018-12-18 13:22:43 -06:00
Tim Roes 8964523f41
Add setting to enable frozen index search (#27297)
* Add setting to enable frozen index search

* Add description to docs

* Fix method calls
2018-12-17 22:21:34 +01:00
Lisa Cawley 49e863ba2c
[DOCS] Deprecate /_xpack/security in favor of /_security (#26897) 2018-12-10 12:42:56 -08:00
Lisa Cawley b2246f9dfb
[DOCS] Deprecate X-Pack-centric watcher endpoints (#26899) 2018-12-10 10:09:27 -08:00
Oliver Gupte 0cd6eaea44
[APM] Transaction group agg size config (#26683)
* [APM] Fixes #24204 by adding default configs to kibana.yml

* [APM] fixes #25940 by adding APM config to control top transation group agg size

* Revert the default configs added to kibana.yml and define joi validations for `xpack.apm.ui.transactionGroupBucketSize`

* fix broken test for incorrect config

* [APM] add docs entry for `xpack.apm.ui.transactionGroupBucketSize`
2018-12-07 22:57:53 -08:00
DeDe Morton 23effa5a22
[Docs] Add beta flag to central management docs (#26558) 2018-12-06 12:50:44 -08:00
Sarah Hersh 5c1615dd96
[DOCS] Kibana APIs not accessible via Console (#26221) 2018-12-05 16:20:58 -05:00
Sarah Hersh 8b304217b5
[DOCS] Adds Kibana docs for Canvas functions (#26467)
* [DOCS] Migrates Canvas function docs to Kibana docs

* [DOCS] Add docs for TinyMath Canvas functions
2018-12-05 16:02:44 -05:00
Chris Koehnke da34c80d75
Docs: Add note about oss repositories for deb/rpm (#26475)
* Docs: Add note about oss repositories for deb/rpm

Add documentation on the `oss-*` yum and apt repositories.

* Specify kibana-oss package name
2018-12-05 10:03:54 -05:00
Lisa Cawley 98fbca6230
[DOCS] Fixes link title (#26599) 2018-12-04 08:49:37 -08:00
Tim Sullivan 97928b38be
[Reporting] clarify what phantom deprecation means (#26434) 2018-12-04 09:43:59 -07:00
Lisa Cawley d8a70b5c26
[DOCS] Adds links to more limitations (#26099) 2018-12-03 17:03:08 -08:00
Aleh Zasypkin 3427a08108 [docs] fix typos in the i18n and development docs. 2018-12-03 13:03:14 +01:00
Aleh Zasypkin db3d727fdb [common] fix paths. 2018-12-03 13:03:14 +01:00
DeDe Morton fd4bb7845b
[Docs] Adds Beats central management docs (#26061) 2018-11-30 10:25:06 -08:00
Lisa Cawley 02a1db2ad6
[DOCS] Clarify monitoring dependencies (#26229) 2018-11-27 11:15:06 -08:00
lcawl 6ae391e362 [DOCS] Fix monitoring links 2018-11-26 13:57:48 -08:00
Lisa Cawley a3414c98f0
[DOCS] Adds screenshots for CCR monitoring (#25979) 2018-11-26 07:28:09 -08:00
Tim Roes 8c14c256b7
New visualization type selection (#23833)
* First version of new visualization selection

* Extract some components

* Remove visualization category

* Remove old wizard code

* Fix i18n ids

* Fix tests

* Fix tag cloud tests

* Fix broken test method

* Fix wrong method call

* Fix TSVB navigation in tests

* Restructure components

* Fix for lab removal

* Add tests

* Timroes/eui vis type selection (#4)

* Added background graphic from welcome screen to modal

* Fixed up responsiveness

* Change wording

* Fix test snapshot

* Create VisTypeIcon

* Implement suggestions

* Change experimental wording

* Use regular quotes for i18n engine
2018-11-22 12:52:05 +01:00
Lisa Cawley f56579d553
[DOCS] Adds screenshot for monitoring jobs (#25904) 2018-11-21 09:35:11 -08:00
Sarah Hersh 7fbac45ec7
[DOCS]fix typo in link to source code (#25968) 2018-11-20 15:49:51 -05:00
Tim Roes a5e096ecf6
Remove lab stage for visualizations (#25702)
* Remove lab stage for visualizations

* Fix typo

Co-Authored-By: timroes <mail@timroes.de>

* Remove dead code
2018-11-19 16:28:01 +01:00
Shaunak Kashyap 0c6e619237
[Monitoring] Adding security note about first-time setup (#25823)
* Adding security note

* Mention the built-in superuser role

* Making edits per review feedback
2018-11-19 05:14:38 -08:00
Tim Sullivan dd5d245dcd
[Docs/Reporting] Include working config example for multiple kibana.index (#25410)
* [Docs] Include working config example for multiple kibana.index in the cluster

* updates
2018-11-16 10:08:58 -07:00
debadair c21cf21e89
[DOCS] Removed coming tags for 7.0.0-alpha1 (#25750) 2018-11-15 11:36:48 -08:00
Karen Metts 393fa6a0b9
Add infrastructure and logs doc (#25407) 2018-11-15 14:05:04 -05:00
gchaps 22a4fed51d
[DOCS] Adds Release Notes for 7.0.0-alpha1 (#25583)
* [DOCS] Adds Release Notes for 7.0.0-alpha1

* [DOCS] Incorporated review comments into 7.0.0-alpha1 release notes

* [DOCS] Updated text about K7 design
2018-11-14 13:34:14 -08:00
Court Ewing c48cea9265
[DOCS] Saved object migrations (#25558)
* Add a note about index migrations to the kibana setup docs

* Tewak the migrations asciidocs for clarity

* docs: refine saved object migration details

Breaking down the migration process into sections helps people find
and link to relevant information more easily.

The focus is on ongoing maintenance of Kibana, whereas the initial new
experience in 6.5.0 is treated as a note of clarification.

Error handling should be expanded in the future to include details about
specific known error cases.
2018-11-13 18:38:10 -05:00
gchaps f183363361
[DOCS] Adds known limitation for exporting a data table (#25561) 2018-11-13 09:07:22 -08:00
gchaps 83369770c6
[DOCS] Adds docs for managing, creating, and visualizing rollups (#25450)
* [DOCS] Adds docs for managing, creating, and visualizing rollups

* [DOCS] Fixed broken link]

* [DOCS] Updates docs based on review feedback
2018-11-09 12:57:59 -08:00
Lisa Cawley 588d6a3622
[DOCS] Refreshes ML job creation screenshots (#25417) 2018-11-09 12:13:02 -08:00
Sarah Hersh bd85286d0a
Docs/canvas get started (#25476)
* edits to canvas getting started docs

* edit to canvas workpad docs
2018-11-09 14:31:01 -05:00
gchaps 9eda63f719
[DOCS] Updates information regarding usage of sample data indices (#25424) 2018-11-08 13:18:16 -08:00
Lisa Cawley 72ac1a9b8b
[DOCS] Clarify security requirements for monitoring (#24881) 2018-11-08 12:03:48 -08:00
gchaps eb923430ae
[DOCS] Adds early draft of Canvas docs (#25395)
* [DOCS] Adds early draft of Canvas docs

* [DOCS] Added images and beta label to Canvas docs
2018-11-08 11:50:51 -08:00
Lisa Cawley a0db3c4ca8
[DOCS] Adds data visualizer restriction (#25399) 2018-11-08 09:26:50 -08:00
Lisa Cawley 1c86dbdd9d
[DOCS] Fixes typo in Kibana create role example (#25345) 2018-11-08 08:54:35 -08:00