* add asciidoc support for generated plugin list
Try level offset "=+2" instead of "=+1" to stop the inlining of the includes.
remove +2 back to +1
* Remove asciidoc, switch to regex. Rearrange dev guide to avoid nesting limit.
* Add tests for regex
* add a description to not throw off the table. Remove the heading from the paragraph snippet.
* Fix more READMEs so table renders correctly
* Update plugin list
* Remove code-exploration file, moved to plugin-list
* fix typo
* Add link to developer examples
* Update plugin list
* fix typo
* check for packages stuck installing and reinstall
* update mock endpoint package
* diferentiate between reinstall and reupdate type of install, remove isUpdate, add integration test
* create new EpmPackageInstallStatus type instead of using InstallStatus
* fix merge conflict
* change EpmPackageInstallStatus to a union type
* change time to install to 1 minute
* used saved object find
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* fixes 'sets and reads the url state for timeline by id' timeline ttest
* makes test more reliable
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* improve test stability
* Replace SearchRequest = any with Record<string, any>
* Remove SearchResponse = any from data plugin
* docs
* logs
* Revert "Replace SearchRequest = any with Record<string, any>"
This reverts commit 9914ab5a01.
* code review
* list control
* null check
* null null null
* Jest fix
* add security solution search strategy on server side
* get security solution search strategy in the public app for all host
* fix types
* fix Check core API changes
* thank you cypress test
* Remove any by the right type IESearchRequest
Co-authored-by: Lukas Olson <olson.lukas@gmail.com>
* add translation and filter error when we abort the query
* pr review
* fix translation
* review II
* fix merge issue
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Lukas Olson <olson.lukas@gmail.com>
* Add Index Management README and quick testing steps for data streams.
* Surface data stream health in Data Streams tab (table and detail panel).
- Extract out DataHealth component for use in both Data Streams and Indices tabs.
- Refactor detail panel to use data structure & algo to build component.
- Refactor detail panel to use i18n.translate instead of FormattedMessage.
* Render index template name and index lifecycle policy name in the detail panel.
* Render storage size and max timestamp information in table and detail panel.
- Add 'Include stats' switch.
- Add humanizeTimeStamp service, localized to data streams.
* [Setup] DRY out stripTrailingSlash helper
- DRYs out repeated code
- This will be used by an upcoming server/ endpoint change, hence why it's in common
* [Setup] DRY out initial app data types to common/types
- In preparation for upcoming server logic that will need to reuse these types
+ DRY out and clean up workplace_search types
- remove unused supportEligible
- remove currentUser - unneeded in Kibana
* Update callEnterpriseSearchConfigAPI to parse and fetch new expected data
* Remove /public_url API for /config_data
* Remove getPublicUrl in favor of directly calling the new /config_data API from public/plugin
+ set returned initialData in this.data
* Set up product apps to be passed initial data as props
* Fix for Kea/redux state not resetting between AS<->WS nav
- resetContext at the top level only gets called once total on first plugin load and never after, causing navigating between WS and AS to crash when both have Kea - this fixes the issue
- moves redux Provider to top level app as well
* Add very basic Kea logic file to App Search
* Finish AppSearchConfigured tests & set up kea+useEffect mocks
* [Cleanup] DRY out repeated mock initialAppData to a reusable defaults constant
* refactor: 💡 move timeRange, filters and query to base embeddabl
* refactor: 💡 use new base embeddable input in explore data
* feat: 🎸 import types as types
Introduces a monitor around the Task Manager poller which pips through all values emitted by the poller and recovers from poller failures or stalls.
This monitor does the following:
1. Catches the poller thrown errors and recovers by proxying the error to a handler and continues listening to the poller.
2. Reacts to the poller `error` (caused by uncaught errors) and `completion` events, by starting a new poller and piping its event through to any previous subscribers (in our case, Task Manager itself).
3. Tracks the rate at which the poller emits events (this can be both work events, and `No Task` events, so polling and finding no work, still counts as an emitted event) and times out when this rate gets too long (suggesting the poller has hung) and replaces the Poller with a new one.
We're not aware of any clear cases where Task Manager should actually get restarted by the monitor - this is definitely an error case and we have addressed all known cases.
The goal of introducing this monitor is as an insurance policy in case an unexpected error case breaks the poller in a long running production environment.
* Added the enrich processor form (big one)
* added fail processor form
* Added foreach processor form
* Added geoip processor form and refactored some deserialization
* added grok processor form and updated comments and some i18n ids
* updated existing gsub processor form to be in line with other forms
* added html_strip processor form
* refactored some serialize and deserialize functions and added inference processor form
* fix copy-pasta mistake in inference form and add join processor form
* Added JSON processor field
- Also factored out target_field field to common field (still have
to update the all instances)
- Built out special logic for handling add_to_root and
target_field combo on JSON processor form
- Created another serializer, for default boolean -> undefined.
* remove unused variable
* Refactor to use new shared target_field component, and fix JSON serializer bug
* fix i18n
* address pr feedback
* Fix enrich max fields help text copy
* add link to enrich policy docs in help text
* fix error validation message in enrich policy form and replace space with horizontal rule
* address copy feedback
* fix i18n id typo
* fix i18n
* address additional round of feedback and fix json form help text
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* Set up navigateToUrl context
* Update RR link helpers to use navigateToUrl
* Update breadcrumbs to use navigateToUrl + refactor
generate_breadcrumbs:
- Change base breadcrumb generator to a custom React useHook instead of passing history/context around
- Change use{Product}Breadcrumbs helpers to mainly involve merging arrays
- Update + simplify tests accordingly (test link behavior in main useBreadcrumb suite, not in subsequent helpers)
set_chrome:
- Update to use new breadcrumb hooks (requires pulling out of useEffect, hooks can't be used inside another hook)
- Clean up/refactor tests
* Update route redirects now that navigation works correctly
* add retries for registry requests.
works, afaict. no tests. one TS issue.
* Fix TS issue. Add link to node-fetch error docs
* Restore some accidentally deleted code.
* Add more comments. Remove logging.
* Add tests for plugin setup service & handlers
* Add tests for Registry retry logic
* Extract setup retry logic to separate function/file
* Add tests for setup retry logic
```
firstSuccessOrTryAgain
✓ reject/throws is called again & its value returned (18ms)
✓ the first success value is cached (2ms)
```
* More straightforward(?) tests for setup caching
* Revert cached setup. Still limit 1 call at a time
Terrible tests. Committing & pushing to see if it fixes failures like https://github.com/elastic/kibana/pull/74507/checks?check_run_id=980178887https://kibana-ci.elastic.co/job/elastic+kibana+pipeline-pull-request/67892/execution/node/663/log/
```
07:36:56 └-> "before all" hook
07:36:56 └-> should not allow to enroll an agent with a invalid enrollment
07:36:56 └-> "before each" hook: global before each
07:36:56 └-> "before each" hook: beforeSetupWithDockerRegistry
07:36:56 │ proc [kibana] error [11:36:56.369] Error: Internal Server Error
07:36:56 │ proc [kibana] at HapiResponseAdapter.toError (/dev/shm/workspace/parallel/5/kibana/build/kibana-build-xpack/src/core/server/http/router/response_adapter.js:132:19)
07:36:56 │ proc [kibana] at HapiResponseAdapter.toHapiResponse (/dev/shm/workspace/parallel/5/kibana/build/kibana-build-xpack/src/core/server/http/router/response_adapter.js:86:19)
07:36:56 │ proc [kibana] at HapiResponseAdapter.handle (/dev/shm/workspace/parallel/5/kibana/build/kibana-build-xpack/src/core/server/http/router/response_adapter.js:81:17)
07:36:56 │ proc [kibana] at Router.handle (/dev/shm/workspace/parallel/5/kibana/build/kibana-build-xpack/src/core/server/http/router/router.js:164:34)
07:36:56 │ proc [kibana] at process._tickCallback (internal/process/next_tick.js:68:7)
07:36:56 │ proc [kibana] log [11:36:56.581] [info][authentication][plugins][security] Authentication attempt failed: [security_exception] missing authentication credentials for REST request [/_security/_authenticate], with { header={ WWW-Authenticate={ 0="ApiKey" & 1="Basic realm=\"security\" charset=\"UTF-8\"" } } }
07:36:56 └- ✓ pass (60ms) "Ingest Manager Endpoints Fleet Endpoints fleet_agents_enroll should not allow to enroll an agent with a invalid enrollment"
07:36:56 └-> should not allow to enroll an agent with a shared id if it already exists
07:36:56 └-> "before each" hook: global before each
07:36:56 └-> "before each" hook: beforeSetupWithDockerRegistry
07:36:56 └- ✓ pass (111ms) "Ingest Manager Endpoints Fleet Endpoints fleet_agents_enroll should not allow to enroll an agent with a shared id if it already exists "
07:36:56 └-> should not allow to enroll an agent with a version > kibana
07:36:56 └-> "before each" hook: global before each
07:36:56 └-> "before each" hook: beforeSetupWithDockerRegistry
07:36:56 └- ✓ pass (58ms) "Ingest Manager Endpoints Fleet Endpoints fleet_agents_enroll should not allow to enroll an agent with a version > kibana"
07:36:56 └-> should allow to enroll an agent with a valid enrollment token
07:36:56 └-> "before each" hook: global before each
07:36:56 └-> "before each" hook: beforeSetupWithDockerRegistry
07:36:56 └- ✖ fail: Ingest Manager Endpoints Fleet Endpoints fleet_agents_enroll should allow to enroll an agent with a valid enrollment token
07:36:56 │ Error: expected 200 "OK", got 500 "Internal Server Error"
07:36:56 │ at Test._assertStatus (/dev/shm/workspace/kibana/node_modules/supertest/lib/test.js:268:12)
07:36:56 │ at Test._assertFunction (/dev/shm/workspace/kibana/node_modules/supertest/lib/test.js:283:11)
07:36:56 │ at Test.assert (/dev/shm/workspace/kibana/node_modules/supertest/lib/test.js:173:18)
07:36:56 │ at assert (/dev/shm/workspace/kibana/node_modules/supertest/lib/test.js:131:12)
07:36:56 │ at /dev/shm/workspace/kibana/node_modules/supertest/lib/test.js:128:5
07:36:56 │ at Test.Request.callback (/dev/shm/workspace/kibana/node_modules/superagent/lib/node/index.js:718:3)
07:36:56 │ at parser (/dev/shm/workspace/kibana/node_modules/superagent/lib/node/index.js:906:18)
07:36:56 │ at IncomingMessage.res.on (/dev/shm/workspace/kibana/node_modules/superagent/lib/node/parsers/json.js:19:7)
07:36:56 │ at endReadableNT (_stream_readable.js:1145:12)
07:36:56 │ at process._tickCallback (internal/process/next_tick.js:63:19)
07:36:56 │
07:36:56 │
```
* New name & tests for one-at-a-time /setup behavior
`firstPromiseBlocksAndFufills` for "the first promise created blocks others from being created, then fufills all with that first result"
* More (better?) renaming
* Fix name in test description
* Fix spelling typo.
* Remove registry retry code & tests
* Use async fn's .catch to avoid unhandled rejection
Add explicit `isPending` value instead of overloading role of `status`. Could probably do without it, but it makes the intent more clear.
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* Fix bug where kibana crashes with collection disabled
* Do not set this to an empty object by default
* Always create the bulk uploader, and fix this misplaced license check
* Fix type issue
* Add a couple basic tests
* Fix type issue
* Edit Ingest Manager text strings in Overview and Add Data pages
* Add fixes from review
* remove blank line
* Change configurations to policies
* Remove "configuration" from text
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* Initial pass at updating client routes, variables names, code comments, and UI copy
* Adjust server routes and param names, more var names and i18n fixes
* Fix test
* More var renaming
* Rest of server-side var renaming
* Rest of client side var renaming
* Rename agent SO attributes and add migrations
* Remove agent prefix from policy fields
* Rename agent policy SO attributes and add migrations
* Rename enrollment api key SO attributes and add migrations
* Rename package policy SO attributes and add migrations
* Rename agent event SO attributes and add migrations
* Rename subtype CONFIG to POLICY (I don't think this string is ever sent by agent, though)
* Update snapshot
* Remove unnecessary cloning in migrations
* Fix migration typos
* Update naming in tests and es archiver data
* Rename file names in /common
* Rename /server files
* Rename /public files
* Rename test file names
* Rename missed files
* Revert "Rename subtype CONFIG to POLICY (I don't think this string is ever sent by agent, though)"
This reverts commit 3c91e01ed9.
* Add migration version to updated es archiver data to fix tests
## Summary
Fixes a bug where the list privileges was returning the `.list` privileges twice instead of returning it once and returning the `.items` privileges second with the call. No UI has to change as the way it was written was dynamic to grab the first key found.
This also adds the functional tests to `x-pack/scripts/functional_tests.js` which was not there originally so the end to tend tests should actually run on the CI machine where it was not running on CI before.
Adds the functional tests to the code owners file as well.
Ensure that you go to the test results page from the Jenkins build:
<img width="901" alt="Screen Shot 2020-08-18 at 1 13 18 AM" src="https://user-images.githubusercontent.com/1151048/90482180-13f7c800-e0f0-11ea-92f2-b30a8fffe84e.png">
And ensure you see the tests under:
```
X-Pack Lists Integration Tests
```
Then click through it and ensure they are shown as running and passing
### Checklist
- [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios
* improve test stability
* Use new client
* docs
* Use asyncSearch endpoints
* Clean up types
* Use transport request for now
* fixes
* Fix functional test
* encode
* remove eslint
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* Allow read-only lists users to use Detections if lists indexes exist
We were previously showing them a configuration page, which was
incorrect. The only place we require the write permission is the value
lists modal, which is now hidden if that permission is absent.
* Disable the Value Lists modal when the user cannot write lists
If the user does not have permission to write to the lists index, they
should not be able to CRUD value lists.
* style: Remove unnecessary useCallbacks
* Replaces useCallback functions with inline anonymous functions
* Renames the modal state to be more similar to existing analogous
modal state
Adds support for `version` one the SavedObjectsClient's create api.
This sallows us to retain Optimistic concurrency control when using create to overwrite an existing document.
Fixes error reporting when annotations fail to load for Anomaly Explorer and Single Metric Viewer.
Previously, Anomaly Explorer ended up with a completely empty page when annotations failed to load. Single Metric Viewer would not fail to load, but it would make no difference for the user if existing annotations failed to load of if there were simply no existing annotations. Only in dev console an error message would be visible.
Now a callout is shown when annotations fail to load.
* Navigate from discover to visualize with registering into a trigger
* Implement the VISUALIZE_FIELD action
* Implementation of the maps app trigger actions with the isCompatible functionality
* clean up discover code and tile map action implementation
* Add typeIsHidden on mocks
* Retrieve filters and query from url state
* functional test for oss and tile map
* include geoshape
* fix functional tests
* fix types
* remove unecessary dependencies
* minor fixes
* Remove tilemaps actios as it is going tobe deprecated
* Add useEffect on discover details and move the map action to a separate folder
* Retrieve map tooltips info from context
* Retrieve query and filters from QueryService
* Building urls with urlGenerators
* replace with constants, fetch initialLayers as array
* remove irrelevant comments
* nice improvements
* Return contextualFields for both triggers
* Add getHref on actions, move capabilities to isCompatible method per action and other fixes
* fix type
* Fix type incompatibility after merging with master
* fixes on maps plugin file after merge
* remove unecessary declarations
* nice improvements
* Refactor maps services code to be inline with master
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* Route options timeout -> timeout.payload
* timeout.idleSocket can now be specified per route
* Removing nested ternary
* Fixing integration tests
* Trying to actually fix the integration tests. Existing tests are hitting
idle socket timeout, not the payload timeout
* Fixing payload post timeout integration test
* Fixing PUT and DELETE payload sending too long tests
* Fixing type-script errors
* GET routes can't specify the payload timeout, they can't accept payloads
* Removing some redundancy in the tests
* Adding 'Transfer-Encoding: chunked' to the POST test
* Fixing POST/GET/PUT quick tests
* Adding idleSocket timeout test
* Removing unnecessary `isSafeMethod` call
* Updating documentation
* Removing PUT/DELETE integration tests
* Working around the HapiJS bug
* Deleting unused type import
* The socket can be undefined...
This occurs when using @hapi/shot directly or indirectly via
Server.inject. In these scenarios, there isn't a socket. This can also
occur when a "fake request" is used by the hacky background jobs:
Reporting and Alerting...
* Update src/core/server/http/http_server.ts
Co-authored-by: Josh Dover <me@joshdover.com>
* Adding payload timeout functional tests
* Adding idle socket timeout functional tests
* Adding better comments, using ?? instead of ||
* Fixing the plugin fixture TS
* Fixing some typescript errors
* Fixing plugin fixture tsconfig.json
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Josh Dover <me@joshdover.com>
* Reintroduced tabs to endpoint management and migrated pages to use common security components.
* Empty trusted apps tab.
* Changed casing in the translations.
* Switched to using route path generation functions.
* Added propagation of data-test-subj attribute to Wrapper component.
* Fixed CommonProps import.
* Moved out shared component for administration list page.
* Removed unused file.
* Removed unused translation keys.
* Removed redundant snapshot.
* Added some minimal tests.
* Attempt to fix functional tests.
* Attempt to fix functional tests again.
* Reverted function declarations back to const.
* Wrapped component in memo.
* Remove legacy types and function registration
* Pull server interpreter functions routes into Canvas and update them to use new expressions API
* Clean up comment
* Removing boom and doing more cleanup
* Add functions test and refactor other router tests
* Adding a type and refactoring a forgotten test
* more tests
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
If the work performed by the poller hangs, meaning the promise fails to resolve/reject, then the poller can get stuck in a mode where it just waits for ever and no longer polls for fresh work.
This PR introduces a timeout after which the poller will automatically reject the work, freeing the poller to restart pulling fresh work.
Added support for isCompatible. It is checked during execution.
Pass actionFactory context into createConfig, IsConfigValid
Fix bug that selectedTriggers wasn't reset when switching action factories
Check if license is active in action factories