Skip to content

Commit b88ed34

Browse files
Merge branch 'master' into lens/fix-transition
2 parents 25a19d4 + cacce7a commit b88ed34

File tree

771 files changed

+16632
-8603
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

771 files changed

+16632
-8603
lines changed

.ci/teamcity/setup_env.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ else
4848
fi
4949

5050
tc_set_env FLEET_PACKAGE_REGISTRY_PORT 6104 # Any unused port is fine, used by ingest manager tests
51+
tc_set_env TEST_CORS_SERVER_PORT 6105 # Any unused port is fine, used by ingest manager tests
5152

5253
if [[ "$(which google-chrome-stable)" || "$(which google-chrome)" ]]; then
5354
echo "Chrome detected, setting DETECT_CHROMEDRIVER_VERSION=true"

docs/developer/architecture/core/index.asciidoc

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -421,29 +421,25 @@ the request handler context:
421421

422422
[source,typescript]
423423
----
424-
import type { CoreSetup, IScopedClusterClient } from 'kibana/server';
424+
import type { CoreSetup, RequestHandlerContext, IScopedClusterClient } from 'kibana/server';
425425
426-
export interface MyPluginContext {
427-
client: IScopedClusterClient;
428-
}
429-
430-
// extend RequestHandlerContext when a dependent plugin imports MyPluginContext from the file
431-
declare module 'kibana/server' {
432-
interface RequestHandlerContext {
433-
myPlugin?: MyPluginContext;
434-
}
426+
interface MyRequestHandlerContext extends RequestHandlerContext {
427+
myPlugin: {
428+
client: IScopedClusterClient;
429+
};
435430
}
436431
437432
class MyPlugin {
438433
setup(core: CoreSetup) {
439434
const client = core.elasticsearch.createClient('myClient');
440-
core.http.registerRouteHandlerContext('myPlugin', (context, req, res) => {
435+
core.http.registerRouteHandlerContext<MyRequestHandlerContext, 'myPlugin'>('myPlugin', (context, req, res) => {
441436
return { client: client.asScoped(req) };
442437
});
443-
const router = core.http.createRouter();
438+
const router = core.http.createRouter<MyRequestHandlerContext>();
444439
router.get(
445440
{ path: '/api/my-plugin/', validate: … },
446441
async (context, req, res) => {
442+
// context type is inferred as MyPluginContext
447443
const data = await context.myPlugin.client.asCurrentUser('endpoint');
448444
}
449445
);

docs/development/core/server/kibana-plugin-core-server.httpresources.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ export interface HttpResources
1616

1717
| Property | Type | Description |
1818
| --- | --- | --- |
19-
| [register](./kibana-plugin-core-server.httpresources.register.md) | <code>&lt;P, Q, B&gt;(route: RouteConfig&lt;P, Q, B, 'get'&gt;, handler: HttpResourcesRequestHandler&lt;P, Q, B&gt;) =&gt; void</code> | To register a route handler executing passed function to form response. |
19+
| [register](./kibana-plugin-core-server.httpresources.register.md) | <code>&lt;P, Q, B, Context extends RequestHandlerContext = RequestHandlerContext&gt;(route: RouteConfig&lt;P, Q, B, 'get'&gt;, handler: HttpResourcesRequestHandler&lt;P, Q, B, Context&gt;) =&gt; void</code> | To register a route handler executing passed function to form response. |
2020

docs/development/core/server/kibana-plugin-core-server.httpresources.register.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ To register a route handler executing passed function to form response.
99
<b>Signature:</b>
1010

1111
```typescript
12-
register: <P, Q, B>(route: RouteConfig<P, Q, B, 'get'>, handler: HttpResourcesRequestHandler<P, Q, B>) => void;
12+
register: <P, Q, B, Context extends RequestHandlerContext = RequestHandlerContext>(route: RouteConfig<P, Q, B, 'get'>, handler: HttpResourcesRequestHandler<P, Q, B, Context>) => void;
1313
```

docs/development/core/server/kibana-plugin-core-server.httpresourcesrequesthandler.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Extended version of [RequestHandler](./kibana-plugin-core-server.requesthandler.
99
<b>Signature:</b>
1010

1111
```typescript
12-
export declare type HttpResourcesRequestHandler<P = unknown, Q = unknown, B = unknown> = RequestHandler<P, Q, B, 'get', KibanaResponseFactory & HttpResourcesServiceToolkit>;
12+
export declare type HttpResourcesRequestHandler<P = unknown, Q = unknown, B = unknown, Context extends RequestHandlerContext = RequestHandlerContext> = RequestHandler<P, Q, B, Context, 'get', KibanaResponseFactory & HttpResourcesServiceToolkit>;
1313
```
1414

1515
## Example

docs/development/core/server/kibana-plugin-core-server.httpservicesetup.createrouter.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Provides ability to declare a handler function for a particular path and HTTP re
99
<b>Signature:</b>
1010

1111
```typescript
12-
createRouter: () => IRouter;
12+
createRouter: <Context extends RequestHandlerContext = RequestHandlerContext>() => IRouter<Context>;
1313
```
1414

1515
## Remarks

docs/development/core/server/kibana-plugin-core-server.httpservicesetup.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,13 @@ async (context, request, response) => {
8484
| [auth](./kibana-plugin-core-server.httpservicesetup.auth.md) | <code>HttpAuth</code> | Auth status. See [HttpAuth](./kibana-plugin-core-server.httpauth.md) |
8585
| [basePath](./kibana-plugin-core-server.httpservicesetup.basepath.md) | <code>IBasePath</code> | Access or manipulate the Kibana base path See [IBasePath](./kibana-plugin-core-server.ibasepath.md)<!-- -->. |
8686
| [createCookieSessionStorageFactory](./kibana-plugin-core-server.httpservicesetup.createcookiesessionstoragefactory.md) | <code>&lt;T&gt;(cookieOptions: SessionStorageCookieOptions&lt;T&gt;) =&gt; Promise&lt;SessionStorageFactory&lt;T&gt;&gt;</code> | Creates cookie based session storage factory [SessionStorageFactory](./kibana-plugin-core-server.sessionstoragefactory.md) |
87-
| [createRouter](./kibana-plugin-core-server.httpservicesetup.createrouter.md) | <code>() =&gt; IRouter</code> | Provides ability to declare a handler function for a particular path and HTTP request method. |
87+
| [createRouter](./kibana-plugin-core-server.httpservicesetup.createrouter.md) | <code>&lt;Context extends RequestHandlerContext = RequestHandlerContext&gt;() =&gt; IRouter&lt;Context&gt;</code> | Provides ability to declare a handler function for a particular path and HTTP request method. |
8888
| [csp](./kibana-plugin-core-server.httpservicesetup.csp.md) | <code>ICspConfig</code> | The CSP config used for Kibana. |
8989
| [getServerInfo](./kibana-plugin-core-server.httpservicesetup.getserverinfo.md) | <code>() =&gt; HttpServerInfo</code> | Provides common [information](./kibana-plugin-core-server.httpserverinfo.md) about the running http server. |
9090
| [registerAuth](./kibana-plugin-core-server.httpservicesetup.registerauth.md) | <code>(handler: AuthenticationHandler) =&gt; void</code> | To define custom authentication and/or authorization mechanism for incoming requests. |
9191
| [registerOnPostAuth](./kibana-plugin-core-server.httpservicesetup.registeronpostauth.md) | <code>(handler: OnPostAuthHandler) =&gt; void</code> | To define custom logic after Auth interceptor did make sure a user has access to the requested resource. |
9292
| [registerOnPreAuth](./kibana-plugin-core-server.httpservicesetup.registeronpreauth.md) | <code>(handler: OnPreAuthHandler) =&gt; void</code> | To define custom logic to perform for incoming requests before the Auth interceptor performs a check that user has access to requested resources. |
9393
| [registerOnPreResponse](./kibana-plugin-core-server.httpservicesetup.registeronpreresponse.md) | <code>(handler: OnPreResponseHandler) =&gt; void</code> | To define custom logic to perform for the server response. |
9494
| [registerOnPreRouting](./kibana-plugin-core-server.httpservicesetup.registeronprerouting.md) | <code>(handler: OnPreRoutingHandler) =&gt; void</code> | To define custom logic to perform for incoming requests before server performs a route lookup. |
95-
| [registerRouteHandlerContext](./kibana-plugin-core-server.httpservicesetup.registerroutehandlercontext.md) | <code>&lt;T extends keyof RequestHandlerContext&gt;(contextName: T, provider: RequestHandlerContextProvider&lt;T&gt;) =&gt; RequestHandlerContextContainer</code> | Register a context provider for a route handler. |
95+
| [registerRouteHandlerContext](./kibana-plugin-core-server.httpservicesetup.registerroutehandlercontext.md) | <code>&lt;Context extends RequestHandlerContext, ContextName extends keyof Context&gt;(contextName: ContextName, provider: RequestHandlerContextProvider&lt;Context, ContextName&gt;) =&gt; RequestHandlerContextContainer</code> | Register a context provider for a route handler. |
9696

docs/development/core/server/kibana-plugin-core-server.httpservicesetup.registerroutehandlercontext.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,18 @@ Register a context provider for a route handler.
99
<b>Signature:</b>
1010

1111
```typescript
12-
registerRouteHandlerContext: <T extends keyof RequestHandlerContext>(contextName: T, provider: RequestHandlerContextProvider<T>) => RequestHandlerContextContainer;
12+
registerRouteHandlerContext: <Context extends RequestHandlerContext, ContextName extends keyof Context>(contextName: ContextName, provider: RequestHandlerContextProvider<Context, ContextName>) => RequestHandlerContextContainer;
1313
```
1414

1515
## Example
1616

1717

1818
```ts
1919
// my-plugin.ts
20-
deps.http.registerRouteHandlerContext(
20+
interface MyRequestHandlerContext extends RequestHandlerContext {
21+
myApp: { search(id: string): Promise<Result> };
22+
}
23+
deps.http.registerRouteHandlerContext<MyRequestHandlerContext, 'myApp'>(
2124
'myApp',
2225
(context, req) => {
2326
async function search (id: string) {
@@ -28,6 +31,8 @@ registerRouteHandlerContext: <T extends keyof RequestHandlerContext>(contextName
2831
);
2932

3033
// my-route-handler.ts
34+
import type { MyRequestHandlerContext } from './my-plugin.ts';
35+
const router = createRouter<MyRequestHandlerContext>();
3136
router.get({ path: '/', validate: false }, async (context, req, res) => {
3237
const response = await context.myApp.search(...);
3338
return res.ok(response);

docs/development/core/server/kibana-plugin-core-server.icontextcontainer.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ An object that handles registration of context providers and configuring handler
99
<b>Signature:</b>
1010

1111
```typescript
12-
export interface IContextContainer<THandler extends HandlerFunction<any>>
12+
export interface IContextContainer<THandler extends RequestHandler>
1313
```
1414

1515
## Remarks

docs/development/core/server/kibana-plugin-core-server.icontextcontainer.registercontext.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@ Register a new context provider.
99
<b>Signature:</b>
1010

1111
```typescript
12-
registerContext<TContextName extends keyof HandlerContextType<THandler>>(pluginOpaqueId: PluginOpaqueId, contextName: TContextName, provider: IContextProvider<THandler, TContextName>): this;
12+
registerContext<Context extends RequestHandlerContext, ContextName extends keyof Context>(pluginOpaqueId: PluginOpaqueId, contextName: ContextName, provider: IContextProvider<Context, ContextName>): this;
1313
```
1414
1515
## Parameters
1616
1717
| Parameter | Type | Description |
1818
| --- | --- | --- |
1919
| pluginOpaqueId | <code>PluginOpaqueId</code> | The plugin opaque ID for the plugin that registers this context. |
20-
| contextName | <code>TContextName</code> | The key of the <code>TContext</code> object this provider supplies the value for. |
21-
| provider | <code>IContextProvider&lt;THandler, TContextName&gt;</code> | A [IContextProvider](./kibana-plugin-core-server.icontextprovider.md) to be called each time a new context is created. |
20+
| contextName | <code>ContextName</code> | The key of the <code>TContext</code> object this provider supplies the value for. |
21+
| provider | <code>IContextProvider&lt;Context, ContextName&gt;</code> | A [IContextProvider](./kibana-plugin-core-server.icontextprovider.md) to be called each time a new context is created. |
2222
2323
<b>Returns:</b>
2424

0 commit comments

Comments
 (0)