2014-02-07 00:29:19 +01:00
{
2014-06-17 01:52:19 +02:00
"name" : "kibana" ,
2018-09-17 18:46:03 +02:00
"description" : "Kibana is a browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elasticsearch." ,
2015-01-07 21:48:58 +01:00
"keywords" : [
"kibana" ,
"elasticsearch" ,
"logstash" ,
"analytics" ,
"visualizations" ,
"dashboards" ,
"dashboarding"
] ,
2018-09-17 18:46:03 +02:00
"private" : true ,
2019-02-08 15:04:02 +01:00
"version" : "8.0.0" ,
2017-05-23 21:46:54 +02:00
"branch" : "master" ,
2018-12-17 19:52:21 +01:00
"types" : "./kibana.d.ts" ,
2019-04-03 12:26:00 +02:00
"tsdocMetadata" : "./build/tsdoc-metadata.json" ,
2015-07-29 22:11:04 +02:00
"build" : {
2015-08-31 20:14:09 +02:00
"number" : 8467 ,
"sha" : "6cb7fec4e154faa0a4a3fee4b33dfef91b9870d9"
2015-07-29 22:11:04 +02:00
} ,
2015-03-17 02:18:50 +01:00
"homepage" : "https://www.elastic.co/products/kibana" ,
2015-01-23 19:34:29 +01:00
"bugs" : {
2015-03-17 02:32:09 +01:00
"url" : "http://github.com/elastic/kibana/issues"
2015-01-23 19:34:29 +01:00
} ,
2018-11-27 19:04:57 +01:00
"kibana" : {
"clean" : {
"extraPatterns" : [
"build" ,
2020-01-30 20:03:14 +01:00
"data/optimize" ,
2019-01-10 01:30:29 +01:00
"built_assets" ,
2019-05-01 20:13:58 +02:00
".eslintcache" ,
2020-04-28 02:56:44 +02:00
".node_binaries" ,
"src/plugins/*/target"
2018-11-27 19:04:57 +01:00
]
}
} ,
2015-03-17 02:18:50 +01:00
"author" : "Rashid Khan <rashid.khan@elastic.co>" ,
2015-01-07 21:48:58 +01:00
"scripts" : {
2021-03-09 00:51:32 +01:00
"bazel" : "bazel" ,
2018-02-08 13:40:57 +01:00
"preinstall" : "node ./preinstall_check" ,
2018-01-24 10:34:52 +01:00
"kbn" : "node scripts/kbn" ,
2018-03-20 16:30:15 +01:00
"es" : "node scripts/es" ,
2019-01-03 13:32:04 +01:00
"test:jest" : "node scripts/jest" ,
2020-04-15 10:20:01 +02:00
"test:jest_integration" : "node scripts/jest_integration" ,
2020-02-18 23:21:36 +01:00
"test:ftr" : "node scripts/functional_tests" ,
"test:ftr:server" : "node scripts/functional_tests_server" ,
"test:ftr:runner" : "node scripts/functional_test_runner" ,
2019-06-06 19:16:19 +02:00
"checkLicenses" : "node scripts/check_licenses --dev" ,
2018-10-23 22:29:15 +02:00
"build" : "node scripts/build --all-platforms" ,
2021-02-25 01:23:19 +01:00
"build:apidocs" : "node scripts/build_api_docs" ,
2020-03-12 07:21:42 +01:00
"start" : "node scripts/kibana --dev" ,
2018-05-18 21:15:05 +02:00
"debug" : "node --nolazy --inspect scripts/kibana --dev" ,
"debug-break" : "node --nolazy --inspect-brk scripts/kibana --dev" ,
2021-01-15 18:52:29 +01:00
"lint" : "yarn run lint:es && yarn run lint:style" ,
2019-01-07 04:18:07 +01:00
"lint:es" : "node scripts/eslint" ,
2021-01-15 18:52:29 +01:00
"lint:style" : "node scripts/stylelint" ,
2019-01-07 04:18:07 +01:00
"makelogs" : "node scripts/makelogs" ,
2018-10-05 21:00:26 +02:00
"kbn:watch" : "node scripts/kibana --dev --logging.json=false" ,
2020-09-10 20:39:32 +02:00
"build:types" : "rm -rf ./target/types && tsc --p tsconfig.types.json" ,
2020-07-13 17:30:03 +02:00
"docs:acceptApiChanges" : "node --max-old-space-size=6144 scripts/check_published_api_changes.js --accept" ,
2021-03-03 21:40:07 +01:00
"kbn:bootstrap" : "node scripts/build_ts_refs --ignore-type-failures" ,
2019-07-18 18:10:58 +02:00
"spec_to_console" : "node scripts/spec_to_console" ,
2019-10-10 07:56:49 +02:00
"backport-skip-ci" : "backport --prDescription \"[skip-ci]\"" ,
2020-01-15 21:30:59 +01:00
"storybook" : "node scripts/storybook" ,
2020-05-13 23:09:42 +02:00
"cover:report" : "nyc report --temp-dir target/kibana-coverage/functional --report-dir target/coverage/report --reporter=lcov && open ./target/coverage/report/lcov-report/index.html" ,
"cover:functional:merge" : "nyc report --temp-dir target/kibana-coverage/functional --report-dir target/coverage/report/functional --reporter=json-summary"
2015-01-07 21:48:58 +01:00
} ,
"repository" : {
"type" : "git" ,
2015-03-17 02:18:50 +01:00
"url" : "https://github.com/elastic/kibana.git"
2015-01-07 21:48:58 +01:00
} ,
Beats Management (#23819)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* [Beats Management] add more tests, update types, break out ES into it's own adapter (#20566)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* fix auth
* updated lock file
* [Beats Management] add get beat endpoint (#20603)
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* Moved critical path code from route, to more easeley tested domain
* fix auth
* remove beat verification, added get beat endpoint to return configs
* fix type
* update createGetBeatConfigurationRoute URL
* rename method
* update to match PR #20566
* updated lock file
* fix bad merge
* update TSLinting
* fix bad rebase
* [Beats Management] [WIP] Create public resources for management plugin (#20864)
* Init plugin public resources.
* rename beats to beats_management
* rendering react now
* Beats/initial ui (#20994)
* initial layout and main nav
* modal UI and pattern for UI established
* fix path
* wire up in-memroy adapters
* tweak adapters
* add getAll method to tags adapter (#21287)
* Beats/real adapters (#21481)
* add initial real adapters, and nulled data where we need endpoints
* UI adapters and needed endpoints added (though not tested)
* prep for route tests and some cleanup
* move files
* [Beats Management] Add BeatsTable/Bulk Action Search Component (#21182)
* Add BeatsTable and control bar components.
* Clean yarn.lock.
* Move raw numbers/strings to constants. Remove obsolete state/props.
* Update/add tests.
* Change prop name from "items" to "beats".
* Rename some variables.
* Move search bar filter definitions to table render.
* Update table to support assignment options.
* Update action control position.
* Refactor split render function into custom components.
* Beats/basic use cases (#21660)
* tweak adapter responses / types. re-add enroll ui
* routes enabled, enroll now pings the server
* full enrollment path now working
* improved pinging for beat enrollment
* fix location of history call
* reload beats list on beat enrollment completion
* [Beats Management] Add Tags List (#21274)
* Add BeatsTable and control bar components.
* Clean yarn.lock.
* Move raw numbers/strings to constants. Remove obsolete state/props.
* Update/add tests.
* Change prop name from "items" to "beats".
* Add TagsTable component and associated search/action bar.
* Rename some variables.
* Add constant after forgetting to save file.
* Fix design mistake in table component.
* Disable delete button when no tags selected.
* Export tags table from index.ts.
* Move search bar filter definitions to table render.
* Update table to support assignment options.
* Update action control position.
* Refactor split render function into custom components.
* Add assignment options to Tags List.
* Remove obsolete code.
* Move tooltips for tag icons to top position.
* Beats/update (#21702)
* [ML] Fixing issue with historical job audit messages (#21718)
* Add proper aria-label for close inspector (#21719)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* [Beats Management] add more tests, update types, break out ES into it's own adapter (#20566)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* fix auth
* updated lock file
* [Beats Management] add get beat endpoint (#20603)
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* Moved critical path code from route, to more easeley tested domain
* fix auth
* remove beat verification, added get beat endpoint to return configs
* fix type
* update createGetBeatConfigurationRoute URL
* rename method
* update to match PR #20566
* updated lock file
* fix bad merge
* update TSLinting
* fix bad rebase
* [Beats Management] [WIP] Create public resources for management plugin (#20864)
* Init plugin public resources.
* rename beats to beats_management
* rendering react now
* Beats/initial ui (#20994)
* initial layout and main nav
* modal UI and pattern for UI established
* fix path
* wire up in-memroy adapters
* tweak adapters
* add getAll method to tags adapter (#21287)
* Beats/real adapters (#21481)
* add initial real adapters, and nulled data where we need endpoints
* UI adapters and needed endpoints added (though not tested)
* prep for route tests and some cleanup
* move files
* [Beats Management] Add BeatsTable/Bulk Action Search Component (#21182)
* Add BeatsTable and control bar components.
* Clean yarn.lock.
* Move raw numbers/strings to constants. Remove obsolete state/props.
* Update/add tests.
* Change prop name from "items" to "beats".
* Rename some variables.
* Move search bar filter definitions to table render.
* Update table to support assignment options.
* Update action control position.
* Refactor split render function into custom components.
* Beats/basic use cases (#21660)
* tweak adapter responses / types. re-add enroll ui
* routes enabled, enroll now pings the server
* full enrollment path now working
* improved pinging for beat enrollment
* fix location of history call
* reload beats list on beat enrollment completion
* add update on client side, expand update on server to allow for partial data, and user auth
* remove double beat lookup
* fix tests
* only return active beats
* disenroll now working
* fig getAll query
* re-enrolling a beat will now work
* fix types
* fix types
* update deps
* update kibana API for version
* [Beats CM] Manage Tags (#21776)
* [ML] Fixing issue with historical job audit messages (#21718)
* Add proper aria-label for close inspector (#21719)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* [Beats Management] add more tests, update types, break out ES into it's own adapter (#20566)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* fix auth
* updated lock file
* [Beats Management] add get beat endpoint (#20603)
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* Moved critical path code from route, to more easeley tested domain
* fix auth
* remove beat verification, added get beat endpoint to return configs
* fix type
* update createGetBeatConfigurationRoute URL
* rename method
* update to match PR #20566
* updated lock file
* fix bad merge
* update TSLinting
* fix bad rebase
* [Beats Management] [WIP] Create public resources for management plugin (#20864)
* Init plugin public resources.
* rename beats to beats_management
* rendering react now
* Beats/initial ui (#20994)
* initial layout and main nav
* modal UI and pattern for UI established
* fix path
* wire up in-memroy adapters
* tweak adapters
* add getAll method to tags adapter (#21287)
* Beats/real adapters (#21481)
* add initial real adapters, and nulled data where we need endpoints
* UI adapters and needed endpoints added (though not tested)
* prep for route tests and some cleanup
* move files
* [Beats Management] Add BeatsTable/Bulk Action Search Component (#21182)
* Add BeatsTable and control bar components.
* Clean yarn.lock.
* Move raw numbers/strings to constants. Remove obsolete state/props.
* Update/add tests.
* Change prop name from "items" to "beats".
* Rename some variables.
* Move search bar filter definitions to table render.
* Update table to support assignment options.
* Update action control position.
* Refactor split render function into custom components.
* Beats/basic use cases (#21660)
* tweak adapter responses / types. re-add enroll ui
* routes enabled, enroll now pings the server
* full enrollment path now working
* improved pinging for beat enrollment
* fix location of history call
* reload beats list on beat enrollment completion
* add update on client side, expand update on server to allow for partial data, and user auth
* remove double beat lookup
* fix tests
* only return active beats
* disenroll now working
* fig getAll query
* re-enrolling a beat will now work
* fix types
* Add create tags view.
* fix types
* update deps
* update kibana API for version
* Added component/config interface for editing/creating tags. Added separate pages for create/edit tags.
* Fixup.
* Beats/beat tags workflow (#21923)
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* add details page, re-configure routes
* move tag crud to new route stuff
* update tag create/edit component api
* tags creation now working
* bunch of stuff I should have split up better…
* fixed perf bug, selected items that are removed are no longer phantom selected
* fix rendering of assignments
* remove assign to beats, the UX was too poor
* Beats/config view (#22177)
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* add details page, re-configure routes
* move tag crud to new route stuff
* update tag create/edit component api
* tags creation now working
* bunch of stuff I should have split up better…
* fixed perf bug, selected items that are removed are no longer phantom selected
* fix rendering of assignments
* remove assign to beats, the UX was too poor
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* Beats/update (#21702)
* [ML] Fixing issue with historical job audit messages (#21718)
* Add proper aria-label for close inspector (#21719)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* [Beats Management] add more tests, update types, break out ES into it's own adapter (#20566)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* fix auth
* updated lock file
* [Beats Management] add get beat endpoint (#20603)
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* Moved critical path code from route, to more easeley tested domain
* fix auth
* remove beat verification, added get beat endpoint to return configs
* fix type
* update createGetBeatConfigurationRoute URL
* rename method
* update to match PR #20566
* updated lock file
* fix bad merge
* update TSLinting
* fix bad rebase
* [Beats Management] [WIP] Create public resources for management plugin (#20864)
* Init plugin public resources.
* rename beats to beats_management
* rendering react now
* Beats/initial ui (#20994)
* initial layout and main nav
* modal UI and pattern for UI established
* fix path
* wire up in-memroy adapters
* tweak adapters
* add getAll method to tags adapter (#21287)
* Beats/real adapters (#21481)
* add initial real adapters, and nulled data where we need endpoints
* UI adapters and needed endpoints added (though not tested)
* prep for route tests and some cleanup
* move files
* [Beats Management] Add BeatsTable/Bulk Action Search Component (#21182)
* Add BeatsTable and control bar components.
* Clean yarn.lock.
* Move raw numbers/strings to constants. Remove obsolete state/props.
* Update/add tests.
* Change prop name from "items" to "beats".
* Rename some variables.
* Move search bar filter definitions to table render.
* Update table to support assignment options.
* Update action control position.
* Refactor split render function into custom components.
* Beats/basic use cases (#21660)
* tweak adapter responses / types. re-add enroll ui
* routes enabled, enroll now pings the server
* full enrollment path now working
* improved pinging for beat enrollment
* fix location of history call
* reload beats list on beat enrollment completion
* add update on client side, expand update on server to allow for partial data, and user auth
* remove double beat lookup
* fix tests
* only return active beats
* disenroll now working
* fig getAll query
* re-enrolling a beat will now work
* fix types
* fix types
* update deps
* update kibana API for version
* progress on config forms
* config view inital input types working
* ts fixes
* fix more ts
* code now errors on invalid yaml
* remove un-needed include
* fix bad rebase
* saving config blocks as yaml to db is now working
* propperly formatted YAML
* loading tags back on edit screen in-progress
* fix types
* vis name validation for tag
* update EUI style
* tweak design
* fixed tag assignments (still has a ui glitch)
* fix form validation on select
* fix deps
* update deps
* attached beats now works in the edit tag screen, edit now disables changing the tag id
* better un-parsing of yaml, some elements now rendering to edit config blocks
* delete config block now works
* fix ability to edit config
* fix deps
* fix another rebase issue
* tweaks and fixes
* fix several bugs
* Beats/security (#22500)
* client side security working
* check license on route
* forgot a file
* [Beats CM] Add beats details pages (#22455)
* Move edits from previous details branch.
* Add tag view to beat details.
* Added notifications for add/remove tag from beat.
* Fix dependencies upgrade/downgrade add/removes.
* Create new page files for each sub-section of details view.
* Move page functionality from dedicated components to pages.
* [Beats CM] move to json for configs (#22693)
* move to json for configs, fix some tests
* tweaks
* add fixes (#22711)
* add fixes
* return only one config
* much improved validation for hosts, no longer require not required fields, no longer have JS in the config form config
* fix condition argument
* [Beats CM] Improve UX for assignment of tag to list of beats (#22687)
* Improve UX for assignment of tag to list of beats.
* Revert a change.
* [Beats CM] Sort beat list tags (#22729)
* Add logic to sort tags by ID when rendering in Beats List.
* Prefer lodash sortBy over inline sort implementation.
* [Beats CM] Remove key warnings from beat list components (#22772)
* Add logic to sort tags by ID when rendering in Beats List.
* Remove key warnings from beats list and associated components.
* Prefer lodash sortBy over inline sort implementation.
* [Beats CM] Add check for BeatsPage component to avoid setState when unmounted (#22836)
* Add check if component is unmounted when loading Beats List page.
* Move call to loadBeats() to componentDidMount lifecycle function.
* Update field name in table type config. (#23228)
* Utilize TagBadge functional component to standardize display of tag names. (#23253)
* [Beats CM] Add beat name to update endpoint (#23291)
* Update beat index template and update endpoints to expect name type. Add test file for update.
* Update enroll script and endpoint to create a 'name' field for beats.
* Add name field to CMBeat domain type.
* Update functional tests to include name field.
* Fix broken tag assignment functional test.
* Edit beats list table config to display most recently-updated tag time. (#23337)
* Update beat detail view info. (#23369)
* Update beat detail view info.
* Add period to end of update field.
* [Beat CM] Show only tags associated with selected beat (#23398)
* Reenable output config.
* Make beat detail tag page only show tags associated with that tag.
* Display beat name instead of ID on details screen. (#23410)
* [Beat CM] Display config name instead of beat type in beat detail view (#23411)
* Update config table in beat detail view to show config type instead of beat type.
* Modify Beat Detail view to display human-friendly names for config block types.
* [Beats CM] Add password input and re-enable output config schema (#23417)
* wip defining controls
* Complete adding formsy password field.
* Re-enable output config schema definition.
* Simplify import/export for formsy components.
* Add full list of current Filebeat & Metricbeat module (#23258)
This change also renames `Metricbeat input` to `Metricbeat module`
* Beats/ui tweaks (#23655)
* add initial breadcrumbs
* prevent errors
* New routing in place for supporting URLState needed for Kuery bar
* beats table kuery bar “working” (but not submitting)
* pulling activity view from current phase’s spec
* setup link now at correct URL
* kuery bar
* autocomplete bar now working
* Add walkthrough (#23785)
* add test system, framework, and example tests
* adding walkthrough
* clicking walkthrough step should take you to that step
* try/catch beats loading to prevent unhandeled error when there are no beats
* fix walkthrough not redirecting to main beats page
* update yarn lock files
* fix prettier
* fix x-pack package.json formatting
* update kbn server creation
* remove types from old table implementation
* move to Boom.boomify
* fix TS errors
* fix type
* rollback dep version
* fix more conflicting dep issues
* deps
* force correct node type resolution
* cleanup and skip tests (kbn test util is broken)
* added formsy and basePath
* update yarn lock file
* add beats management icon
* rename beats management main section
* Tags now called Configuration Tags in the tabs
* tokens must expire at most after 2 weeks
* fix bad auto-import
* beat details now shows the extra data needed
* tweak package.json deps for continuity
* update yarn lock for new yarn version
* [Beats CM] Re-arch table assignment control definitions (#23663)
* Patch changes to latest feature branch.
* Update table controls to offer standard search bar if kuery bar props not provided.
* Tweaked enrollment UI to inlcude beat type selection
* Reduce badge list gutter size, change logic for tag assignment to unassign all if some selected. (#24091)
* dont use genaric search bar
* removed unused import
* fix es-lint error
* fix outputs
* fix types from infra merge
* remove dupe dep
* update lock file
* push another lock file
* Add unfilteredBeats field to beat list state to prevent inappropriate redirect. (#24146)
* fix yarn lock because yarn is dumb
* Fix broken tests
2018-10-18 04:06:43 +02:00
"resolutions" : {
2021-05-19 22:39:52 +02:00
"**/@types/node" : "14.14.44" ,
2020-12-09 20:26:43 +01:00
"**/chokidar" : "^3.4.3" ,
2020-09-17 08:48:06 +02:00
"**/deepmerge" : "^4.2.2" ,
"**/fast-deep-equal" : "^3.1.1" ,
2021-04-06 10:57:40 +02:00
"globby/fast-glob" : "3.2.5" ,
2020-02-17 09:58:54 +01:00
"**/hoist-non-react-statics" : "^3.3.2" ,
2020-09-17 08:48:06 +02:00
"**/isomorphic-fetch/node-fetch" : "^2.6.1" ,
2020-08-19 15:54:11 +02:00
"**/istanbul-instrumenter-loader/schema-utils" : "1.0.0" ,
2021-02-24 20:45:55 +01:00
"**/load-grunt-config/lodash" : "^4.17.21" ,
2020-09-17 11:14:42 +02:00
"**/minimist" : "^1.2.5" ,
2020-09-04 14:29:19 +02:00
"**/node-jose/node-forge" : "^0.10.0" ,
2021-05-19 20:38:07 +02:00
"**/pdfkit/crypto-js" : "4.0.0" ,
2021-07-07 10:19:15 +02:00
"**/prismjs" : "1.24.0" ,
2020-12-09 04:02:31 +01:00
"**/react-syntax-highlighter" : "^15.3.1" ,
"**/react-syntax-highlighter/**/highlight.js" : "^10.4.1" ,
2021-06-01 17:53:07 +02:00
"**/refractor" : "^3.3.1" ,
2020-08-19 15:54:11 +02:00
"**/request" : "^2.88.2" ,
2021-05-19 22:39:52 +02:00
"**/trim" : "1.0.1" ,
2021-05-04 13:56:46 +02:00
"**/typescript" : "4.1.3" ,
"**/underscore" : "^1.13.1"
Beats Management (#23819)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* [Beats Management] add more tests, update types, break out ES into it's own adapter (#20566)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* fix auth
* updated lock file
* [Beats Management] add get beat endpoint (#20603)
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* Moved critical path code from route, to more easeley tested domain
* fix auth
* remove beat verification, added get beat endpoint to return configs
* fix type
* update createGetBeatConfigurationRoute URL
* rename method
* update to match PR #20566
* updated lock file
* fix bad merge
* update TSLinting
* fix bad rebase
* [Beats Management] [WIP] Create public resources for management plugin (#20864)
* Init plugin public resources.
* rename beats to beats_management
* rendering react now
* Beats/initial ui (#20994)
* initial layout and main nav
* modal UI and pattern for UI established
* fix path
* wire up in-memroy adapters
* tweak adapters
* add getAll method to tags adapter (#21287)
* Beats/real adapters (#21481)
* add initial real adapters, and nulled data where we need endpoints
* UI adapters and needed endpoints added (though not tested)
* prep for route tests and some cleanup
* move files
* [Beats Management] Add BeatsTable/Bulk Action Search Component (#21182)
* Add BeatsTable and control bar components.
* Clean yarn.lock.
* Move raw numbers/strings to constants. Remove obsolete state/props.
* Update/add tests.
* Change prop name from "items" to "beats".
* Rename some variables.
* Move search bar filter definitions to table render.
* Update table to support assignment options.
* Update action control position.
* Refactor split render function into custom components.
* Beats/basic use cases (#21660)
* tweak adapter responses / types. re-add enroll ui
* routes enabled, enroll now pings the server
* full enrollment path now working
* improved pinging for beat enrollment
* fix location of history call
* reload beats list on beat enrollment completion
* [Beats Management] Add Tags List (#21274)
* Add BeatsTable and control bar components.
* Clean yarn.lock.
* Move raw numbers/strings to constants. Remove obsolete state/props.
* Update/add tests.
* Change prop name from "items" to "beats".
* Add TagsTable component and associated search/action bar.
* Rename some variables.
* Add constant after forgetting to save file.
* Fix design mistake in table component.
* Disable delete button when no tags selected.
* Export tags table from index.ts.
* Move search bar filter definitions to table render.
* Update table to support assignment options.
* Update action control position.
* Refactor split render function into custom components.
* Add assignment options to Tags List.
* Remove obsolete code.
* Move tooltips for tag icons to top position.
* Beats/update (#21702)
* [ML] Fixing issue with historical job audit messages (#21718)
* Add proper aria-label for close inspector (#21719)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* [Beats Management] add more tests, update types, break out ES into it's own adapter (#20566)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* fix auth
* updated lock file
* [Beats Management] add get beat endpoint (#20603)
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* Moved critical path code from route, to more easeley tested domain
* fix auth
* remove beat verification, added get beat endpoint to return configs
* fix type
* update createGetBeatConfigurationRoute URL
* rename method
* update to match PR #20566
* updated lock file
* fix bad merge
* update TSLinting
* fix bad rebase
* [Beats Management] [WIP] Create public resources for management plugin (#20864)
* Init plugin public resources.
* rename beats to beats_management
* rendering react now
* Beats/initial ui (#20994)
* initial layout and main nav
* modal UI and pattern for UI established
* fix path
* wire up in-memroy adapters
* tweak adapters
* add getAll method to tags adapter (#21287)
* Beats/real adapters (#21481)
* add initial real adapters, and nulled data where we need endpoints
* UI adapters and needed endpoints added (though not tested)
* prep for route tests and some cleanup
* move files
* [Beats Management] Add BeatsTable/Bulk Action Search Component (#21182)
* Add BeatsTable and control bar components.
* Clean yarn.lock.
* Move raw numbers/strings to constants. Remove obsolete state/props.
* Update/add tests.
* Change prop name from "items" to "beats".
* Rename some variables.
* Move search bar filter definitions to table render.
* Update table to support assignment options.
* Update action control position.
* Refactor split render function into custom components.
* Beats/basic use cases (#21660)
* tweak adapter responses / types. re-add enroll ui
* routes enabled, enroll now pings the server
* full enrollment path now working
* improved pinging for beat enrollment
* fix location of history call
* reload beats list on beat enrollment completion
* add update on client side, expand update on server to allow for partial data, and user auth
* remove double beat lookup
* fix tests
* only return active beats
* disenroll now working
* fig getAll query
* re-enrolling a beat will now work
* fix types
* fix types
* update deps
* update kibana API for version
* [Beats CM] Manage Tags (#21776)
* [ML] Fixing issue with historical job audit messages (#21718)
* Add proper aria-label for close inspector (#21719)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* [Beats Management] add more tests, update types, break out ES into it's own adapter (#20566)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* fix auth
* updated lock file
* [Beats Management] add get beat endpoint (#20603)
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* Moved critical path code from route, to more easeley tested domain
* fix auth
* remove beat verification, added get beat endpoint to return configs
* fix type
* update createGetBeatConfigurationRoute URL
* rename method
* update to match PR #20566
* updated lock file
* fix bad merge
* update TSLinting
* fix bad rebase
* [Beats Management] [WIP] Create public resources for management plugin (#20864)
* Init plugin public resources.
* rename beats to beats_management
* rendering react now
* Beats/initial ui (#20994)
* initial layout and main nav
* modal UI and pattern for UI established
* fix path
* wire up in-memroy adapters
* tweak adapters
* add getAll method to tags adapter (#21287)
* Beats/real adapters (#21481)
* add initial real adapters, and nulled data where we need endpoints
* UI adapters and needed endpoints added (though not tested)
* prep for route tests and some cleanup
* move files
* [Beats Management] Add BeatsTable/Bulk Action Search Component (#21182)
* Add BeatsTable and control bar components.
* Clean yarn.lock.
* Move raw numbers/strings to constants. Remove obsolete state/props.
* Update/add tests.
* Change prop name from "items" to "beats".
* Rename some variables.
* Move search bar filter definitions to table render.
* Update table to support assignment options.
* Update action control position.
* Refactor split render function into custom components.
* Beats/basic use cases (#21660)
* tweak adapter responses / types. re-add enroll ui
* routes enabled, enroll now pings the server
* full enrollment path now working
* improved pinging for beat enrollment
* fix location of history call
* reload beats list on beat enrollment completion
* add update on client side, expand update on server to allow for partial data, and user auth
* remove double beat lookup
* fix tests
* only return active beats
* disenroll now working
* fig getAll query
* re-enrolling a beat will now work
* fix types
* Add create tags view.
* fix types
* update deps
* update kibana API for version
* Added component/config interface for editing/creating tags. Added separate pages for create/edit tags.
* Fixup.
* Beats/beat tags workflow (#21923)
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* add details page, re-configure routes
* move tag crud to new route stuff
* update tag create/edit component api
* tags creation now working
* bunch of stuff I should have split up better…
* fixed perf bug, selected items that are removed are no longer phantom selected
* fix rendering of assignments
* remove assign to beats, the UX was too poor
* Beats/config view (#22177)
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* add details page, re-configure routes
* move tag crud to new route stuff
* update tag create/edit component api
* tags creation now working
* bunch of stuff I should have split up better…
* fixed perf bug, selected items that are removed are no longer phantom selected
* fix rendering of assignments
* remove assign to beats, the UX was too poor
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* Beats/update (#21702)
* [ML] Fixing issue with historical job audit messages (#21718)
* Add proper aria-label for close inspector (#21719)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* [Beats Management] Move to Ingest UI arch and initial TS effort (#20039)
* [Beats Management] Initial scaffolding for plugin (#18977)
* Initial scaffolding for Beats plugin
* Removing bits not (yet) necessary in initial scaffolding
* [Beats Management] Install Beats index template on plugin init (#19072)
* Install Beats index template on plugin init
* Adding missing files
* [Beats Management] APIs: Create enrollment tokens (#19018)
* WIP checkin
* Register API routes
* Fixing typo in index name
* Adding TODOs
* Removing commented out license checking code that isn't yet implemented
* Remove unnecessary async/await
* Don't return until indices have been refreshed
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Adding TODO
* Fixing variable name
* Using a single index
* Adding expiration date field
* Adding test for expiration date field
* Ignore non-existent index
* Fixing logic in test
* Creating constant for default enrollment tokens TTL value
* Updating test
* Fixing name of test file (#19100)
* [Beats Management] APIs: Enroll beat (#19056)
* WIP checkin
* Add API integration test
* Converting to Jest test
* Create API for enrolling a beat
* Handle invalid or expired enrollment tokens
* Use create instead of index to prevent same beat from being enrolled twice
* Adding unit test for duplicate beat enrollment
* Do not persist enrollment token with beat once token has been checked and used
* Fix datatype of host_ip field
* Make Kibana API guess host IP instead of requiring it in payload
* Fixing error introduced in rebase conflict resolution
* [Beats Management] APIs: List beats (#19086)
* WIP checkin
* Add API integration test
* Converting to Jest test
* WIP checkin
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Updating mapping
* [Beats Management] APIs: Verify beats (#19103)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Fleshing out remaining tests
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Moving TODO comment to right file
* Rename determine* helper functions to find*
* Fixing assertions (#19194)
* [Beats Management] APIs: Update beat (#19148)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Add API tests
* Update template to allow version field for beat
* Implement PUT /api/beats/agent/{beat ID} API
* Make enroll beat code consistent with update beat code
* Fixing minor typo in TODO comment
* Allow version in request payload
* Make sure beat is not updated in ES in error scenarios
* Adding version as required field in Enroll Beat API payload
* Using destructuring
* Fixing rename that was accidentally reversed in conflict fixing
* [Beats Management] APIs: take auth tokens via headers (#19210)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Make "Enroll Beat" API take enrollment token via header instead of request body
* Make "Update Beat" API take access token via header instead of request body
* [Beats Management] APIs: Create configuration block (#19270)
* WIP checkin
* WIP checkin
* Add API integration test
* Converting to Jest test
* Fixing API for default case + adding test for it
* Fixing copy pasta typos
* Fixing variable name
* Using a single index
* Implementing GET /api/beats/agents API
* Creating POST /api/beats/agents/verify API
* Refactoring: extracting out helper functions
* Expanding TODO note so I won't forget :)
* Fixing file name
* Updating mapping
* Fixing minor typo in TODO comment
* Implementing POST /api/beats/configuration_blocks API
* Removing unnecessary escaping
* Fleshing out types + adding validation for them
* Making output singular (was outputs)
* Removing metricbeat.inputs
* Revert implementation of `POST /api/beats/configuration_blocks` API (#19340)
This API allowed the user to operate at a level of abstraction that is unnecessarily and dangerously too low. A better API would be at one level higher, where users can create, update, and delete tags (where a tag can contain multiple configuration blocks).
* [Beats Management] APIs: Create or update tag (#19342)
* Updating mappings
* Implementing PUT /api/beats/tag/{tag} API
* [Beats Management] Prevent timing attacks when checking auth tokens (#19363)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Prevent subtler timing attack in token comparison function
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* [Beats Management] APIs: Assign tag(s) to beat(s) (#19431)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Rename "determine" to "find"
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Updating ES archive
* Renaming
* Use destructuring
* Moving start of script to own line to increase readability
* Using destructuring
* [Beats Management] APIs: Remove tag(s) from beat(s) (#19440)
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Remove random delay
* Starting to implement POST /api/beats/beats_tags API
* Changing API
* Updating tests for changes to API
* Renaming
* Use destructuring
* Using crypto.timingSafeEqual() for comparing auth tokens
* Introduce random delay after we try to find token in ES to mitigate timing attack
* Implementing `POST /api/beats/agents_tags/removals` API
* Updating ES archive
* Use destructuring
* Moving start of script to own line to increase readability
* Nothing to remove if there are no existing tags!
* Updating tests to match changes in bulk update painless script
* Use destructuring
* Ported over base types and arch structure
* move management of installIndexTemplate into the framework adapter
* ts-lint fix
* tslint fixes
* more ts tweaks
* fix paths
* added several working endpoints
* add more routes and bug fixes
* fix linting
* fix type remove CRUFT
* remove more cruft
* remove more CRUFT
* added comments, change plurality
* add tsconfig file
* add extends path
* fixed typo
* serveral PR review fixes
* fixed lodash type version
* “fix” types by applying a lot of any
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* [Beats Management] add more tests, update types, break out ES into it's own adapter (#20566)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* fix auth
* updated lock file
* [Beats Management] add get beat endpoint (#20603)
* [Beats Management] Move tokens to use JWT, add more complete test suite (#20317)
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* fix broken test, this is beats CM not logstash 😊
* added readme
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* inital effort to move to JWT and added jest based tests on libs
* assign beats tests all passing
* token tests now pass
* add more tests
* all tests now green
* move enrollment token back to a hash
* remove un-needed comment
* alias lodash get to avoid confusion
* isolated hash creation
* Add initial efforts for backend framework adapter testing
* move ES code to a DatabaseAdapter from BackendAdapter and add a TON of types for ES
* re-typed
* renamed types to match pattern
* aditional renames
* adapter tests should always just use adapterSetup();
* database now uses InternalRequest
* corrected spelling of framework
* fix typings
* remove CRUFT
* RequestOrInternal
* Dont pass around request objects everywhere, just pass the user. Also, removed hapi types as they were not compatible
* fix tests, add test, removed extra comment
* Moved critical path code from route, to more easeley tested domain
* fix auth
* remove beat verification, added get beat endpoint to return configs
* fix type
* update createGetBeatConfigurationRoute URL
* rename method
* update to match PR #20566
* updated lock file
* fix bad merge
* update TSLinting
* fix bad rebase
* [Beats Management] [WIP] Create public resources for management plugin (#20864)
* Init plugin public resources.
* rename beats to beats_management
* rendering react now
* Beats/initial ui (#20994)
* initial layout and main nav
* modal UI and pattern for UI established
* fix path
* wire up in-memroy adapters
* tweak adapters
* add getAll method to tags adapter (#21287)
* Beats/real adapters (#21481)
* add initial real adapters, and nulled data where we need endpoints
* UI adapters and needed endpoints added (though not tested)
* prep for route tests and some cleanup
* move files
* [Beats Management] Add BeatsTable/Bulk Action Search Component (#21182)
* Add BeatsTable and control bar components.
* Clean yarn.lock.
* Move raw numbers/strings to constants. Remove obsolete state/props.
* Update/add tests.
* Change prop name from "items" to "beats".
* Rename some variables.
* Move search bar filter definitions to table render.
* Update table to support assignment options.
* Update action control position.
* Refactor split render function into custom components.
* Beats/basic use cases (#21660)
* tweak adapter responses / types. re-add enroll ui
* routes enabled, enroll now pings the server
* full enrollment path now working
* improved pinging for beat enrollment
* fix location of history call
* reload beats list on beat enrollment completion
* add update on client side, expand update on server to allow for partial data, and user auth
* remove double beat lookup
* fix tests
* only return active beats
* disenroll now working
* fig getAll query
* re-enrolling a beat will now work
* fix types
* fix types
* update deps
* update kibana API for version
* progress on config forms
* config view inital input types working
* ts fixes
* fix more ts
* code now errors on invalid yaml
* remove un-needed include
* fix bad rebase
* saving config blocks as yaml to db is now working
* propperly formatted YAML
* loading tags back on edit screen in-progress
* fix types
* vis name validation for tag
* update EUI style
* tweak design
* fixed tag assignments (still has a ui glitch)
* fix form validation on select
* fix deps
* update deps
* attached beats now works in the edit tag screen, edit now disables changing the tag id
* better un-parsing of yaml, some elements now rendering to edit config blocks
* delete config block now works
* fix ability to edit config
* fix deps
* fix another rebase issue
* tweaks and fixes
* fix several bugs
* Beats/security (#22500)
* client side security working
* check license on route
* forgot a file
* [Beats CM] Add beats details pages (#22455)
* Move edits from previous details branch.
* Add tag view to beat details.
* Added notifications for add/remove tag from beat.
* Fix dependencies upgrade/downgrade add/removes.
* Create new page files for each sub-section of details view.
* Move page functionality from dedicated components to pages.
* [Beats CM] move to json for configs (#22693)
* move to json for configs, fix some tests
* tweaks
* add fixes (#22711)
* add fixes
* return only one config
* much improved validation for hosts, no longer require not required fields, no longer have JS in the config form config
* fix condition argument
* [Beats CM] Improve UX for assignment of tag to list of beats (#22687)
* Improve UX for assignment of tag to list of beats.
* Revert a change.
* [Beats CM] Sort beat list tags (#22729)
* Add logic to sort tags by ID when rendering in Beats List.
* Prefer lodash sortBy over inline sort implementation.
* [Beats CM] Remove key warnings from beat list components (#22772)
* Add logic to sort tags by ID when rendering in Beats List.
* Remove key warnings from beats list and associated components.
* Prefer lodash sortBy over inline sort implementation.
* [Beats CM] Add check for BeatsPage component to avoid setState when unmounted (#22836)
* Add check if component is unmounted when loading Beats List page.
* Move call to loadBeats() to componentDidMount lifecycle function.
* Update field name in table type config. (#23228)
* Utilize TagBadge functional component to standardize display of tag names. (#23253)
* [Beats CM] Add beat name to update endpoint (#23291)
* Update beat index template and update endpoints to expect name type. Add test file for update.
* Update enroll script and endpoint to create a 'name' field for beats.
* Add name field to CMBeat domain type.
* Update functional tests to include name field.
* Fix broken tag assignment functional test.
* Edit beats list table config to display most recently-updated tag time. (#23337)
* Update beat detail view info. (#23369)
* Update beat detail view info.
* Add period to end of update field.
* [Beat CM] Show only tags associated with selected beat (#23398)
* Reenable output config.
* Make beat detail tag page only show tags associated with that tag.
* Display beat name instead of ID on details screen. (#23410)
* [Beat CM] Display config name instead of beat type in beat detail view (#23411)
* Update config table in beat detail view to show config type instead of beat type.
* Modify Beat Detail view to display human-friendly names for config block types.
* [Beats CM] Add password input and re-enable output config schema (#23417)
* wip defining controls
* Complete adding formsy password field.
* Re-enable output config schema definition.
* Simplify import/export for formsy components.
* Add full list of current Filebeat & Metricbeat module (#23258)
This change also renames `Metricbeat input` to `Metricbeat module`
* Beats/ui tweaks (#23655)
* add initial breadcrumbs
* prevent errors
* New routing in place for supporting URLState needed for Kuery bar
* beats table kuery bar “working” (but not submitting)
* pulling activity view from current phase’s spec
* setup link now at correct URL
* kuery bar
* autocomplete bar now working
* Add walkthrough (#23785)
* add test system, framework, and example tests
* adding walkthrough
* clicking walkthrough step should take you to that step
* try/catch beats loading to prevent unhandeled error when there are no beats
* fix walkthrough not redirecting to main beats page
* update yarn lock files
* fix prettier
* fix x-pack package.json formatting
* update kbn server creation
* remove types from old table implementation
* move to Boom.boomify
* fix TS errors
* fix type
* rollback dep version
* fix more conflicting dep issues
* deps
* force correct node type resolution
* cleanup and skip tests (kbn test util is broken)
* added formsy and basePath
* update yarn lock file
* add beats management icon
* rename beats management main section
* Tags now called Configuration Tags in the tabs
* tokens must expire at most after 2 weeks
* fix bad auto-import
* beat details now shows the extra data needed
* tweak package.json deps for continuity
* update yarn lock for new yarn version
* [Beats CM] Re-arch table assignment control definitions (#23663)
* Patch changes to latest feature branch.
* Update table controls to offer standard search bar if kuery bar props not provided.
* Tweaked enrollment UI to inlcude beat type selection
* Reduce badge list gutter size, change logic for tag assignment to unassign all if some selected. (#24091)
* dont use genaric search bar
* removed unused import
* fix es-lint error
* fix outputs
* fix types from infra merge
* remove dupe dep
* update lock file
* push another lock file
* Add unfilteredBeats field to beat list state to prevent inappropriate redirect. (#24146)
* fix yarn lock because yarn is dumb
* Fix broken tests
2018-10-18 04:06:43 +02:00
} ,
2020-11-02 22:18:52 +01:00
"engines" : {
2021-07-08 13:26:37 +02:00
"node" : "14.17.3" ,
2020-11-02 22:18:52 +01:00
"yarn" : "^1.21.1"
2018-11-12 19:38:11 +01:00
} ,
2015-01-07 21:48:58 +01:00
"dependencies" : {
2021-06-21 21:49:02 +02:00
"@elastic/apm-rum" : "^5.8.0" ,
"@elastic/apm-rum-react" : "^1.2.11" ,
2021-07-07 14:09:21 +02:00
"@elastic/charts" : "31.1.0" ,
2021-06-03 18:53:39 +02:00
"@elastic/datemath" : "link:bazel-bin/packages/elastic-datemath" ,
2021-06-08 15:06:06 +02:00
"@elastic/elasticsearch" : "npm:@elastic/elasticsearch-canary@^8.0.0-canary.13" ,
2021-06-22 15:10:53 +02:00
"@elastic/ems-client" : "7.14.0" ,
2021-06-30 18:33:25 +02:00
"@elastic/eui" : "34.5.2" ,
2020-11-02 22:18:52 +01:00
"@elastic/filesaver" : "1.1.2" ,
2020-12-02 23:40:06 +01:00
"@elastic/good" : "^9.0.1-kibana3" ,
2021-03-26 20:23:45 +01:00
"@elastic/maki" : "6.3.0" ,
2020-11-02 22:18:52 +01:00
"@elastic/node-crypto" : "1.2.1" ,
2021-05-11 12:26:01 +02:00
"@elastic/numeral" : "^2.5.1" ,
2021-06-24 07:02:46 +02:00
"@elastic/react-search-ui" : "^1.6.0" ,
2020-04-10 21:18:11 +02:00
"@elastic/request-crypto" : "1.1.4" ,
2021-06-03 18:53:39 +02:00
"@elastic/safer-lodash-set" : "link:bazel-bin/packages/elastic-safer-lodash-set" ,
2021-06-24 07:02:46 +02:00
"@elastic/search-ui-app-search-connector" : "^1.6.0" ,
2021-03-26 20:23:45 +01:00
"@elastic/ui-ace" : "0.2.3" ,
2021-07-09 20:42:50 +02:00
"@emotion/react" : "^11.4.0" ,
2021-05-19 09:51:34 +02:00
"@hapi/accept" : "^5.0.2" ,
2020-12-19 13:10:11 +01:00
"@hapi/boom" : "^9.1.1" ,
"@hapi/cookie" : "^11.0.2" ,
"@hapi/good-squeeze" : "6.0.0" ,
2021-06-08 17:27:27 +02:00
"@hapi/h2o2" : "^9.1.0" ,
2020-12-19 13:10:11 +01:00
"@hapi/hapi" : "^20.0.3" ,
2021-01-04 12:14:36 +01:00
"@hapi/hoek" : "^9.1.1" ,
2020-12-19 13:10:11 +01:00
"@hapi/inert" : "^6.0.3" ,
"@hapi/podium" : "^4.1.1" ,
"@hapi/wreck" : "^17.1.0" ,
2021-06-03 18:53:39 +02:00
"@kbn/ace" : "link:bazel-bin/packages/kbn-ace" ,
"@kbn/analytics" : "link:bazel-bin/packages/kbn-analytics" ,
"@kbn/apm-config-loader" : "link:bazel-bin/packages/kbn-apm-config-loader" ,
"@kbn/apm-utils" : "link:bazel-bin/packages/kbn-apm-utils" ,
2021-06-24 20:47:38 +02:00
"@kbn/common-utils" : "link:bazel-bin/packages/kbn-common-utils" ,
2021-06-03 18:53:39 +02:00
"@kbn/config" : "link:bazel-bin/packages/kbn-config" ,
"@kbn/config-schema" : "link:bazel-bin/packages/kbn-config-schema" ,
"@kbn/crypto" : "link:bazel-bin/packages/kbn-crypto" ,
"@kbn/i18n" : "link:bazel-bin/packages/kbn-i18n" ,
2021-06-22 16:59:20 +02:00
"@kbn/interpreter" : "link:bazel-bin/packages/kbn-interpreter" ,
2021-06-03 18:53:39 +02:00
"@kbn/io-ts-utils" : "link:bazel-bin/packages/kbn-io-ts-utils" ,
"@kbn/legacy-logging" : "link:bazel-bin/packages/kbn-legacy-logging" ,
"@kbn/logging" : "link:bazel-bin/packages/kbn-logging" ,
2021-06-24 20:47:38 +02:00
"@kbn/mapbox-gl" : "link:bazel-bin/packages/kbn-mapbox-gl" ,
2021-06-03 18:53:39 +02:00
"@kbn/monaco" : "link:bazel-bin/packages/kbn-monaco" ,
2021-06-03 22:26:17 +02:00
"@kbn/rule-data-utils" : "link:bazel-bin/packages/kbn-rule-data-utils" ,
2021-06-03 18:53:39 +02:00
"@kbn/securitysolution-es-utils" : "link:bazel-bin/packages/kbn-securitysolution-es-utils" ,
2021-06-17 19:09:17 +02:00
"@kbn/securitysolution-hook-utils" : "link:bazel-bin/packages/kbn-securitysolution-hook-utils" ,
2021-06-03 18:53:39 +02:00
"@kbn/securitysolution-io-ts-alerting-types" : "link:bazel-bin/packages/kbn-securitysolution-io-ts-alerting-types" ,
"@kbn/securitysolution-io-ts-list-types" : "link:bazel-bin/packages/kbn-securitysolution-io-ts-list-types" ,
2021-06-24 20:47:38 +02:00
"@kbn/securitysolution-io-ts-types" : "link:bazel-bin/packages/kbn-securitysolution-io-ts-types" ,
2021-06-03 18:53:39 +02:00
"@kbn/securitysolution-io-ts-utils" : "link:bazel-bin/packages/kbn-securitysolution-io-ts-utils" ,
"@kbn/securitysolution-list-api" : "link:bazel-bin/packages/kbn-securitysolution-list-api" ,
2021-06-24 20:47:38 +02:00
"@kbn/securitysolution-list-constants" : "link:bazel-bin/packages/kbn-securitysolution-list-constants" ,
2021-06-03 18:53:39 +02:00
"@kbn/securitysolution-list-hooks" : "link:bazel-bin/packages/kbn-securitysolution-list-hooks" ,
"@kbn/securitysolution-list-utils" : "link:bazel-bin/packages/kbn-securitysolution-list-utils" ,
2021-06-23 00:56:33 +02:00
"@kbn/securitysolution-t-grid" : "link:bazel-bin/packages/kbn-securitysolution-t-grid" ,
2021-06-03 18:53:39 +02:00
"@kbn/securitysolution-utils" : "link:bazel-bin/packages/kbn-securitysolution-utils" ,
"@kbn/server-http-tools" : "link:bazel-bin/packages/kbn-server-http-tools" ,
2021-06-09 22:39:31 +02:00
"@kbn/server-route-repository" : "link:bazel-bin/packages/kbn-server-route-repository" ,
2021-06-03 18:53:39 +02:00
"@kbn/std" : "link:bazel-bin/packages/kbn-std" ,
"@kbn/tinymath" : "link:bazel-bin/packages/kbn-tinymath" ,
2021-06-22 19:11:24 +02:00
"@kbn/ui-framework" : "link:bazel-bin/packages/kbn-ui-framework" ,
2021-06-18 17:09:31 +02:00
"@kbn/ui-shared-deps" : "link:bazel-bin/packages/kbn-ui-shared-deps" ,
2021-06-03 18:53:39 +02:00
"@kbn/utility-types" : "link:bazel-bin/packages/kbn-utility-types" ,
"@kbn/utils" : "link:bazel-bin/packages/kbn-utils" ,
2020-12-16 01:31:49 +01:00
"@loaders.gl/core" : "^2.3.1" ,
"@loaders.gl/json" : "^2.3.1" ,
2021-03-26 20:23:45 +01:00
"@mapbox/geojson-rewind" : "^0.5.0" ,
2021-05-27 03:09:38 +02:00
"@mapbox/mapbox-gl-draw" : "1.3.0" ,
"@mapbox/mapbox-gl-rtl-text" : "0.2.3" ,
2021-03-26 20:23:45 +01:00
"@mapbox/vector-tile" : "1.3.1" ,
2021-05-28 10:06:06 +02:00
"@reduxjs/toolkit" : "^1.5.1" ,
2021-01-13 20:41:31 +01:00
"@slack/webhook" : "^5.0.4" ,
2021-01-07 19:10:20 +01:00
"@turf/along" : "6.0.1" ,
"@turf/area" : "6.0.1" ,
"@turf/bbox" : "6.0.1" ,
"@turf/bbox-polygon" : "6.0.1" ,
"@turf/boolean-contains" : "6.0.1" ,
"@turf/center-of-mass" : "6.0.1" ,
2020-11-02 22:18:52 +01:00
"@turf/circle" : "6.0.1" ,
2021-01-07 19:10:20 +01:00
"@turf/distance" : "6.0.1" ,
"@turf/helpers" : "6.0.1" ,
"@turf/length" : "^6.0.2" ,
2021-05-28 10:06:06 +02:00
"@types/redux-logger" : "^3.0.8" ,
2019-05-31 10:52:27 +02:00
"JSONStream" : "1.3.5" ,
2020-11-02 22:18:52 +01:00
"abort-controller" : "^3.0.0" ,
2020-02-18 19:19:07 +01:00
"abortcontroller-polyfill" : "^1.4.0" ,
2020-11-02 22:18:52 +01:00
"ajv" : "^6.12.4" ,
2020-08-11 10:05:44 +02:00
"angular" : "^1.8.0" ,
2021-03-26 20:23:45 +01:00
"angular-aria" : "^1.8.0" ,
2019-09-25 21:15:45 +02:00
"angular-elastic" : "^2.5.1" ,
2021-03-26 20:23:45 +01:00
"angular-recursion" : "^1.0.5" ,
2020-11-02 22:18:52 +01:00
"angular-resource" : "1.8.0" ,
2021-03-26 20:23:45 +01:00
"angular-route" : "^1.8.0" ,
2020-08-11 10:05:44 +02:00
"angular-sanitize" : "^1.8.0" ,
2021-03-26 20:23:45 +01:00
"angular-sortable-view" : "^0.0.17" ,
2020-11-02 22:18:52 +01:00
"angular-ui-ace" : "0.2.3" ,
2020-12-08 16:07:07 +01:00
"antlr4ts" : "^0.5.0-alpha.3" ,
2021-01-19 19:11:16 +01:00
"archiver" : "^5.2.0" ,
2021-01-13 20:41:31 +01:00
"axios" : "^0.21.1" ,
2021-03-26 20:23:45 +01:00
"base64-js" : "^1.3.1" ,
2019-05-31 17:45:27 +02:00
"bluebird" : "3.5.5" ,
2020-11-02 22:18:52 +01:00
"brace" : "0.11.1" ,
2021-03-26 20:23:45 +01:00
"broadcast-channel" : "^3.0.3" ,
2020-10-02 01:46:00 +02:00
"chalk" : "^4.1.0" ,
2019-07-31 20:48:52 +02:00
"check-disk-space" : "^2.1.0" ,
2021-06-08 17:40:25 +02:00
"cheerio" : "^1.0.0-rc.9" ,
2020-12-09 20:26:43 +01:00
"chokidar" : "^3.4.3" ,
2020-11-02 22:18:52 +01:00
"chroma-js" : "^1.4.1" ,
"classnames" : "2.2.6" ,
2017-03-02 21:07:28 +01:00
"color" : "1.0.3" ,
2020-09-29 01:08:22 +02:00
"commander" : "^3.0.2" ,
2021-03-26 20:23:45 +01:00
"compare-versions" : "3.5.1" ,
2020-11-02 22:18:52 +01:00
"concat-stream" : "1.6.2" ,
2021-03-26 20:23:45 +01:00
"constate" : "^1.3.2" ,
2020-11-02 22:18:52 +01:00
"content-disposition" : "0.5.3" ,
2021-03-26 20:23:45 +01:00
"copy-to-clipboard" : "^3.0.8" ,
2020-10-05 06:33:12 +02:00
"core-js" : "^3.6.5" ,
2021-04-21 20:58:39 +02:00
"cronstrue" : "^1.51.0" ,
2020-11-02 22:18:52 +01:00
"cytoscape" : "^3.10.0" ,
"cytoscape-dagre" : "^2.2.2" ,
2021-03-26 20:23:45 +01:00
"d3" : "3.5.17" ,
2020-11-02 22:18:52 +01:00
"d3-array" : "1.2.4" ,
2021-06-23 00:56:33 +02:00
"d3-cloud" : "1.2.5" ,
"d3-interpolate" : "^3.0.1" ,
2021-03-26 20:23:45 +01:00
"d3-scale" : "1.0.7" ,
2020-11-02 22:18:52 +01:00
"d3-shape" : "^1.1.0" ,
"d3-time" : "^1.1.0" ,
"dedent" : "^0.7.0" ,
2020-01-13 11:57:26 +01:00
"deep-freeze-strict" : "^1.1.1" ,
2021-03-26 20:23:45 +01:00
"deepmerge" : "^4.2.2" ,
2019-10-24 15:29:43 +02:00
"del" : "^5.1.0" ,
2021-06-21 21:49:02 +02:00
"elastic-apm-node" : "^3.16.0" ,
2020-03-27 17:25:09 +01:00
"elasticsearch" : "^16.7.0" ,
2020-06-08 20:29:09 +02:00
"execa" : "^4.0.2" ,
2020-11-02 22:18:52 +01:00
"exit-hook" : "^2.2.0" ,
2015-09-05 10:49:36 +02:00
"expiry-js" : "0.1.7" ,
2020-11-02 22:18:52 +01:00
"extract-zip" : "^2.0.1" ,
2019-12-06 19:53:06 +01:00
"fast-deep-equal" : "^3.1.1" ,
2021-06-01 08:57:46 +02:00
"fflate" : "^0.6.9" ,
2021-03-26 20:23:45 +01:00
"file-saver" : "^1.3.8" ,
2020-11-02 22:18:52 +01:00
"file-type" : "^10.9.0" ,
"focus-trap-react" : "^3.1.1" ,
2019-06-02 06:12:03 +02:00
"font-awesome" : "4.7.0" ,
2021-03-26 20:23:45 +01:00
"formsy-react" : "^1.1.5" ,
2020-11-02 22:18:52 +01:00
"fp-ts" : "^2.3.1" ,
"geojson-vt" : "^3.2.1" ,
"get-port" : "^5.0.0" ,
"getopts" : "^2.2.5" ,
2019-12-17 19:27:45 +01:00
"getos" : "^3.1.0" ,
2020-11-02 22:18:52 +01:00
"github-markdown-css" : "^2.10.0" ,
2018-07-27 13:30:17 +02:00
"glob" : "^7.1.2" ,
2020-03-26 17:39:19 +01:00
"glob-all" : "^3.2.1" ,
2021-04-06 10:57:40 +02:00
"globby" : "^11.0.3" ,
2021-03-03 13:50:45 +01:00
"handlebars" : "4.7.7" ,
2021-03-26 20:23:45 +01:00
"he" : "^1.2.0" ,
2020-11-02 22:18:52 +01:00
"history" : "^4.9.0" ,
2021-03-26 20:23:45 +01:00
"history-extra" : "^5.0.1" ,
2020-09-30 18:15:40 +02:00
"hjson" : "3.2.1" ,
2018-05-01 22:52:55 +02:00
"http-proxy-agent" : "^2.1.0" ,
2020-03-24 15:57:50 +01:00
"https-proxy-agent" : "^5.0.0" ,
2021-03-26 20:23:45 +01:00
"i18n-iso-countries" : "^4.3.1" ,
"icalendar" : "0.7.1" ,
2020-11-02 22:18:52 +01:00
"idx" : "^2.5.6" ,
2021-02-07 12:04:33 +01:00
"immer" : "^8.0.1" ,
2019-06-28 05:44:43 +02:00
"inline-style" : "^2.0.0" ,
2020-11-02 22:18:52 +01:00
"intl" : "^1.2.5" ,
"intl-format-cache" : "^2.1.0" ,
"intl-messageformat" : "^2.2.0" ,
2021-03-26 20:23:45 +01:00
"intl-messageformat-parser" : "^1.4.0" ,
2020-11-02 22:18:52 +01:00
"intl-relativeformat" : "^2.1.0" ,
"io-ts" : "^2.0.5" ,
2021-01-11 16:51:00 +01:00
"ipaddr.js" : "2.0.0" ,
2020-11-02 22:18:52 +01:00
"isbinaryfile" : "4.0.2" ,
2021-05-20 10:55:59 +02:00
"joi" : "^17.4.0" ,
2020-11-02 22:18:52 +01:00
"jquery" : "^3.5.0" ,
2021-03-26 20:23:45 +01:00
"js-levenshtein" : "^1.1.6" ,
"js-search" : "^1.4.3" ,
2021-06-24 20:47:38 +02:00
"js-sha256" : "^0.9.0" ,
2020-10-03 03:36:25 +02:00
"js-yaml" : "^3.14.0" ,
2019-03-05 21:42:02 +01:00
"json-stable-stringify" : "^1.0.1" ,
2021-03-26 20:23:45 +01:00
"json-stringify-pretty-compact" : "1.2.0" ,
2015-09-05 10:49:36 +02:00
"json-stringify-safe" : "5.0.1" ,
2020-11-02 22:18:52 +01:00
"jsonwebtoken" : "^8.5.1" ,
2021-03-26 20:23:45 +01:00
"jsts" : "^1.6.2" ,
2021-05-19 21:05:51 +02:00
"kea" : "^2.4.2" ,
2021-03-26 20:23:45 +01:00
"leaflet" : "1.5.1" ,
"leaflet-draw" : "0.4.14" ,
"leaflet-responsive-popup" : "0.6.4" ,
"leaflet.heat" : "0.2.0" ,
"less" : "npm:@elastic/less@2.7.3-kibana" ,
2020-11-02 22:18:52 +01:00
"load-json-file" : "^6.2.0" ,
2021-03-26 20:23:45 +01:00
"loader-utils" : "^1.2.3" ,
2021-02-24 20:45:55 +01:00
"lodash" : "^4.17.21" ,
2020-09-29 01:08:22 +02:00
"lru-cache" : "^4.1.5" ,
2021-03-26 20:23:45 +01:00
"lz-string" : "^1.4.4" ,
"mapbox-gl" : "1.13.1" ,
2021-05-27 03:09:38 +02:00
"mapbox-gl-draw-rectangle-mode" : "1.0.4" ,
2021-04-21 20:58:39 +02:00
"markdown-it" : "^10.0.0" ,
2020-11-02 22:18:52 +01:00
"md5" : "^2.1.0" ,
2021-06-18 17:09:31 +02:00
"mdast-util-to-hast" : "10.0.1" ,
2021-03-26 20:23:45 +01:00
"memoize-one" : "^5.0.0" ,
2020-11-02 22:18:52 +01:00
"mime" : "^2.4.4" ,
2020-11-06 17:26:12 +01:00
"mime-types" : "^2.1.27" ,
2021-06-03 18:29:57 +02:00
"mini-css-extract-plugin" : "1.1.0" ,
2018-07-27 13:30:17 +02:00
"minimatch" : "^3.0.4" ,
2019-10-28 20:07:35 +01:00
"moment" : "^2.24.0" ,
2020-11-02 22:18:52 +01:00
"moment-duration-format" : "^2.3.2" ,
2019-10-28 20:07:35 +01:00
"moment-timezone" : "^0.5.27" ,
2021-02-10 21:05:46 +01:00
"monaco-editor" : "^0.22.3" ,
2020-09-29 01:08:22 +02:00
"mustache" : "^2.3.2" ,
2020-11-02 22:18:52 +01:00
"ngreact" : "^0.5.1" ,
"nock" : "12.0.3" ,
2020-09-29 01:08:22 +02:00
"node-fetch" : "^2.6.1" ,
2020-09-04 14:29:19 +02:00
"node-forge" : "^0.10.0" ,
2021-07-07 10:18:53 +02:00
"nodemailer" : "^6.6.2" ,
2020-11-02 22:18:52 +01:00
"normalize-path" : "^3.0.0" ,
"object-hash" : "^1.3.1" ,
"object-path-immutable" : "^3.1.1" ,
2019-09-04 22:21:51 +02:00
"opn" : "^5.5.0" ,
2021-04-21 20:58:39 +02:00
"p-limit" : "^3.0.1" ,
2020-08-26 22:52:29 +02:00
"p-map" : "^4.0.0" ,
2020-11-02 22:18:52 +01:00
"p-retry" : "^4.2.0" ,
"papaparse" : "^5.2.0" ,
"pdfmake" : "^0.1.65" ,
2021-04-22 18:01:45 +02:00
"peggy" : "^1.0.0" ,
2019-06-07 08:29:56 +02:00
"pegjs" : "0.10.0" ,
2021-03-26 20:23:45 +01:00
"pluralize" : "3.1.0" ,
2020-11-02 22:18:52 +01:00
"pngjs" : "^3.4.0" ,
2021-06-14 14:33:34 +02:00
"polished" : "^3.7.2" ,
2020-11-02 22:18:52 +01:00
"prop-types" : "^15.7.2" ,
"proper-lockfile" : "^3.2.0" ,
2017-08-09 21:31:30 +02:00
"proxy-from-env" : "1.0.0" ,
2021-03-26 20:23:45 +01:00
"proxyquire" : "1.8.0" ,
2020-11-02 22:18:52 +01:00
"puid" : "1.0.7" ,
2021-05-07 18:54:33 +02:00
"puppeteer" : "^8.0.0" ,
2020-09-24 17:15:15 +02:00
"query-string" : "^6.13.2" ,
2020-11-02 22:18:52 +01:00
"raw-loader" : "^3.1.0" ,
2021-03-26 20:23:45 +01:00
"rbush" : "^3.0.1" ,
"re-resizable" : "^6.1.1" ,
2020-07-16 17:17:39 +02:00
"re2" : "^1.15.4" ,
2019-11-28 10:56:47 +01:00
"react" : "^16.12.0" ,
2020-11-02 22:18:52 +01:00
"react-ace" : "^5.9.0" ,
2021-03-26 20:23:45 +01:00
"react-beautiful-dnd" : "^13.0.0" ,
2018-01-17 10:14:12 +01:00
"react-color" : "^2.13.8" ,
2019-11-28 10:56:47 +01:00
"react-dom" : "^16.12.0" ,
2021-03-26 20:23:45 +01:00
"react-dropzone" : "^4.2.9" ,
"react-fast-compare" : "^2.0.4" ,
"react-grid-layout" : "^0.16.2" ,
2018-01-17 10:14:12 +01:00
"react-input-range" : "^1.3.0" ,
2020-11-02 22:18:52 +01:00
"react-intl" : "^2.8.0" ,
"react-is" : "^16.8.0" ,
2021-03-26 20:23:45 +01:00
"react-markdown" : "^4.3.1" ,
2020-11-02 22:18:52 +01:00
"react-moment-proptypes" : "^1.7.0" ,
2021-03-26 20:23:45 +01:00
"react-monaco-editor" : "^0.41.2" ,
"react-popper-tooltip" : "^2.10.1" ,
2021-07-09 01:39:46 +02:00
"react-query" : "^3.18.1" ,
2021-04-21 20:58:39 +02:00
"react-redux" : "^7.2.0" ,
"react-resizable" : "^1.7.5" ,
2021-03-26 20:23:45 +01:00
"react-resize-detector" : "^4.2.0" ,
"react-reverse-portal" : "^1.0.4" ,
2021-04-21 20:58:39 +02:00
"react-router" : "^5.2.0" ,
"react-router-dom" : "^5.2.0" ,
2021-03-26 20:23:45 +01:00
"react-router-redux" : "^4.0.8" ,
"react-shortcuts" : "^2.0.0" ,
"react-sizeme" : "^2.3.6" ,
"react-syntax-highlighter" : "^15.3.1" ,
"react-tiny-virtual-list" : "^2.2.0" ,
2021-03-08 14:23:24 +01:00
"react-use" : "^15.3.8" ,
2021-04-21 20:58:39 +02:00
"react-virtualized" : "^9.21.2" ,
2021-03-26 20:23:45 +01:00
"react-vis" : "^1.8.1" ,
"react-visibility-sensor" : "^5.1.1" ,
"reactcss" : "1.2.3" ,
2020-11-02 22:18:52 +01:00
"recompose" : "^0.26.0" ,
2021-03-26 20:23:45 +01:00
"reduce-reducers" : "^1.0.4" ,
2020-11-02 22:18:52 +01:00
"redux" : "^4.0.5" ,
2020-02-17 09:58:54 +01:00
"redux-actions" : "^2.6.5" ,
2021-03-26 20:23:45 +01:00
"redux-devtools-extension" : "^2.13.8" ,
2021-05-28 10:06:06 +02:00
"redux-logger" : "^3.0.6" ,
2020-11-02 22:18:52 +01:00
"redux-observable" : "^1.2.0" ,
2021-03-26 20:23:45 +01:00
"redux-saga" : "^1.1.3" ,
2020-02-17 09:58:54 +01:00
"redux-thunk" : "^2.3.0" ,
2021-03-26 20:23:45 +01:00
"redux-thunks" : "^1.0.0" ,
2019-08-23 03:40:57 +02:00
"regenerator-runtime" : "^0.13.3" ,
2018-11-07 17:12:26 +01:00
"request" : "^2.88.0" ,
2020-03-10 07:51:57 +01:00
"require-in-the-middle" : "^5.0.2" ,
2021-03-26 20:23:45 +01:00
"reselect" : "^4.0.0" ,
"resize-observer-polyfill" : "^1.5.0" ,
2019-06-10 21:28:50 +02:00
"rison-node" : "1.0.2" ,
2020-06-20 21:05:09 +02:00
"rxjs" : "^6.5.5" ,
2021-05-03 17:59:42 +02:00
"safe-squel" : "^5.12.5" ,
2020-01-14 19:06:53 +01:00
"seedrandom" : "^3.0.5" ,
2020-11-14 13:32:02 +01:00
"semver" : "^7.3.2" ,
2020-11-02 22:18:52 +01:00
"set-value" : "^3.0.2" ,
2020-10-03 01:30:16 +02:00
"source-map-support" : "^0.5.19" ,
2020-11-02 22:18:52 +01:00
"stats-lite" : "^2.2.0" ,
"strip-ansi" : "^6.0.0" ,
2019-05-01 04:51:42 +02:00
"style-it" : "^2.1.3" ,
2020-11-02 22:18:52 +01:00
"styled-components" : "^5.1.0" ,
2021-03-26 20:23:45 +01:00
"suricata-sid-db" : "^1.0.2" ,
2021-04-21 20:58:39 +02:00
"symbol-observable" : "^1.2.0" ,
2020-11-02 22:18:52 +01:00
"tabbable" : "1.1.3" ,
2019-09-26 21:45:54 +02:00
"tar" : "4.4.13" ,
2021-03-26 20:23:45 +01:00
"tinycolor2" : "1.4.1" ,
2019-06-11 18:32:22 +02:00
"tinygradient" : "0.4.3" ,
2021-04-27 22:25:29 +02:00
"topojson-client" : "3.1.0" ,
2020-11-02 22:18:52 +01:00
"tree-kill" : "^1.2.2" ,
"ts-easing" : "^0.2.0" ,
2020-06-11 10:04:09 +02:00
"tslib" : "^2.0.0" ,
2018-07-11 10:19:35 +02:00
"type-detect" : "^4.0.8" ,
2021-03-26 20:23:45 +01:00
"typescript-fsa" : "^3.0.0" ,
"typescript-fsa-reducers" : "^1.2.2" ,
2020-11-02 22:18:52 +01:00
"ui-select" : "0.19.8" ,
2021-03-09 16:51:37 +01:00
"unified" : "^9.2.1" ,
2021-03-26 20:23:45 +01:00
"unstated" : "^2.1.1" ,
"use-resize-observer" : "^6.0.0" ,
2020-11-02 22:18:52 +01:00
"utility-types" : "^3.10.0" ,
2019-06-11 22:25:59 +02:00
"uuid" : "3.3.2" ,
2021-03-26 20:23:45 +01:00
"vega" : "^5.19.1" ,
2021-05-05 16:46:50 +02:00
"vega-interpreter" : "^1.0.4" ,
2021-03-30 16:27:33 +02:00
"vega-lite" : "^5.0.0" ,
2021-03-26 20:23:45 +01:00
"vega-schema-url-parser" : "^2.1.0" ,
"vega-spec-injector" : "^0.0.2" ,
2021-03-30 16:27:33 +02:00
"vega-tooltip" : "^0.25.1" ,
2021-03-26 20:23:45 +01:00
"venn.js" : "0.2.20" ,
2020-11-02 22:18:52 +01:00
"vinyl" : "^2.2.0" ,
"vt-pbf" : "^3.1.1" ,
"wellknown" : "^0.5.0" ,
2019-01-02 23:08:52 +01:00
"whatwg-fetch" : "^3.0.0" ,
2020-11-02 22:18:52 +01:00
"xml2js" : "^0.4.22" ,
2020-09-29 01:08:22 +02:00
"yauzl" : "^2.10.0"
2015-01-07 21:48:58 +01:00
} ,
2014-02-11 00:09:04 +01:00
"devDependencies" : {
2021-01-26 17:42:41 +01:00
"@babel/cli" : "^7.12.10" ,
2021-02-22 20:51:45 +01:00
"@babel/core" : "^7.12.10" ,
2021-01-26 17:42:41 +01:00
"@babel/parser" : "^7.12.11" ,
"@babel/plugin-proposal-class-properties" : "^7.12.1" ,
"@babel/plugin-proposal-export-namespace-from" : "^7.12.1" ,
"@babel/plugin-proposal-nullish-coalescing-operator" : "^7.12.1" ,
"@babel/plugin-proposal-object-rest-spread" : "^7.12.1" ,
"@babel/plugin-proposal-optional-chaining" : "^7.12.7" ,
"@babel/plugin-proposal-private-methods" : "^7.12.1" ,
"@babel/plugin-transform-modules-commonjs" : "^7.12.1" ,
"@babel/plugin-transform-runtime" : "^7.12.10" ,
"@babel/preset-env" : "^7.12.11" ,
"@babel/preset-react" : "^7.12.10" ,
"@babel/preset-typescript" : "^7.12.7" ,
"@babel/register" : "^7.12.10" ,
2021-03-04 15:54:00 +01:00
"@babel/runtime" : "^7.12.5" ,
2021-01-26 17:42:41 +01:00
"@babel/traverse" : "^7.12.12" ,
"@babel/types" : "^7.12.12" ,
2021-04-20 21:20:59 +02:00
"@bazel/ibazel" : "^0.15.10" ,
2021-07-01 02:48:48 +02:00
"@bazel/typescript" : "^3.6.0" ,
2020-11-09 16:54:48 +01:00
"@cypress/snapshot" : "^2.1.7" ,
2021-04-06 18:22:59 +02:00
"@cypress/webpack-preprocessor" : "^5.6.0" ,
2021-06-03 18:53:39 +02:00
"@elastic/eslint-config-kibana" : "link:bazel-bin/packages/elastic-eslint-config-kibana" ,
2019-09-26 21:40:18 +02:00
"@elastic/eslint-plugin-eui" : "0.0.2" ,
2019-06-26 04:33:32 +02:00
"@elastic/github-checks-reporter" : "0.0.20b3" ,
2020-06-09 12:21:42 +02:00
"@elastic/makelogs" : "^6.0.0" ,
2021-07-09 20:42:50 +02:00
"@emotion/babel-preset-css-prop" : "^11.2.0" ,
"@emotion/jest" : "^11.3.0" ,
2020-11-02 22:18:52 +01:00
"@istanbuljs/schema" : "^0.1.2" ,
2021-04-21 21:32:10 +02:00
"@jest/reporters" : "^26.6.2" ,
2021-06-03 18:53:39 +02:00
"@kbn/babel-code-parser" : "link:bazel-bin/packages/kbn-babel-code-parser" ,
"@kbn/babel-preset" : "link:bazel-bin/packages/kbn-babel-preset" ,
2021-06-24 05:50:49 +02:00
"@kbn/cli-dev-mode" : "link:bazel-bin/packages/kbn-cli-dev-mode" ,
2021-06-03 18:53:39 +02:00
"@kbn/dev-utils" : "link:bazel-bin/packages/kbn-dev-utils" ,
"@kbn/docs-utils" : "link:bazel-bin/packages/kbn-docs-utils" ,
"@kbn/es" : "link:bazel-bin/packages/kbn-es" ,
2021-06-30 05:33:02 +02:00
"@kbn/es-archiver" : "link:bazel-bin/packages/kbn-es-archiver" ,
2021-06-03 18:53:39 +02:00
"@kbn/eslint-import-resolver-kibana" : "link:bazel-bin/packages/kbn-eslint-import-resolver-kibana" ,
"@kbn/eslint-plugin-eslint" : "link:bazel-bin/packages/kbn-eslint-plugin-eslint" ,
"@kbn/expect" : "link:bazel-bin/packages/kbn-expect" ,
2021-06-23 12:11:13 +02:00
"@kbn/optimizer" : "link:bazel-bin/packages/kbn-optimizer" ,
2021-06-03 18:53:39 +02:00
"@kbn/plugin-generator" : "link:bazel-bin/packages/kbn-plugin-generator" ,
2021-06-24 05:49:04 +02:00
"@kbn/plugin-helpers" : "link:bazel-bin/packages/kbn-plugin-helpers" ,
2020-11-02 22:18:52 +01:00
"@kbn/pm" : "link:packages/kbn-pm" ,
2021-06-28 16:58:41 +02:00
"@kbn/spec-to-console" : "link:bazel-bin/packages/kbn-spec-to-console" ,
2021-06-21 21:17:54 +02:00
"@kbn/storybook" : "link:bazel-bin/packages/kbn-storybook" ,
2021-06-03 18:53:39 +02:00
"@kbn/telemetry-tools" : "link:bazel-bin/packages/kbn-telemetry-tools" ,
2021-06-30 03:16:00 +02:00
"@kbn/test" : "link:bazel-bin/packages/kbn-test" ,
2021-06-29 15:59:38 +02:00
"@kbn/test-subj-selector" : "link:bazel-bin/packages/kbn-test-subj-selector" ,
2020-12-16 01:31:49 +01:00
"@loaders.gl/polyfills" : "^2.3.5" ,
2020-01-04 09:14:39 +01:00
"@microsoft/api-documenter" : "7.7.2" ,
"@microsoft/api-extractor" : "7.7.0" ,
2020-11-02 22:18:52 +01:00
"@octokit/rest" : "^16.35.0" ,
2021-01-13 20:41:31 +01:00
"@percy/agent" : "^0.28.6" ,
2021-03-09 16:51:37 +01:00
"@storybook/addon-a11y" : "^6.1.20" ,
"@storybook/addon-actions" : "^6.1.20" ,
"@storybook/addon-docs" : "^6.1.20" ,
"@storybook/addon-essentials" : "^6.1.20" ,
"@storybook/addon-knobs" : "^6.1.20" ,
"@storybook/addon-storyshots" : "^6.1.20" ,
"@storybook/addons" : "^6.1.20" ,
2021-05-06 22:25:05 +02:00
"@storybook/api" : "^6.1.20" ,
2021-03-09 16:51:37 +01:00
"@storybook/components" : "^6.1.20" ,
"@storybook/core" : "^6.1.20" ,
"@storybook/core-events" : "^6.1.20" ,
"@storybook/node-logger" : "^6.1.20" ,
"@storybook/react" : "^6.1.20" ,
2021-06-28 19:34:43 +02:00
"@storybook/testing-react" : "^0.0.17" ,
2021-03-09 16:51:37 +01:00
"@storybook/theming" : "^6.1.20" ,
2021-04-21 21:32:10 +02:00
"@testing-library/dom" : "^7.30.3" ,
"@testing-library/jest-dom" : "^5.11.10" ,
"@testing-library/react" : "^11.2.6" ,
"@testing-library/react-hooks" : "^5.1.1" ,
"@testing-library/user-event" : "^13.1.1" ,
2019-09-25 21:15:45 +02:00
"@types/angular" : "^1.6.56" ,
2018-10-02 10:55:15 +02:00
"@types/angular-mocks" : "^1.7.0" ,
2021-01-19 19:11:16 +01:00
"@types/archiver" : "^5.1.0" ,
2021-01-26 17:42:41 +01:00
"@types/babel__core" : "^7.1.12" ,
2020-11-02 22:18:52 +01:00
"@types/base64-js" : "^1.2.5" ,
2018-06-22 15:18:29 +02:00
"@types/bluebird" : "^3.1.1" ,
2018-07-11 10:19:35 +02:00
"@types/chance" : "^1.0.0" ,
2020-11-02 22:18:52 +01:00
"@types/chroma-js" : "^1.4.2" ,
2020-07-18 17:47:53 +02:00
"@types/chromedriver" : "^81.0.0" ,
2019-09-27 01:03:25 +02:00
"@types/classnames" : "^2.2.9" ,
2020-11-02 22:18:52 +01:00
"@types/cmd-shim" : "^2.0.0" ,
2020-03-17 12:22:45 +01:00
"@types/color" : "^3.0.0" ,
2020-11-02 22:18:52 +01:00
"@types/compression-webpack-plugin" : "^2.0.2" ,
"@types/cypress-cucumber-preprocessor" : "^1.14.1" ,
"@types/cytoscape" : "^3.14.0" ,
2019-09-26 21:51:10 +02:00
"@types/d3" : "^3.5.43" ,
2020-11-02 22:18:52 +01:00
"@types/d3-array" : "^1.2.7" ,
2021-06-23 00:56:33 +02:00
"@types/d3-interpolate" : "^2.0.0" ,
2020-11-02 22:18:52 +01:00
"@types/d3-scale" : "^2.1.1" ,
"@types/d3-shape" : "^1.3.1" ,
"@types/d3-time" : "^1.0.10" ,
"@types/d3-time-format" : "^2.1.1" ,
2018-08-10 02:19:24 +02:00
"@types/dedent" : "^0.7.0" ,
2020-01-13 11:57:26 +01:00
"@types/deep-freeze-strict" : "^1.1.0" ,
2018-11-28 05:15:54 +01:00
"@types/delete-empty" : "^2.0.0" ,
2021-02-23 16:32:15 +01:00
"@types/ejs" : "^3.0.6" ,
2019-06-06 10:49:13 +02:00
"@types/elasticsearch" : "^5.0.33" ,
2021-04-21 21:32:10 +02:00
"@types/enzyme" : "^3.10.8" ,
2020-01-07 19:08:36 +01:00
"@types/eslint" : "^6.1.3" ,
2020-11-02 22:18:52 +01:00
"@types/extract-zip" : "^1.6.2" ,
2021-01-12 17:33:50 +01:00
"@types/faker" : "^5.1.5" ,
2020-11-02 22:18:52 +01:00
"@types/fancy-log" : "^1.3.1" ,
2019-08-23 03:40:57 +02:00
"@types/fetch-mock" : "^7.3.1" ,
2020-11-02 22:18:52 +01:00
"@types/file-saver" : "^2.0.0" ,
2020-02-13 03:42:42 +01:00
"@types/flot" : "^0.0.31" ,
2020-11-02 22:18:52 +01:00
"@types/geojson" : "7946.0.7" ,
2019-04-15 23:39:34 +02:00
"@types/getopts" : "^2.0.1" ,
2020-03-03 10:54:03 +01:00
"@types/getos" : "^3.0.0" ,
2020-09-29 01:08:22 +02:00
"@types/glob" : "^7.1.2" ,
2020-11-03 15:22:48 +01:00
"@types/gulp" : "^4.0.6" ,
"@types/gulp-zip" : "^4.0.1" ,
"@types/hapi__cookie" : "^10.1.1" ,
2020-12-19 13:10:11 +01:00
"@types/hapi__h2o2" : "^8.3.2" ,
"@types/hapi__hapi" : "^20.0.2" ,
"@types/hapi__inert" : "^5.2.2" ,
2020-11-02 13:18:00 +01:00
"@types/hapi__podium" : "^3.4.1" ,
2018-07-11 10:19:35 +02:00
"@types/has-ansi" : "^3.0.0" ,
2020-11-02 22:18:52 +01:00
"@types/he" : "^1.1.1" ,
2019-09-03 20:03:05 +02:00
"@types/history" : "^4.7.3" ,
2020-07-15 15:23:03 +02:00
"@types/hjson" : "^2.4.2" ,
2020-11-02 22:18:52 +01:00
"@types/http-proxy" : "^1.17.4" ,
"@types/http-proxy-agent" : "^2.0.2" ,
"@types/inquirer" : "^7.3.1" ,
"@types/intl-relativeformat" : "^2.1.0" ,
2021-04-21 21:32:10 +02:00
"@types/jest" : "^26.0.22" ,
"@types/jest-specific-snapshot" : "^0.5.5" ,
"@types/jest-when" : "^2.7.2" ,
2021-05-20 10:55:59 +02:00
"@types/joi" : "^17.2.3" ,
2019-09-25 21:15:45 +02:00
"@types/jquery" : "^3.3.31" ,
2020-11-02 22:18:52 +01:00
"@types/js-search" : "^1.4.0" ,
2018-07-11 10:19:35 +02:00
"@types/js-yaml" : "^3.11.1" ,
2020-11-02 22:18:52 +01:00
"@types/jsdom" : "^16.2.3" ,
2020-02-13 03:42:42 +01:00
"@types/json-stable-stringify" : "^1.0.32" ,
2019-02-21 11:27:35 +01:00
"@types/json5" : "^0.0.30" ,
2020-11-02 22:18:52 +01:00
"@types/jsonwebtoken" : "^7.2.8" ,
2019-06-06 19:16:19 +02:00
"@types/license-checker" : "15.0.0" ,
2019-06-01 17:09:06 +02:00
"@types/listr" : "^0.14.0" ,
2020-10-16 00:25:34 +02:00
"@types/loader-utils" : "^1.1.3" ,
2020-08-17 22:56:32 +02:00
"@types/lodash" : "^4.14.159" ,
2019-03-28 14:56:56 +01:00
"@types/lru-cache" : "^5.1.0" ,
2021-05-27 03:09:38 +02:00
"@types/mapbox-gl" : "1.13.1" ,
2019-06-07 11:46:03 +02:00
"@types/markdown-it" : "^0.0.7" ,
2020-11-02 22:18:52 +01:00
"@types/md5" : "^2.2.0" ,
"@types/memoize-one" : "^4.1.0" ,
"@types/mime" : "^2.0.1" ,
2021-01-13 20:41:31 +01:00
"@types/mime-types" : "^2.1.0" ,
2018-05-18 19:54:57 +02:00
"@types/minimatch" : "^2.0.29" ,
2021-05-19 22:39:52 +02:00
"@types/minimist" : "^1.2.1" ,
2021-02-03 21:08:21 +01:00
"@types/mocha" : "^8.2.0" ,
2020-06-30 07:51:12 +02:00
"@types/mock-fs" : "^4.10.0" ,
2019-10-28 20:07:35 +01:00
"@types/moment-timezone" : "^0.5.12" ,
2018-10-18 17:00:08 +02:00
"@types/mustache" : "^0.8.31" ,
2020-11-02 22:18:52 +01:00
"@types/ncp" : "^2.0.1" ,
"@types/nock" : "^10.0.3" ,
2021-05-19 22:39:52 +02:00
"@types/node" : "14.14.44" ,
2020-11-02 22:18:52 +01:00
"@types/node-fetch" : "^2.5.7" ,
2020-09-04 14:29:19 +02:00
"@types/node-forge" : "^0.9.5" ,
2020-11-17 09:27:19 +01:00
"@types/nodemailer" : "^6.4.0" ,
2020-03-02 23:15:44 +01:00
"@types/normalize-path" : "^3.0.0" ,
2020-11-02 22:18:52 +01:00
"@types/object-hash" : "^1.3.0" ,
2018-11-08 15:12:01 +01:00
"@types/opn" : "^5.1.0" ,
2020-11-02 22:18:52 +01:00
"@types/ora" : "^1.3.5" ,
"@types/papaparse" : "^5.0.3" ,
"@types/parse-link-header" : "^1.0.0" ,
2020-11-11 02:08:39 +01:00
"@types/pdfmake" : "^0.1.15" ,
2020-01-09 09:00:30 +01:00
"@types/pegjs" : "^0.10.1" ,
2020-09-29 01:08:22 +02:00
"@types/pngjs" : "^3.4.0" ,
2020-11-23 13:17:05 +01:00
"@types/prettier" : "^2.1.5" ,
2020-11-02 22:18:52 +01:00
"@types/pretty-ms" : "^5.0.0" ,
2020-09-18 14:16:57 +02:00
"@types/prop-types" : "^15.7.3" ,
2020-11-02 22:18:52 +01:00
"@types/proper-lockfile" : "^3.0.1" ,
"@types/rbush" : "^3.0.0" ,
2019-11-17 13:08:49 +01:00
"@types/reach__router" : "^1.2.6" ,
2020-06-11 10:04:09 +02:00
"@types/react" : "^16.9.36" ,
2020-11-02 22:18:52 +01:00
"@types/react-beautiful-dnd" : "^13.0.0" ,
2020-06-11 10:04:09 +02:00
"@types/react-dom" : "^16.9.8" ,
2020-02-13 03:42:42 +01:00
"@types/react-grid-layout" : "^0.16.7" ,
2020-11-02 22:18:52 +01:00
"@types/react-intl" : "^2.3.15" ,
2020-06-16 18:44:34 +02:00
"@types/react-redux" : "^7.1.9" ,
2019-12-04 19:53:42 +01:00
"@types/react-resize-detector" : "^4.0.1" ,
2020-06-29 16:55:38 +02:00
"@types/react-router" : "^5.1.7" ,
"@types/react-router-dom" : "^5.1.5" ,
2020-11-02 22:18:52 +01:00
"@types/react-test-renderer" : "^16.9.1" ,
2018-09-13 14:20:01 +02:00
"@types/react-virtualized" : "^9.18.7" ,
2020-11-02 22:18:52 +01:00
"@types/read-pkg" : "^4.0.0" ,
2020-02-13 03:42:42 +01:00
"@types/recompose" : "^0.30.6" ,
2020-11-02 22:18:52 +01:00
"@types/reduce-reducers" : "^1.0.0" ,
2020-01-07 18:47:00 +01:00
"@types/redux-actions" : "^2.6.1" ,
2019-08-26 21:29:27 +02:00
"@types/request" : "^2.48.2" ,
2020-11-02 22:18:52 +01:00
"@types/seedrandom" : ">=2.0.0 <4.0.0" ,
2020-04-16 18:06:33 +02:00
"@types/selenium-webdriver" : "^4.0.9" ,
2020-11-14 13:32:02 +01:00
"@types/semver" : "^7" ,
2020-11-02 22:18:52 +01:00
"@types/set-value" : "^2.0.0" ,
2019-09-04 01:09:24 +02:00
"@types/sinon" : "^7.0.13" ,
2020-11-02 22:18:52 +01:00
"@types/source-map-support" : "^0.5.3" ,
"@types/stats-lite" : "^2.2.0" ,
2020-10-02 01:46:00 +02:00
"@types/strip-ansi" : "^5.2.1" ,
2020-11-02 22:18:52 +01:00
"@types/strong-log-transformer" : "^1.0.0" ,
2020-05-20 16:03:44 +02:00
"@types/styled-components" : "^5.1.0" ,
2019-12-17 18:42:22 +01:00
"@types/supertest" : "^2.0.5" ,
2019-10-28 21:06:12 +01:00
"@types/supertest-as-promised" : "^2.0.38" ,
2020-09-30 02:34:05 +02:00
"@types/tapable" : "^1.0.6" ,
2020-06-18 08:53:16 +02:00
"@types/tar" : "^4.0.3" ,
2020-11-02 22:18:52 +01:00
"@types/tar-fs" : "^1.16.1" ,
"@types/tempy" : "^0.2.0" ,
2021-04-21 21:32:10 +02:00
"@types/testing-library__jest-dom" : "^5.9.5" ,
"@types/testing-library__react-hooks" : "^4.0.0" ,
2020-11-02 22:18:52 +01:00
"@types/tinycolor2" : "^1.4.1" ,
2018-07-11 10:19:35 +02:00
"@types/type-detect" : "^4.0.1" ,
2020-11-02 22:18:52 +01:00
"@types/use-resize-observer" : "^6.0.0" ,
2018-09-17 20:24:32 +02:00
"@types/uuid" : "^3.4.4" ,
2020-07-23 19:58:04 +02:00
"@types/vinyl" : "^2.0.4" ,
2019-10-05 16:53:47 +02:00
"@types/vinyl-fs" : "^2.4.11" ,
2020-11-02 22:18:52 +01:00
"@types/watchpack" : "^1.1.5" ,
2020-10-02 01:46:00 +02:00
"@types/webpack" : "^4.41.3" ,
2020-11-12 22:00:57 +01:00
"@types/webpack-env" : "^1.15.3" ,
2020-10-16 00:25:34 +02:00
"@types/webpack-merge" : "^4.1.5" ,
2021-02-08 18:47:55 +01:00
"@types/webpack-sources" : "^0.1.4" ,
2020-11-02 22:18:52 +01:00
"@types/write-pkg" : "^3.1.0" ,
"@types/xml-crypto" : "^1.4.1" ,
"@types/xml2js" : "^0.4.5" ,
2020-11-11 02:08:39 +01:00
"@types/yauzl" : "^2.9.1" ,
2018-11-12 19:38:11 +01:00
"@types/zen-observable" : "^0.8.0" ,
2021-01-27 01:59:24 +01:00
"@typescript-eslint/eslint-plugin" : "^4.14.1" ,
"@typescript-eslint/parser" : "^4.14.1" ,
2020-11-02 22:18:52 +01:00
"@yarnpkg/lockfile" : "^1.1.0" ,
2020-12-10 15:14:09 +01:00
"abab" : "^2.0.4" ,
2021-02-03 00:55:41 +01:00
"aggregate-error" : "^3.1.0" ,
2020-02-06 03:54:10 +01:00
"angular-mocks" : "^1.7.9" ,
2020-12-08 16:07:07 +01:00
"antlr4ts-cli" : "^0.5.0-alpha.3" ,
2020-11-11 15:42:53 +01:00
"apidoc" : "^0.25.0" ,
"apidoc-markdown" : "^5.1.8" ,
2020-12-04 22:28:06 +01:00
"argsplit" : "^1.0.5" ,
2020-11-02 22:18:52 +01:00
"autoprefixer" : "^9.7.4" ,
2020-09-29 17:56:25 +02:00
"axe-core" : "^4.0.2" ,
2021-01-26 17:42:41 +01:00
"babel-eslint" : "^10.1.0" ,
"babel-jest" : "^26.6.3" ,
"babel-loader" : "^8.2.2" ,
"babel-plugin-add-module-exports" : "^1.0.4" ,
2020-04-10 01:55:28 +02:00
"babel-plugin-istanbul" : "^6.0.0" ,
2020-11-25 01:18:18 +01:00
"babel-plugin-require-context-hook" : "^1.0.0" ,
2020-11-02 22:18:52 +01:00
"babel-plugin-styled-components" : "^1.10.7" ,
"babel-plugin-transform-react-remove-prop-types" : "^0.4.24" ,
2021-02-17 23:15:16 +01:00
"backport" : "^5.6.6" ,
2020-11-02 22:18:52 +01:00
"base64url" : "^3.0.1" ,
2021-01-21 18:16:04 +01:00
"callsites" : "^3.1.0" ,
2016-08-15 20:29:17 +02:00
"chai" : "3.5.0" ,
2019-05-31 22:10:28 +02:00
"chance" : "1.0.18" ,
2021-06-15 17:53:53 +02:00
"chromedriver" : "^91.0.1" ,
2020-11-02 22:18:52 +01:00
"clean-webpack-plugin" : "^3.0.0" ,
"cmd-shim" : "^2.1.0" ,
2021-01-14 01:13:11 +01:00
"compression-webpack-plugin" : "^4.0.0" ,
2020-11-02 22:18:52 +01:00
"copy-webpack-plugin" : "^6.0.2" ,
"cpy" : "^8.1.1" ,
"css-loader" : "^3.4.2" ,
2021-04-07 18:35:36 +02:00
"css-minimizer-webpack-plugin" : "^1.3.0" ,
2021-04-06 18:22:59 +02:00
"cypress" : "^6.8.0" ,
2020-11-02 22:18:52 +01:00
"cypress-cucumber-preprocessor" : "^2.5.2" ,
2020-11-09 16:54:48 +01:00
"cypress-multi-reporters" : "^1.4.0" ,
2021-02-19 18:59:26 +01:00
"cypress-pipe" : "^2.0.0" ,
"cypress-promise" : "^1.1.0" ,
2021-05-03 17:59:42 +02:00
"cypress-real-events" : "^1.4.0" ,
2020-11-02 22:18:52 +01:00
"debug" : "^2.6.9" ,
"del-cli" : "^3.0.1" ,
2018-11-28 05:15:54 +01:00
"delete-empty" : "^2.0.0" ,
2020-11-02 22:18:52 +01:00
"dependency-check" : "^4.1.0" ,
"diff" : "^4.0.1" ,
2020-11-30 23:19:32 +01:00
"dpdm" : "3.5.0" ,
2021-02-23 16:32:15 +01:00
"ejs" : "^3.1.6" ,
2020-02-17 09:58:54 +01:00
"enzyme" : "^3.11.0" ,
2021-04-21 21:32:10 +02:00
"enzyme-adapter-react-16" : "^1.15.6" ,
"enzyme-adapter-utils" : "^1.14.0" ,
"enzyme-to-json" : "^3.6.1" ,
2020-01-07 19:08:36 +01:00
"eslint" : "^6.8.0" ,
2020-11-23 13:17:05 +01:00
"eslint-config-prettier" : "^6.15.0" ,
2020-11-02 22:18:52 +01:00
"eslint-import-resolver-node" : "0.3.2" ,
"eslint-import-resolver-webpack" : "0.11.1" ,
"eslint-module-utils" : "2.5.0" ,
2021-01-26 17:42:41 +01:00
"eslint-plugin-babel" : "^5.3.1" ,
2020-01-07 19:08:36 +01:00
"eslint-plugin-ban" : "^1.4.0" ,
2020-11-09 16:54:48 +01:00
"eslint-plugin-cypress" : "^2.11.2" ,
2020-08-05 17:32:19 +02:00
"eslint-plugin-eslint-comments" : "^3.2.0" ,
2021-02-05 21:26:19 +01:00
"eslint-plugin-import" : "^2.22.1" ,
2021-04-21 21:32:10 +02:00
"eslint-plugin-jest" : "^24.3.4" ,
2019-10-22 01:32:31 +02:00
"eslint-plugin-jsx-a11y" : "^6.2.3" ,
2020-01-07 19:08:36 +01:00
"eslint-plugin-mocha" : "^6.2.2" ,
2019-10-22 01:32:31 +02:00
"eslint-plugin-no-unsanitized" : "^3.0.2" ,
2020-01-07 19:08:36 +01:00
"eslint-plugin-node" : "^11.0.0" ,
2019-10-22 01:32:31 +02:00
"eslint-plugin-prefer-object-spread" : "^1.2.1" ,
2020-08-27 10:28:02 +02:00
"eslint-plugin-prettier" : "^3.1.4" ,
2020-07-27 15:18:36 +02:00
"eslint-plugin-react" : "^7.20.3" ,
2020-11-18 18:23:08 +01:00
"eslint-plugin-react-hooks" : "^4.2.0" ,
2020-02-04 11:22:40 +01:00
"eslint-plugin-react-perf" : "^3.2.3" ,
2020-11-02 22:18:52 +01:00
"expose-loader" : "^0.7.5" ,
2021-01-12 17:33:50 +01:00
"faker" : "^5.1.0" ,
2020-11-02 22:18:52 +01:00
"fancy-log" : "^1.3.2" ,
"fast-glob" : "2.2.7" ,
2019-08-23 03:40:57 +02:00
"fetch-mock" : "^7.3.9" ,
2020-11-02 22:18:52 +01:00
"file-loader" : "^4.2.0" ,
2021-02-26 00:13:27 +01:00
"form-data" : "^4.0.0" ,
2021-03-10 18:10:49 +01:00
"geckodriver" : "^1.22.2" ,
2020-11-02 22:18:52 +01:00
"glob-watcher" : "5.0.3" ,
2020-11-09 17:33:57 +01:00
"grunt" : "1.3.0" ,
2019-08-27 22:04:29 +02:00
"grunt-available-tasks" : "^0.6.3" ,
2018-03-22 00:42:23 +01:00
"grunt-peg" : "^2.0.1" ,
2020-11-02 22:18:52 +01:00
"gulp" : "4.0.2" ,
2019-08-23 03:40:57 +02:00
"gulp-babel" : "^8.0.0" ,
2019-05-30 22:40:06 +02:00
"gulp-sourcemaps" : "2.6.5" ,
2020-11-02 22:18:52 +01:00
"gulp-zip" : "^5.0.2" ,
2018-07-11 10:19:35 +02:00
"has-ansi" : "^3.0.0" ,
2020-11-02 22:18:52 +01:00
"hdr-histogram-js" : "^1.2.0" ,
"html" : "1.0.0" ,
"html-loader" : "^0.5.5" ,
"http-proxy" : "^1.18.1" ,
"inquirer" : "^7.3.3" ,
"is-glob" : "^4.0.1" ,
"is-path-inside" : "^3.0.2" ,
"istanbul-instrumenter-loader" : "^3.0.1" ,
2020-11-20 07:08:04 +01:00
"jest" : "^26.6.3" ,
2021-04-21 21:32:10 +02:00
"jest-canvas-mock" : "^2.3.1" ,
2020-11-20 07:08:04 +01:00
"jest-circus" : "^26.6.3" ,
"jest-cli" : "^26.6.3" ,
"jest-diff" : "^26.6.2" ,
2021-03-24 16:47:10 +01:00
"jest-environment-jsdom" : "^26.6.2" ,
2021-06-07 21:17:24 +02:00
"jest-environment-jsdom-thirteen" : "^1.0.1" ,
2018-06-04 17:23:59 +02:00
"jest-raw-loader" : "^1.0.1" ,
2021-04-21 21:32:10 +02:00
"jest-silent-reporter" : "^0.5.0" ,
2020-11-20 07:08:04 +01:00
"jest-snapshot" : "^26.6.2" ,
2020-11-02 22:18:52 +01:00
"jest-specific-snapshot" : "2.0.0" ,
2021-04-21 21:32:10 +02:00
"jest-styled-components" : "^7.0.3" ,
"jest-when" : "^3.2.1" ,
2020-07-28 17:45:18 +02:00
"jimp" : "^0.14.0" ,
2020-11-02 22:18:52 +01:00
"jsdom" : "13.1.0" ,
2018-07-17 14:56:55 +02:00
"json5" : "^1.0.1" ,
2020-11-02 22:18:52 +01:00
"jsondiffpatch" : "0.4.1" ,
2018-01-19 08:49:55 +01:00
"license-checker" : "^16.0.0" ,
2018-05-22 23:00:02 +02:00
"listr" : "^0.14.1" ,
2021-04-15 22:57:35 +02:00
"lmdb-store" : "^1.2.4" ,
2019-09-25 02:57:16 +02:00
"load-grunt-config" : "^3.0.1" ,
2020-11-02 22:18:52 +01:00
"marge" : "^1.0.1" ,
"micromatch" : "3.1.10" ,
"minimist" : "^1.2.5" ,
"mkdirp" : "0.5.1" ,
2021-02-03 21:08:21 +01:00
"mocha" : "^8.2.1" ,
"mocha-junit-reporter" : "^2.0.0" ,
"mochawesome" : "^6.2.1" ,
"mochawesome-merge" : "^4.2.0" ,
2020-06-30 07:51:12 +02:00
"mock-fs" : "^4.12.0" ,
[Ingest] Add Fleet & EPM features (#59376)
* [EPM] Documentation of HTTP routes & TS types for Ingest (#48798)
* Add beginning models and two routes for Ingest
* Update types & models per discussion w/Ruflin
Also reviewed data structures listed at https://docs.google.com/document/d/1IBR3f9dpHqJmXYEdg06WV34KSMd3g5k4aMGa4jde_Eg/edit#
* Update: /policies always returns array. /policy returns single policy
* Add pagination for /policy & /datasources. Uses per_page & page params
* Add API metadata. Standardize policy_id param name.
* Update descriptions to match Google Doc. Move use case to Policy.
Disabled the '@typescript-eslint/array-type' rule because it was going around in circles. It didn't like Datasource[] or Array<Datasource>
* Return to initial TS annotation for Arrays
Remove the line disabling @typescript-eslint/array-type now that it's behaving normally again :shrug:
* [EPM] Add directory structure for server/lib. (#50469)
* Add directory structure for server/lib.
* 'tests' seems to be more common than 'test'
* Make CI happy
* [EPM] Add basic documentation directory (#50478)
* [EPM] Add basic documentation directory
Having the doc directory around allows us to easily add docs from here on to document how EPM works.
To run the docs build, use the following command from the kibana directory:
```
../docs/build_docs --doc docs/epm/index.asciidoc --open
```
The above assumes that docs (https://github.com/elastic/docs) are checked out in the same directory as Kibana.
With this change, the EPM docs build is not included yet in the overall docs build. For this adjustments to https://github.com/elastic/docs/blob/master/conf.yaml must be made.
* [EPM] Add basic index template (#50471)
This PR adds the very basic index template we will use for the packages. It contains all the basic settings and some examples. The examples will be remove as soon as we have an actual implementation with packages but for now is convenient to see if it is a valid package.
This code is put into the lib directory as it does not tie directly into any handlers.
It also adds an functional tests for loading a template. This means we have a way to check if a template is valid in Elasticsearch. Based on this we can check in the future all our generated templates for validity with Elasticsearch.
To run the functional test, go to the Kibana x-pack directory. Start the first command:
```
node scripts/functional_tests_server.js --config test/epm_api_integration/config.ts
```
Keep the above running and switch to an other Terminal. Now run:
```
node scripts/functional_test_runner.js --config x-pack/test/epm_api_integration/config.ts
```
* 40752 rewrite ingest pipeline (#50627)
* Add directory structure for server/lib.
* 'tests' seems to be more common than 'test'
* Make CI happy
* Implement pipeline rewriting.
* Add more testcases
* For posterity (comment change)
* Allow beats-style template delimiters
* Be more succinct
* Document better
* Replace AssetType enum with union type (#50696)
See https://github.com/elastic/kibana/pull/50609#discussion_r346080439
Discussed in Slack and agree to revert for now. Can track down the issues & restore later
* Remove unnecessary await if we can return the promise (#50329)
* Fix whitespace per figma comments. Closes #47348 (#47350)
* Add fix & comment for TS 3.7.2 regression
* [EPM] cleanup assets, filter assets for those currently supported (#50609)
* cleanup assets, filter assets for those currently supported
* removed unused type
* fix type
* add comment for better type
* change type name to be more descriptive
* hardcode image width for ie11 (#49796)
* hardcode image width for ie11
* eslint
* improve comment
* add maxWidth
* [EPM] useKibana hook & render in plugin.start (#50110)
* plugin.start now does reactdom.render vs returning react element
export plugin function from public/index
* Move setClient call from plugin.start to plugin.setup
* Use `useUiSetting$` from `useKibana` hooks
* Fix broken app due to bad hooks usage
Can't use useKibana outside a React component.
Reverting to prior approach since it's still NP. Can revisit context usage in a followup PR
* [EPM] Install package from detail view on button click (#50735)
* Support basic "click button -> show spinner -> installed" install flow
* Remove incorrect comments. Add TS return types to data functions.
* [EPM] Use NP feature_catalogue.register (#50108)
* Use NP feature_catalogue.register
* Use type from NP plugin
* fix linting
* fix types
* fix headers in Fleet
* skipping test due to ES param change
* Revert "skipping test due to ES param change"
This reverts commit d05f20decfbfc4d91069816a6f8dfde26b5bd6bc.
* remove type field
* remove unused import
* [EPM] Final(?) update from integrations_manager -> EPM (#50976)
* Update (all remaining?) references from integrations_manager to EPM
* Update path in i18n file
* [EPM] update compatibility section (#50975)
* change min max version to single range value
* add elastic stack icon and change text
* remove badge from version and use code font
* remove euistyled
* add back version component lost in merge
* remove euiStyled
* remove old file
* Restore RequirementVersionRange type
* Disable test for elasticsearch username.
Temporary work around until we know how the stack wants to add the permissions we need. Either adding to the kibana user or creating a new user.
* Revert "Disable test for elasticsearch username."
This reverts commit f1020e4eab2ada5d854eacc44cdb6d5bd23c267f.
* Disable test for elasticsearch username.
Temporary work around until we know how the stack wants to add the permissions we need. Either adding to the kibana user or creating a new user.
* Fix EPM typing issues in register feature
* Fix typings after master merge
* [EPM] CI fixes (#51284)
* Initialize es in test.
* Add it(), no es.init()
* Clean up.
* [EPM] add confirmation modal (#51172)
* add confirmation modal, move install state to Header
* update callout to use title
* move components only used in detail view to detail dir
* use better variable names
* update to more descriptive variable names
* Restore prior response vaulues for install & delete package (#51252)
Discussed this with @skh https://github.com/elastic/kibana/pull/51112#commitcomment-35961413 & https://github.com/elastic/kibana/pull/51112#commitcomment-35970664 as well as in a video call
Also added some TS type annotations for data fetching functions to make the contracts more explicit
* [EPM] /package API only lists installable assets. Restore enums. (#51414)
* API only shows installable assets. Server types to own file. Restore enums
* Fix type imports
* Only return installable asset types (kibana for now)
* server/types now only has code from hapi which shouldn't go to client
* Add more restricted TS types to DisplayAssets object
* Flip order of arguments to Extract
In these cases it still works the same, but looking at https://www.typescriptlang.org/docs/handbook/advanced-types.html the signature is
`Extract<T, U>` - Extract from `T` those types that are assignable to `U`
so the larger set should be first
* [Fleet] Enrollment api key UI (#51495)
* Make button pretty in dark mode as well. (#51610)
* [EPM] Add docs entry about registryUrl config (#51697)
This documentation is at the moment mainly for internal use. I found myself searching for this URL several times in the code or PRs so I thought I rather add it to the docs for now.
* [EPM] Remove encoding of Kibana objects as not needed anymore
* [Fleet] Move agent status server side and API to get aggregated status for a policy (#51673)
* [EPM] Add basic docs around install/delete API endpoint (#51728)
This is mainly for internal usage at the moment to look up.
* Ingest/policy (#51741)
* wip policy
* tweaks
* tweaks
* FIX TYPOS
* WIP move policy => agent config conversion to fleet, WIP policy changed method
* fix tests and bugs
* updates tests and snaps
* more fixes
* use AGENT_POLLING_INTERVAL
* cleanup and fix some formatting
* Update x-pack/legacy/plugins/ingest/server/libs/datasources.ts
Co-Authored-By: John Schulz <github.com@jfsiii.org>
* Update x-pack/legacy/plugins/ingest/server/libs/datasources.ts
Co-Authored-By: John Schulz <github.com@jfsiii.org>
* Update x-pack/legacy/plugins/ingest/server/libs/outputs.ts
Co-Authored-By: John Schulz <github.com@jfsiii.org>
* Update x-pack/legacy/plugins/fleet/server/libs/policy.ts
Co-Authored-By: John Schulz <github.com@jfsiii.org>
* fix things broken by PR review suggestions
* remove unused field
* fix types
* fix mappings
* add datasource mappings
* Fix mappings and remove get full policy from checkin
* Fix ingest api integration tests
* run es-lint to fix fleet
* Fix typescript issues
* [EPM] Track package install state and add toast notification (#51734)
* add notifications from core to plugin
* add package install state hook
* fix type error
* use toMountPoint helper to add jsx to notification
* add warning notification to failed install
* make notifications dependency explicit prop
* move PackageInstall provider lower
* add comment about InstallStatus type overlapping InstallationStatus
* use InstallStatus type in InstallationButton component
* fix type
* [Ingest] Adds support for a working default output (#51841)
* aadding config
* add working settings to the default output
* remove default username and password
* update libs
* [EPM] Add basics for creating the ILM setup (#50474)
This contains the basic objects to setup ILM
* Create index and alias with a write index
* Get the policy
The code does not contain any functional tests yet as it is still open on how to do it best. I suggest to get this in as a foundation and then iterate on top of it.
* [EPM] Add datasource (ingest pipeline) from package (#51851)
## Summary
This mixes a few concerns but I think it's worth it to show the parts working together.
Take a look at the individual commits for a better separation of features.
This adds
- the `/datasource/install/{pkgkey}` endpoint which installs ingest pipelines from a package into ES and saves a reference to them in the EPM state Saved Object
- Connects the "Add datasource" button in the successful installation Toast to the new API
- Adds a toast notification to inform the user the datasource was added correctly
- Adds a "Delete Package" button on the details page so we can uninstall a package while we're waiting for the separate view which allows deletes
- b99eda6 Pushes logic that was in the detail view into `InstallationButton`. This consolidates the logic in one component (or one component & the existing hook) and, iiic, means we can put `<InstallationButton package={...} />` on any view and get the same behavior
I'm marking this as a normal PR so people can merge if they wish
![add-datasource-delete-package-small](https://user-images.githubusercontent.com/57655/69775686-7fb39280-1167-11ea-8d41-e2b8a02252a1.gif)
* [EPM] Add basic processing of fields.yml file (#51148)
The fields.yml is used to generate the Elasticsearch template and Kibana index pattern. This PR adds a very basic implementation of processing the fields.yml and then create an Elasticsearch template out of it. The only fields that are supported at the moment are keyword fields, more will be added as a follow up.
The testing was implemented with a golden file. The output from the method is compared to a json file. If the input is changed or the method is changed, it is possible to regenerate the files with the `-generate` flag as following:
```
node scripts/jest ./legacy/plugins/epm/server/lib/template/template.test.ts -generate
```
This will allow us to quickly test many inputs / outputs in the future, make adjustments to the existing files and generate the new outputs. We then can compare it in the diff it the changes make sense.
* [EPM] Create basic implementation to merge input template and dataset manifest (#51803)
* [EPM] Create basic implementation to merge input template and dataset manifest
With this code it is possible to take an input template for the agent and merge it with the config variables from the dataset manifest file. Currently only the name and the default value are merged. Later on we must implement to be able to pass user configured variables to it and make decision based on OS selection.
Closing https://github.com/elastic/kibana/issues/51794
* [EPM] Refactoring of lib structure (#51885)
This refactors the structure of lib. As so far all the lib parts are related to assets in the package, it is organised the same way with the same structure. Each directory has its own tests directory if it needs one. This makes it possible to (almost) not need relative paths for tests.
* [EPM] Allow to read files from fields directory (#51958)
This change allows to also extract files from the `fields` directory. Previously this was not possible because it always assumed a service must be there.
* [EPM] Install Elasticsearch Index Template for data source (#51878)
This installs the Elasticsearch index template for each dataset in a package. For now the names are hardcoded based on package key and dataset name but will be more dynamic later on when we pass the full dataset information.
The dataset extractions is a bit "hacky" at the moment and we should get a full implementation of dataset at a later stage and replace this code.
* [Fleet] Policy list, details, create, edit UIs (#51950)
* Set up simple policies list view
* Adjust spec to return single policy
* Set up simple policy details page
* Add demo stats/chart to policy details
* Add description string
* Initial setup of policy form and create policy UI
* Policy create/edit form; integrate policy list api
* Integrate create policy api
* Integrate policy detail, agent status, and policy edit APIs; adjust policy list api integration in agent enrollment
* Fix edit policy mock meta
* Fix policy list search bar
* PR and linting fixes; use typings from ingest plugin
* Fix i18n
* [EPM] Add datasource saved object type (#51871)
## Summary
This PR makes a few assumptions, and contains a lot of refactoring. It might be beneficial to look at the resulting directory structure under `server` first to get the (new) big picture.
Assumptions:
- our API deals with several concerns, for now these are packages and datasources
- we manage our own HTTP API endpoints for these concerns (in particular, don't use the ingest plugin for that)
- we manage (for now) the Kibana saved object in which datasources are saved. importing and calling methods from the ingest plugin to do that down the road will (hopefully) be a manageable change
This led to the following decisions:
- the code is separated into subdirectories by concern, containing all the route handlers and tightly coupled code
- for now, these directories are in `server/packages` and `server/datasources`. I'm tempted to move them into `server/api/{packages,datasources}` but wanted to limit the amount of refactoring in one PR
- shared code lives in `server/lib`
- some code from `server/packages` has been almost duplicated to handle saving to Datasource saved objects, some has been refactored and is used from both places. The deduplication needs further improvement
- maybe `server/registry` should also move under `server/lib` (but see above, I'm trying to not move everything around all at once)
Testing:
* Please note that this is a breaking change because the saved object type for package information
has also been renamed. You'll need to start with a fresh `.kibana-*` index. Restarting `yarn es snapshot` (withouth specifying a data directory) should do the trick.
* Package installation should still work, e.g. with a GET request to `http://localhost:5601/api/epm/package/coredns-1.0.1`. The saved objects for packages can be inspected with a GET request to `http://localhost:5601/api/saved_objects/epm-package/$PKG_KEY`, e.g. `http://localhost:5601/api/saved_objects/epm-package/coredns-1.0.1`
* Datasource creation should still work, e.g. with a GET request to `http://localhost:5601/api/epm/datasource/install/coredns-1.0.1`. The saved objects for datasources can be inspected with a GET to `http://localhost:5601/api/saved_objects/epm-datasource/$PKG_KEY`, e.g. `http://localhost:5601/api/saved_objects/epm-datasource/coredns-1.0.1`
* [Fleet] Expose policy during agent checkin (#51968)
* [EPM] Add /epr prefix to the tar.gz download path (#51881)
The registry slightly changed the .tar.gz path because of download stats reason. This adjusts for it. See https://github.com/elastic/package-registry/pull/169
* [EPM] Move template installation to lib and add asset helper (#52049)
* [EPM] Move template installation to lib and add asset helper
All the logic related to the installation of the templates for a package should be inside the template library folder. This moves the logic into this folder.
A few refactorings were made to simplify installation:
* Introduction of DataSet interface: This interface is needed to extract the data sets inside a package and install one template per data set.
* Pass package instead of package key to installation process: Passing the package instead of the package key means fetching of package information is decoupled from the installation process and abstracted. This separates the two concerns and should simplify testing.
* getAsssets method: The getAssets methods works on top of the package object to extract asset paths. It is inspired by get_objects methods but supports passing a package and a dataset.
Currently one problem with testing that exists is that to fetch the content of an asset is not decoupled yet.
* [EPM] Reduce data source to one type (#52061)
Between Fleet / Ingest / EPM there had been several interface definitions of Datasource and the related types. This reduces it to one place for the definition. The same applies to the policy definition.
The goal of this is that from now on we all rely on the same definition. If we make changes, we make them in all parts of the code.
In this PR is only the minimal change needed to get us all on one interface. Further changes will be needed that we all rely on the same saved objects etc.
* add export command
* revert 2 more files to rely on export
* revert imports
* Fix types for Datasource Saved Object
* merge in master
* fix type check
* Run VSCode's organize imports on EPM files (#52234)
Learned about it on Slack from https://twitter.com/ryanchenkie/status/1201883268527927301
Blog at https://code.visualstudio.com/updates/v1_23#_run-code-actions-on-save
Basically does the order we've been loosely following (3rd party, then relative) & alphabetic by location and variable name.
It's not customizable but it's reasonable and, afaict, consistent.
* [EPM] More realistic datasource SO. Error if package not installed. (#52229)
* Move cache 'hack' into getAssetsData
* p -> pkg. package is reserved. pkgkey is used in many places
* Remove unnecessary type cast
* Clarify reasons behind asset path manipulation
* Return the Datasource; not the Saved Object.
* Use real values from package in fake datasource SO
* Error if /datasource/install before /package/install
```
> curl --user elastic:changeme localhost:5601/api/epm/datasource/install/coredns-1.0.1
{
"statusCode": 403,
"error": "Forbidden",
"message": "coredns-1.0.1 is not installed"
}
> curl --user elastic:changeme localhost:5601/api/epm/install/coredns-1.0.1
[
{
"id": "53aa1f70-443e-11e9-8548-ab7fbe04f038",
"type": "dashboard"
},
{
"id": "Metricbeat-CoreDNS-Dashboard-ecs",
"type": "dashboard"
},
{
"id": "75743f70-443c-11e9-8548-ab7fbe04f038",
"type": "visualization"
},
{
"id": "36e08510-53c4-11e9-b466-9be470bbd327-ecs",
"type": "visualization"
},
{
"id": "277fc650-67a9-11e9-a534-715561d0bf42",
"type": "visualization"
},
{
"id": "cfde7fb0-443d-11e9-8548-ab7fbe04f038",
"type": "visualization"
},
{
"id": "a19df590-53c4-11e9-b466-9be470bbd327-ecs",
"type": "visualization"
},
{
"id": "a58345f0-7298-11e9-b0d0-414c3011ddbb",
"type": "visualization"
},
{
"id": "9dc640e0-4432-11e9-8548-ab7fbe04f038",
"type": "visualization"
},
{
"id": "3ad75810-4429-11e9-8548-ab7fbe04f038",
"type": "visualization"
},
{
"id": "57c74300-7308-11e9-b0d0-414c3011ddbb",
"type": "visualization"
},
{
"id": "27da53f0-53d5-11e9-b466-9be470bbd327-ecs",
"type": "visualization"
},
{
"id": "86177430-728d-11e9-b0d0-414c3011ddbb",
"type": "visualization"
},
{
"id": "4804eaa0-7315-11e9-b0d0-414c3011ddbb",
"type": "visualization"
}
]
> curl --user elastic:changeme localhost:5601/api/epm/datasource/install/coredns-1.0.1
[
{
"id": "coredns_1_0_1_dataset_log_elasticsearch_ingest_pipeline_pipeline_plaintext_json",
"type": "ingest-pipeline"
},
{
"id": "coredns_1_0_1_dataset_log_elasticsearch_ingest_pipeline_pipeline_json_json",
"type": "ingest-pipeline"
},
{
"id": "coredns_1_0_1_dataset_log_elasticsearch_ingest_pipeline_pipeline_entry_json",
"type": "ingest-pipeline"
}
]
```
* fix duplicated imports
* [EPM] Move golden files generation over to jest snapshot (#52203)
* [EPM] Move golden files generation over to jest snapshot
I initially used my own implementation to write the generated files. It runs out jest has a feature to write snapshots which simplifies the code a lot.
I added a loop with an additional test file so in the future we can just keep adding test files without having to modify the test code.
To updated the snapshots, the param `-u` has to be used:
```
node scripts/jest legacy/plugins/epm/server/lib/fields/field.test.ts -u
```
* [EPM] Create metrics-* and logs-* Kibana index pattern (#52277)
This creates the very basic Kibana index patterns metrics-* and logs-* for Kibana. At the moment it is overwritten every time. We need to change this in the future to take the fields from all installed data sources and regenerate it.
* [EPM] Create helper for elasticsearch asset names (#52265)
Most of the Elasticsearch assets have the same base name. This creates a helper to get the base name for the assets. In case we decide to change the base name in the future, we can change it in one place.
* fix tests and destructing
* [EPM] Update Registry types. Prevent errors installing certain datasources. (#52285)
* Update RegistryPackage type
* Use download key from EPR to fetch archive
* Fix errors caused by correcting the Registry types.
The issues were largely that some Registry types like `title, `datasets` and `assets` where marked as required, but are actually optional. This highlighted area in the code were we relied on them always being present.
We added to the issue by wrapping Registry types in `Required` which made those items which were correctly listed as optional, required for EPM code. Updated EPM types to reflect the largely pass-through nature of the EPM types.
There are two properties which we ensure are in every EPM response, those were put into their own (unexported) type.
Confirm by trying to add a datasource to a package which has no datasources, like apache-1.0.1 or system-2.0.1. In `feature-ingest` and the earlier version of this PR, the `/datasource/install` call returns a 500. In this PR it succeeds.
* [EPM] Add setup of default ILM policies (#52272)
This creates two ILM policies: logs-default and metrics-default. These are the default ILM policies used. Currently the policy content is hardcoded in the code but should be fetched from the base package in the future. The setup happens as part of the datasource installation. When a data source is installed it is a good time to check if the assets are there but we might extract this to a better place in the future.
* [EPM] 52075 add data source first page (#52320)
* Update RegistryPackage type
* add first page of add data source
* fix for ie11 flex min width bug
* remove toDetailViewRelative
* remove unneeded spread
* Update TS type names for EPR search results (#52512)
* `RegistryList -> RegistrySearchResults`
* `RegistryListItem -> RegistrySearchResult`
* Restore import sort order from #52234 (#52548)
Many of the changes from #52234 were lost. Presumably due to PR(s) merging which were based on branches which had the previous unsorted order.
* [EPM] Replace wildcard export (#52554)
* PackageNotInstalledError -> packages/index.ts
* pkgToPkgKey -> registry/index.ts (will convert existing `${name}-${version}` instances later)
* Replace export * from packages.
There's an argument that the import sites should be updated to import from `packages/get`, `packages/install`, etc but that can wait for a later PR.
* [EPM] Reduce usage of epm-package SavedObject (#52576)
* Delete existing Installation type. Rename InstallationAttributes to Installation
* Reduce usage of EPM SO. Add getInstallation().
Replaced two calls of getInstallationObject() with getInstallation().
Two less places with knowledge of SO internals.
Lots of potential improvements for EPM TS types remain (refactoring/removing Installable, etc), but this is a good incremental step, IMO
* [EPM] Fix missing export link (#52628)
Without it, things break. I am surprised CI did not catch this.
* [EPM] Cleanup ILM loading (#52632)
Before the check for the ILM policy to exist triggered an exception. With this change it is a normal response also if the policy does not exist yet.
A follow up issue will be created in Elasticsearch to get a HEAD request for this available.
* [EPM] Switch to staging URL for registry (#52626)
The old cluster with the registry will be removed as soon as this is merged.
* [EPM] Use Dataset interface to generate template (#52255)
This will make sure we have to pass much feature params and can fully rely on the datasource object to create names for assets.
* [Fleet] Use agent events to compute agent health (#52513)
* [EPM] Data source integration tests (#52542)
* Add fixtures for data source integration test.
* Move test setup to beforeEach
* Add test for datasource creation
* Handle pipelines in yml format.
* Make integration test for adding a data source pass.
* Use EPR staging URL with CDN. (#52776)
See https://github.com/elastic/kibana/pull/52626#pullrequestreview-330622868
* [EPM] Add Data Source page updates (#52705)
* remove dupe type RegistryPackage
* change switches to checkboxes, use datasets to create checkboxes, add some local form state
* update types
* [EPM] redirect after package install (#52771)
* add callback after successful installation and redirect
* add temp data sources tab content to access add data source page
* remove assets tab for mvp
* hide data sources link and redirect from data sources tab if package not installed
* change callback name
* remove commented out assets logic
* add redirect to hook
* fix type
* Use ingest datasource api (#52964)
Incremental change. Uses HTTP API for datasource creation. Will do follow-up PR which uses JS function instead
* Remove duplicate fetchInfo & installTemplates
I think this was from a bad merge, but pretty sure we don't want these functions called twice in the same function
* WIP. Pushing so others can see
* Improve correctness/flexibility of absolute URL
* Disable datasource test & template installation
* [Ingest] Data source APIs (#52448)
* Clean up ingest imports and remove unneeded mock_spec files
* Initial pass at datasources lib and API endpoints
* Add add/remove datasource to/from policy API endpoints
* Add datasource contract tests and related policy contract tests; update snapshots
* Fix tests
* Fix tests again
* Fix tests 3
* Adjust routes, PR feedback
* modify epm createDatasource endpoint to use user data (#52971)
* change epm/datasource/install/{pkg} to POST, send user data to endpoint, install pipelines and templates based on user selected datasets
* change test to post for installing a datasource
* change some names and types around
* delete request.headers['transfer-encoding'] being passed through from epm request
* [EPM] Don't share CreateFakeDatasource type (#53068)
It's not shared between client & server so it doesn't need to be in common. Also, it imports server code which would try to bring server types to the client. It's types so they're compiled away but it's important to keep common to what's truly common. Breaking this separation is why we thought enums broke the client. A lint rule just landed in master to prevent this.
* [EPM] Index template generation fixes (#53104)
* Only add keyword type field to mappings.
* Index template installation
* Handle empty fields definition files
* Re-enable index template installation
* [Fleet] Assign/Unassign data source from policy UI (#53058)
* Add index files to export various modules; normalize imports
* Clean up unused files; extract datasources table component from policy details page
* Expose http client to frontend libs; remove unused types; import ES UI's useRequest lib
* Adjust shape of rest api adapter interface to better match with rest of kibana; remove unused node adapter; change per_page param to perPage in agent events route
* Initial pass at assign data sources flyout
* Initial pass at unassigning data sources from policy
* Make data sources table searchable by package values
* Fix enrollment key lib for rest adapter param changes
* Fix imports and types
* `yarn.lock` changes after bootstrapping
* [EPM] Implement getConfig for dataset (#53261)
* [EPM] Implement getConfig for dataset
* Implements a getConfig method on a dataset object.
* Build the configuration for each dataset in a package.
* construct and save streams into datasource saved object
* [EPM] Fix template installation (#53272)
As dataset.package was not set, the installed templates contained undefined in the template name. This changes fixes this.
* [EM] Refactor ingest pipeline installation (#53309)
* Refactor ingest pipeline installation
* Only install index templates for requested datasets
* Add index.default_pipeline to index template
* Hook up pipeline rewriting
* Add correct types.
* change POST create datasources path (#53165)
* change POST create datasources path
* remove pkgkey from params
* Fix creation of a data source with a custom ID (#53537)
* [Ingest] Return associated policy IDs in data source info (#53350)
* Return number of policies from data source, surface in assign data source UI
* Update snapshots
* [EPM]: Assign data source to policy in UI (#53597)
* Let ES generate source ids. Refactor along the way.
* Datasource.id isn't optional. It's just missing before we send to Ingest
* Delete EPM's mapping of datasources saved object. Ingest handles that.
* Keep datasource object-related work in constructDatasource
* Move asset installation into own function. Keep entry point high-level.
* More descriptive (less ambiguous) names for these two functions
* Use enum values from Ingest instead of plain strings
* Limit the 'type' key of references to known asset types.
* Update variable names to clarify that we're merging arrays of references
* Use [].flat instead .reduce + .concat to avoid error on empty arrays.
* Pass PackageInfo value directly to component vs pulling off n properties
* Name handlers/options based on the data, not the UI element
* Populate policy combo box based on values from Ingest policy API
* Mark Dataset.vars as optional.
* Add TODOs
* Add commands to run API tests to README (#53847)
* Limit functions to 3 params max. Update those which used more (#53848)
* [EPM] Code in 'common' directories shouldn't import server code (#53854)
* [Fleet] Code in 'common' directories shouldn't import server code (#53938)
* [Fleet] Remove server code from common folder in fleet
* [Fleet] Fix typescript issues after master merge
* [EPM] Fix typescript issues after master merge
* Fix eslint issues
* Fix typescript issues after merge
* Fix merge master missing line
* Fix merge conflict
* [Fleet] Fix registration of Ingest management section (#54065)
* Fix registration of Ingest management section
* Fix i18n key
* [Fleet] Remove server code from common folder in ingest (#53969)
* [Fleet] Connect fleet to policy change update (#53201)
* [Fleet] Send created event when a policy is created
* [Fleet] updated created event when a policy is created
* [Fleet] Send deleted event when a policy is deleted
* [Fleet] Rename output.url => output.hosts (#54258)
* [Ingest] Remove policies UI (#54308)
* Remove meta field UI from policy add/edit form
* Initial pass at policy bulk+single delete UI and API
* Adjust policy links from agent list and detail pages so that links are only active if policy exists
* Add delete policy UI to policy detail page
* Disable policy delete button for default policy
* Commit updated kbn-pm artifact.
CI is failing with messages like
14:52:28 ERROR: 'yarn kbn run build -i @kbn/pm' caused changes to the following files:
14:52:28
14:52:28 packages/kbn-pm/dist/index.js
Following advice from https://elastic.slack.com/archives/C0D8P2XK5/p1570032166063400 and running/committing build
* Update kbn/pm package
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* [EPM] create logs metrics index patterns (#54037)
* fixes bug in for loop returning too early and not looping through all yaml files creating incomplete index template, move loading yaml files to own function, other cleanup
* use reduce in place of for loop
* basic functionality for creating index patterns
* separate logs and metrics index patterns
* dedupe fields
* adjust flattenFields to rename nested fields with parent name path
* some tests
* use yml files for tests
* add awaits as part of installing the package
* optimize loading of yaml files
* fix typo
* change type packageName to package
* update tests to use all files from the beginning
* fix type errors
* fix test
* Use dataset.package from registry
https://github.com/elastic/kibana/pull/54037#pullrequestreview-340362812
* Form validation on add datasource page. (#53920)
* [Ingest] Add support for policy `label` field (#54413)
* Allow `label` field in policy APIs, update UIs to support `label` field
* PR review changes, typo fixes, update tests
* [Fleet] Fix api key creation (#54498)
* [Fleet] Move agent acks to his own endpoint (#54401)
* [Ingest] Fix MaxListenersExceededWarning during kibana boot (#54745)
* [Fleet] Create a default api key for the default output (#54658)
* [EPM] update index pattern fields (#54862)
* add DatasetType type
* move loadFieldsFromYaml to fields
* add logic to determine field values
* update tests
* add back accidentally removed readFromDocValues
* remove DatasetType and add IndexPatternType
* rename dedup to dedupe
* group tests
* use null coalescing operator
* Fix typing issues
* [Fleet] Support agent event subtype STOPPING (#55231)
* [EPM] Prevent double submit when creating data sources
Update installationRequested state after submit (#55100)
* [EPM] handle alias fields when creating kibana index pattern (#55254)
* add alias support, update flattenFields to handle alias copying, update and add tests
* update snapshot
* update findFieldByPath to return undefined if not leaf node
* remove temporary alias type from map
* [EPM] handle multi fields when creating index patterns (#55554)
* handle mult_fields
* move nested function out
* [Fleet] Fleet/spec docs (#55619)
* [EPM] Start to document definitions (#55361)
This is a first stab at creating a place where we define the terms we use across ingest management. This is not complete but defines a place where we can add all the future defintions.
* [EPM] Indexing strategy docs (#55301)
* [EPM] Indexing strategy docs
This documentation is to start documenting our new indexing strategy in a public place and have it versioned. This will allow us to share the current state of the indexing strategy more easily in a single place, track it when updated and also already have it ready for our future users to look it up and understand the benefits of it.
* update typos
* fix one more typo
* apply review feedback
* skip fields that are disabled (#55735)
* [Fleet] Fix fleet typing issues after merging master
* [EPM] Create fieldFormatMap in kibana index pattern (#55892)
* add support for fieldFormatMap
* output params must be camel case
* fix case
* add url_template param
* [Fleet] Use user from saved object to create apiKeys (#55458)
* [EPM] Document package upgrade behaviour (#56138)
This PR adds more detailed documentation on what should happen when a package is upgraded.
* Remove some explicit typing to pass type checks.
This abstraction will be removed in the single plugin going into master.
* remove readFromDocValues (#56227)
* Add symlink to yarn.lock to fix(?) CI
https://github.com/elastic/kibana/pull/56443/checks?check_run_id=418123781 failed saying EPM directory "MUST have a 'yarn.lock' symlink"
Seems to have originated with https://github.com/elastic/kibana/pull/55440
Following example from other legacy/plugins/* in that PR
* Like 441d9ed, but correct
* [Ingest] Convert `ingest` plugin to new platform `ingest_manager` plugin (#56262)
* Seed Ingest Manager as a new NP plugin
* Add contexts for core, deps, and config. Begin routing and nav UI
* Export NP ready request from top-level es_ui_shared/public/
* Add nav styling w/ theming, add useRequest hook
* Set up license and config server-side services; add test routes
* Move most types and constants into /common
* Initial pass at:
* data stream and agent config models
* data stream routes and schemas
* Initial pass at agent config api route handlers
* Change plugin id to camel case
* Fix circular schema dependency, add security as optional plugin
* Create appContext service, use request user info in agent config routes + libs
* Create default agent config
* Add default output host config, output typings, and create default output and its api key
* Move saved object mapping to new plugin
* Change data streams -> datasources
* Add legacy plugin to bootstrap mappings
* Adjust fleet's ingest dependencies
* Disable policies UI in Fleet
* Adjust EPM's ingest dependencies
* Adjust ingest manager base API route
* Adjust fleet's client side ingest dependencies
* Remove more ingest dependencies from fleet
* REMOVE MOST OF LEGACY INGEST PLUGIN
* Add section for agent configs in UI nav
* Allow useRequest and sendRequest consumers to specify typing for response
* Initial pass at porting over agent config list UI
* Port over agent config creation
* Port over delete agent config functionality
* Fix app routing
* Port over fleet setup routes
* Adjust fleet's ingest dependencies
* Make fleet happy path work, skip some tests (MESSY! :))
* Remove policy list UI code from fleet
* Change useRequestResponse error type
* Add missing agent config schemas and hooks
* Fix type check issues
* Register IM under management
* Fix type issues as a result of changes to use/sendRequest interfaces
* Make all ingest saved objects *not* space-aware
* Fix i18n path
* Fix app categories import
* Fix datasource package assets schema (array of asset objects)
* Seed Ingest Manager privileges to fix tests
* Change `features` to optional plugin instead of required
* Fix security privileges tests
* Fix feature test
* Fix duplicate enrollment key created for default agent config
* Fix fleet agent enrollment by catching agent config 404
* PR feedback
* [Fleet] Detailed docs of fleet <-> agents interactions (#56212)
* [EPM] update index patterns on install/uninstall of package (#56591)
* create index patterns functionality on install/uninstall of package
* update snapshots
* [Fleet] Generate an ES api key per agent per output (#56637)
* [Fleet] Remove unused enrollement rules (#56753)
* remove files related to creating data source (#56745)
* Fix typing issues after mergin master
* Fix api key authentication after master merge
* [EPM] NP Migration: Move server files and route handlers to ingest_manager (#56854)
* initial pass moving registry and categories endpoint
* moves all needed server files and gets list endpoint working
* add route list validation schema
* remove epm config
* use config to get the registryUrl
* clean up registry url
* gets file endpoint working
* add info endpoint
* get install package endpoint working
* support uninstall package endpoint
* add API response types
* move epm types to models
* move AssetType to IngestAsset type from ingest plugin
* remove redundant export
* update epm_api_integration tests to new endpoint paths in ingest manager
* fix imports
* [Ingest Management] Change indexing from {type}-{namespace}-{dataset} to {type}-{dataset}-{namespace} (#56132)
Currently we have the indexing strategy defined as `{type}-{namespace}-{dataset}`. In this PR I propose to change this to `{type}-{dataset}-{namespace}`. As all 3 fields are constant keyword fields, the orders does not matter in most cases.
The reason I propose this change is to better align the name of indices with the name of the other assets:
* ingest pipeline: {type}-{dataset}
* index template: {type}-{dataset}
* Index pattern: {type}-{dataset}-*
* alias name: {type}-{dataset}-{namespace}
This makes it easier to remember the asset names conventions (at least for me).
It makes a difference when specifying security per namespace: To lock down security, previously it is `/(logs|metrics)-prod-$/` and becomes `/(logs|metrics)-[^-]+-prod-$/`. In any case, we should help / assist the user to get this right.
* [EPM] Remove epm plugin and directory (#57309)
* delete server files, move over epm saved object schemas and mapping, stop epm plugin loading in xpack
* updated yarn
* change to updated name
* remove epm dir, copy readme to ingest_manager
* move package.json over and update yarn.lock
* update package name
* add yarn.lock symlink
* fix yarn.lock symlink
* remove epm from security privileges map
* remove epm from feature endpoint and i18nrc
* [Fleet] Move fleet to the new platform and to ingest_manager plugin (#56803)
* [Fleet] NP migration public part (#57567)
* [EPM] EPM to new plugin, UI part (#56882)
* Move EPM home / list view over to ingest-manager
* Use react-router-dom in epm section.
* WIP: add package detail view.
* Use correct route.
* Only import needed types to public
* Remove obsolete file.
* Import type correctly
* Revert "Remove obsolete file."
This reverts commit 4b061102ebc62b49e7d1291060405ea8d23a3a8a.
* Routes are still needed, fix them.
* Import types correctly
* More type import fixes.
* update get categories hook
* remove no longer used getCategories function
* get list packages hook working
* delete routes.tsx, cleanup links
* add the usePackageInstall hook
* replace rest of api calls with use/send request
* remove tmp_routes
* bring over breadcrumbs
* remove comments and get styles working
* get ride side col loading
* temp type fix
* remove useCore
* add assets
* remove comment
* add public directory to legacy ingest_manager and update asset path
* Fix PackageInfo type. Use for API & UI vs a saved object type.
The `as PackageInfo` cast was required because the pipeline was typed as returning `Installed | NotInstalled` which are saved object response.
Updating that to PackageInfo allows the `as` to be removed but revealed an incompatibility between the `assets` properties of RegistryPackage and PackageInfo
```
Types of property 'assets' are incompatible.
Type 'Record<"kibana", Record<KibanaAssetType, KibanaAssetParts[]>>' is missing the following properties from type 'string[]': length, pop, push, concat, and 28 more.
```
It seems the `RegistryPackage & PackageAdditions` didn't cause the PackageAdditions.assets to replace the RegistryPackage.assets property.
I changed the definition of PackageInfo to do what I initially thought it was doing. See comments in models/epm.ts for more about how the new type is constructed.
* remove comment
* fix paths
* fix public paths
* fix path
* remove ui types file
* fix types
Co-authored-by: Sandra Gonzales <neptunian@users.noreply.github.com>
Co-authored-by: John Schulz <github.com@jfsiii.org>
* [Fleet] AgentEvent change agent_id and remove data (#57818)
* Remove legacy `ingest` plugin completely (#58056)
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* WIP. 1 type error (but >1 bugs) remaining.
* Add `callCluster` accessors for using ES vs appContext.getClusterClient()
* Undo (?) changes to kbn-pm/dist/index.js
* Run scripts/build_renovate_config for @types/tar
* Replace data w/ agent_id in server schema
* Different way to declare a saved object type
* Use a more specific path to the agent script
* Replace data with agent_id for agent checkin
* Restore internalSavedObjectsClient in app context
* Use project & HTTP TS types in scripts/dev_agent
* Remove ingestManager from FTR features
The plugin is disabled by default and not currently running the FTR tests. I believe we'll add this back when we restore the EPM integration tests.
* Move more variables to common/{constants,types}
* Remove ingestManager from default expected features
* Enable conditional routes. Adjust integration tests
EPM routes currently return a 500 for these tests. For now they `.expect(500)` when enabled and `.expect(404)` when disabled. We can look into the issue and get them to `.expect(200)` in later tests.
* Replace React.FC with React.FunctionComponent following new repo pattern
* Enable Fleet & Ingest FTR tests
* Remove duplicate *Response entries from server/types
* Update README instructions for CLI flags. Rearrange sections (#58363)
* Add instructions for CLI flags. Rearrange sections
Also added some more information about the plugin behavior with links to relevant code
* Add instructions for Ingest & Fleet FTR tests
* Restore search to EPM list page
* [Fleet] Allow to configure CA sha for kibana and elasticsearch (#58186)
* [Ingest] Adjust saved object mappings and rename policy -> config (#58670)
* Replace all reference to (agent) "policy"/"policies" with "config"/"configs"
* Adjust output and datasource saved object mappings
* Update schemas and types to match SO changes
* Fix type check
* Adjust default output object
* Fix property names in tests
* Move installing of index templates and ingest pipelines to package installation (#58619)
* update template and pipeline asset names, install on package install
* fix package install error handling messaging
* save references to installations to package saved object
* add epm.enabled flag for epm functional test runner
* don't add suffix to pipeline entry
* [Fleet] Add a schema of all of our saved objects (#58769)
* [Fleet] Do not use default id for saved objects that need to be encrypted (#57876)
* Adding events for index pattern generation (#58908)
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* Fix yarn.lock after merge
* [Fleet] create agent config before enabling fleet user (#59166)
* support for top level elasticsearch assets installation (#58869)
* add support for ilm policy installation
* check if ilm policy exists
* handle prebuilt index templates, update tests
* cleanup
* update type in install
* fix installing index templates to create multiple ones for inheritance
* [Fleet] Create default output while creating default config (#59223)
* Use the new definitions from package-registry#176 (#59311)
* [Fleet] Remove our custom API key authentication (#59212)
* [Ingest] Full agent config schema & API (#59262)
* Add schema for full agent config and business logic to convert SO agent config -> full agent config
* Adjust output properties in full agent config
* Whitelist full agent config output fields
* [Fleet] UI Agent enrollment flyout (#58524)
* Use POST vs GET for EPM install & remove (#59367)
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* install default packages during setup (#59330)
* install default packages during setup
* check if package is already installed
* [Ingest] Updates to Agent Configuration List UI (#59374)
- Added search bar
- Sync of columns to design
- Actions per row in popup menu
- Connect pagination and per-page count to API request
- Support for `kuery` url param
* Update docs from /api/:section to /api/ingest_manager/:section (#59422)
* [EPM] Add Streams TS type to mirror EPR's (#59446)
* Add Streams TS type in EPM to mirror EPR's
Follows the changes add in https://github.com/elastic/package-registry/pull/230/files#diff-7dea786222588c32c19238bffffee9c2
* Add RegistryPackage.datasources
* Add more detailed shape for Registry Vars
* Don't code in modify src/plugins/management
See PR convo at https://github.com/elastic/kibana/pull/59376/files/c47975535f72e41b0f9a70e678454aac15927db6#r389042975
* [Ingest] Add agent counts to each agent config output of `/agent_configs` API (#59552)
* Added agent counts to getAgentConfigsHandler
* Show agent counts on Agent Config List
* [Fleet] Agent list header (#59487)
* [EPM] Use /packages & /packages/{pkgkey} (#59550)
* Use /packages & /packages/{pkgkey}
* Update paths in skipped tests
* Docs use /packages vs /package/{install,delete}
Some copy & code sample changes.
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* [Ingest] Design sync for Agent Configuration Create Flyout (#59479)
* Match form to design
* Support URI route param to open flyout
* [Ingest] Create data source step 1 & 2 (#59590)
* Add Error and PackageIcon components
* Add create datasource layout+navigation, and select package step
* Add description field to datasource, remove assets and description from datasource package
* Add temporary datasources typing for EPM package info
* Initial pass at configure datasources step. Stream vars only (no input vars yet)
* First pass at input vars config; separate components
* Fix issue with adding more than one datasource to a config
* Add shell review step; save datasouce
* Remove assign/unassign datasource from agent config details UI, replace with add datasource buttons
* Remove actions column from datasource table
* Initial pass at create datasource from package
* Move package to config service to /common, add tests
* Rename VarsEntry to RegistryVarsEntry, add datasets and datasources to RegistrySearchResult definition
* Add typings to create datasource flow
* Add real count of agents to select agent config list
* Ensure the necessary package is installed at time of datasource creation
* Use lowercase pkgkey for consistency
* Update EPM file path to use /packages (#59693)
* fixed header padding (#59711)
* [EPM] Use icons from packages, if present (#59765)
* [Ingest] Create data source step 3 (#59822)
* Make app setup loading state prettier
* Add review step of datasource wizard
* Change name to ID in agent config datasources field
* Fix types
* Add stored datasource to agent datasource unit tests
* Adjustment of registry typings and which registry copy fields to show to sync with elastic/package-registry#242
* Fix `multi` vars not populating with array: elastic/kibana#59724
* Account for if a stream is enabled by default from registry package definition: elastic/kibana#59724
* Adjust tests to account for last two commits
* Fix review page back link
* Fix d'oh typo
* [Ingest] Agent Config Details header and sub tabs navigation (#59783)
- Syncs Agent Config Details header to design
- Includes sub navigation tabs connected to route URL
- Agent Config List Create data source row action enabled
* [Fleet] update agent list UI (#59685)
* [Fleet] ensure default packages are added to the default config (#59759)
* [Fleet] fix output rename api_token => api_key (#60001)
* [Ingest] Address #59376 feedback (#59961)
* Disable create/destroy CTAs if no write capability
Use `core.application.capabilities.ingestManager.write` to test user permissions
* Add -all & -read tags for HTTP routes
* Update test .expect() to match description
* Add useCapabilities hook. Fix two issues with hiding/disabling CTA.
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* Missed one in e12a8ad8a4
* Use package icon as default when no other can be found (#60025)
* Remove duplicate xpack setting
FTR tests failing to start ES with error
```
ERROR ERROR: setting [xpack.security.authc.api_key.enabled] already set, saw [true] and [true]
```
https://github.com/elastic/kibana/pull/59376/checks?check_run_id=503930031 & https://github.com/elastic/kibana/pull/59376/checks?check_run_id=503975576 etc
It appears the xpack.security.authc.api_key.enabled flag was recently added to master in another part, so remove our instance of the setting to prevent the error
* Update EPM file tests to use /packages/{pkgkey}
These should have failed when the routes were changed. Will go back and see what happened.
* [Ingest] Add `revision` to agent configs & data sources (#59848)
* Add revision to agent config and datasource saved objects, add delete datasource service and datasource
* Add revision to full agent config output
* PR feedback
Co-authored-by: Sonja Krause-Harder <sonja.krause-harder@elastic.co>
Co-authored-by: Nicolas Ruflin <spam@ruflin.com>
Co-authored-by: Sandra Gonzales <neptunian@users.noreply.github.com>
Co-authored-by: Matt Apperson <me@mattapperson.com>
Co-authored-by: Nicolas Chaulet <nicolas.chaulet@elastic.co>
Co-authored-by: Nicolas Chaulet <n.chaulet@gmail.com>
Co-authored-by: Matt Apperson <matthew.apperson@elastic.co>
Co-authored-by: Jen Huang <its.jenetic@gmail.com>
Co-authored-by: Brian Seeders <brian.seeders@elastic.co>
Co-authored-by: Tyler Smalley <tyler.smalley@elastic.co>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: neptunian <sandra.gonzales@elastic.co>
Co-authored-by: Jonathan Buttner <56361221+jonathan-buttner@users.noreply.github.com>
Co-authored-by: Paul Tavares <56442535+paul-tavares@users.noreply.github.com>
Co-authored-by: Henry <henry.harding@elastic.co>
2020-03-12 23:52:06 +01:00
"mock-http-server" : "1.3.0" ,
2021-04-28 15:26:15 +02:00
"ms-chromium-edge-driver" : "^0.4.2" ,
2020-11-02 22:18:52 +01:00
"multimatch" : "^4.0.0" ,
2018-07-30 16:17:57 +02:00
"mutation-observer" : "^1.0.3" ,
2020-11-02 22:18:52 +01:00
"ncp" : "^2.0.0" ,
2020-12-04 15:37:42 +01:00
"node-sass" : "^4.14.1" ,
2020-11-02 22:18:52 +01:00
"null-loader" : "^3.0.0" ,
2020-04-10 01:55:28 +02:00
"nyc" : "^15.0.1" ,
2020-11-02 22:18:52 +01:00
"oboe" : "^2.1.4" ,
"ora" : "^4.0.4" ,
"parse-link-header" : "^1.0.1" ,
2020-12-19 01:53:41 +01:00
"pbf" : "3.2.1" ,
2020-11-02 22:18:52 +01:00
"pirates" : "^4.0.1" ,
2019-12-04 16:17:19 +01:00
"pixelmatch" : "^5.1.0" ,
2020-07-30 20:16:49 +02:00
"postcss" : "^7.0.32" ,
2020-11-02 22:18:52 +01:00
"postcss-loader" : "^3.0.0" ,
"postcss-prefix-selector" : "^1.7.2" ,
2020-11-23 13:17:05 +01:00
"prettier" : "^2.2.0" ,
2020-11-02 22:18:52 +01:00
"pretty-ms" : "5.0.0" ,
2021-03-09 16:51:37 +01:00
"q" : "^1.5.1" ,
2020-11-02 22:18:52 +01:00
"react-test-renderer" : "^16.12.0" ,
"read-pkg" : "^5.2.0" ,
2018-08-28 02:26:30 +02:00
"regenerate" : "^1.4.0" ,
2020-11-02 22:18:52 +01:00
"resolve" : "^1.7.1" ,
"rxjs-marbles" : "^5.0.6" ,
"sass-loader" : "^8.0.2" ,
"sass-resources-loader" : "^2.0.1" ,
2020-04-16 18:06:33 +02:00
"selenium-webdriver" : "^4.0.0-alpha.7" ,
2020-11-02 22:18:52 +01:00
"serve-static" : "1.14.1" ,
2020-12-02 23:40:06 +01:00
"shelljs" : "^0.8.4" ,
2019-12-17 19:27:26 +01:00
"simple-git" : "1.116.0" ,
2019-09-04 01:09:24 +02:00
"sinon" : "^7.4.2" ,
2020-11-02 22:18:52 +01:00
"spawn-sync" : "^1.0.15" ,
"string-replace-loader" : "^2.2.0" ,
"strong-log-transformer" : "^2.1.0" ,
"style-loader" : "^1.1.3" ,
2021-01-15 18:52:29 +01:00
"stylelint" : "13.8.0" ,
"stylelint-scss" : "^3.18.0" ,
2020-11-02 22:18:52 +01:00
"superagent" : "^3.8.2" ,
2019-12-17 18:42:22 +01:00
"supertest" : "^3.1.0" ,
2018-09-06 17:39:04 +02:00
"supertest-as-promised" : "^4.0.2" ,
2020-11-02 22:18:52 +01:00
"supports-color" : "^7.0.0" ,
2020-10-02 01:46:00 +02:00
"tape" : "^5.0.1" ,
2020-11-02 22:18:52 +01:00
"tar-fs" : "^2.1.0" ,
"tempy" : "^0.3.0" ,
"terminal-link" : "^2.1.1" ,
"terser-webpack-plugin" : "^2.1.2" ,
"ts-loader" : "^7.0.5" ,
2021-02-25 01:23:19 +01:00
"ts-morph" : "^9.1.0" ,
2020-11-02 22:18:52 +01:00
"tsd" : "^0.13.1" ,
2021-01-27 01:59:24 +01:00
"typescript" : "4.1.3" ,
2020-11-02 22:18:52 +01:00
"unlazy-loader" : "^0.1.3" ,
"url-loader" : "^2.2.0" ,
"val-loader" : "^1.1.1" ,
2019-09-26 21:45:02 +02:00
"vinyl-fs" : "^3.0.3" ,
2021-01-13 20:41:31 +01:00
"wait-on" : "^5.2.1" ,
2020-11-02 22:18:52 +01:00
"watchpack" : "^1.6.0" ,
2021-01-14 01:13:11 +01:00
"webpack" : "^4.41.5" ,
2020-11-06 19:56:59 +01:00
"webpack-cli" : "^3.3.12" ,
"webpack-dev-server" : "^3.11.0" ,
2020-11-02 22:18:52 +01:00
"webpack-merge" : "^4.2.2" ,
2021-02-08 18:47:55 +01:00
"webpack-sources" : "^1.4.1" ,
2020-11-02 22:18:52 +01:00
"write-pkg" : "^4.0.0" ,
"xml-crypto" : "^2.0.0" ,
2019-08-23 21:01:47 +02:00
"xmlbuilder" : "13.0.2" ,
2020-11-02 22:18:52 +01:00
"yargs" : "^15.4.1" ,
2018-06-08 18:32:31 +02:00
"zlib" : "^1.0.5"
2015-01-07 21:48:58 +01:00
}
2021-06-21 21:49:02 +02:00
}