Skip to content
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 external url service #81234

Merged
merged 15 commits into from
Dec 9, 2020
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [kibana-plugin-core-public](./kibana-plugin-core-public.md) &gt; [HttpSetup](./kibana-plugin-core-public.httpsetup.md) &gt; [externalUrl](./kibana-plugin-core-public.httpsetup.externalurl.md)

## HttpSetup.externalUrl property

<b>Signature:</b>

```typescript
externalUrl: IExternalUrl;
```
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export interface HttpSetup
| [anonymousPaths](./kibana-plugin-core-public.httpsetup.anonymouspaths.md) | <code>IAnonymousPaths</code> | APIs for denoting certain paths for not requiring authentication |
| [basePath](./kibana-plugin-core-public.httpsetup.basepath.md) | <code>IBasePath</code> | APIs for manipulating the basePath on URL segments. See [IBasePath](./kibana-plugin-core-public.ibasepath.md) |
| [delete](./kibana-plugin-core-public.httpsetup.delete.md) | <code>HttpHandler</code> | Makes an HTTP request with the DELETE method. See [HttpHandler](./kibana-plugin-core-public.httphandler.md) for options. |
| [externalUrl](./kibana-plugin-core-public.httpsetup.externalurl.md) | <code>IExternalUrl</code> | |
| [fetch](./kibana-plugin-core-public.httpsetup.fetch.md) | <code>HttpHandler</code> | Makes an HTTP request. Defaults to a GET request unless overriden. See [HttpHandler](./kibana-plugin-core-public.httphandler.md) for options. |
| [get](./kibana-plugin-core-public.httpsetup.get.md) | <code>HttpHandler</code> | Makes an HTTP request with the GET method. See [HttpHandler](./kibana-plugin-core-public.httphandler.md) for options. |
| [head](./kibana-plugin-core-public.httpsetup.head.md) | <code>HttpHandler</code> | Makes an HTTP request with the HEAD method. See [HttpHandler](./kibana-plugin-core-public.httphandler.md) for options. |
Expand Down
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) &gt; [kibana-plugin-core-public](./kibana-plugin-core-public.md) &gt; [IExternalUrl](./kibana-plugin-core-public.iexternalurl.md)

## IExternalUrl interface

APIs for working with external URLs.

<b>Signature:</b>

```typescript
export interface IExternalUrl
```

## Methods

| Method | Description |
| --- | --- |
| [validateUrl(relativeOrAbsoluteUrl)](./kibana-plugin-core-public.iexternalurl.validateurl.md) | Determines if the provided URL is a valid location to send users. Validation is based on the configured allow list in kibana.yml.<!-- -->If the URL is valid, then a URL will be returned. Otherwise, this will return null. |

Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [kibana-plugin-core-public](./kibana-plugin-core-public.md) &gt; [IExternalUrl](./kibana-plugin-core-public.iexternalurl.md) &gt; [validateUrl](./kibana-plugin-core-public.iexternalurl.validateurl.md)

## IExternalUrl.validateUrl() method

Determines if the provided URL is a valid location to send users. Validation is based on the configured allow list in kibana.yml.

If the URL is valid, then a URL will be returned. Otherwise, this will return null.

<b>Signature:</b>

```typescript
validateUrl(relativeOrAbsoluteUrl: string): URL | null;
```

## Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| relativeOrAbsoluteUrl | <code>string</code> | |

<b>Returns:</b>

`URL | null`

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) &gt; [kibana-plugin-core-public](./kibana-plugin-core-public.md) &gt; [IExternalUrlPolicy](./kibana-plugin-core-public.iexternalurlpolicy.md) &gt; [allow](./kibana-plugin-core-public.iexternalurlpolicy.allow.md)

## IExternalUrlPolicy.allow property

Indicates if this policy allows or denies access to the described destination.

<b>Signature:</b>

```typescript
allow: boolean;
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [kibana-plugin-core-public](./kibana-plugin-core-public.md) &gt; [IExternalUrlPolicy](./kibana-plugin-core-public.iexternalurlpolicy.md) &gt; [host](./kibana-plugin-core-public.iexternalurlpolicy.host.md)

## IExternalUrlPolicy.host property

Optional host describing the external destination. May be combined with `protocol`<!-- -->. Required if `protocol` is not defined.

<b>Signature:</b>

```typescript
host?: string;
```

## Example


```ts
// allows access to all of google.com, using any protocol.
allow: true,
host: 'google.com'

```

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) &gt; [kibana-plugin-core-public](./kibana-plugin-core-public.md) &gt; [IExternalUrlPolicy](./kibana-plugin-core-public.iexternalurlpolicy.md)

## IExternalUrlPolicy interface

A policy describing whether access to an external destination is allowed.

<b>Signature:</b>

```typescript
export interface IExternalUrlPolicy
```

## Properties

| Property | Type | Description |
| --- | --- | --- |
| [allow](./kibana-plugin-core-public.iexternalurlpolicy.allow.md) | <code>boolean</code> | Indicates if this policy allows or denies access to the described destination. |
| [host](./kibana-plugin-core-public.iexternalurlpolicy.host.md) | <code>string</code> | Optional host describing the external destination. May be combined with <code>protocol</code>. Required if <code>protocol</code> is not defined. |
| [protocol](./kibana-plugin-core-public.iexternalurlpolicy.protocol.md) | <code>string</code> | Optional protocol describing the external destination. May be combined with <code>host</code>. Required if <code>host</code> is not defined. |

Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [kibana-plugin-core-public](./kibana-plugin-core-public.md) &gt; [IExternalUrlPolicy](./kibana-plugin-core-public.iexternalurlpolicy.md) &gt; [protocol](./kibana-plugin-core-public.iexternalurlpolicy.protocol.md)

## IExternalUrlPolicy.protocol property

Optional protocol describing the external destination. May be combined with `host`<!-- -->. Required if `host` is not defined.

<b>Signature:</b>

```typescript
protocol?: string;
```

## Example


```ts
// allows access to all destinations over the `https` protocol.
allow: true,
protocol: 'https'

```

2 changes: 2 additions & 0 deletions docs/development/core/public/kibana-plugin-core-public.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| [IAnonymousPaths](./kibana-plugin-core-public.ianonymouspaths.md) | APIs for denoting paths as not requiring authentication |
| [IBasePath](./kibana-plugin-core-public.ibasepath.md) | APIs for manipulating the basePath on URL segments. |
| [IContextContainer](./kibana-plugin-core-public.icontextcontainer.md) | An object that handles registration of context providers and configuring handlers with context. |
| [IExternalUrl](./kibana-plugin-core-public.iexternalurl.md) | APIs for working with external URLs. |
| [IExternalUrlPolicy](./kibana-plugin-core-public.iexternalurlpolicy.md) | A policy describing whether access to an external destination is allowed. |
| [IHttpFetchError](./kibana-plugin-core-public.ihttpfetcherror.md) | |
| [IHttpInterceptController](./kibana-plugin-core-public.ihttpinterceptcontroller.md) | Used to halt a request Promise chain in a [HttpInterceptor](./kibana-plugin-core-public.httpinterceptor.md)<!-- -->. |
| [IHttpResponseInterceptorOverrides](./kibana-plugin-core-public.ihttpresponseinterceptoroverrides.md) | Properties that can be returned by HttpInterceptor.request to override the response. |
Expand Down
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) &gt; [kibana-plugin-core-server](./kibana-plugin-core-server.md) &gt; [IExternalUrlConfig](./kibana-plugin-core-server.iexternalurlconfig.md)

## IExternalUrlConfig interface

External Url configuration for use in Kibana.

<b>Signature:</b>

```typescript
export interface IExternalUrlConfig
```

## Properties

| Property | Type | Description |
| --- | --- | --- |
| [policy](./kibana-plugin-core-server.iexternalurlconfig.policy.md) | <code>IExternalUrlPolicy[]</code> | A set of policies describing which external urls are allowed. |

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) &gt; [kibana-plugin-core-server](./kibana-plugin-core-server.md) &gt; [IExternalUrlConfig](./kibana-plugin-core-server.iexternalurlconfig.md) &gt; [policy](./kibana-plugin-core-server.iexternalurlconfig.policy.md)

## IExternalUrlConfig.policy property

A set of policies describing which external urls are allowed.

<b>Signature:</b>

```typescript
readonly policy: IExternalUrlPolicy[];
```
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) &gt; [kibana-plugin-core-server](./kibana-plugin-core-server.md) &gt; [IExternalUrlPolicy](./kibana-plugin-core-server.iexternalurlpolicy.md) &gt; [allow](./kibana-plugin-core-server.iexternalurlpolicy.allow.md)

## IExternalUrlPolicy.allow property

Indicates of this policy allows or denies access to the described destination.

<b>Signature:</b>

```typescript
allow: boolean;
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [kibana-plugin-core-server](./kibana-plugin-core-server.md) &gt; [IExternalUrlPolicy](./kibana-plugin-core-server.iexternalurlpolicy.md) &gt; [host](./kibana-plugin-core-server.iexternalurlpolicy.host.md)

## IExternalUrlPolicy.host property

Optional host describing the external destination. May be combined with `protocol`<!-- -->. Required if `protocol` is not defined.

<b>Signature:</b>

```typescript
host?: string;
```

## Example


```ts
// allows access to all of google.com, using any protocol.
allow: true,
host: 'google.com'

```

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) &gt; [kibana-plugin-core-server](./kibana-plugin-core-server.md) &gt; [IExternalUrlPolicy](./kibana-plugin-core-server.iexternalurlpolicy.md)

## IExternalUrlPolicy interface

A policy describing whether access to an external destination is allowed.

<b>Signature:</b>

```typescript
export interface IExternalUrlPolicy
```

## Properties

| Property | Type | Description |
| --- | --- | --- |
| [allow](./kibana-plugin-core-server.iexternalurlpolicy.allow.md) | <code>boolean</code> | Indicates of this policy allows or denies access to the described destination. |
| [host](./kibana-plugin-core-server.iexternalurlpolicy.host.md) | <code>string</code> | Optional host describing the external destination. May be combined with <code>protocol</code>. Required if <code>protocol</code> is not defined. |
| [protocol](./kibana-plugin-core-server.iexternalurlpolicy.protocol.md) | <code>string</code> | Optional protocol describing the external destination. May be combined with <code>host</code>. Required if <code>host</code> is not defined. |

Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [kibana-plugin-core-server](./kibana-plugin-core-server.md) &gt; [IExternalUrlPolicy](./kibana-plugin-core-server.iexternalurlpolicy.md) &gt; [protocol](./kibana-plugin-core-server.iexternalurlpolicy.protocol.md)

## IExternalUrlPolicy.protocol property

Optional protocol describing the external destination. May be combined with `host`<!-- -->. Required if `host` is not defined.

<b>Signature:</b>

```typescript
protocol?: string;
```

## Example


```ts
// allows access to all destinations over the `https` protocol.
allow: true,
protocol: 'https'

```

2 changes: 2 additions & 0 deletions docs/development/core/server/kibana-plugin-core-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,8 @@ The plugin integrates with the core system via lifecycle events: `setup`<!-- -->
| [IContextContainer](./kibana-plugin-core-server.icontextcontainer.md) | An object that handles registration of context providers and configuring handlers with context. |
| [ICspConfig](./kibana-plugin-core-server.icspconfig.md) | CSP configuration for use in Kibana. |
| [ICustomClusterClient](./kibana-plugin-core-server.icustomclusterclient.md) | See [IClusterClient](./kibana-plugin-core-server.iclusterclient.md) |
| [IExternalUrlConfig](./kibana-plugin-core-server.iexternalurlconfig.md) | External Url configuration for use in Kibana. |
| [IExternalUrlPolicy](./kibana-plugin-core-server.iexternalurlpolicy.md) | A policy describing whether access to an external destination is allowed. |
| [IKibanaResponse](./kibana-plugin-core-server.ikibanaresponse.md) | A response data object, expected to returned as a result of [RequestHandler](./kibana-plugin-core-server.requesthandler.md) execution |
| [IKibanaSocket](./kibana-plugin-core-server.ikibanasocket.md) | A tiny abstraction for TCP socket. |
| [ImageValidation](./kibana-plugin-core-server.imagevalidation.md) | |
Expand Down
Loading