-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce preboot
lifecycle stage
#103636
Merged
Merged
Changes from all commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
6751a1c
Implement `preboot` lifecycle stage.
azasypkin ef6b84d
Update example plugin and code ownership.
azasypkin 4c5b03d
Expose `basePath` service to `preboot` plugins.
azasypkin 3865b2e
Review#1: handle review feedback (better types and nits).
azasypkin f042ff8
Review#1: keep both `setup` and `preboot` methods in `EnvironmentServ…
azasypkin e9ffa9c
Review#1: use clearer reason for the configuration reload during preb…
azasypkin adb070d
Update usage collection integration test.
azasypkin bf16f85
Fix xpack_legacy and apm tests,
azasypkin 3366592
Use separate `PluginSystem` instances for preboot and standard plugins.
azasypkin 428d8b6
Merge branch 'master' into issue-xxx-preboot-poc
azasypkin 36f6eef
Review#1: dont try to stop `preboot` plugins system twice.
azasypkin d90a252
Review#1: dont try to stop `preboot` HTTP server twice.
azasypkin 496edc5
Update latest ingegration tests from upstream.
azasypkin 53662b8
Add basic `preboot` HTTP server intergration tests.
azasypkin ded628f
Review#2: limit a number of ES config fields we expose to preboot plu…
azasypkin c3b8ede
Review#2: implement `UiSettingsDefaultsClient`.
azasypkin f3ed02d
Review#2: skip plugin start if `config.initialize` is not set.
azasypkin 5a04d48
Merge branch 'master' into issue-xxx-preboot-poc
azasypkin ac78c45
Review#3: improve `PluginsService` tests.
azasypkin 89ffdb8
Merge branch 'master' into issue-xxx-preboot-poc
azasypkin 2d27ce4
Review#3: fix typos in docs and error message.
azasypkin File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
13 changes: 13 additions & 0 deletions
13
.../development/core/server/kibana-plugin-core-server.corepreboot.elasticsearch.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [CorePreboot](./kibana-plugin-core-server.corepreboot.md) > [elasticsearch](./kibana-plugin-core-server.corepreboot.elasticsearch.md) | ||
|
||
## CorePreboot.elasticsearch property | ||
|
||
[ElasticsearchServicePreboot](./kibana-plugin-core-server.elasticsearchservicepreboot.md) | ||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
elasticsearch: ElasticsearchServicePreboot; | ||
``` |
13 changes: 13 additions & 0 deletions
13
docs/development/core/server/kibana-plugin-core-server.corepreboot.http.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [CorePreboot](./kibana-plugin-core-server.corepreboot.md) > [http](./kibana-plugin-core-server.corepreboot.http.md) | ||
|
||
## CorePreboot.http property | ||
|
||
[HttpServicePreboot](./kibana-plugin-core-server.httpservicepreboot.md) | ||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
http: HttpServicePreboot; | ||
``` |
22 changes: 22 additions & 0 deletions
22
docs/development/core/server/kibana-plugin-core-server.corepreboot.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [CorePreboot](./kibana-plugin-core-server.corepreboot.md) | ||
|
||
## CorePreboot interface | ||
|
||
Context passed to the `setup` method of `preboot` plugins. | ||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
export interface CorePreboot | ||
``` | ||
|
||
## Properties | ||
|
||
| Property | Type | Description | | ||
| --- | --- | --- | | ||
| [elasticsearch](./kibana-plugin-core-server.corepreboot.elasticsearch.md) | <code>ElasticsearchServicePreboot</code> | [ElasticsearchServicePreboot](./kibana-plugin-core-server.elasticsearchservicepreboot.md) | | ||
| [http](./kibana-plugin-core-server.corepreboot.http.md) | <code>HttpServicePreboot</code> | [HttpServicePreboot](./kibana-plugin-core-server.httpservicepreboot.md) | | ||
| [preboot](./kibana-plugin-core-server.corepreboot.preboot.md) | <code>PrebootServicePreboot</code> | [PrebootServicePreboot](./kibana-plugin-core-server.prebootservicepreboot.md) | | ||
|
13 changes: 13 additions & 0 deletions
13
docs/development/core/server/kibana-plugin-core-server.corepreboot.preboot.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [CorePreboot](./kibana-plugin-core-server.corepreboot.md) > [preboot](./kibana-plugin-core-server.corepreboot.preboot.md) | ||
|
||
## CorePreboot.preboot property | ||
|
||
[PrebootServicePreboot](./kibana-plugin-core-server.prebootservicepreboot.md) | ||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
preboot: PrebootServicePreboot; | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
13 changes: 13 additions & 0 deletions
13
docs/development/core/server/kibana-plugin-core-server.discoveredplugin.type.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [DiscoveredPlugin](./kibana-plugin-core-server.discoveredplugin.md) > [type](./kibana-plugin-core-server.discoveredplugin.type.md) | ||
|
||
## DiscoveredPlugin.type property | ||
|
||
Type of the plugin, defaults to `standard`<!-- -->. | ||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
readonly type: PluginType; | ||
``` |
13 changes: 13 additions & 0 deletions
13
...er/kibana-plugin-core-server.elasticsearchconfigpreboot.credentialsspecified.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [ElasticsearchConfigPreboot](./kibana-plugin-core-server.elasticsearchconfigpreboot.md) > [credentialsSpecified](./kibana-plugin-core-server.elasticsearchconfigpreboot.credentialsspecified.md) | ||
|
||
## ElasticsearchConfigPreboot.credentialsSpecified property | ||
|
||
Indicates whether Elasticsearch configuration includes credentials (`username`<!-- -->, `password` or `serviceAccountToken`<!-- -->). | ||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
readonly credentialsSpecified: boolean; | ||
``` |
13 changes: 13 additions & 0 deletions
13
...pment/core/server/kibana-plugin-core-server.elasticsearchconfigpreboot.hosts.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [ElasticsearchConfigPreboot](./kibana-plugin-core-server.elasticsearchconfigpreboot.md) > [hosts](./kibana-plugin-core-server.elasticsearchconfigpreboot.hosts.md) | ||
|
||
## ElasticsearchConfigPreboot.hosts property | ||
|
||
Hosts that the client will connect to. If sniffing is enabled, this list will be used as seeds to discover the rest of your cluster. | ||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
readonly hosts: string[]; | ||
``` |
21 changes: 21 additions & 0 deletions
21
...development/core/server/kibana-plugin-core-server.elasticsearchconfigpreboot.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [ElasticsearchConfigPreboot](./kibana-plugin-core-server.elasticsearchconfigpreboot.md) | ||
|
||
## ElasticsearchConfigPreboot interface | ||
|
||
A limited set of Elasticsearch configuration entries exposed to the `preboot` plugins at `setup`<!-- -->. | ||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
export interface ElasticsearchConfigPreboot | ||
``` | ||
|
||
## Properties | ||
|
||
| Property | Type | Description | | ||
| --- | --- | --- | | ||
| [credentialsSpecified](./kibana-plugin-core-server.elasticsearchconfigpreboot.credentialsspecified.md) | <code>boolean</code> | Indicates whether Elasticsearch configuration includes credentials (<code>username</code>, <code>password</code> or <code>serviceAccountToken</code>). | | ||
| [hosts](./kibana-plugin-core-server.elasticsearchconfigpreboot.hosts.md) | <code>string[]</code> | Hosts that the client will connect to. If sniffing is enabled, this list will be used as seeds to discover the rest of your cluster. | | ||
|
22 changes: 22 additions & 0 deletions
22
...ent/core/server/kibana-plugin-core-server.elasticsearchservicepreboot.config.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [ElasticsearchServicePreboot](./kibana-plugin-core-server.elasticsearchservicepreboot.md) > [config](./kibana-plugin-core-server.elasticsearchservicepreboot.config.md) | ||
|
||
## ElasticsearchServicePreboot.config property | ||
|
||
A limited set of Elasticsearch configuration entries. | ||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
readonly config: Readonly<ElasticsearchConfigPreboot>; | ||
``` | ||
|
||
## Example | ||
|
||
|
||
```js | ||
const { hosts, credentialsSpecified } = core.elasticsearch.config; | ||
|
||
``` | ||
|
23 changes: 23 additions & 0 deletions
23
...re/server/kibana-plugin-core-server.elasticsearchservicepreboot.createclient.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [ElasticsearchServicePreboot](./kibana-plugin-core-server.elasticsearchservicepreboot.md) > [createClient](./kibana-plugin-core-server.elasticsearchservicepreboot.createclient.md) | ||
|
||
## ElasticsearchServicePreboot.createClient property | ||
|
||
Create application specific Elasticsearch cluster API client with customized config. See [IClusterClient](./kibana-plugin-core-server.iclusterclient.md)<!-- -->. | ||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
readonly createClient: (type: string, clientConfig?: Partial<ElasticsearchClientConfig>) => ICustomClusterClient; | ||
``` | ||
|
||
## Example | ||
|
||
|
||
```js | ||
const client = elasticsearch.createClient('my-app-name', config); | ||
const data = await client.asInternalUser.search(); | ||
|
||
``` | ||
|
20 changes: 20 additions & 0 deletions
20
...evelopment/core/server/kibana-plugin-core-server.elasticsearchservicepreboot.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [ElasticsearchServicePreboot](./kibana-plugin-core-server.elasticsearchservicepreboot.md) | ||
|
||
## ElasticsearchServicePreboot interface | ||
|
||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
export interface ElasticsearchServicePreboot | ||
``` | ||
|
||
## Properties | ||
|
||
| Property | Type | Description | | ||
| --- | --- | --- | | ||
| [config](./kibana-plugin-core-server.elasticsearchservicepreboot.config.md) | <code>Readonly<ElasticsearchConfigPreboot></code> | A limited set of Elasticsearch configuration entries. | | ||
| [createClient](./kibana-plugin-core-server.elasticsearchservicepreboot.createclient.md) | <code>(type: string, clientConfig?: Partial<ElasticsearchClientConfig>) => ICustomClusterClient</code> | Create application specific Elasticsearch cluster API client with customized config. See [IClusterClient](./kibana-plugin-core-server.iclusterclient.md)<!-- -->. | | ||
|
13 changes: 13 additions & 0 deletions
13
...evelopment/core/server/kibana-plugin-core-server.httpservicepreboot.basepath.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [HttpServicePreboot](./kibana-plugin-core-server.httpservicepreboot.md) > [basePath](./kibana-plugin-core-server.httpservicepreboot.basepath.md) | ||
|
||
## HttpServicePreboot.basePath property | ||
|
||
Access or manipulate the Kibana base path See [IBasePath](./kibana-plugin-core-server.ibasepath.md)<!-- -->. | ||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
basePath: IBasePath; | ||
``` |
82 changes: 82 additions & 0 deletions
82
docs/development/core/server/kibana-plugin-core-server.httpservicepreboot.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [HttpServicePreboot](./kibana-plugin-core-server.httpservicepreboot.md) | ||
|
||
## HttpServicePreboot interface | ||
|
||
Kibana HTTP Service provides an abstraction to work with the HTTP stack at the `preboot` stage. This functionality allows Kibana to serve user requests even before Kibana becomes fully operational. Only Core and `preboot` plugins can define HTTP routes at this stage. | ||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
export interface HttpServicePreboot | ||
``` | ||
|
||
## Example | ||
|
||
To handle an incoming request in your preboot plugin you should: - Use `@kbn/config-schema` package to create a schema to validate the request `params`<!-- -->, `query`<!-- -->, and `body`<!-- -->. Every incoming request will be validated against the created schema. If validation failed, the request is rejected with `400` status and `Bad request` error without calling the route's handler. To opt out of validating the request, specify `false`<!-- -->. | ||
|
||
```ts | ||
import { schema, TypeOf } from '@kbn/config-schema'; | ||
const validate = { | ||
params: schema.object({ | ||
id: schema.string(), | ||
}), | ||
}; | ||
|
||
``` | ||
- Declare a function to respond to incoming request. The function will receive `request` object containing request details: url, headers, matched route, as well as validated `params`<!-- -->, `query`<!-- -->, `body`<!-- -->. And `response` object instructing HTTP server to create HTTP response with information sent back to the client as the response body, headers, and HTTP status. Any exception raised during the handler call will generate `500 Server error` response and log error details for further investigation. See below for returning custom error responses. | ||
|
||
```ts | ||
const handler = async (context: RequestHandlerContext, request: KibanaRequest, response: ResponseFactory) => { | ||
const data = await findObject(request.params.id); | ||
// creates a command to respond with 'not found' error | ||
if (!data) { | ||
return response.notFound(); | ||
} | ||
// creates a command to send found data to the client and set response headers | ||
return response.ok({ | ||
body: data, | ||
headers: { 'content-type': 'application/json' } | ||
}); | ||
} | ||
|
||
``` | ||
\* - Acquire `preboot` [IRouter](./kibana-plugin-core-server.irouter.md) instance and register route handler for GET request to 'path/<!-- -->{<!-- -->id<!-- -->}<!-- -->' path. | ||
|
||
```ts | ||
import { schema, TypeOf } from '@kbn/config-schema'; | ||
|
||
const validate = { | ||
params: schema.object({ | ||
id: schema.string(), | ||
}), | ||
}; | ||
|
||
httpPreboot.registerRoutes('my-plugin', (router) => { | ||
router.get({ path: 'path/{id}', validate }, async (context, request, response) => { | ||
const data = await findObject(request.params.id); | ||
if (!data) { | ||
return response.notFound(); | ||
} | ||
return response.ok({ | ||
body: data, | ||
headers: { 'content-type': 'application/json' } | ||
}); | ||
}); | ||
}); | ||
|
||
``` | ||
|
||
## Properties | ||
|
||
| Property | Type | Description | | ||
| --- | --- | --- | | ||
| [basePath](./kibana-plugin-core-server.httpservicepreboot.basepath.md) | <code>IBasePath</code> | Access or manipulate the Kibana base path See [IBasePath](./kibana-plugin-core-server.ibasepath.md)<!-- -->. | | ||
|
||
## Methods | ||
|
||
| Method | Description | | ||
| --- | --- | | ||
| [registerRoutes(path, callback)](./kibana-plugin-core-server.httpservicepreboot.registerroutes.md) | Provides ability to acquire <code>preboot</code> [IRouter](./kibana-plugin-core-server.irouter.md) instance for a particular top-level path and register handler functions for any number of nested routes. | | ||
|
40 changes: 40 additions & 0 deletions
40
...ment/core/server/kibana-plugin-core-server.httpservicepreboot.registerroutes.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
<!-- Do not edit this file. It is automatically generated by API Documenter. --> | ||
|
||
[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [HttpServicePreboot](./kibana-plugin-core-server.httpservicepreboot.md) > [registerRoutes](./kibana-plugin-core-server.httpservicepreboot.registerroutes.md) | ||
|
||
## HttpServicePreboot.registerRoutes() method | ||
|
||
Provides ability to acquire `preboot` [IRouter](./kibana-plugin-core-server.irouter.md) instance for a particular top-level path and register handler functions for any number of nested routes. | ||
|
||
<b>Signature:</b> | ||
|
||
```typescript | ||
registerRoutes(path: string, callback: (router: IRouter) => void): void; | ||
``` | ||
|
||
## Parameters | ||
|
||
| Parameter | Type | Description | | ||
| --- | --- | --- | | ||
| path | <code>string</code> | | | ||
| callback | <code>(router: IRouter) => void</code> | | | ||
|
||
<b>Returns:</b> | ||
|
||
`void` | ||
|
||
## Remarks | ||
|
||
Each route can have only one handler function, which is executed when the route is matched. See the [IRouter](./kibana-plugin-core-server.irouter.md) documentation for more information. | ||
|
||
## Example | ||
|
||
|
||
```ts | ||
registerRoutes('my-plugin', (router) => { | ||
// handler is called when '/my-plugin/path' resource is requested with `GET` method | ||
router.get({ path: '/path', validate: false }, (context, req, res) => res.ok({ content: 'ok' })); | ||
}); | ||
|
||
``` | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't forget to remove this file when backporting the PR to 7.x
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will do, thanks for the note! We need to agree if we want to backport this though - we need this only for 8.0, but I can imagine how problematic other 7.x Core-related backports will become if we don't backport.