Plugin API changes in 7.15edit

This page discusses the plugin API changes that you need to be aware of when migrating your application to Kibana 7.15.

Other versions: 7.14 | 7.13 | 7.12 | 7.11 | 7.10 | 7.9 | 7.8

fieldFormats extracted from data plugin

fieldFormats were extracted from the data plugin into a separate plugin. For an example on how to use them, check examples/field_formats_example.

Refer to #107173.

@kbn/field-types extracted to a package

kbn_field_types were extracted from the data plugin into a separate @kbn/field-types package.

via #106973

Start contract for field formatters fixed

Previously, the field formatter start contract exposed the register method. Now, it is available only on the setup contract.

Refer to #106828.

Warnings handled inside of headers

The data.search service now returns a warning property that includes any warnings returned from Elasticsearch in the headers.

Refer to #103744.

Scoring support added to KQL

buildEsQuery (and in turn, fromKuery) now support an additional option, filtersInMustClause, which will generate KQL queries in the must clause rather than the filter clause. This change supports use cases such as sorting by _score.

SearchSource now automatically sets filtersInMustClause to true when _score is included in the sort clause.

Refer to #103727.

Key types and functions related to query generation moved to a package

Import the following types and functions from @kbn/es-query. Importing them from the data plugin is deprecated and support will be removed in v8.0.

  • Index Pattern base types (New types, not re-exported from the data plugin)

    • IndexPatternBase
    • IndexPatternFieldBase
    • IFieldSubType
  • Filter Types

    • RangeFilter
    • RangeFilterMeta
    • RangeFilterParams
    • ExistsFilter
    • PhrasesFilter
    • PhraseFilter
    • CustomFilter
    • MatchAllFilter
  • Filter type guards

    • isExistsFilter
    • isFilterPinned
    • isMatchAllFilter
    • isMissingFilter
    • isPhraseFilter
    • isPhrasesFilter
    • isQueryStringFilter
    • isRangeFilter
  • Filter generators

    • buildEmptyFilter
    • buildExistsFilter
    • buildPhraseFilter
    • buildPhrasesFilter
    • buildQueryFilter
    • buildRangeFilter
  • Filter utilities

    • getPhraseFilterField
    • getPhraseFilterValue
    • toggleFilterNegated
    • disableFilter
  • KQL helpers

    • KueryNode
    • fromKueryExpression
    • toElasticsearchQuery
    • nodeTypes
    • buildEsQuery
    • buildQueryFromFilters
    • luceneStringToDsl
    • decorateQuery
    • EsQueryConfig

Refer to #103530.

Expression functions that generate an aggregation configuration were updated

These expression no longer take JSON blobs as arguments. Corresponding expression functions were added to generate any complex argument types. Update your expressions if you use aggregation functions.

Refer to #103494.