Commit graph

70 commits

Author SHA1 Message Date
Kibana Machine
485960af24
[8.12] [RAM] Stack management rules available with only ml feature (#174791) (#174940)
# Backport

This will backport the following commits from `main` to `8.12`:
- [[RAM] Stack management rules available with only ml feature
(#174791)](https://github.com/elastic/kibana/pull/174791)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Xavier
Mouligneau","email":"xavier.mouligneau@elastic.co"},"sourceCommit":{"committedDate":"2024-01-16T16:13:02Z","message":"[RAM]
Stack management rules available with only ml feature (#174791)\n\n##
Summary\r\n\r\nFix =>
https://github.com/elastic/kibana/issues/173573","sha":"5d5f0d10739647ea7a963327c72dcda5b845ade1","branchLabelMapping":{"^v8.13.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","Team:ResponseOps","Team:ML","v8.12.1","v8.13.0"],"title":"[RAM]
Stack management rules available with only ml
feature","number":174791,"url":"https://github.com/elastic/kibana/pull/174791","mergeCommit":{"message":"[RAM]
Stack management rules available with only ml feature (#174791)\n\n##
Summary\r\n\r\nFix =>
https://github.com/elastic/kibana/issues/173573","sha":"5d5f0d10739647ea7a963327c72dcda5b845ade1"}},"sourceBranch":"main","suggestedTargetBranches":["8.12"],"targetPullRequestStates":[{"branch":"8.12","label":"v8.12.1","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.13.0","branchLabelMappingKey":"^v8.13.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/174791","number":174791,"mergeCommit":{"message":"[RAM]
Stack management rules available with only ml feature (#174791)\n\n##
Summary\r\n\r\nFix =>
https://github.com/elastic/kibana/issues/173573","sha":"5d5f0d10739647ea7a963327c72dcda5b845ade1"}}]}]
BACKPORT-->

Co-authored-by: Xavier Mouligneau <xavier.mouligneau@elastic.co>
2024-01-16 12:01:09 -07:00
Pierre Gayvallet
8b7c677902
Core capabilities: improve the performances of resolveCapabilities (#170454)
## Summary

Fix https://github.com/elastic/kibana/issues/146881

Introduce the concept of "capability path" to Core's capabilities API,
and rely on it to perform various performance optimization during
capabilities resolving.

### API Changes

#### CapabilitiesSetup.registerSwitcher

A new mandatory `capabilityPath` option was added to the API signature. 

Plugins registering capability switchers must now define the path(s) of
capabilities the switcher will impact.

E.g a live example with the `ml` capabilities switcher that was only
mutating `ml.{something}` capabilities:

*Before:*

```ts
coreSetup.capabilities.registerSwitcher(getSwitcher(license$, logger, enabledFeatures));
```

*After:*

```ts
  coreSetup.capabilities.registerSwitcher(getSwitcher(license$, logger, enabledFeatures), {
    capabilityPath: 'ml.*',
  });
```

#### CapabilitiesStart.resolveCapabilities

The `resolveCapabilities` was also changed accordingly, forcing API
consumers to specify the path(s) of capabilities they're planning to
access.

E.g for the `ml` plugin's capabilities resolving

*Before:*

```ts
const capabilities = await this.capabilities.resolveCapabilities(request);
return capabilities.ml as MlCapabilities;
```

*After:*

```ts
const capabilities = await this.capabilities.resolveCapabilities(request, {
   capabilityPath: 'ml.*',
});
return capabilities.ml as MlCapabilities;
```

### Performance optimizations

Knowing which capability path(s) the switchers are impacting and which
capability path(s) the resolver wants to use allow us to optimize the
way we're chaining the resolvers during the `resolveCapabilities`
internal implementation:

#### 1. We only apply switchers that may impact the paths the resolver
requested

E.g when requesting the ml capabilities, we now only apply the `ml`,
`security` and `spaces` switchers.

#### 2. We can call non-intersecting switchers in parallel 

Before, all switchers were executed in sequence. With these changes, we
now group non-intersecting switchers to resolve them in parallel.

E.g the `ml` (`ml.*`) and `fileUpload` (`fileUpload.*`) can be executed
and applied in parallel because they're not touching the same set of
capabilities.

---------

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2023-11-09 05:20:25 -07:00
James Gowdy
ac0d04d355
[ML] Assigning elser models to the * space (#169939)
Fixes https://github.com/elastic/kibana/issues/169771

Adds a new endpoint
`/internal/ml/trained_models/install_elastic_trained_model/:modelId`
which wraps the `putTrainedModel` call to start the download of the
elser model. It then reassigns the saved object's space to be `*`.

Also updates the saved object sync call to ensure any internal models
(ones which start with `.`) are assigned to the `*` space, if they've
needed syncing.

It is still possible for a user to reassign the spaces for an elser
model and get themselves into the situation covered described in
https://github.com/elastic/kibana/issues/169771.
In this situation, I believe the best we can do is suggest the user
adjusts the spaces via the stack management page.

At the moment a `Model already exists` error is displayed in a toast. In
a follow up PR we could catch this and show more information to direct
the user to the stack management page.

---------

Co-authored-by: Dima Arnautov <arnautov.dima@gmail.com>
2023-11-06 13:34:15 +00:00
James Gowdy
6a6df9d72f
[ML] Module filtering (#168721)
Adds a new `tags` property to our ML Modules which contains an array of
strings to used to filter the modules returned when calling
`/internal/ml/modules/get_module` or `/internal/ml/modules/recognize`

Adds a new kibana config setting `xpack.ml.compatibleModuleType` which
will enforce a module filter.
This setting supports the values `security`, `observability` or `search`
and will be used by the serverless projects to ensure only modules
relevant to the current project are discoverable.

When matching against the `xpack.ml.compatibleModuleType` setting,
modules with no tags will be returned along with modules which match the
`compatibleModuleType` value.

The endpoints `/internal/ml/modules/get_module` and
`/internal/ml/modules/recognize` can also take a `filter` query
parameter in the form of a comma separated list of values. If any of
these filter values match a module's tags, the module will be returned.
Modules with no tags will not be matched when using the `filter`
parameter.

This PR also updates the security plugin to apply a `security` filter
when retrieving modules and running recognize. This will improve
performance, especially for recognize which runs the queries from every
module on the supplied index pattern.

Examples

**Running the Security serverless project.**
Request:
`/internal/ml/modules/get_module` 
Response:
All modules containing `tags: ["security"]`
Plus all modules with no `tags` or `tags: []`

Request:
`/internal/ml/modules/get_module?filter=observability` 
Response:
An empty list

**Running stateful es**
Request:
`/internal/ml/modules/get_module` 
Response:
All modules

Request:
`/internal/ml/modules/get_module?filter=security` 
Response:
Only modules containing `tags: ["security"]` 

Request:
`/internal/ml/modules/get_module?filter=security,observability` 
Response:
Modules containing `tags: ["security"]`  and `tags: ["observability"]`

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2023-10-26 16:55:48 +01:00
James Gowdy
eddcdbea24
[ML] Catching registration errors after license change (#167622)
We register our cases integration after checking that the license level
is platinum or trial, however if the license changes from platinum ->
basic and then back again, we attempt to register them again. This
throws an error during kibana start up.

To test, change the license level platinum/trial -> basic and then basic
-> platinum.
There will now be a warning the log `ML failed to register cases
persistable state for ml_anomaly_swimlane`

Also updates the AIOPs change point cases registration which also should
only be registered when running with a platinum or trial license.
2023-10-03 01:11:59 -07:00
James Gowdy
c18513e23d
[ML] Removing global isServerless flag (#166651)
Removed `isServerless` flag which lived in our global context and had to
be passed about to the various components which create their own version
of the context using `getMlGlobalServices`
This PR adds a new context which contains flags for all of the features
which can be toggled when in serverless mode.
Flags added:
```
 showNodeInfo
 showMLNavMenu
 showLicenseInfo
 isADEnabled
 isDFAEnabled
 isNLPEnabled
```
The enabled features flags are now read from the config file client
side, rather than using capabilities.

Additional changes:
- Changes the wording of the awaiting ML node callout in serverless.
- In the search project, the default ML page is the trained models list
and not Overview
- Reenables the Memory Usage page for all projects

---------

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2023-09-27 09:32:17 +01:00
Dima Arnautov
2bce7bbcbe
[ML] Shared service for elastic curated models (#167000)
## Summary

Adds a shared service for elastic curated models. The first use case is
to provide a default/recommended ELSER version based on the hardware of
the current cluster.

#### Why?
In 8.11 we'll provide a platform-specific version of the ELSER v2
alongside the portable one. At the moment several solutions refer to
ELSER for download/inference purposes with a `.elser_model_1` constant.
Starting 8.11 the model ID will vary, so using the `ElastcModels`
service allows retrieving the recommended version of ELSER for the
current cluster without any changes by solution teams in future
releases. It is still possible to request an older version of the model
if necessary.

#### Implementation 
- Adds a new Kibana API endpoint `/trained_models/model_downloads` that
provides a list of model definitions, with the `default` and
`recommended` flags.
- Adds a new Kibana API endpoint `/trained_models/elser_config` that
provides an ELSER configuration based on the cluster architecture.
- `getELSER` method is exposed from the plugin `setup` server-side as
part of our shared services and plugin `start` client-side.

### Checklist

- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [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
2023-09-25 09:15:35 -07:00
James Gowdy
e0ae59fa60
[ML] Switching to config files for serverless ML features (#166477)
Switches to using the serverless config file to enabled/disable ML
features rather than a function shared from the setup contract.
Storing these flags in a config file means they are already available
when setup runs and so can be used when registering integrations into
other plugins.

Removes the dependency on ML from `security_solution_serverless`,
`serverless_observability` and `serverless_search`
2023-09-21 14:46:19 +01:00
James Gowdy
de8e1ccee2
[ML] Fixing ML settings in setup (#166421)
Moving when settings are registered to fix crash in kibana starting up.
2023-09-14 00:26:27 -07:00
James Gowdy
09faf897c9
[ML] Serverless compatibility fixes (#163724)
**ML Management page**
- Fixes general page loading issues.
- Ensures only enabled features are shown as tabs
- Ensures only jobs for enabled features can be exported and imported.
- Ensures only enabled features are listed in the saved object sync
output.
- On trained models tab:
  - Only lists DFA models if NLP is disabled.
  - Only lists non-DFA models if DFA is disabled.

**Anomaly Detection**
- Hides node information in anomaly detection jobs list.
- Hides the Exclude frozen data option in the Use full time range
selector in job wizards.

**Data frame analytics**
 - Hides all node and license level information.

**Trained models**
 - Only lists DFA models if NLP is disabled.
 - Only lists non-DFA models if DFA is disabled.
 - Hides all node and license level information.
 - Hides DFA nodes 

**Notifications and memory usage**
- Ensures only enabled features are mentioned. Including selectable
types in the search bar filters.

**Integrations with other plugins**
- Changes registration for integrations into other plugins so they only
happen if the relevant feature is enabled.
   - Client side: UI actions, cases, embeddables, alerts, maps.
   - Server side: Sample data sets, cases

**AIOPS**
- Hides the Exclude frozen data option in the Use full time range
selector on all pages

**Notes for non ML team reviewers**

**response-ops**
I've divided the
[persistable_state.ts](https://github.com/elastic/kibana/pull/163724#diff-e02dc0b6cb5b63965372b1f4a84d2287cba31a15ab525ab7983f02d09f23879f)
test into basic and trial version.
The ML cases attachments should only be registered if anomaly detection
is available in a trial or platinum license. This was a bug which I
noticed when making serverless changes.

 **Observability**
I've made a few minor changes to the nav menu, fixing names of ML
features and adding the missing Change point detection AIOPs page.

**Security solution**
I've made a few minor changes to the nav menu, fixing names of ML
features and adding some missing ML features.
I think the icons being used will need to be revisited before release as
we have [official ML
icons](https://elastic.github.io/eui/#/display/icons#apps) but not for
every page. So we should probably either have new icons created or all
agree on which standard non-ML icons should be used for the ones which
are missing.

**Search**
The NLP feature is currently disabled in main, I believe this was an
attempt to stop ML anomaly detection alert rules from being registered.
I've reenabled NLP and changed the way we're registering the alerts.
They will now only be registered if the anomaly detection feature is
enabled.


Fixes https://github.com/elastic/kibana/issues/163372
2023-09-13 12:07:55 -07:00
Rudolf Meijering
1df8686dad
[ML] Fix unhandled promise rejection from ML plugin (#163129)
## Summary

Unhandled promise rejections causes the Kibana process to exit in
development. Since this rejection happened anytime Elasticsearch wasn't
available it seems to have been rather disruptive for developers.


### Checklist

Delete any items that are not applicable to this PR.

- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [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
- [ ] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)


### Risk Matrix

Delete this section if it is not applicable to this PR.

Before closing this PR, invite QA, stakeholders, and other developers to
identify risks that should be tested prior to the change/feature
release.

When forming the risk matrix, consider some of the following examples
and how they may potentially impact the change:

| Risk | Probability | Severity | Mitigation/Notes |

|---------------------------|-------------|----------|-------------------------|
| Multiple Spaces&mdash;unexpected behavior in non-default Kibana Space.
| Low | High | Integration tests will verify that all features are still
supported in non-default Kibana Space and when user switches between
spaces. |
| Multiple nodes&mdash;Elasticsearch polling might have race conditions
when multiple Kibana nodes are polling for the same tasks. | High | Low
| Tasks are idempotent, so executing them multiple times will not result
in logical error, but will degrade performance. To test for this case we
add plenty of unit tests around this logic and document manual testing
procedure. |
| Code should gracefully handle cases when feature X or plugin Y are
disabled. | Medium | High | Unit tests will verify that any feature flag
or plugin combination still results in our service operational. |
| [See more potential risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |


### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2023-08-04 02:35:11 -07:00
James Gowdy
055a104679
[ML] Integrating into serverless kibana (#159433)
- Adds function to ML plugin server side setup contract
(`setFeaturesEnabled`) to enable/disable features. Features being,
anomaly detection, data frame analytics or natural language processing.
- Each serverless plugin (search, observability and security) now calls
`setFeaturesEnabled` to enable different features on setup.
- Adds three new feature capabilities, `isADEnabled`, `isDFAEnabled`,
`isNLPEnabled`
- Updates the capabilities switcher to toggle these capabilities based
on the shared feature API. This currently has a bug where the switcher
isn't triggered for API tag checking.
- deeplinks are now only registered based on the feature capabilities,
these control what is shown in the nav menu for search and observability
projects.
- Adds the Machine Learning nav menu section to the `serverless_search`
plugin, to match the `serverless_observability` plugin.
- Does not updated the `serverless_security` plugin's nav menu. (update,
serverless_observability nav menu also now does not contain ML)

Relates to https://github.com/elastic/kibana/issues/160891

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2023-07-01 08:08:21 +01:00
Gerard Soldevila
21351df953
Split the .kibana saved objects index into multiple indices (#154888)
## Description 

Fix https://github.com/elastic/kibana/issues/104081

This PR move some of the SO types from the `.kibana` index into the
following ones:
- `.kibana_alerting_cases`
- `.kibana_analytics`
- `.kibana_security_solution`
- `.kibana_ingest`

This split/reallocation will occur during the `8.8.0` Kibana upgrade
(*meaning: from any version older than `8.8.0` to any version greater or
equal to `8.8.0`*)

**This PR main changes are:**
- implement the changes required in the SO migration algorithm to
support this reallocation
- update the FTR tools (looking at you esArchiver) to support these new
indices
- update hardcoded references to `.kibana` and usage of the
`core.savedObjects.getKibanaIndex()` to use new APIs to target the
correct index/indices
- update FTR datasets, tests and utility accordingly 

## To reviewers

**Overall estimated risk of regressions: low**

But, still, please take the time to review changes in your code. The
parts of the production code that were the most impacted are the
telemetry collectors, as most of them were performing direct requests
against the `.kibana` index, so we had to adapt them. Most other
contributor-owned changes are in FTR tests and datasets.

If you think a type is misplaced (either we missed some types that
should be moved to a specific index, or some types were moved and
shouldn't have been) please tell us, and we'll fix the reallocation
either in this PR or in a follow-up.

## .Kibana split

The following new indices are introduced by this PR, with the following
SO types being moved to it. (any SO type not listed here will be staying
in its current index)

Note: The complete **_type => index_** breakdown is available in [this
spreadsheet](https://docs.google.com/spreadsheets/d/1b_MG_E_aBksZ4Vkd9cVayij1oBpdhvH4XC8NVlChiio/edit#gid=145920788).

#### `.kibana_alerting_cases`
- action
- action_task_params
- alert
- api_key_pending_invalidation
- cases
- cases-comments
- cases-configure
- cases-connector-mappings
- cases-telemetry
- cases-user-actions
- connector_token
- rules-settings
- maintenance-window

#### `.kibana_security_solution`
- csp-rule-template
- endpoint:user-artifact
- endpoint:user-artifact-manifest
- exception-list
- exception-list-agnostic
- osquery-manager-usage-metric
- osquery-pack
- osquery-pack-asset
- osquery-saved-query
- security-rule
- security-solution-signals-migration
- siem-detection-engine-rule-actions
- siem-ui-timeline
- siem-ui-timeline-note
- siem-ui-timeline-pinned-event

#### `.kibana_analytics`

- canvas-element
- canvas-workpad-template
- canvas-workpad
- dashboard
- graph-workspace
- index-pattern
- kql-telemetry
- lens
- lens-ui-telemetry
- map
- search
- search-session
- search-telemetry
- visualization

#### `.kibana_ingest`

- epm-packages
- epm-packages-assets
- fleet-fleet-server-host
- fleet-message-signing-keys
- fleet-preconfiguration-deletion-record
- fleet-proxy
- ingest_manager_settings
- ingest-agent-policies
- ingest-download-sources
- ingest-outputs
- ingest-package-policies

## Tasks / PRs

### Sub-PRs

**Implementation**
- 🟣 https://github.com/elastic/kibana/pull/154846
- 🟣 https://github.com/elastic/kibana/pull/154892
- 🟣 https://github.com/elastic/kibana/pull/154882
- 🟣 https://github.com/elastic/kibana/pull/154884
- 🟣 https://github.com/elastic/kibana/pull/155155

**Individual index split**
- 🟣 https://github.com/elastic/kibana/pull/154897
- 🟣 https://github.com/elastic/kibana/pull/155129
- 🟣 https://github.com/elastic/kibana/pull/155140
- 🟣 https://github.com/elastic/kibana/pull/155130

### Improvements / follow-ups 

- 👷🏼 Extract logic into
[runV2Migration](https://github.com/elastic/kibana/pull/154151#discussion_r1158470566)
@gsoldevila
- Make `getCurrentIndexTypesMap` resillient to intermittent failures
https://github.com/elastic/kibana/pull/154151#discussion_r1169289717
- 🚧 Build a more structured
[MigratorSynchronizer](https://github.com/elastic/kibana/pull/154151#discussion_r1158469918)
- 🟣 https://github.com/elastic/kibana/pull/155035
- 🟣 https://github.com/elastic/kibana/pull/155116
- 🟣 https://github.com/elastic/kibana/pull/155366
## Reallocation tweaks

Tweaks to the reallocation can be done after the initial merge, as long
as it's done before the public release of 8.8

- `url` should get back to `.kibana` (see
[comment](https://github.com/elastic/kibana/pull/154888#discussion_r1172317133))

## Release Note

For performance purposes, Kibana is now using more system indices to
store its internal data.

The following system indices will be created when upgrading to `8.8.0`:

- `.kibana_alerting_cases`
- `.kibana_analytics`
- `.kibana_security_solution`
- `.kibana_ingest`

---------

Co-authored-by: pgayvallet <pierre.gayvallet@elastic.co>
Co-authored-by: Christos Nasikas <christos.nasikas@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Georgii Gorbachev <georgii.gorbachev@elastic.co>
2023-04-25 09:43:42 +02:00
Dima Arnautov
662fd8572e
[ML] Improve job and datafeed config editors in the Advanced job wizard (#146968)
## Summary

Part of #66716

Updates the code editor for anomaly detection job and datafeed
configurations. It uses the monaco editor instead of ace and passes the
JSON schema definition extracted from the elasticsearch specification to
provide suggestions for available properties and documentation on hover.

- Properties autocompletion (ctrl + space)
<img width="552" alt="image"
src="https://user-images.githubusercontent.com/5236598/205601880-03d484b4-c007-4e1b-9325-a80ccdcd02b8.png">

- Documentation on mouse over 
<img width="512" alt="image"
src="https://user-images.githubusercontent.com/5236598/205602042-53a600ee-8fb5-4c18-991d-ffc2f2cca7e8.png">

- Data types support 
<img width="336" alt="image"
src="https://user-images.githubusercontent.com/5236598/205602158-1298a37b-7d8e-40f8-9f6b-bf3117d37c04.png">


### Checklist

- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [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
- [ ] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
2023-03-10 17:04:42 +01:00
Christos Nasikas
da307207dc
[Cases] Ping the ResponseOps team when an attachment types is registered (#152854)
## Summary

Plugins can register case attachments and provide migration for them.
This PR adds a test that will fail if someone registers a new attachment
type or add a new migration. To fix the test you need to update the test
file. When the test file is updated the ResponseOps team will get
notified to review the new changes.

Fixes: https://github.com/elastic/kibana/issues/146252

## Testing
Please test if your integrations are working as expected. Nothing should
change.

### 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

### For maintainers

- [x] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
2023-03-09 10:29:05 -05:00
James Gowdy
ec192acac2
[ML] Add a new memory usage by job and by model view (#149419)
Adds a new Memory usage page to the ML app.
This contains the page which was originally called Nodes, under the
Model Management section, and introduces a new tree map chart to display
memory usage of jobs and trained models.


![image](https://user-images.githubusercontent.com/22172091/217040806-bf1b2d51-32ce-4801-8d8f-e27c3d7a9f62.png)


If kibana is running in a serverless environment, the Memory usage page
will only show the overall memory usage chart. There will be no
reference made to "nodes".

**Refactoring**
Organises related server side code under a `model_management` section.
Moves routes to a new `model_management` file.
Adds a new `isServerless` function to the client side to spoof
information we should son get from kibana to tell whether we are running
in a serverless environment.

---------

Co-authored-by: István Zoltán Szabó <istvan.szabo@elastic.co>
2023-02-07 10:53:36 +00:00
James Gowdy
afb84dcbcd
[ML] Adding ML execution context to es requests (#148746)
Adds the page path as the ID to our existing execution context and adds
an additional context entry to every ml kibana endpoint.
In the search slow log, the id for each slow search from ML will look
like this:


`"a90d5297-fd77-4ea0-ac0d-c302963d7e75;kibana:application:ml:%2Fjobs%2Fnew_job%2Fsingle_metric;application:ml:%2Fapi%2Fml%2Fjobs%2Fnew_job_line_chart`

Separating by semicolon:
`a90d5297-fd77-4ea0-ac0d-c302963d7e75` -> kibana ID

`kibana:application:ml:%2Fjobs%2Fnew_job%2Fsingle_metric` -> default
context items added on the client side to show the source page.

`application:ml:%2Fapi%2Fml%2Fjobs%2Fnew_job_line_chart` -> new items
added by the server to show the source endpoint path.

Note, the paths have been encoded to replace the forward slashes.

Part of https://github.com/elastic/kibana/issues/147378
2023-01-24 07:58:42 +00:00
James Gowdy
1d6bac734c
[ML] Fixing capabilities when ML is disabled in elasticsearch (#143622)
Moves the initialisation of ML saved objects and the auto sync task to
after a license check has been performed. If ML is not enabled or the
license is not platinum or trial we do not initialise the saved objects
or create the auto sync task.

Updates the license checks to react to license changes. If the license
changes from full (platinum or trial) to something else (e.g. basic) we
disable the auto sync tasks.
If the license changes from non-full to full we initialise the saved
objects and start the task.

Removes the `canAccessMl` capability in favour of explicit capabilities
checks. `canAccessMl` was badly named and as a result was being misused
by a few plugins, thinking it was the correct capability to check to see
if ML is available, when really it was the very minimum check to cover
our basic licensed features.

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2022-12-13 11:11:48 +00:00
Dima Arnautov
78f6244109
[ML] Notifications page (#140613)
* init notifications page

* useStorage type enhancement

* api endpoints

* wip notifications page

* side nav notifications

* search by message

* set is loading

* track total count

* omit empty query keys

* from page

* fix paging query

* support query string

* fix refetch effect

* filter for spaces

* remove storage code

* fix i18n strings

* job_id query support

* sorting results

* use in memory table

* omit size and from params, add no items found message

* fix FormattedMessage ids

* fix breadcrumbs

* basic functional tests for the notifications page

* add apidocs

* replace error toast with callout

* add mlSavedObjectsService, add tags

* update error text and placeholder

* replace any

* add saved objects warning

* run request on submit
2022-09-15 13:05:34 -07:00
James Gowdy
292a6a6afb
[ML] Management page refactor (#134893)
* [ML] Management page refactor

* updating props

* adding search and filters

* fixing types

* fixing types

* adding links

* fixing dependency cache problem

* fixing dependency cache problems

* fixing types

* translations

* translations

* moving common code

* upating endpoint comments

* fixing tests

* fixing tests

* fixing tests

* removing comment

* code clean up

* adding id check to spaces test

* translations

* fixing tests

* changes based on review

* adding unmounted and tab change race condition checks

* adding endpoint test

* adding table state

* fixing test

* translations

* renaming variables

* fixing tests

* using vars in expects
2022-06-30 16:53:17 +01:00
spalger
3730dd0779 fix all violations 2022-04-16 01:37:30 -05:00
James Gowdy
e086d64f0a
[ML] Space aware trained models (#123487)
* [ML] Space aware models

* adding initialization

* adding UI

* fixing model list pagination

* adding task manager service

* updating type

* moving log function

* query optimisations

* renaming models to trained models

* adding trained model ui callout

* translations

* updating type registration test

* fixing tests

* saved object type rename

* adding put trained model endpoint

* fixing types

* fixing esclient responses

* fixing trained model endpoints

* fixing endpoints using _all

* fixing logic in trained models  path

* allow wildcards for get trained models

* fixing dfa test

* updating types

* code clean up

* updating route info

* adding trained model capabilities

* adding defer_definition_decompression

* improving sync SO lists

* changing sync response format

* correcting model label in space selector

* translations

* fixing tests

* fixing route capability

* updating types

* changes based on review

* fixing sync items count

* refreshing overview warning after sync

* fixing types and tests

* adding access to saved object types

* reducing log level for pipeline warning

* removing old todo comment

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Tyler Smalley <tyler.smalley@elastic.co>
2022-03-09 18:22:01 +00:00
Dima Arnautov
c9c3516fe0
[ML] Include typical and actual values to the alerting context (#118006)
* include typical and actual values

* add typical and actual to the default message

* typical and actual formatting

* typical and actual for preview

* handle empty typical and actual

* extract typical and actual value from causes

* include function_description to the source

* include function_description to the source

* update type for causes

* shared services for alerting routes

* format typical and actual based on the dataview
2021-11-24 08:28:33 -07:00
Pierre Gayvallet
106183551a
[8.0] remove kibana.index config property (#112773)
* remove kibana config

* remove kibanaConfig usages

* prettier fix

* fix some globalConfig.kibana.index access

* fix xpack_legacy globalConfig usage

* fix home globalConfig usage

* fix canvas globalConfig usage

* fix action globalConfig usage

* fix (all?) remaining usages

* fix more plugins

* fix more plugins bis

* yet more usages

* fix ml usages

* fix security_solution

* fix lens

* fix monitoring

* remove from settings docs

* move doc update

* fix unit tests

* update generated doc

* improve test

* adapt new usage in security_solution

* fix security_solution config

* fix createConfig, again

* fix mock config
2021-10-25 14:25:24 -07:00
James Gowdy
95cd74d7fa
[ML] Using data views service for loading data views (#113961)
* [ML] Using data views service for loading data views

* removing more saved object client uses

* removing IIndexPattern use

* removing IndexPattern use

* removing more depricated types

* fixing teste

* fixing index pattern loading

* tiny refactor

* fixing rollup index test

* changes based on review

* adding size to find calls

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2021-10-13 19:35:51 +01:00
Tyler Smalley
4681a80317
[DX] Upgrade prettier to v2.4.0 (#112359)
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
2021-09-19 22:34:30 -07:00
Dima Arnautov
6c1133ad7c
[ML] Fix date formatting in the alert context of the Anomaly detection job health rule type (#109073)
* [ML] extend alert messages with job ids

* [ML] rename getJobsErrorMessages

* [ML] add rule name to a template

* [ML] utilize fieldFormats plugin for date formatting

* [ML] update types

* [ML] update unit tests

* [ML] guards for uiSettings and fieldRegistry, add custom errors

* [ML] add conditional call for uiSettings

* [ML] fix i18n

* [ML] tests for getCustomError

* [ML] fix i18n check

* [ML] create classes for custom errors
2021-08-19 13:42:06 +02:00
Dima Arnautov
10ef0e9e3e
[ML] Alerting rule for Anomaly Detection jobs monitoring (#106084)
* [ML] init job health alerting rule type

* [ML] add health checks selection ui

* [ML] define schema

* [ML] support all jobs selection

* [ML] jobs health service

* [ML] add logger

* [ML] add context message

* [ML] fix default message for i18n

* [ML] check response size

* [ML] add exclude jobs control

* [ML] getResultJobsHealthRuleConfig

* [ML] change naming for shared services

* [ML] fix excluded jobs filtering

* [ML] check for execution results

* [ML] update context fields

* [ML] unit tests for getResultJobsHealthRuleConfig

* [ML] refactor and job ids check

* [ML] rename datafeed

* [ML] fix translation messages

* [ML] hide non-implemented tests

* [ML] remove jod ids join from the getJobs call

* [ML] add validation for the tests config

* [ML] fix excluded jobs udpate

* [ML] update jobIdsDescription message

* [ML] allow selection all jobs only for include

* [ML] better ux for excluded jobs setup

* [ML] change rule type name

* [ML] fix typo

* [ML] change instances names

* [ML] fix messages

* [ML] hide error callout, show health checks error in EuiFormRow

* [ML] add check for job state

* [ML] add alertingRules key to the doc links

* [ML] update types

* [ML] remove redundant type

* [ML] fix job and datafeed states check

* [ML] fix job and datafeed states check, add comments

* [ML] add unit tests
2021-07-22 17:30:41 +02:00
James Gowdy
bda0a934d3
[ML] removing unused notification settings endpoint (#98109)
* [ML] removing unused notification settings endpoint

* removing route init function

* test commit

* removing test comment
2021-04-23 14:11:03 +01:00
Dima Arnautov
7405a22cf3
[ML] Add telemetry for Anomaly detection alert rules (#97727)
* [ML] register usage collection

* [ML] fix telemetry

* [ML] fix definition schema for collector

* [ML] get kibana config synchronously
2021-04-21 07:34:15 -04:00
Nathan Reese
a6c0ff6e40
[ml] migrate file_data_visualizer/analyze_file to file_upload plugin (#94259)
* [ml] migrate file_data_visualizer/analyze_file to file_upload plugin

* tslint

* give analyze route access to ml user

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2021-03-20 14:59:52 -06:00
Walter Rafelsberger
83c6bcc554
[ML] Anomaly Detection: Migrate validation messages links to use docLinks. (#94568)
- To make use of the docsLinks service which is only usable in client side code, Anomaly Detection's validation messages are not fully returned from the server anymore. Instead just the message ID and necessary metadata to parse the message template gets returned.
- getMessages() no longer uses inline hard coded documentation links but picks links from the docsLinks service.
- The code that rendered the messages originally on the server has been move to a function parseMessages() which can now be used on the client side and accepts the docsLinks services to get URLs to documentation from it.
- This means we no longer need to get the current version/branch information for the server side code.
- Tests have been updated to reflect the changes: API integration tests only check for the now reduced messages containing only message IDs and metadata. The expected results of the API integration tests are used as mocks for the client side function parseMessages(), this allows use to cover the same code and messages as previously.
2021-03-17 07:53:46 +01:00
Mike Côté
23ce8dcfdb
Rename alerts plugin to alerting (#92898)
* Rename alerts plugin to alerting

* Deprecate old config values

* Few more renames

* Update plugin list

* Rename xpack.alerts -> xpack.alerting

* Fix some ESLint rules

* Fix typecheck

* Fix some test failures

* Some more renames

* Fix ESLint

* Fix some test failures

* Fix failing jest test

* Undo exclusive test

* Fix APM deps

* Fix docs

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2021-03-05 13:59:34 -05:00
Dima Arnautov
15cda17f2d
[ML] Fix creation of alert instances for Anomaly detection alert type (#93605)
* [ML] use static alert instance key, remove logic for handling duplicates

* [ML] use job id as an alert instance id

* [ML] beta label

* [ML] round time interval

* [ML] fix preview button

* [ML] improve the default template

* [ML] remove redundant kibanaBaseUrl
2021-03-05 12:26:58 -05:00
Dima Arnautov
c84047bd36
[ML] Prevent duplicate notifications about the same anomaly result (#91485)
* [ML] check kibana even logs for existing alert instance

* [ML] create alert instance key, add check for alert id

* [ML] use anomaly_utils, check interval gap

* [ML] add detector index

* [ML] fix unit test

* [ML] include detector_index into source
2021-02-17 13:26:23 -05:00
Dima Arnautov
341e9cf2eb
[ML] Anomaly Detection alert type (#89286)
* [ML] init ML alerts

* [ML] job selector

* [ML] move schema server-side

* [ML] fix type 🤦‍

* [ML] severity selector

* [ML] add alerting capabilities

* [ML] add alerting capabilities

* [ML] result type selector

* [ML] time range selector

* [ML] init alert preview endpoint

* [ML] update SeveritySelector component

* [ML] adjust the form

* [ML] adjust the form

* [ML] server-side, preview component

* [ML] update defaultMessage

* [ML] Anomaly explorer URL

* [ML] validate preview interval

* [ML] rename alert type

* [ML] fix i18n

* [ML] fix TS and mocks

* [ML] update licence headers

* [ML] add ts config references

* [ML] init functional tests

* [ML] functional test for creating anomaly detection alert

* [ML] adjust bucket results query

* [ML] fix messages

* [ML] resolve functional tests related issues

* [ML] fix result check

* [ML] change preview layout

* [ML] extend ml client types

* [ML] add missing types, remove unused client variable

* [ML] change to import type

* [ML] handle preview error

* [ML] move error callout

* [ML] better error handling

* [ML] add client-side validation

* [ML] move fake request to the executor

* [ML] revert ml client type changes, set response type manually

* [ML] documentationUrl

* [ML] add extra sentence for interim results

* [ML] use publicBaseUrl

* [ML] adjust the query

* [ML] fix anomaly explorer url

* [ML] adjust the alert params schema

* [ML] remove default severity threshold for records and influencers

* [ML] fix query with filter block

* [ML] fix functional tests

* [ML] remove isInterim check

* [ML] remove redundant fragment

* [ML] fix selected cells hook

* [ML] set query string

* [ML] support sample size by the preview endpoint

* [ML] update counter

* [ML] add check for the bucket span

* [ML] fix effects

* [ML] disable mlExplorerSwimlane

* [ML] refactor functional tests to use setSliderValue

* [ML] add assertTestIntervalValue

* [ML] floor scores
2021-02-11 18:14:14 +01:00
Brandon Kobel
4584a8b570
Elastic License 2.0 (#90099)
* Updating everything except the license headers themselves

* Applying ESLint rules

* Manually replacing the stragglers
2021-02-03 18:12:39 -08:00
Nathan Reese
d601090ec8
[ml] migrate file_data_visualizer/import route to file_upload plugin (#89640)
* migrate file_upload plugin to maps_file_upload

* update plugins list

* migrate ml import endpoint

* migrate ml telemetry to file_upload plugin

* add fileUpload plugin to ml

* add TS project

* update ML to use file_upload endpoint

* move types to file_upload plugin

* ignore error

* clean up

* i18n clean-up

* remove schemas from ml

* remove usageCollection from ml

* node scripts/build_plugin_list_docs

* update telemety collector

* revert changes to ingestPipeline schema

* change name of TELEMETRY_DOC_ID to unique value

* remove ImportFile from ml/server/routes/apidoc.json

* fix typo in x=pack/tsconfig.json

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2021-02-02 09:55:09 -07:00
James Gowdy
24f262b9ca
[ML] Space permision checks for job deletion (#83871)
* [ML] Space permision checks for job deletion

* updating spaces dependency

* updating endpoint comments

* adding delete job capabilities check

* small change based on review

* improving permissions checks

* renaming function and endpoint

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2020-11-24 16:29:32 +00:00
Larry Gregory
7f962e5839
Removing circular dependency between spaces and security (#81891)
* Removing circular dependency between spaces and security

* Apply suggestions from code review

Co-authored-by: Constance <constancecchen@users.noreply.github.com>
Co-authored-by: Aleh Zasypkin <aleh.zasypkin@gmail.com>

* Tests refactor

- Reorganize top level describes into 3 space-based blocks into based on spaces:
  - space disabled
  - spaces plugin unavailable
  - space enabled (most previous tests go under this new block) with new beforeEach

- wrote new tests for uncovered lines 58, 66-69

* Review1: address PR feedback

* changing fake requests for alerts/actions

* Fixing tests

* fixing more tests

* Additional testing and refactoring

* Apply suggestions from code review

Co-authored-by: Aleh Zasypkin <aleh.zasypkin@gmail.com>

* Review 2: Address feedback

* Make ESLint happy again

Co-authored-by: Constance <constancecchen@users.noreply.github.com>
Co-authored-by: Aleh Zasypkin <aleh.zasypkin@gmail.com>
Co-authored-by: Constance Chen <constance.chen.3@gmail.com>
2020-11-19 13:41:13 -05:00
James Gowdy
6a1cd73082
[ML] Additional job spaces initialization (#83127)
* [ML] Additional job spaces initialization

* adding logs test

* updating integrations

* updating test text

* fixing logs jobs error

* fix bug with duplicate ids

* updating initialization log text

* fixing initialization text

* adding metrics overrides

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2020-11-16 21:56:41 +00:00
James Gowdy
096acb4da8
[ML] job saved objects initialization (#82639)
* [ML] job saved objects initialization

* fixing job count logic

* adding missing files

* attempting to fix build crash

* fixing kibana.json

* changes based on review

* removing accidentally added export

* adding intialization promise

* use finally so errors dont stop initialization

* function rename

* removing duplicate header

* adding job initialization count to log message

* adding error to log message

* moving initialization file

* moving intialization file back again to fix git stash issues

* removing .kibana index search

* creating internal saved object client

* code clean up

* removing commented code

* adding check for spaces enabled

* adding ids to saved objects

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2020-11-10 21:02:09 +00:00
James Gowdy
a0fded52eb
[ML] Adding space aware jobs (#77916)
* [ML] Adding space aware jobs

* adding mlClient

* switching to type includes

* adding additional job checks

* fixing conflict

* adding dfa checks

* refactoring jobs in spaces checks

* filtering calendars

* adding initial job object status and repair endpoints

* enabling repair endpoint

* fixing listed jobs in status

* adding datafeed repair

* updating shared services

* adding results job id check

* fixing conflicts

* don't remove SO on delete

* fixing non-ml plugins

* filtering job audit messages

* fixing types

* fixing tests

* adding job ids wildcard support

* removing empty migration test

* fixing tests and disabling spaces test user

* adding saved objects all permission

* fixing calendars

* updating job 404

* updating job wildcard search

* renaming services

* fixing conflicts

* fixing log tests

* disabling apm test

* skipping more apm tests

* optimzing repair

* fixing types

* updating apm test archive to include ML saved objects

* enabling disabled test

* removing comment

* adding space assigning endpoints

* adding saved object default permissions

* removing commented code

* loading all jobs for all spaces for status check

* adding spaces list endpoint

* adding job spaces to management page

* adding trained model fltering

* fixing trained model id check and job wildcard check

* fixing types

* fixing bug when adding new job to calendar

* changes based on review

* updating schema

* changes based on review

* fixing types

* rolling back http service injection

* fixing http service injection

* adding errrors to repair endpoint response

* updating api doc

* improving types

* disabling id check on ad get endpoints

* fixing tests

* fixing group requests

* adding comments

* using filter in saved object search

* fixing fake request issue

* removing console log

* making job saved object hidden

* removing acccidentally included file

* renaming saved object client

* updating apidoc

* unhiding ml saved objects

* moving route guard

* improving error when SOC is null

* fixing types after merge with master

* fixing tests

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2020-11-03 15:34:35 +00:00
Larry Gregory
bf0f8bbb42
Cleanup feature registration (#80909) 2020-10-20 12:53:43 -04:00
Dima Arnautov
3002108c40
[ML] rename inference to trained_models (#79676) 2020-10-06 19:31:59 +02:00
Larry Gregory
9f3992f6c2
Grouped features for space management (#74151)
* Grouped features for space management

* Apply suggestions from code review

Co-authored-by: Joe Portner <5295965+jportner@users.noreply.github.com>

* Address PR Feedback

* docs changes

* updating types/docs

* update APM feature name

* Reintroduce extraAction following EUI update

* change ordering of infra features, and render callout for management category

Co-authored-by: Joe Portner <5295965+jportner@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-09-18 12:30:59 -04:00
Larry Gregory
2e34eb239f
Hide management sections based on cluster/index privileges (#67791)
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-09-14 09:30:47 -04:00
James Gowdy
4762cf56f5
[ML] Switching to new es client (#74965)
* [ML] Switching to new es client

* further conversions

* fixing tests

* updating responses

* test commit

* refactoring shared services to removed context parameter

* removing last scoped clients

* removing ml js client

* udating file data viz errors

* fixing jest tests

* fixing types after merge with master

* error response changes

* adding default sizes to some requests

* adding custom error types for license checks

* tidying up shared function checks

* removing test data

* removing need for DummyKibanaRequest

* updating comment

* fixing functional api tests

* removing comments

* fixing types after master merge

* throw error rather than return it

* removing placeholder error

* changes based on review comments

* fixing types after merge with master

* fixing missing return

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-09-02 14:07:57 +01:00
Catherine Liu
532f2d70e8
[Home] Elastic home page redesign (#70571)
Co-authored-by: Catherine Liu <catherine.liu@elastic.co>
Co-authored-by: Ryan Keairns <contactryank@gmail.com>
Co-authored-by: Catherine Liu <catherineqliu@outlook.com>
Co-authored-by: Michael Marcialis <michael.marcialis@elastic.co>
2020-08-26 13:00:00 -07:00
Dima Arnautov
8f7d213944
[ML] Inference models management (#74978)
* [ML] init tabs

* [ML] init inference API service in UI

* [ML] server-side routes

* [ML] basic table

* [ML] support deletion

* [ML] delete multiple models

* [ML] WIP expanded row

* [ML] fix types

* [ML] expanded row

* [ML] fix types

* [ML] fix i18n id

* [ML] change server-side permission check

* [ML] refactor types

* [ML] show success toast on model deletion, fix models counter

* [ML] update expanded row

* [ML] pipelines stats

* [ML] use refresh observable

* [ML] endpoint to fetch associated pipelines

* [ML] update the endpoint to fetch associated pipelines

* [ML] show pipelines definition in expanded row

* [ML] change stats layout

* [ML] fix headers

* [ML] change breadcrumb title

* [ML] fetch models config with pipelines

* [ML] change default size to 1000

* [ML] fix collections keys, fix double fetch on initial page load

* [ML] adjust models deletion text

* [ML] fix DFA jobs on the management page

* [ML] small tabs in expanded row

* [ML] fix headers text

* [ML] fix models fetching without pipelines get permissions

* [ML] stats rendering as a description list

* [ML] fix i18n id

* [ML] remove an extra copyright comment, add selectable messages

* [ML] update stats on refresh
2020-08-19 16:22:26 +02:00