* just getting the popover to open and start laying out the context menu
* pass getUnhashableStates to ShareMenu
* generate original and snapshot ids
* move state into ShareUrlContent
* start working on form
* use radio group
* add input for creating short URL
* display URL in alert until copy functionallity gets migrated to EUI
* allowEmbed prop
* replace share directive with showShareContextMenu
* fix button styling
* add jest test for share_context_menu
* use EuiCopy to copy URL, add jest test for ShareUrlContent component
* clean up
* display short URL create error message in form instead of with toast
* switch option order so disbaled option can not be first
* fix discover share functional tests
* add functions required by reporting
* typescript
* remove empty file
* fix typescript compile error
* move import so jest tests work
* fix Failed prop type: The proptextToCopyis marked as required inEuiCopy, but its value isundefined
* move shortUrl out of react state and into Component object
* getUnhashableStates type from any[] to object[]
* add comment about type change once EUI issue is solved
* add functional test for saved object URL sharing
* remove commit
* [Tests] Add http integration test setup
* Base path tests
* SSL tests
* Eslint fixes
* Remove env from config schema
* Rename folders so no_rewrite and rewrite match configs/tests
* wip
* Use self-signed cert for SSL test
* Improve basepath tests
* Run base path proxy server in dev mode for now
* Remove env from x-pack reporting config
* Remove redundant base-path tests
* Test SSL with redirectHttpFromPort set
* Test SSL with redirectHttpFromPort set
* Flesh out comments
* Remove some cruft
* Add SSL tests to CI run
Right now the functional tests are run against a distributable of Kibana in CI, but that distributable is running with `--env.name=development`. That causes the optimizer to run again before the tests can start and prevents the functional tests from running against the actual version of the application users will end up getting. This seems necessary for some tests, but not all of them, but I would like to get all of the tests running against the production version of Kibana soon.
This PR implements a second ftr config, `test/functional_production` that uses basically a copy of the `test/functional` config but with a few minor adjustments, removing the `--env.name=development` kbnServerArg and using a unique junit report name. To accomplish this I needed to modify the `@kbn/test` module to only pass the `--dev` flag to the Kibana server if it is being run in development mode, which it currently does by testing the args for `--env.name=development` or two args next to each other: `'--env.name'` and `'development'`. It does this by converting the `extraKbnOpts` option into an `addExtraKbnArgs` function, which is called with the final args just before passing them to the proc runner and given a chance to modify then after all other args are resolved (pulling from different places in config based on the build type, etc.)
Over the next couple weeks I'll push up PRs for individual test suites, migrating them over to the new production config, hopefully in a short period of time we will have all the function test suites back under that `test/function` config and can run them all against the Kibana server in production mode.
* Move EuiComboBox utility functions into its own service
* remove old functions from visualize page object
* use waitForDeletedByClassName instead of retry and exists to ensure no longer loading
* wait for options loading when getting options list
* Wait for visualizations to render
* Use Visualize.waitForRender on dashboard
* Enable previously flaky dashboard tests again
* Add data-loading for initial render
* Remove unnecessary timeout
This PR tries to reduce the Elasticsearch cluster load for index patterns with many indices.
**Theory of operation**
Before this PR, Elasticsearch had to perform the query and sorting for every shard matching the index pattern. In order to avoid that in a time-base indexing scheme, the queries should include a `range` filter. This enables Elasticsearch to rewrite most of the shard accesses to `match_none`. But since the context view operates on document counts, the time intervals need to be determined heuristically:
* start of the interval is the second end of the previous query iteration or `anchor_time` if it is the first iteration
* end of the interval is `interval_start +/- n days` with `n in {1, 7, 30, 365, 10000}` or unlimited if insufficient hits were returned for all `n`
This date arithmetic introduces the assumption that the primary sorting field is a date or at least numeric. Therefore, the `sortingField` has been renamed to `timeField` to make those new assumptions explicit.
**Other notes**
As an additional optimization, the queries are now executed in a `constant_score` filter context to enable caching by Elasticsearch.
Tests for `fetchSuccessors` and `fetchPredecessors` were added.
Changes in ElasticSearch required a concurrent fix of #17696, which is also included. It now splits up the anchor `uid` into `anchorType` and `anchorId` and uses them in an `ids` query.
**Testing**
The fact that only a small subset of the shards are involved in a query should be observable using the `skipped` shard count in the response.
fixes#15143fixes#17696
In order to make the license that applies to each file as clear as possible, and to be consistent with elasticsearch, we are adding Apache 2.0 license headers to the top of each file.
Existence of this header is enforced by eslint and tslint and missing headers were automatically added in the last commit by running:
```
node scripts/eslint --fix && node scripts/tslint --fix
```
* Allow pluggable panel actions
* Need to register it as being used in kibana
* Some cleanup
* update snapshots to match new EUI versions, set time range
* Use newer panelActions service
* add missing await
* More clean up and fixes
* bring back window reload
* Show actions in view mode too
* delete now unused files
* Use toggle action to determin if context menu is open
* Fix tests that assume the toggle is hidden in view mode.
* Add some debug logs
* Fix up assumptions
* Previous failing test was legit - we don't want to show remove option when panel is expanded
* Embeddable can be empty before the panel is loaded
* Should look for either visualize or discover page
* Address code comments
* address code review comments
* whoops, get rid of childPanelToOpenOnClick entirely
* Revert "[DOCS] Removes redundant index.asciidoc files (#19192)"
This reverts commit d11b5aae9a.
* Revert "[typescript] add typescript support for the server and browser (#19104)"
This reverts commit c6112067fc.
* Revert "Option to run kibana from build for CI (#19125)"
This reverts commit 5969860303.
Restructure testing with kbn-test package
- Run with multiple configs, move cli options to config
- Package-ify kbn-test
- Eventually we'll have functional_test_runner live in a package
of its own, and then this kbn-test will use that as a dependency,
probably still as a devDependency.
- Implement functional_tests_server
- Collapse single and multiple config apis into one command
Use kbn-es
Replace es_test_cluster + es_test_config with kbn/test utils
Implement new createEsTestCluster
Improve scripts, jsdocs, cli top-level tools
Lift error handling to the top level
* Expand coverage of dashboard tests and decrease time
* Fix timing error when sub urls fail to save from too fast app link clicking
* discover doesn't have breadcrumbs
* Check top nav text so it works on both listing and saved object edit/view pages
* need to do the add panel operations one at a time
* Need both types of input in filter
* Give test data a title
* Remove incorrect and unnecessary comment
* Move data around and get rid of 6_3 specific naming as we will end up migrating the data as we progress
* Remove code accidentally checked in
* WIP - add shakespeare data for getting started guide
* Refactor of getLineChartData, getBarChartData, getAreaChartData
* Added changing extents and test
* Fix opening axis options
* Change precision from 8 to 7
* lower precision to 6
* Fix index pattern creation
* update from review, remove comments, add others
* Fixes issue preventing stdin from defaulting
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Prevent prompting to overwrite when using stdin
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Remove log
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* When failure, log URL and save page source
* log Taking screenshot at info level
* Force a failure, then revert this
* [ftr/failureDebugging] create failure debugging service
* Cleanup and create the failure_debug/html dir, strip special chars from filenames
* Remove a debugging log
* refactored replacing invalid filename chars
* Revert forced failing tests
* add tutorial directory and home promo section
* tutorial components
* use KuiCodeEditor for displaying instruction code
* move spec files to server so joi can be used. Fetch via rest API
* Adding more tutorials (#4)
* More edits on the Apache logs tutorial
* Added nginx, mysql, and sytem modules for FB
* Moved apache to apacheLogs and added an apacheMetrics tutorial
* Added mysqlMetrics, nginxMetrics, systemMetrics tutorials
* Reduce duplication in the tutorials
This uses common objects for the install and start steps for Filebeat.
Same can be done for MB.
* fix windows path for config file
* add markdown parsing
* use mustache to replace config.kibana.version with kibana version
* add image preview to tutorial introduction
* fix css class name
* add param types constants
* add docs variables
* [WIP] Logstash Netflow module tutorial (#5)
* First draft of Logstash Netflow module tutorial
* Incorporated writing style suggestions
* pass params to template replace logic
* parameter inputs
* use isReadOnly flag from ui-framework for KuiCodeEditor
* dedemorton commits on netflow
* remove trailing slash from base links
* add config.docs.logstash and fix vertical spacing between Content component and commands
* Use logstash docs config variable
* Starting to add Deb instructions
* Fix Logstash documentation link
* Make commands optional
* Refactor: extract common LS instructions
* Edits for the existing tutorials
* change schema to support three instruction types
* [Netflow tutorial] Simplify OSX instructions
* replace axios with fetch
* pass credentials to tutorial fetch
* display cloud instructions when cloud set
* RadioButtonGroup component
* update copy
* add tutorial component jest tests
* content component test
* load isCloudEnabled in home_app
* add functional test ensuring add data tutorials are fetch and displayed
* rename card btns to 'Add data', fix type in tutorial directory tab, remove 'Set up index pattern from tutorial directory'
* move parameters form to right of instruction set title
* add copy snippet button, remove line numbers from command block
* add breadcrumb to tutorial view
* update tutorial jest snapshot
* use componentDidMount and ignore async results if componenent has been unmounted
* define shape of prop for instructionVariants and params. Create NumberParameter and StringParameter components
* add bread crumb to add data directory page
* Add cloud version of the apache_logs tutorial (#16)
* Add cloud version of the apache_logs tutorial
* Added onprem-cloud version as well
* fix styling broken by EUI rebase
* add artifacts to tutorial schema
* fix styling for code block
* [Tutorials] Netflow: instructions for onPremCloud (#18)
* Extract common on-prem cloud instructions so LS and Beats can share them
* Extracting common instructions; adding onPremCloud instructions
* fix copy bug where copy would only contain previously selected text
* make string parameter input type be text
* Implementing Elastic Cloud tutorial for Netflow module (#19)
* More tutorial edits (#20)
* More tutorial edits
This updates the on prem instructions with a step that installs the GeoIP and
UA plugins in ES. It also makes the on-prem steps more consistent with the cloud
instructions which results in less redundancy in the code.
* Show config step for all variants
* More DRY in the tutorial content
* Updated screenshot for apache_logs
* wrap markdown content in markdown-body class
* use EuiFlexGroup to remove wasted space with 'copy snippet' button and instruction text
* change OSX to macOS, use Computed property names for instruction_variant DISPLAY_MAP, replace /app/kibana with kbnBaseUrl, remove unneeded if check in copy_to_clippboard, put getTutorials mixin on server instead of request
* capitilize 'C' in Elastic Cloud
* remove try/catch from copy_to_clipboard
* Removing unrelated instructions
* Copy editing fixes
* Multiply edits to the Beats tutorials (#21)
* Updated Nginx module
* Updated MySQL logs module
* Updated system logs module
* Correct the on_prem_cloud enable steps
* Updated the Nginx metrics tutorial and added screenshot
* Updated the Apache metrics module + screenshot
* Updated the MySQL metrics module + screenshot
* Updated the system metrics module + screenshot
* prevent 'Copy snippet' button text from wrapping
* [Netflow tutorial] Windows instructions (#22)
* [Netflow tutorial] Adding onPrem instructions for Windows
* Removing unrelated/superfluous instructions
* Adding Windows instructions for onPremElasticCloud and elasticCloud
* use EuiImage so tutorial images are clickable to view in full screen
* fix jest tests
* set fullScreenIconColor and alt options for EuiImage, add space between command block and instruction text
* [mocha] use custom reporter for legible results in jenkins
* [jest] use custom result processor for legible results in jenkins
* [karma] enable junit output on CI
* [mocha/junitReporter] accept rootDirectory as configuration
* [jest/reporter] use reporters option added in jest 20
* [toolingLog] remove black/white specific colors
* [dev/mocha/junit] no reason for junit to be a "reporter"
* typos
* [dev/mocha/junit] use else if
* [karma/junit] use string#replace for explicitness
* [junit] use test file path as "classname"
* [ftr/mocha] no longer a "console" specific reporter
* get wiring done for timelion application functional tests
* add tests for expression type ahead functions, arguments, and argument values
* provide argument suggestions when argument name not provided
* updates from cjcenizal review
* [es][savedObjects/index] put template on each savedObject write
The elasticsearch plugin currently checks for the Kibana index on each iteration of the healthCheck, and creates it if it does not exist. This removes that step from the healthCheck and instead, before each savedObject is written to elasticsearch, ensures that Elasticsearch has the necessary index template should the write result in index creation.
The healthCheck still has the `patchKibanaIndex()` logic, which checks the type in the Kibana index and adds any missing types. This step now does nothing when the Kibana index does not exist, and does what it has always done when it does.
* [ftr] remove unused kibanaIndex service
(cherry picked from commit b1ef897dafeb6d43fe279776e44a9d793a389dc3)
* [savedObjects/integration] create now creates kibana index
* [es/healthCheck] remove use of format()
* [es/healthCheck/tests] use sinon assertions
* [es/patchKibanaIndex] test for kibana index missing behavior
* [savedObjects/errors] add tests for EsAutoCreateIndexError
* [savedObjects/config] deprecate and remove savedObjects.indexCheckTimeout config
* use dangling commas consistently
* [ui/error_auto_create_index] fix class names
* [ui/savedObjectsClient] no need to specify basePath
* [eslint] fix linting issue
Also adds some stabilization by refactoring some retries and
expectations.
and fixes a bug that snuck in between two PRS where the pie slice css
changed.
* add a test that will fail due to the current TSVB bug
* add a test to catch the latest bug with saved searches
* reorder array so tests pass
* Update tests since the first panel is TSVB and won't have a spy pane toggle
* Revert "When on an embedded page, bypass Getting Started gate check (#12040)"
This reverts commit 05293f1c8d.
* Revert "Making tweaks. (#12003)"
This reverts commit aa3fa06f61.
* Revert "Functional tests for the Getting Started page (#11850)"
This reverts commit 099178a7ca.
* Revert "Prevent flicker on Getting Started page (#11826)"
This reverts commit c4b3ade27d.
* Revert "Getting Started page (#11805)"
This reverts commit 32eff371f2.
* Remove check for Getting Started page from navigateToApp
This adds the ability to display a filter bar in the Context view and to apply those filters to the queries. It also modifies the link from the Discover view to the Context view to copy the currently defined filters when switching. New filters can be added from within the Context view using the icons in the expanded detail rows.
* Getting Started page (#11673)
* Initial code
* Renaming files/folders
* Notes and changes from HTML/CSS review
* CSS changes
* Fixing transform units
* Fleshing out logo circle
* Adding logos
* Un-nesting styles
* Adding kuiText class on <p> elements
* Making shield icon 404 go away
* Using trustAsHtml filter; using registry
* Adding code for registry
* Adding images
* Hooking up the opt-out link
* Fixing linter issues
* Fix issue with refresh bringing back nav
* Removing load_default module
* Use GETTING_STARTED_ROUTE constant
* Allow topMessage to be a directive
* Adding kuiLink CSS class to anchor elements
* Adding alt text to images
* Replace getters with regular methods
* Remove leftover comment
* Removing unnecessary comment
* Fixing typo in comment
* Adding comments for message properties
* Fixing typo in method name
* Defining custom CSS class
* Fixing method call
* Creating custom CSS classes
* Adding documentation links
* Use a instead of button for demo link
* Allow directives in manage and monitor messages
* Refactoring shared code into single ui/public/getting_started folder
* Adding README
* Fixing whitespace in/around links
* Trim messages before setting them
* Decorate in-app links with opt-out attribute
* Opt out of the Getting Started page if the user already has index patterns
* Adding more commentary around expectations of setTopMessage use
* Using ng-src and ng-href attributes where attr values are angular expressions
* Importing the directive before using it
* Using ui/registry for message registries
* Renaming service => helpers to clarify intent
* Adding explanatory comment
* Adding "or"
* Fixing div id
* Breaks out the inject logic into another directive
* Adding Getting Started page object for functional tests
* Consolidate into one registry
* Fixes incorrect classes
* Changes how styles are applied to injected-items items
* Modifying class name per CSS style guide
* Adding getting started doc link
* Removing unused import
* Attempting to fix breaking build
Apparently the Getting Started page is preventing access to Console (Dev Tools, really) so the functional tests for Console are failing. This commit opts the user out of the Getting Started page before attempting to navigate to Console.
* Cleanup on aisle testbed! (#11765)
* Navigate to getting started page so we can opt out of it
* Initial code
* Renaming files/folders
* Notes and changes from HTML/CSS review
* CSS changes
* Fixing transform units
* Fleshing out logo circle
* Adding logos
* Un-nesting styles
* Adding kuiText class on <p> elements
* Making shield icon 404 go away
* Using trustAsHtml filter; using registry
* Adding code for registry
* Adding images
* Hooking up the opt-out link
* Fixing linter issues
* Fix issue with refresh bringing back nav
* Removing load_default module
* Use GETTING_STARTED_ROUTE constant
* Allow topMessage to be a directive
* Adding kuiLink CSS class to anchor elements
* Adding alt text to images
* Replace getters with regular methods
* Remove leftover comment
* Removing unnecessary comment
* Fixing typo in comment
* Adding comments for message properties
* Fixing typo in method name
* Defining custom CSS class
* Fixing method call
* Creating custom CSS classes
* Adding documentation links
* Use a instead of button for demo link
* Allow directives in manage and monitor messages
* Refactoring shared code into single ui/public/getting_started folder
* Adding README
* Fixing whitespace in/around links
* Trim messages before setting them
* Decorate in-app links with opt-out attribute
* Opt out of the Getting Started page if the user already has index patterns
* Adding more commentary around expectations of setTopMessage use
* Using ng-src and ng-href attributes where attr values are angular expressions
* Importing the directive before using it
* Using ui/registry for message registries
* Renaming service => helpers to clarify intent
* Adding explanatory comment
* Adding "or"
* Fixing div id
* Breaks out the inject logic into another directive
* Adding Getting Started page object for functional tests
* Consolidate into one registry
* Fixes incorrect classes
* Changes how styles are applied to injected-items items
* Modifying class name per CSS style guide
* Adding getting started doc link
* Removing unused import
* [tests/functional] move screenshots to their own service
* [ftr] add testFailure and testHookFailure lifecycle hooks
* [tests/functional/screenshots] cleanup old screenshots at startup
* [test/functional/screenshots] take screenshots when tests fail
* [cli_plugin/install] fix test
* [ui/scanner] fix test
* [functional_test_runner] replace functional testing tools with custom/pluggable solution
* [functional_test_runner] Convert unit tests to commonjs format
* [functional_test_runner] Fix dashboard test in wrong mode
* [functional_test_runner] Add dashboardLandingPage test subject
* [functional_test_runner] Get Visualize page object
* [functional_test_runner] Fix outdated references
* [functional_test_runner] Fix more outdated refs
* [functional_test_runner] Remove duplicate tests
* [functional_test_runner] Improve test readability
* [functional_test_runner] 😞 So many duplicate methods
* [functional_test_runner] Move mgmt `before` outside toplevel describe
* [functional_test_runner] Settings page obj missing methods
* [functional_test_runner] Add improvements from @gammon
* [functional_test_runner] Fix return statements in async funcs
* [functional_test_runner] Move before() to correct scope
* [functional_test_runner] Add after() hooks to remove index patterns
* [functional_test_runner] Attempt to fix vertical bar chart tests
* [functional_test_runner] Clean up
* [functional_test_runner] Reinstate unit tests
* [functional_test_runner] Set default loglevel back to info
* [functional_test_runner] Replace `context`s with `describe`s
* [functional_test_runner] Better error handling
* [functional_test_runner] Add in new Tile Map tests
* Incorporate changes from master
* [functional_test_runner] validate that every test file has a single top-level suite
* Update contributing doc with link to full doc
* [docs] Spelling and grammar fixes
* docs: writing and running functional tests
* [docs] Move plugin doc to plugin area
* [docs] Housekeeping. Doc in wrong place
* [docs] Remove dup doc file
* [grunt] Only run mocha_setup when running tests, not every grunt task