Ensure no deprecated Node.js core API's are used in Kibana. This is
achieved by throwing an error in either development mode or in CI if one
of the deprecated API's is called, and as such, new PR's should no
longer be able to be merged if they use deprecated API's.
Some of these API's (like the `Buffer` constructor`) is a security risk.
Instruments Kibana with Elastic APM by adding the Node.js agent to the
source code. The agent is not turned on by default but can be enabled by
setting the environment variable `ELASTIC_APM_ACTIVE=true` or by
creating an apm config file called `config/apm.dev.js` and setting
`active: true` inside of it.
This implementation is not meant to be used by end-users of Kibana as it
lacks integration with the regular Kibana config file. For now, this is
meant as a useful internal tool for Elastic employees when developing
Kibana.
By default, it's pre-configured with a `serverUrl` pointing to an APM
Server hosted on Elastic Cloud. The data is stored in an ES cluster
accessible only by Elastic employees. These defaults can easily be
overwritten using environment variables or via the custom config file.
* eui to 16.0.0
* type defs
* card click
* snapshot updates
* time format test updates
* ts return
* integration fix
* async
* more time format fixes
* more time format fixes
* test updates
* add uisettings dateformat timepicker test
* after method to clear setting
* [a11y] add initial accessibility functional tests
* add accessibility jobs
* fix config path
* remove percy setup from scripts
* disable color-contrast rule
* apply changes from @myasonik
* define aria-controls/owns props even when suggestions aren't visible
* [ftr/a11y] only throw error when there are errors
* adding tests for management page
* add a11y test for management page
* adding ignore rules' to a11y
* accessibility test for kibana home
* 7 passing tests, 0 failures
* jest snapshot update
* support a11y test in pipeline job
* update a11y test script for pipelines
* use oss compatible ci setup
* fix exclude syntax
* add default exclusion syntax
* Update dependency rxjs to ^6.5.3
* move argument type def up for better coverage
* adapt to possibly undefined helpExtension
* complete definition of deprecation$ type
* define types that bindNodeCallback can no longer infer
* define more types that bindNodeCallback can't infer
* be more explicit and accurate about the types for a subject/observable pair
* fix interface error, TS now identifies it
* ignore a return type flaw because types are not being managed properly
* avoid overspecifying types
* allow types to be inferred where possible
* remove unnecessary withLatestFrom()
* reduce number of rxjs versions installed
* update kbn/pm dist
* Update moment related packages
* unify moment version in yarn.lock
* adapt ro pluralization fixes
* update some bad pluralization in fixtures/snapshots
Originally added in https://github.com/elastic/kibana/pull/6791 as part
of custom notification banners, however it's no longer used.
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Update dependency del to v5
* unify del/rimraf usage with del v5
* update yarn.lock
* update kbn-pm distributable
* remove poorly transformed code
* force some deletes from tmp
* mock less of the fs module
* force tmp deletion in a few more suites
* please make this the last force
* Update eslint related packages
* add errorMessage to no-restricted-paths validation
* add license to eslintrc file
* ignore broken plugin fixture
* upgrade tangled peer deps
* give name to unnamed func to avoid typescript-eslint/typescript-eslint#1078
* migrate away from removed prefer-interface
* migrate away from removed no-angle-bracket-type-assertions rule
* migrate away from removed no-triple-slash-reference rule
* old config was invalid and made this rule a noop
* fix array-type rule config
* fix readonly paramProperties that weren't being checked
* fix propType ordering
* remove references to non-existent rules
* remove unnecessary disable that is improperly formatted
* fix comment-related spacing
* fix typo/invalid namespace overrides
* rename fn to avoid hook-alike behavior
* remove reference to old removed rule
* use caret version for prettier
* reference babel-eslint with absolute path
This package is only being referenced in OSS Kibana, though it was
defined in X-Pack causing issues for OSS builds.
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* get coverage for console functional test
* instrument kibana
* collect coverage stats after each test, on url navigation, refresh and back
* switch to babel-plugin-istanbul
* switch to babel-plugin-istanbul
* [coverage service] basic version
* trigger final coverage flush when ftr finishes, wait for all logs before exiting
* add coverage report generation
* increase optimizer timeout, re-run idx/babel plugin before istanbul
* increase memory usage for node
* put istanbul preset in the beginning to run as the last one
* bump babel-plugin-istanbul up to 5.2.0
* cleanup
* save unique json files with coverage
* [functional test coverage] update coverage.json path
* run code coverage on CI
* increase max-old-space-size with env variable
* fix coverage folder creation
* use env variable to configure code coverage
* revert ci config changes
* remove duplicate plugin
* remove comments
* fixes
* refactor failed_tests_reporter to use TS, no octokit
* update renovate config
* ensure that all kbn-test files are in ts project
* fix some type errors
* add some more tests
* [kbn-test/githubapi] cleanup and document
* collect log messages as strings instead of message objects
* ensure issue is open when updating body
* improve readability of getKibanaIssues
* expose axios helpers from dev-utils
* fix request params for fetching github issues and validate locally
* include a README for failed_tests_reporter
* improve axios error helpers
* Add option for Internet Explorer IE11
* WIP trying to figure out IE options/capabilities
* more attempts to get IE tests working
* more work, but still can't set font size in Dev Tools Console
* two changes for IE
* revert skip in console test
* this change *appears* to set absolute times but they don't stick
* Shakespeare passing on all 3 browsers
* add config.ie.js, change 'internet explorer' to 'ie'
* increase notifications:lifetime so ew have a chance to see the message
* fix lint error remove unused Options
* updates from PR review, remove console.log
* cleanup + reuse existing code
* make iedriver path work for x-pack tests
* try to avoid changing notification timeout
* resolve path and add correct delimiter
* remove unused code, make timepicker work on IE11
* work-around 45333 for IE11
* [WIP] removing some work-arounds
* revert work-arounds
* cleanup
* remove debugging code
* remove debugging code
* removed unused code
* reverting 2 files that didn't have any material changes
* adds linter rule to disallow undeclared variables
* adds cypress eslint plugin, remove redundant packages from siem/package.json
* removes comment from json and adds a line about cypress linting to the cypress README
* adds upgraded package back to siem/package.json
* updates cypress run scripts since cypress package is now located in the x-pack/node_modules
* needed to yarn kbn bootstrap after rebasing with master
* use new setScreenshotSize
* change tolerance from 1% to 2% (originally 5%)
* retake baseline without notification dialog
* close add and save notifications
* wait for render complete when going in to FullScreen mode
* add 5 second sleep to see if it ever goes to full screen mode
* add debugging screenshots and sleeps
* try reloading the Kibana index before this test
* 30 iterations with only the first test enabled
* revert multi-run changes
* ran node scripts/build_renovate_config
* fix tslint errors
* fix tslint error
* update xpack dependency to match oss
* update yarn.lock
* revert notifications:lifetime:info change by reducing some other timeouts
* remove commented-out code
* fixed and Unskipped 2nd test
* re-arrange order of dashboard tests to pass :-(
* removed commented-out sleep
Hopefully this won't be an issue
* Add comment about the order of tests
```
loadTestFile(require.resolve('./view_edit'));
// Order of test suites *shouldn't* be important but there's a bug for the view_edit test above
// https://github.com/elastic/kibana/issues/46752
// The dashboard_snapshot test below requires the timestamped URL which breaks the view_edit test.
// If we don't use the timestamp in the URL, the colors in the charts will be different.
loadTestFile(require.resolve('./dashboard_snapshots'));
```
* Revert "Updating load-grunt-config to ^3.0.1 (#46408)"
This reverts commit 2733c093e0.
* adapt changes from #46408 to not invalidate yarn state on re-installs
* Update angular related packages
* upgrade jQuery too
* don't delete screenshots in pipeline jobs
* use ng-change so that listener is triggered after ng-model is updated
* match @types/angular versions
* update yarn.lock
* fix test
$routeChangeSuccess is no longer broadcast when resolving a redirect route, so this test has been adjusted to validate that
* Update jest related packages
* use correct type
* adapt spy and describe.each types
* update yarn.lock
* update snapshot
* define types before passing to describe.each
* Add core-only bundle
* Add ApplicationService mounting
* Add LegacyCore{Setup,Start}
* Fix PR comments
* Add functional tests
* Fix PR comments
* Fix PR comments
* Remove other usages of rootRoute
* Use state field notation
* Add support for open in new tab
* Fix PR comments
* Fix pesky await from the dead
* Update docs
* Bump @types/history
* upgrade all babel related modules, and bump lodash minors
* update kbn-pm dist
* update fetch-mock, necessary to use core-js 3
* use regenerator transform in jest tests, as required by EUI
* disable useBuiltIns rather than using regenerator plugin
* remove extra regenerator-runtime import
* Initial work
* Add check for elasticsearch.hosts
* Make --ssl apply default config values only
* Move @kbn/dev-utils to devDependencies
* Check elasticsearch url for localhost
* Cleanup
* elasticsearch.hosts can be string too
* Upgraded EUI 13.0.0 -> 13.1.0
* Bump to 13.1.1
* Reset MutationObserver polyfill to original operation
* Reset x-pack's MutationObserver polyfill to original operation
* EUIficate pie chart options tab
* Fix tests
* Size titles down to xs
* Use FormattedMessage
* EUIficate tag_cloud_vis options tab
* Get rid of ticks in the range
* Update snapshots
* Fix comments
* Change label
* Create a components folder
* Create default_editor_agg.tsx
* Create default_editor_agg_group
* Apply drag and drop
* Remove unused dragula dependency
* Remove old mocha tests
* Add ts for state
* Update functional tests
* Update touched condition
* Apply styles for accordion button content
* Apply truncate for agg description
* Remove unused styles
* Separate common props
* Move aggGroupNamesMap to agg_group.js
* Update _sidebar.scss
* Pass schemas prop
* Prevent scroll bar and add space
* Remove unused min from stats
* Add OnAggParamsChange type
* Show error as an icon
* Update background color
* Update title size
* Remove Schema.deprecate since it's not used
* eui 12.4.0
* styled-components ts conflict
* update combobox test service to always open on open call
* Revert "update combobox test service to always open on open call"
This reverts commit 43074e6006.
* scroll combobox into view
* scroll before filter
* eui 12.3.1
* add data logos
* Fix TS uses, one SCSS use of euiOverflowShadow
* fix overflow shadow mixin in sass
* homepage logos
* refix typo on homepage
* hp snaps
* Addresses an issue where Chromium user-data-dirs aren't cleaned properly, and moves to TS
* Fixing renovate config issues
* Fixing issues with typedef's missing
* Using prior-set typedefs for logger
* Updating to @elastic/lodash to 3.10.1-npm-kibana2
* Updating lodash to 4.17.13
There's a stray dependency to lodash 4.17.11 via cypress which doesn't
use "^". This is a dev dependency, so we can ignore it for a bit while
they update their package.json
* Updating some forgotten references to @elastic/lodash@3.10.1-kibana1
* Updating lodash-es to 4.17.13
* Updating to @elastic/lodash to 3.10.1-npm-kibana3
* Using the root resolutions to update cypress's version of lodash.
Thanks @spalger!!!
* [ts] upgrade to 3.5.2
* [ts] run from cwd so that relative paths are correct
* move eslint-disable-line comment into jsx attribute
* autofix eslint violations
* avoid generic type, it's not necessary and problematic
* make elasticsearch.cluster optional, many instances don't have them
* remove invalid prop
* expand AllowUnknownProperties to cleanly handle arrays
* esfilter values can sometimes be an array of strings
* allow exception objects to have unknown properties
* define accumulator as a boolean
* fix return type
* return a 404 if beat isn't found after update
* use Object.values for better types
* define return type of get() call
* define value type for Set
* define return value of get()
* define State property type
* use less get(), so ts can infer types
* define Set item type
* map state type
* make default_operator optional, since it's not always defined
* remove seemingly unused prop
* define return type of get() fn
* define inner type for state
* don't define base types are objects with index signatues
* regenerate public api docs
* make indices privileges optional too
* remove unnecessary index-signature from Exception interface
* use variadic _arg instead
* [core/plugin] use Record<string, any> rather than {}
* replace a couple more instances of {}
* revert some unnecessary changes
* remove unused types
* [reporting] output, payload, and meta are required properties
* bump to latest patch version
* chore(NA): first efforts to enable cache-loader relative paths and disable babel-register cache. chore(NA): allow to use cache-loader results everywhere as a persistent cache.
* chore(NA): last change to support cache loader across envs.
* fix(NA): cache-loader config generator function scope.
* refact(NA): static cache config for dll compiler.
* chore(NA): support for force writable cache flag. use built assets for cache on distributable.
* chore(NA): update cache-loader to last version. fix(NA): logic bug with force writable cache flag.
* chore(NA): move optimize cache to built_assets.
* chore(NA): relative paths for sourcemap configurations.
* chore(NA): remove redudant check for process.env var.
* refact(NA): simplify double negated expression.
* chore(NA): remove webpack prefix from devtoolModuleFilenameTemplate.
* chore(NA): rename cache write force flag to KBN_CACHE_LOADER_WRITABLE.
* chore(NA): readd babel register cache.
* chore(NA): change .cache to .ui_bundles_cache
* chore(NA): change .ui_bundles_cache to cache/ui_bundles
* chore(NA): update gitignore with .babel_register_cache.json
* chore(NA): rollback devtool module filename template to asbolute resource path.
* chore(NA): apply cache-loader patch.
* chore(NA): added new version definition for cache-loader package.
* chore(NA): updated yarn lock with new cache-loader version
* window.crypto.subtle cannot be used in insecure env
* set extension. otherwise definition prioritiezed over js file
* move js to ts. fix build
* remove polyfills
* remove ext
* remove crypto from legacy
* Add rendering of canvas images and update percy agent package
* Spencer's fix for eslint issues
* restore canvas elements after taking snapshot
* copy over all styles from canvas to image stand-in
* percy snapshots only run in chrome, so they can use modern js features
* only run visual regression suites
* add stub maps test
* fix arg order
* use more modern syntax that totally works in chrome
* typo
* fix ftr test timeout when using --inspect-brk
* Revert "add stub maps test"
This reverts commit 32dc965adb.
* Upgarde enzyme to v3.10.0
*update snapshots (React components which are using Memo());
*revert pending test in list_control_editor.test.js;
*replace component.html() and component.text() function calls
which expect null to component.isEmptyRender() for consistency
* [ftr/percy] integrate percy with functional test runner
* execute ftr within `percy exec`
* share PERCY_BIN and GRUNT_BIN vars in setup
* [license] whitelist `(Unlicense OR Apache-2.0)`
* [percy] include pr/parallel info in env
* echo the actual variable value
* destructure required modules
* [ci] calculate percy env in a script
* remove outdated eslint overrides
* oops, nonce should be the same for each build
* take snapshots in context tests
* add percy snapshots to some dashboard tests
* account for extra execution of PERCY_BIN
* remove usage of percy service
* rename service to `visualTesting`
* write a simple test
* switch left-over percy test to visualTesting
* set log level for percy agent
* trigger ci
* try using the system chrome install instead of downloading one
* fix export definition
* Don't skip chromium download
* Add Spencer's fix to point to chrome installation
* Attempting to split tests into own ci job and test files
* Renumber job
* Add tag to decorations file
* Try new files with existing CI job
* Try again to create a new CI job
* Fix eslint problem with space
* eslint updates
* fix console test
* make test names unique
* Update ci group names
* Try old name again
* save
* add separate visual_regression ci job
* add visual regression ci job
* add new job to jobs.yml
* update path to take_percy_snapshot script
* use fixed percy job total
* fix common services import
* move visual_create_and_add_embeddables to visual_regression project
* finish moving create_and_add_embeddables
* add x-pack visual regression job
* migrate dashboard_snapshots tests to visual_regression
* remove references to removed test files
* restore some unnecessary changes
* reimplement the login page tests
* yarn.lock update
* fix test
* remove old CI_GROUP 100 block
* update failed_tests trap
* reduce yarn.lock changes
* disable debug logging
* disable visual-regression tests for now, we can enable them in specific prs
* [Infra UI] Format arrays as ul elements in LogEntryFieldColumn
* Add enzyme test for LogEntryFieldColumn
* Fix tests
* Swap ul's for comma separation
* Use semantic markup for inline list
* Fix tests
* Use ::after element for comma separation
* Move ::after element to :not(:last-child)
* Hoist CommaSeparatedLi
* Use EuiThemeProvider in tests instead of isEnzyme prop
* Suppress type error with issue link
* Embeddable API plugin
* Expose new embeddableActions uiExport endpoint
* Add missing getInjectedUIAppVars to Server type
* Add jest tests
* Most basic skeleton of the sample plugin to see if it still kills ci
* strip even more out to see if it passes ci
* It passed, put back init fn
* add back in a uiExport to see if that is what is killing ci
* Passed again, add back embeddableActions uiExports and require kibana line
* Add everything back but the sass import
* Found two bugs with customize panel title action, added jest test coverage and fixes
* Functionally test embeddable explorer plugin
* Addressing review feedback part 1
* Simplify action context menu - remove support for nested actions/child panels, which was never exposed anyway.
* More review feedback
* Spread out orders to let developers inject their own actions in the middle.
* Remove check for overwriting ApplyFilterAction
* use createRegistry for EmbeddableFactoryRegistry
* Add comment for getInheritedInput
* Use kbn-es-query Filter types
* Fix missed file after createRegistry switch over for EmbeddableFactoryRegistry
* Use delete instead of setting to undefined
* upgrade EUI to match kibana version
* Add getIsContainer on base embeddable class
* Run functional tests of sample plugin
* move all tests classes outside __test__ and inside test_samples folder so not to potentially create issues with mocha
* fix: 🐛 remove unused imports
* fix: 🐛 set to undefined explicitly
* chore: refactored getRoot functionality
* fix: refactor miss from folder rename __test__ -> test_samples
* fix: add eui switch to let the user indicate “hide this title” to improve ux.
* fix: customize panel flout test
* Try to fix issue with multiple rxjs bundles I hit before.
See https://github.com/ReactiveX/rxjs/issues/3828
* Use an rxjs polyfill to work around the issue of multiple rxjs bundles
* chore: change customize panel flyout to modal post design feedback
* capitalize Reset
* fix: type errors in customize panel modal
* fix: remove extra line added to prevent EUICallout overflow from spilling over panel edges
The bug this was intended to fix doesn’t appear yet because dashboard isn’t using this, and it causes other issues, so for now, just remove.
* Clean up some classes and SASS
* Inline styles needed to get the containers to take up the full height of the app.
* Use the same old style of error messaging in panels
* chore: add untilEmbeddableLoaded tests, expose on interface, and use in embeddable_child_panel
* Remove unused styles, add padding
* Verify trigger Context containers an array of Filters for apply filter action
* Remove panel.embeddableId param, use panel.explicitInput.id instead
* Check `isCompatible` as well as the type guard needed for typescript.
* executeTriggerActions should account for getHref
* Remove unnecessary check for context being defined
* use npStart instead of getNewPlatform
* Conform to latest NP changes
* Use new np_mocks in all the tests
* Address review feedback on rxjs polyfill
* Convert simple files to TS
* Fix jest tests
* Rename saved_objects_client{.js => .ts}
* WIP saved_objects_client
* saved_objects repository{.js => .ts}
* includedFields support string[] for type paramater
* Repository/saved_objects_client -> TS
* Fix tests and dependencies
* Fix saved objects type errors and simplify
* saved_objects/index saved_objects/service/index -> ts
* Fix saved objects export test after switching to typed mock
* Workaround type error
* Revert "Workaround type error"
This reverts commit de3252267eb2e6bf56a5584d271b55a7afdc1c53.
* Correctly type Server.savedObjects.SaveObjectsClient constructor
* saved_objects/service/lib/index.{js -> ts}
* saved_objects/service/lib/scoped_client_provider{js -> ts}
* Typescriptify scoped_client_provider
* Fix x-pack jest imports
* Add lodash/internal/toPath typings to xpath
* Introduce SavedObjectsClientContract
We need a way to specify that injected dependencies should adhere to the
SavedObjectsClient "contract". We can't use the SavedObjectsClient class
itself since it contains the private _repository property which in TS is
included in the type signature of a class.
* Cleanup and simplify types
* Fix repository#delete should return {}
* Add SavedObjects repository test for uncovered bug
Test for a bug in our previous js implementation that can lead to data
corruption and data loss.
If a bulkGet request is made where one of the objects to fetch is of a type
that isn't allowed, the returned result will include documents which have the
incorrect id and type assigned. E.g. the data of an object with id '1' is
returned with id '2'. Saving '2' will incorrectly override it's data with that
of the data of object '1'.
* SavedObject.updated_at: string and unify saved_object / serializer types
* Cleanup
* Address code review feedback
* Don't mock errors helpers in SavedObjectsClient Mock
* Address CR feedback
* CR Feedback #2
* Add kibana-platform as code owners of Saved Objects
* Better typings for SavedObjectsClient.errors
* Use unknown as default for generic type request paramater
* Bump @types/elasticsearch
* Fix types for isForbiddenError
* Bump x-pack @types/elasticsearch
* chore(NA): first efforts to enable cache-loader relative paths and disable babel-register cache. chore(NA): allow to use cache-loader results everywhere as a persistent cache.
* chore(NA): last change to support cache loader across envs.
* fix(NA): cache-loader config generator function scope.
* refact(NA): static cache config for dll compiler.
* chore(NA): support for force writable cache flag. use built assets for cache on distributable.
* chore(NA): update cache-loader to last version. fix(NA): logic bug with force writable cache flag.
* chore(NA): move optimize cache to built_assets.
* chore(NA): relative paths for sourcemap configurations.
* chore(NA): remove redudant check for process.env var.
* refact(NA): simplify double negated expression.
* chore(NA): remove webpack prefix from devtoolModuleFilenameTemplate.
* chore(NA): rename cache write force flag to KBN_CACHE_LOADER_WRITABLE.
* chore(NA): readd babel register cache.
* chore(NA): change .cache to .ui_bundles_cache
* chore(NA): change .ui_bundles_cache to cache/ui_bundles
* chore(NA): update gitignore with .babel_register_cache.json
* chore(NA): rollback devtool module filename template to asbolute resource path.
* chore(NA): apply cache-loader patch.
* skip and adjust functional tests for Firefox
* downgrade geckodriver to 0.22.0
* [ftr] add firefox specific config file
* remove hard coded firefox adjustments
* remove firefox specific screenshot directory
* run functional tests in firefox in x-pack
* pass the logger to readConfigFile()
* rename local var
* skip xpack firefox config
* run xpack firefox functional tests in separate command
* update report name for XPack firefox results
* adjust viz shared item test
* skip shared item test
* [test/feature_controls] increase timeout to 20 sec & use forceLogout
* FF timeout on TSVB, refresh page on failure for url navigation
* [feature_controls/visualize_security] increase timeout to 20 sec
* skip dev_tools_spaces tests on FF
* run all groups 3 times
* skip more func tests
* skip more tests
* skip all feature controls tests for Firefox
* revert back changes in feature controls tests
* rename xpack report for chrome
* skip tile map for FF, wait for render before saving
* Revert "run all groups 3 times"
This reverts commit 12b4f69627.
* revert refresh on login
* apply feedback