Commit graph

2986 commits

Author SHA1 Message Date
Lukas Olson
0f00c23a68
Kibana query language autocomplete (#15945)
* 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
2018-03-22 08:51:35 -07:00
Spencer
026d140aaf
[kbn-es] download to destPath.tmp rather than /tmp (#17322)
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.
2018-03-21 17:46:12 -07:00
Spencer
14cfade0b4
[dev-utils/procRunner] wrap stop and close promises in timeouts (#17320)
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
2018-03-21 16:17:51 -07:00
Kim Joar Bekkelund
a25f0c0ccb
[plugin helpers] Using --pure-lockfile instead of --frozen-lockfile (#17275) 2018-03-20 19:32:20 +01:00
Tyler Smalley
82e17f435f
[kbn-es] Package for managing Elasticsearch during dev and testing (#17168)
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
2018-03-20 08:30:15 -07:00
Bill McConaghy
3069bf5ab6
moving plugin template to React and EUI (#16937)
* 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
2018-03-19 15:13:03 -04:00
archana
856b55bbcf
Update packages/README.md (#17167)
* Update packages/README.md

* Update packages/README.md

* Split

* Update README.md
2018-03-15 02:31:15 -05:00
archana
df2a0252d0
Correct casing in kbn-dev-utils (#17166)
* Remove kbn-dev-utils

* Restore kbn-dev-utils with proper casing
2018-03-14 23:54:49 -05:00
archana
409af00d4d
Move proc_runner from x-pack-kibana into kibana (#17120)
* [tests] add proc_runner from x-pack-kibana

* [tests] implement proc_runner deps

* [tests] fix proc_runner dep

* [packages] move proc_runner into kbn-proc-runner

* [kbn-proc-runner] Package it

* [kbn-proc-runner] Chalk it up

* [kbn-proc-runner] Package.json

* Both kbn-proc-runner and kbn-utils depending on review. Sigh.

* Rename to kbn-dev-util, remove kbn-proc-runner

* Test proc-runner

* Add babel

* [proc-runner] build fixes

* Recreate yarn.locks, add mocha tests to simplemocha config
2018-03-14 19:55:50 -05:00
Spencer
ef3339bd7a
[@kbn/ui-framework] move ui-framework to a package (#17085)
* [@kbn/ui-framework] move ui-framework to a package

* [@kbn/ui-framework] restore doc_site index.html and fix build task names

* [jest] always ignore modules in target dirs
2018-03-13 10:43:39 -07:00
Jonathan Budzenski
047a6b3e62
[packages] add licenses (#17072) 2018-03-12 12:39:38 -05:00
Aleh Zasypkin
a0bc473ebe
[kbn-pm] Update ora typings. Remove redundant types in commands. (#17096) 2018-03-12 13:08:18 +01:00
Kim Joar Bekkelund
48f8dc323c
[kbn-pm] Include Kibana's transitive _projects_ in build (#16813) 2018-03-12 11:00:27 +01:00
Kim Joar Bekkelund
0c32d9f2ae
[kbn-pm] Use util.promisify instead of Bluebird (#16994) 2018-03-09 14:26:22 +01:00
Kim Joar Bekkelund
4b179e397e
Upgrade to Prettier 1.11.1 (#16956) 2018-03-04 21:59:34 -08:00
Kim Joar Bekkelund
f9b7ddb40d
[kbn-pm] Better command setup (#16879) 2018-02-23 13:12:23 +01:00
Kim Joar Bekkelund
293f280b14
[kbn-pm] Stricter types when creating maps (#16848) 2018-02-21 21:51:33 +01:00
Kim Joar Bekkelund
b91e7bad97
[kbn-pm] Show list of projects as a tree (#16754) 2018-02-21 19:56:09 +01:00
Kim Joar Bekkelund
8de986040f
[kbn-pm] Enable intermediate build directory for projects (#16839) 2018-02-21 13:54:27 +01:00
Aleh Zasypkin
cb21a7edec
Port kbn-pm to TypeScript. (#16732) 2018-02-21 10:09:30 +01:00
Spencer
d8b3ca27ab
[plugin-helpers] allow opt-ing out of dependency installation (#16816)
* [kbn-plugin-helpers] allow opt-ing out of dependency installation

* [plugin-helpers] rename buildIgnoreDependencies to skipInstallDependencies

* [plugin-helpers] use noop3 for test

* [plugin-helpers] fix test description

* [plugin-helpers] fix assertion
2018-02-20 16:28:22 -07:00
Kim Joar Bekkelund
491491224a Update @kbn/pm dist 2018-02-20 13:33:39 +01:00
Aleh Zasypkin
f2fda4aca3
Introduce Jest integration tests. (#16735) 2018-02-19 17:02:01 +01:00
Thomas Decaux
e135657d1f Missing argument for generate_plugin script (#16782) 2018-02-19 10:08:13 +01:00
Kim Joar Bekkelund
5c180d0c93
[kbn-pm] Include 'packages' and 'plugins' folders within projects as projects (#16713) 2018-02-15 12:45:00 +01:00
Spencer
4d246a10a8
[kbn-pm] rename from kbn-build (#16739) 2018-02-14 10:57:13 -07:00
Kim Joar Bekkelund
9a24dd3fcd
Update the packages readme (#16706)
* Update the packages readme

* Update after review
2018-02-14 17:08:14 +01:00
Kim Joar Bekkelund
f542c31059
[plugin helpers] Use Kibana's Jest setup (#16731)
* [plugin helpers] Use Kibana's Jest

* Remove outer 'describe'

* Async/await in tests

* Assertion improvements
2018-02-14 16:53:34 +01:00
Kim Joar Bekkelund
ea9ed801d2
Remove symlinks when building Kibana plugins (#16727) 2018-02-14 10:56:09 +01:00
Kim Joar Bekkelund
1c3b404774
Production package example: datemath (#16531) 2018-02-13 21:49:55 +01:00
CJ Cenizal
eb49a8c449
Add test-subj-selector module to packages dir. (#16623)
* Add test-subj-selector module to packages dir.
* Rename to @kbn/test-subj-selector.
* Simplify rejectRejFiles Grunt task and ignore nested node_modules.
* Update jenkins_unit script to use yarn kbn CLI.
2018-02-13 10:34:47 -08:00
Kim Joar Bekkelund
0ca6b5521d
Remove prettier script from @kbn/build (#16668) 2018-02-13 09:53:34 +01:00
Spencer
2c7a1f34cb
[kbn-plugin-generator] add plugin generator to the repo (#16655)
* [kbn-plugin-generator] add plugin generator to the repo

* [plugin-generator] use snake_case plugin name for directory name

* [plugin-generator] fix typo

* [plugin-generator] remove translation support until we resume i18n efforts

* [yarn] update lockfile

* [mocha] remove plugin-generator selector from mocha tests

* [plugin-generator] update generated readme to recommend yarn

* [plugin-generator] add readme to generator pacakge

* [plugin-generator] link from plugin-resource docs

* [plugin-generator] mention very important `kbn bootstrap` script

* [plugin-generator] rework some parts of the README

* [plugin-generator] log actual directory name with system separators

* [plugin-generator] include bootstrap/yarn preinstall check script
2018-02-12 12:23:23 -07:00
Kim Joar Bekkelund
b5bda1ee32
[plugin] Handle Kibana package dependencies (#16509)
* [plugin] Handle Kibana package dependencies

* Clean up 'link:' dep check in plugin installer

* Tests for 'prepareProjectDependencies'

* Remove unnecessary fn from 'prepareProjectDependencies'

* Move prepareProjectDependencies into @kbn/build

* update snapshot

* Move test to Jest

* clarification
2018-02-12 19:01:33 +01:00
Kim Joar Bekkelund
7e1bb7be50
[kbn-build] Extract and test parallelizeBatches (#16596)
* [kbn-build] Extract and test parallelizeBatches

* Add test for rejects

* Simplify test
2018-02-12 12:46:26 +01:00
Kim Joar Bekkelund
2220852a50
[plugin-helpers] npm -> yarn (#16632)
* [plugin-helpers] npm -> yarn

* Allow globs to not match when singular, e.g. for 'yarn.lock'

* --frozen-lockfile
2018-02-12 00:18:13 +01:00
Spencer
61ca974c2e
[eslint-config-kibana] remove stub test command (#16625) 2018-02-09 15:36:21 -07:00
Spencer
26dd5d69a8
[kbn-build/linkExectuables] add test with dev dependencies (#16621)
* [kbn-build/linkExectuables] add test with dev dependencies

* [kbn-build/linkProjectExecutables] update test snapshots
2018-02-09 11:49:29 -07:00
Spencer
a9f27bbee0
[plugin-helpers] use multiple fixtures so parallel tests don't break each other (#16624) 2018-02-08 17:25:06 -07:00
Spencer
a512466e30
[plugin-helpers] update readme (#16616)
* [plugin-helpers] update the readme to describe changes now that it is in the Kibana repo

* [plugin-helpers/readme] add note about versions before 6.3
2018-02-08 14:45:40 -07:00
spalger
489e64ef7e [plugin-helpers] replace last few uses of old package name 2018-02-08 11:57:08 -07:00
spalger
d2df52a68a [plugin-helpers/eslint] remove unused vars 2018-02-08 11:57:08 -07:00
spalger
3a6be3580c [plugin-helpers] rely on kibana eslint 2018-02-08 11:57:08 -07:00
spalger
6c64a4d77e [plugin-helpers] remove keywords from package.json 2018-02-08 11:57:08 -07:00
spalger
1678ab4466 [kbn-plugin-helpers/yarn] add yarn.lock file 2018-02-08 11:57:08 -07:00
spalger
9f6ebb12b6 [kbn-plugin-helpers] remove redundant configs 2018-02-08 11:57:08 -07:00
spalger
2ede1b11eb Merge elastic/kibana-plugin-helpers into elastic/kibana repo 2018-02-08 11:56:08 -07:00
Kim Joar Bekkelund
3448f31e3d
[kbn-build/bootstrap] Test cleanup (#16594) 2018-02-08 13:20:21 +01:00
Kim Joar Bekkelund
95a7435158
Run kbn:bootstrap script after installing deps (#16585)
* Run 'kbn:bootstrap' scripts at the end of bootstrapping

* Add bootstrap command tests

* resetAllMocks

* Use 'absolutePathSnaphotSerializer'

* Mock console.log calls

* Strip ansi snapshot serializer

* reset in afterEach

* Log before running 'kbn:bootstrap' scripts

* mock linkProjectExecutables in bootstrap tests
2018-02-08 01:41:16 +01:00
Spencer
f7748072fb
[kbn-build/bootstrap] symlink executables from linked packages (#16584)
* [kbn-build/bootstrap] symlink executables from linked packages

* [kbn-build/bootstrap] use snapshots for tests

* [kbn-build/jest] add absolute path serializer
2018-02-07 16:02:28 -07:00