## [RAC] [TGrid] Migrate the TGrid's rendering to `EuiDataGrid`
This PR migrates TGrid's rendering to use `EuiDataGrid`, per the screenshots below:
![o11y_alerts](https://user-images.githubusercontent.com/4459398/126413504-e825a5a2-1cb5-475e-b514-01fb819793e1.png)
![security_solution_alerts](https://user-images.githubusercontent.com/4459398/126413546-28df8f28-fa81-4b97-91c6-667589ea683c.png)
Related RAC Issue: https://github.com/elastic/security-team/issues/1299
### Prerequisites to deleting legacy code (reducing bundle sizes)
To reduce the size of the `timelines` and `security_solution` plugins, legacy TGrid code and the dependency on `react-beautiful-dnd` will be removed in a follow-up PR.
- Related issue: https://github.com/elastic/kibana/issues/105941
The legacy code and dependencies will be deleted when the following tasks are completed (in follow-up PRs):
- Sorting: Map `redux` sort state to `EuiDataGrid`'s `sorting` prop
- Actions: Migrate draggable hover actions to `EuiDataGrid` `cellActions`
- related PR: <https://github.com/elastic/kibana/pull/105500>
- Use `BrowserFields` to display field metadata when hovering over a column
- related PR: <https://github.com/elastic/kibana/pull/105207>
- Migrate Security Solution's actions column config from a single column to multiple columns
### Desk testing
To desk test this PR, you must enable feature flags in the Observability and Security Solution:
- To desk test the `Observability > Alerts` page, add the following settings to `config/kibana.dev.yml`:
```
xpack.observability.unsafe.cases.enabled: true
xpack.observability.unsafe.alertingExperience.enabled: true
xpack.ruleRegistry.write.enabled: true
```
- To desk test the TGrid in the following Security Solution, edit `x-pack/plugins/security_solution/common/experimental_features.ts` and in the `allowedExperimentalValues` section set:
```typescript
tGridEnabled: true,
```
## Summary
Addressees https://github.com/elastic/kibana/issues/83910 by removing the elastic legacy client from:
* `lists` plugin
* `security_solution` plugin
* `kbn-securitysolution-es-utils` package
Removes found dead code in `security_solution` plugin:
* `server/lib/configuration/inmemory_configuration_adapter.ts`
* `server/lib/detection_engine/privileges/read_privileges.ts`
* `server/lib/configuration/index.ts`
* `server/lib/configuration/adapter_types.ts`
* `server/lib/compose/kibana.ts`
* `server/lib/ecs_fields/extend_map.test.ts`
* `server/lib/ecs_fields/extend_map.ts`
* `server/lib/index_fields/elasticsearch_adapter.ts`
* `server/lib/index_fields/index.ts`
* `server/lib/index_fields/mock.ts`
* `server/lib/index_fields/types.ts`
* `server/lib/source_status/elasticsearch_adapter.ts`
* `server/lib/source_status/index.ts`
* `server/lib/source_status/query.dsl.ts`
* `server/lib/source_status/types.ts`
* `server/lib/sources/configuration.test.ts`
* `server/lib/sources/configuration.ts`
* `server/lib/sources/index.ts`
* `server/lib/sources/types.ts`
Removes dead code in `lists` plugin:
* `server/schemas/common/get_call_cluster.mock.ts`
* `server/lib/ecs_fields/index.ts`
* `server/lib/framework/kibana_framework_adapter.ts`
Removes dead types from `security_solution` plugin:
* `server/lib/framework/types.ts`
* `server/lib/types.ts`
Removes dead functions from `security_solution` plugin:
* `server/utils/build_query/calculate_timeseries_interval.ts`
* `server/utils/runtime_types.ts`
### What to check as a reviewer
* Ensure that there is no left over words of `legacy` such as `legacy.something`
* Ensure there are no more `callAsCurrentUser` since that is all dead and gone
* Ensure anywhere you see `esClient.someThing` it returns the `.body` at the end or destructors it as in `{ body } = esClient.someThing`
### Risk Matrix
| Risk | Probability | Severity | Mitigation/Notes |
|---------------------------|-------------|----------|-------------------------|
| Telemetry might stop working or have invalid values. | Med | High | We will have to manually test telemetry. Pinged people from telemetry for a code review |
| An REST route returns invalid values. | Med | High | e2e tests caught some of these already. The rest of the code was re-checked by hand |
| Deleted function/code might actually be still in use somewhere. | Low | High | e2e and unit tests should catch any of this. |
### Checklist
Delete any items that are not applicable to this PR.
- [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
* Change security to a required plugin
* Change typings to reflect non-optional security dep
+ update KibanaLogic to no longer need a {} fallback
* Typings cleanup pt 2
Remove `!`s now that security is required
* Update checkAccess lib
- turns out I need to do a little more than just updating the requiredPlugin arr & types!
- based on my understanding of our 8.0 behavior Enterprise Search will not start if x-pack security is disabled, so we should probably opt to early disable the plugin for simplicity as well
* [PR feedback] yeet
* Adding function hooks into rule type definition and call extract fn on rule create
* Adding hooks for extracting and injecting saved object references. Adding extractReferences to create and update workflow
* Adding type template for extracted params
* Adding type template for extracted params
* Adding type template for extracted params
* Adding type template for extracted params
* Calling injectReferences function if defined. Finishing unit tests for create and update
* Adding tests for get
* Adding tests for find
* Cleanup
* Fixing types check
* Fixing functional tests
* Fixing functional tests
* Fixing tests
* Updating README
* Throwing boom error instead of normal error
* Adding framework level prefix to extracted saved object reference names
* Fixing types
* Fixing types
* PR fixes
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* Set up Kibana dependencies required by LogStream component
- notably, `infra` and `data` - @see https://github.com/elastic/kibana/blob/master/x-pack/plugins/infra/public/components/log_stream/log_stream.stories.mdx#prerequisites
- tsconfig.json note - I believe I missed kibana_react from when we previously started requiring it for KibanaPageTemplate. Because LogStream requires it for KibanaContextProvider anyway I decided to add as a reference just in case
* Set up log source configuration for ent search logs
@see https://github.com/elastic/kibana/blob/master/x-pack/plugins/infra/public/components/log_stream/log_stream.stories.mdx#with-a-source-configuration
or, monitoring plugin also has example usage
* Set up providers required by the LogStream component
@see https://github.com/elastic/kibana/blob/master/x-pack/plugins/infra/public/components/log_stream/log_stream.stories.mdx#prerequisites
Note: there's some overlap in KibanaContextProvider with KibanaLogic that may be worth investigating/DRYing out in the future
* Create reusable EntSearchLogStream component
- light wrapper over LogStream with certain prepopulated defaults
+ Update LogStreamProps from infra team to be exported publicly for reuse (eslint will error otherwise)
* Fix bad type export
- thanks @afgomez!!
* Fix failing security_only nav_links test
- which was caused by `spaces` being required by infra but optional for our plugin. I moved `spaces` to required by `enterprise_search for clarity.
- I'm still not sure I actually fixed the nav_links test correctly. I have almost no memory of adding those lines 12 months ago 🙈
* Fix spaces typing
- remove `?` notation now that it's a required and non-optional plugin
+ reorder required plugins slightly
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Include the user that Cloud uses to run the Fleet server in the list of
trusted users. And include the elastic/fleet-server service account.
Part of the `agent.id` validation is the check that the user that issued
the API key is trusted before trusting the metadata attached to the API key.
In the long run I think it would make sense to have Fleet automatically
manage this list of trusted users based on the users being used to operate
Fleet servers.
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* added ability to run ephemeral tasks
* fixed typing
* added typing on plugin
* WIP
* Fix type issues
* Hook up the ephemeral task into the task runner for actions
* Tasks can now run independently of one another
* Use deferred language
* Refactor taskParams slightly
* Use Promise.all
* Remove deferred logic
* Add config options to limit the amount of tasks executing at once
* Add ephemeral task monitoring
* WIP
* Add single test so far
* Ensure we log after actions have executed
* Remove confusing * 1
* Add logic to ensure we fallback to default enqueueing if the total actions is above the config
* Add additional test
* Fix tests a bit, ensure we log the alerting:actions-execute right away and the tests should listen for alerts:execute
* Better tests
* If the queue is at capacity, attempt to execute the ephemeral task as a regular action
* Ensure we run ephemeral tasks before to avoid them getting stuck in the queue
* Do not handle the promise anymore
* Remove unnecessary code
* Properly handle errors from ephemeral task lifecycle
* moved acitons domain out of alerting and into actions plugin
* Remove some tests
* Fix TS and test issues
* Fix type issues
* Fix more type issues
* Fix more type issues
* Fix jest tests
* Fix more jest tests
* Off by default
* Fix jest tests
* Update config for this suite too
* Start of telemetry code
* Fix types and add missing files
* Fix telemetry schema
* Fix types
* Fix more types
* moved load event emission to pollingcycle and added health stats on Ephemeral tasks
* Add more telemetry data based on new health metrics for the ephemeral queue
* Fix tests and types
* Add separate request capacity for ephemeral queue
* Fix telemetry schema and add tests for usage collection
* track polled tasks by persistence and use in capacity estimation instead of executions
* fixed typing
* Bump default capacity
* added delay metric to ephemeral stats
* Fix bad merge
* Fix tests
* Fix tests
* Fix types
* Skip failing tests
* Exclude ephemeral stats from capacity estimation tests
* PR feedback
* More PR feedback
* PR feedback
* Fix merge conflict
* Try fixing CI
* Fix broken lock file from merge
* Match master
* Add this back
* PR feedback
* Change to queue and add test
* Disable ephemeral queue in tests
* Updated desc
* Comment out ephemeral-specific tests tha require the entire test suite to support ephemeral tasks
* Add clarifying comment
Co-authored-by: Gidi Meir Morris <github@gidi.io>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* Change hardcoded image size value to prevent clipping of mobile synthetics screenshots.
* Compute max values for `ref`-style screenshots to improve display ux.
* [Alerting UI]Changed rules table to support visual indication for disabled or muted alerts
* changed columns styles due to the mockup
* added tests
* fixed quotas
* fixed popover
* fixed due to the lates UI updates
* fixed errors
* moved enabled to a separate component
* fixed tests
* fixed due to comments
* Update x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_list/components/alerts_list.scss
Co-authored-by: Mike Côté <mikecote@users.noreply.github.com>
* removed test code
* fixed tests
* fixed due to comments
* fixed due to comments
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Mike Côté <mikecote@users.noreply.github.com>
* [kbn/optimizer] store references to bazel target for all package files
* update jest snapshots
* remove unnecessary fixtures
Co-authored-by: spalger <spalger@users.noreply.github.com>
* [TSVB] fix No longer possible to define intervals like >=1m or >=12h
Closes: #105854
* add tests, remove extra logic
* add functional test, update help text
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* [TSVB] Add more functional tests for Table
* Update filter ratio setting numerator denominator function
* Refactor set filter ratio numerator and denominator functions in visual_builder_page.ts
* Update setFilterRatioOption function
* unskipped test and added additional checks when using time picker
* rather wait for the timepicker to close
* set up test for flaky test runner
* Additional .only
* Remove .only
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* right align duration on alerts observability table
* reason column takes up the remaining width
* add horizontal scrollbar to the table
* add actions label temp solution
* use abbreviated format for duration
* Internationalization for actions
* remove horizontal scroll and bring back initial width
* remove unused import
* remove data as dependency
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* comment out UI display of pending isolation statuses and associated tests
* Change un-isolate form to use `EuiForm` and `EuiFormRow`
* Fix: move component `displayName` to file that has that component's src