* 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
* [eslint] unify resolver configs
Our eslint resolver settings currently rely on the fact that we define
our resolver with a string globally, and an object in the overrides.
This causes the override value to completely override/replace the global
setting, which is desired, but when the global setting is converted to
an object they are merged, causing both resolvers to run.
This is a problem because some dependencies in the UI side of things
will resolve with the node resolver, but will resolve incorrectly
because they are intended to use some webpack specific override.
While trying to add TypeScript I needed to pass argument to the node
resolver which uncovered this issue. The change here moves us away from
using the node resolver directly and instead uses the kibana resolver
with `forceNode: true` set when linting server code and `forceNode:
false` when resolving imports that will be handled by webpack.
* [import-resolver] use object spread operator
* [mocha] run tests with mocha script, remove grunt-simple-mocha
* [ci] force colored output
* [ci] disable color when reading the yarn bin
* [dev/build/exec] support tooling log having its own chalk
* [dev/mocha] avoid changing the cwd of the process
* [dev/mocha] only match files, speed up negative matches
* [cli/serve/test] strip ansi control characters from logs
* [ci] disable color in all `yarn bin` invocations
* [dev/mocha] cleanup old runInBand check
* [dev/mocha] enable gloabl leak checks
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
ES snapshots are located again within the base elasticsearch directory and NOT within an additionally nested elasticsearch-oss directory
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* [x-pack/ftr] call fatalErrorHandler when functional tests fail
* [kbn/dev-tools/withProcRunner] require a log as the first arg
* [kbn/dev-tools/procRunner] use correct promise, convert to getter
* [x-pack/ftr] avoid race condition that prevents success message logging
When starting the kibana server it is possible for log messages to come
after the server is started, so we added a pause that waits for 5
seconds of logging silence before logging the success message. The
observable used fails to complete though if a log message is never
written AFTER the Kibana server starts. To counter this the observable
is started with `null` so it will always start at least one 5 second
timer and always complete even if there is no log data after Kibana
server starts.
* fix typo
* [uiExports] migrate uiApp "uses" to explicit imports in apps
* [uiApp] update tests for getModules() method
* [optimize/uiExports] improve naming and comments
* [uiExports] sort imports so they load in the same order as before
* [testHarness] load hacks when testing in the browser
* [x-pack/uiExports] use new uiExports modules
* [testHarness] describe why we import uiExports/hacks
* [optimize] remove needless [].concat()
* [optimize/createUiExportsModule] string.includes > string.indexOf
* [uiExports/createUiExportsModule] remove needless capture of module exports
(cherry picked from commit e1a2fcbd96)
* Introduce @kbn/plugin-system
* Throw if plugin exposes a promise from 'start'
* TS updates
* rename
* Better error if missing plugin
* Api to add multiple specs at the same time
* isPromise prettier-ified
* Rename 'plugin' to 'system'
* Metadata + some cleanups
* Make it possible to type system metadata
* Throw if stop is async
* Add tests for System class
* [kbn-es/cluster] fix promise handling to properly route success/failure
* [kbn-es/cli] catch errors that bubble to the CLI and log with a bit of style
* [kbn-es] fix promise handling when building from source
* [kbn-es] check for inverse of .stop() condition
* [kbn-es/cluster] resolve promise is cluster stops cleanly
* [kbn-es/cluster/start] reject if ES exits before starting
* [kbn-dev-utils/procRunner] try using execa to avoid never-exitting procs
* [kbn-dev-utils/procRunner] don't listen for close event, rely on stdio streams ending
* Add query enhancements opt-in switch to query bar (#17232)
Makes our language updates more visible to users and removes mentions of Kuery as a separate language. Users still get the old lucene experience by default, but have the option to opt-in to "experimental query features" directly in the query bar. Goal is to get more feedback by making these new features more prominent and less of a jump from lucene.
* fix test
* First stab at refactoring typeahead
* Don't double submit on enter
* Add item templating
* Introduce simple kuery language
* Rename to kql and add modules
* Update KQL syntax
* Automatically insert matching pairs
* Don't match quotes after alphanumeric chars
* Get field and value suggestions
* Remove accidental changes
* Remove unnecessary test
* Don't submit on enter
* Fix typeahead
* Suggest matching recent searches
* Suggest operators
* Suggest conjunctions
* Use template, separate suggestions into separate modules
* Whoops, add this module back
* Add clarifying comment
* Fix history log key
* Don't update suggestions on every key press
* Fix key handling
* Update terminology to be clearer
* Fix typo
* Simplify building of nodes
* Don't always hide on submit
* Check items exists
* Add icon directive which wraps EuiIcon.
* kql design start
* remove comment bits
* Simplify select next/prev and reset selected on hide/backspace
* Add test
* Put persistedLog on scope so it can be tested
* Fix typos
* Build up AST for sublist by returning functions that take a field name
* Remove single quoted strings and add double quote to special characters
* Build nodes with arg nodes instead of args themselves
* Add support for exact phrase search for quoted values
* Update typeahead items when language changes
* Finish that work I didn't do in the last commit
* This commit makes Bargs very happy cuz it does a lot
* Add wildcard field support to range query
* Remove range support for wildcard values
* Remove KQL as a separate language
Updates kuery to use KQL's grammar. This will lead to a smoother
transition for both us and Kuery users. We mainly added KQL as a
separate language so that we could notify Kuery users that the syntax
had changed. I realized we could do the same by trying to parse their
query strings with the old grammar if the new grammar fails, and if the
old grammar parses successfully we can display an error message with a
link to the docs describing the syntax changes. Since Kuery now uses the
more simple KQL syntax, I've also re-enabled the filter bar when Kuery
is selected.
* Fix typeahead behavior
* Update conjunctions
* Use scope apply
* Suggest conjunctions after ranges
* Support strings in wildcard node constructor and add tests for wildcard node
* test updates
* Removing unused serializeStyle and toKueryExpression, updating tests
* Fix functional test
* Fix typo
* Show fields that match in any part of the name
* Alter order of operators
* Preserve focus after selecting by click
* Ports tests for `fromKueryExpression` to `fromKqlExpression`
* More KQL syntax tests
* Suggest conjunctions after ranges
* Fix suggestions inside parens
* fromLiteralExpression tests
* remove serializeStyle arguments which no longer exist in the function definition
* tests for getFields
* Case insensitive search for field names
* update tests for is.js
* add wildcard fieldname test for range.js
* Fix removed div
* Fix line spacing for autocomplete suggestions
* Fix conjunction suggestions with escaped preceding literals
* Escape special characters in fields and values
* Don't suggest the value that's already selected
* Update icons
* Sort prefix first
* Simplify cursor detection and suggest booleans
* Use quotes for suggested values
* get rid of references to KQL
* Don't show errors from parsing
* That didn't even exist
* Use config to determine if values are suggested
* Update suggestions on home/end
* remove hack
* Update reference to kql
* Suggestions for quoted values
* Clean up grammar
* Better support for cursor inside spaces
* Create grunt task to generate parsers from peg files
* Simplify wildcard handling
* Don't filter out the exact fields/values
* Update parsing modules
* Fix peg task
* Make operator syntax more visible
* Update OR verbiage
* Simplify and improve match pairs
* Revert "Simplify wildcard handling"
This reverts commit 915861beab.
* Support escaped backslashes inside quoted strings
* Support escaped keywords
* Remove lodash dependency cuz w33ble
* Escape user input and fix conjunction description
* Clear suggestions after submitting
* Fix insertion of suggestion to account for selection
* Remove unnecessary?
* Remove extraneous file
* Better name for method
* Move functions out of event handler
* Don't wrap result in promise
* Don't show kuery suggestions for lucene
* some cleanup and polish for kql autocomplete
* Omit description completely for values
* Don't suggest and/or for quoted strings that end in spaces
* Submit recent search suggestions on select
* Scroll selected suggestion into view
* Better handling of key events and hiding typeahead
* Update suggestions to work in other apps with multiple index patterns
* Only update suggestions if not submitting
* Hide suggestions on focus
* Simplify wildcard (again)
* Fix console error
* Remove references to kql
* Fix match pairs so that suggestions occur with cursor in correct place
* Memoize value suggestions
* Debounce model updates
* Add tests for suggestion providers
* Add setting and docs
* Add custom error, helper for detecting leading wildcards, and check for
leading wildcards in the Value rule of the grammar.
* Better handling of suggestion clicks
* Dedup suggestions
* Sort keywords first
* Fix value suggestions memoizing
* Check if query exists
* Reduce size of dialog and fix ranges
* Create grunt task to generate parsers from peg files
* Lazy load typeahead items
* Fix wildcard tests
* Fix value suggestion tests
* Fix typeahead tests
* Fix value suggestion memoize resolver
* Leave comment
* Add a ttl for the value suggestion resolver
* Move grunt config to config/
* Bargs can suck it
* Fix more tests that bargs broke (and one I did too)
* Fix tests
When kbn-es downloads a snapshot, it writes the in progress download to
`/tmp` rather than the destination path in case the download fails part
way through, then renames the file from `/tmp` to the final location.
This is a good practice, but in CI the `/tmp` directory isn't stored on
the same disk as the project, which causes a rename error to occur
because we're attempting to rename across devices.
This updates the download logic to write to `${destPath}.tmp` instead,
and do the same renaming, so that we can avoid cross-device errors.
In an attempt to debug random stalls we are seeing in CI, the proc runner will now send SIGKILL if a process does not exit after receiving the standard exit signal it receives (usually SIGTERM). Additionally, if the child process object never emits "close" or "exit" another timeout will trigger an error
* moving plugin template to React and EUI
* fixing method reference error
* adding whitespace and comments per PR feedback
* adjusting test
* fixing test
* reducing Angular dependency and fixing issue with hack not loading properly
* fixing tests
* reacting to PR feedback