mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
[Enterprise Search] Add tooltip and default value message (#155176)
- Adds tooltip to each configurable field label. If tooltip is empty, the tooltip will not appear. - Adds a message below fields that have a `default_value`
This commit is contained in:
parent
2d04254b9e
commit
54757a0db8
9 changed files with 431 additions and 62 deletions
|
@ -7,14 +7,15 @@
|
|||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
|
||||
import { FeatureName, NativeConnector } from '../types/connectors';
|
||||
import { DisplayType, FeatureName, NativeConnector } from '../types/connectors';
|
||||
|
||||
export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | undefined> = {
|
||||
mongodb: {
|
||||
configuration: {
|
||||
host: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mongodb.configuration.hostLabel',
|
||||
{
|
||||
|
@ -25,11 +26,13 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 1,
|
||||
required: true,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: '',
|
||||
},
|
||||
user: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mongodb.configuration.usernameLabel',
|
||||
{
|
||||
|
@ -40,11 +43,13 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 2,
|
||||
required: true,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: '',
|
||||
},
|
||||
password: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mongodb.configuration.passwordLabel',
|
||||
{
|
||||
|
@ -55,11 +60,13 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 3,
|
||||
required: true,
|
||||
sensitive: true,
|
||||
tooltip: '',
|
||||
value: '',
|
||||
},
|
||||
database: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mongodb.configuration.databaseLabel',
|
||||
{
|
||||
|
@ -70,11 +77,13 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 4,
|
||||
required: true,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: '',
|
||||
},
|
||||
collection: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mongodb.configuration.collectionLabel',
|
||||
{
|
||||
|
@ -85,11 +94,13 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 5,
|
||||
required: true,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: '',
|
||||
},
|
||||
direct_connection: {
|
||||
default_value: true,
|
||||
depends_on: [],
|
||||
display: 'toggle',
|
||||
display: DisplayType.TOGGLE,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mongodb.configuration.directConnectionLabel',
|
||||
{
|
||||
|
@ -100,6 +111,7 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 6,
|
||||
required: true,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: true,
|
||||
},
|
||||
},
|
||||
|
@ -119,8 +131,9 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
mysql: {
|
||||
configuration: {
|
||||
host: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mysql.configuration.hostLabel',
|
||||
{
|
||||
|
@ -131,11 +144,13 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 1,
|
||||
required: true,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: '',
|
||||
},
|
||||
port: {
|
||||
default_value: null,
|
||||
depends_on: [],
|
||||
display: 'numeric',
|
||||
display: DisplayType.NUMERIC,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mysql.configuration.portLabel',
|
||||
{
|
||||
|
@ -146,11 +161,13 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 2,
|
||||
required: true,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: '',
|
||||
},
|
||||
user: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mysql.configuration.usernameLabel',
|
||||
{
|
||||
|
@ -161,11 +178,13 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 3,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: '',
|
||||
},
|
||||
password: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mysql.configuration.passwordLabel',
|
||||
{
|
||||
|
@ -176,11 +195,13 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 4,
|
||||
required: false,
|
||||
sensitive: true,
|
||||
tooltip: '',
|
||||
value: '',
|
||||
},
|
||||
database: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mysql.configuration.databaseLabel',
|
||||
{
|
||||
|
@ -191,11 +212,13 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 5,
|
||||
required: true,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: '',
|
||||
},
|
||||
tables: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textarea',
|
||||
display: DisplayType.TEXTAREA,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mysql.configuration.tablesLabel',
|
||||
{
|
||||
|
@ -206,11 +229,13 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 6,
|
||||
required: true,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: '',
|
||||
},
|
||||
ssl_enabled: {
|
||||
default_value: false,
|
||||
depends_on: [],
|
||||
display: 'toggle',
|
||||
display: DisplayType.TOGGLE,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mysql.configuration.sslEnabledLabel',
|
||||
{
|
||||
|
@ -221,11 +246,13 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 7,
|
||||
required: true,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: false,
|
||||
},
|
||||
ssl_ca: {
|
||||
default_value: '',
|
||||
depends_on: [{ field: 'ssl_enabled', value: true }],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: i18n.translate(
|
||||
'xpack.enterpriseSearch.nativeConnectors.mysql.configuration.sslCertificateLabel',
|
||||
{
|
||||
|
@ -236,6 +263,7 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record<string, NativeConnector | unde
|
|||
order: 8,
|
||||
required: true,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: '',
|
||||
},
|
||||
},
|
||||
|
|
|
@ -17,14 +17,25 @@ export interface Dependency {
|
|||
|
||||
export type DependencyLookup = Record<string, string | number | boolean | null>;
|
||||
|
||||
export enum DisplayType {
|
||||
TEXTBOX = 'textbox',
|
||||
TEXTAREA = 'textarea',
|
||||
NUMERIC = 'numeric',
|
||||
TOGGLE = 'toggle',
|
||||
DROPDOWN = 'dropdown',
|
||||
CHECKBOX = 'checkbox',
|
||||
}
|
||||
|
||||
export interface ConnectorConfigProperties {
|
||||
default_value: string | number | boolean | null;
|
||||
depends_on: Dependency[];
|
||||
display: string;
|
||||
display: DisplayType;
|
||||
label: string;
|
||||
options: SelectOption[];
|
||||
order?: number | null;
|
||||
required: boolean;
|
||||
sensitive: boolean;
|
||||
tooltip: string;
|
||||
value: string | number | boolean | null;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import { ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE } from '../../../../co
|
|||
|
||||
import {
|
||||
ConnectorStatus,
|
||||
DisplayType,
|
||||
FilteringPolicy,
|
||||
FilteringRuleRule,
|
||||
FilteringValidationState,
|
||||
|
@ -34,14 +35,16 @@ export const indices: ElasticsearchIndexWithIngestion[] = [
|
|||
api_key_id: null,
|
||||
configuration: {
|
||||
foo: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'foo',
|
||||
label: 'bar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'barbar',
|
||||
},
|
||||
},
|
||||
|
@ -142,14 +145,16 @@ export const indices: ElasticsearchIndexWithIngestion[] = [
|
|||
api_key_id: null,
|
||||
configuration: {
|
||||
foo: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'foo',
|
||||
label: 'bar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'barbar',
|
||||
},
|
||||
},
|
||||
|
|
|
@ -13,6 +13,7 @@ import {
|
|||
FilteringPolicy,
|
||||
FilteringRuleRule,
|
||||
FilteringValidationState,
|
||||
DisplayType,
|
||||
} from '../../../../common/types/connectors';
|
||||
|
||||
import {
|
||||
|
@ -44,14 +45,16 @@ export const connectorIndex: ConnectorViewIndex = {
|
|||
api_key_id: null,
|
||||
configuration: {
|
||||
foo: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'foo',
|
||||
label: 'bar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'barbar',
|
||||
},
|
||||
},
|
||||
|
@ -156,14 +159,16 @@ export const crawlerIndex: CrawlerViewIndex = {
|
|||
api_key_id: null,
|
||||
configuration: {
|
||||
foo: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'foo',
|
||||
label: 'bar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'barbar',
|
||||
},
|
||||
},
|
||||
|
|
|
@ -18,9 +18,11 @@ import {
|
|||
EuiSelect,
|
||||
EuiSwitch,
|
||||
EuiTextArea,
|
||||
EuiToolTip,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { Status } from '../../../../../../common/types/api';
|
||||
import { DisplayType } from '../../../../../../common/types/connectors';
|
||||
|
||||
import { ConnectorConfigurationApiLogic } from '../../../api/connector/update_connector_configuration_api_logic';
|
||||
|
||||
|
@ -42,10 +44,10 @@ export const ConnectorConfigurationField: React.FC<ConnectorConfigurationFieldPr
|
|||
const { status } = useValues(ConnectorConfigurationApiLogic);
|
||||
const { setLocalConfigEntry } = useActions(ConnectorConfigurationLogic);
|
||||
|
||||
const { key, display, label, options, required, sensitive, value } = configEntry;
|
||||
const { key, display, label, options, required, sensitive, tooltip, value } = configEntry;
|
||||
|
||||
switch (display) {
|
||||
case 'dropdown':
|
||||
case DisplayType.DROPDOWN:
|
||||
return options.length > 3 ? (
|
||||
<EuiSelect
|
||||
disabled={status === Status.LOADING}
|
||||
|
@ -68,7 +70,7 @@ export const ConnectorConfigurationField: React.FC<ConnectorConfigurationFieldPr
|
|||
/>
|
||||
);
|
||||
|
||||
case 'numeric':
|
||||
case DisplayType.NUMERIC:
|
||||
return (
|
||||
<EuiFieldNumber
|
||||
disabled={status === Status.LOADING}
|
||||
|
@ -80,7 +82,7 @@ export const ConnectorConfigurationField: React.FC<ConnectorConfigurationFieldPr
|
|||
/>
|
||||
);
|
||||
|
||||
case 'textarea':
|
||||
case DisplayType.TEXTAREA:
|
||||
const textarea = (
|
||||
<EuiTextArea
|
||||
disabled={status === Status.LOADING}
|
||||
|
@ -100,12 +102,18 @@ export const ConnectorConfigurationField: React.FC<ConnectorConfigurationFieldPr
|
|||
textarea
|
||||
);
|
||||
|
||||
case 'toggle':
|
||||
case DisplayType.TOGGLE:
|
||||
const toggleLabel = (
|
||||
<EuiToolTip content={tooltip}>
|
||||
<p>{label}</p>
|
||||
</EuiToolTip>
|
||||
);
|
||||
|
||||
return (
|
||||
<EuiSwitch
|
||||
checked={ensureBooleanType(value)}
|
||||
disabled={status === Status.LOADING}
|
||||
label={label}
|
||||
label={toggleLabel}
|
||||
onChange={(event) => {
|
||||
setLocalConfigEntry({ ...configEntry, value: event.target.checked });
|
||||
}}
|
||||
|
|
|
@ -10,19 +10,20 @@ import React from 'react';
|
|||
import { useActions, useValues } from 'kea';
|
||||
|
||||
import {
|
||||
EuiForm,
|
||||
EuiFormRow,
|
||||
EuiFlexGroup,
|
||||
EuiFlexItem,
|
||||
EuiButton,
|
||||
EuiButtonEmpty,
|
||||
EuiFlexGroup,
|
||||
EuiFlexItem,
|
||||
EuiForm,
|
||||
EuiFormRow,
|
||||
EuiPanel,
|
||||
EuiToolTip,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
|
||||
import { Status } from '../../../../../../common/types/api';
|
||||
import { DependencyLookup } from '../../../../../../common/types/connectors';
|
||||
import { DependencyLookup, DisplayType } from '../../../../../../common/types/connectors';
|
||||
|
||||
import { ConnectorConfigurationApiLogic } from '../../../api/connector/update_connector_configuration_api_logic';
|
||||
|
||||
|
@ -56,13 +57,38 @@ export const ConnectorConfigurationForm = () => {
|
|||
component="form"
|
||||
>
|
||||
{localConfigView.map((configEntry) => {
|
||||
const { depends_on: dependencies, key, label } = configEntry;
|
||||
const {
|
||||
default_value: defaultValue,
|
||||
depends_on: dependencies,
|
||||
key,
|
||||
display,
|
||||
label,
|
||||
tooltip,
|
||||
} = configEntry;
|
||||
// toggle label goes next to the element, not in the row
|
||||
const hasDependencies = dependencies.length > 0;
|
||||
const helpText = defaultValue
|
||||
? i18n.translate(
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.config.defaultValue',
|
||||
{
|
||||
defaultMessage: 'If left empty, the default value {defaultValue} will be used.',
|
||||
values: { defaultValue },
|
||||
}
|
||||
)
|
||||
: '';
|
||||
const rowLabel =
|
||||
display !== DisplayType.TOGGLE ? (
|
||||
<EuiToolTip content={tooltip}>
|
||||
<p>{label}</p>
|
||||
</EuiToolTip>
|
||||
) : (
|
||||
<></>
|
||||
);
|
||||
|
||||
return hasDependencies ? (
|
||||
dependenciesSatisfied(dependencies, dependencyLookup) ? (
|
||||
<EuiPanel color="subdued" borderRadius="none">
|
||||
<EuiFormRow label={label ?? ''} key={key}>
|
||||
<EuiFormRow label={rowLabel} key={key} helpText={helpText}>
|
||||
<ConnectorConfigurationField configEntry={configEntry} />
|
||||
</EuiFormRow>
|
||||
</EuiPanel>
|
||||
|
@ -70,7 +96,7 @@ export const ConnectorConfigurationForm = () => {
|
|||
<></>
|
||||
)
|
||||
) : (
|
||||
<EuiFormRow label={label ?? ''} key={key}>
|
||||
<EuiFormRow label={rowLabel} key={key} helpText={helpText}>
|
||||
<ConnectorConfigurationField configEntry={configEntry} />
|
||||
</EuiFormRow>
|
||||
);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
import { LogicMounter } from '../../../../__mocks__/kea_logic';
|
||||
import { connectorIndex } from '../../../__mocks__/view_index.mock';
|
||||
|
||||
import { ConnectorStatus } from '../../../../../../common/types/connectors';
|
||||
import { ConnectorStatus, DisplayType } from '../../../../../../common/types/connectors';
|
||||
|
||||
import { ConnectorConfigurationApiLogic } from '../../../api/connector/update_connector_configuration_api_logic';
|
||||
import { CachedFetchIndexApiLogic } from '../../../api/index/cached_fetch_index_api_logic';
|
||||
|
@ -52,13 +52,15 @@ describe('ConnectorConfigurationLogic', () => {
|
|||
ConnectorConfigurationApiLogic.actions.apiSuccess({
|
||||
configuration: {
|
||||
foo: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: 'newBar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'oldBar',
|
||||
},
|
||||
},
|
||||
|
@ -68,26 +70,30 @@ describe('ConnectorConfigurationLogic', () => {
|
|||
...DEFAULT_VALUES,
|
||||
configState: {
|
||||
foo: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: 'newBar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'oldBar',
|
||||
},
|
||||
},
|
||||
configView: [
|
||||
{
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'foo',
|
||||
label: 'newBar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'oldBar',
|
||||
},
|
||||
],
|
||||
|
@ -96,13 +102,15 @@ describe('ConnectorConfigurationLogic', () => {
|
|||
it('should set config on setConfigState', () => {
|
||||
ConnectorConfigurationLogic.actions.setConfigState({
|
||||
foo: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: 'thirdBar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'fourthBar',
|
||||
},
|
||||
});
|
||||
|
@ -110,26 +118,30 @@ describe('ConnectorConfigurationLogic', () => {
|
|||
...DEFAULT_VALUES,
|
||||
configState: {
|
||||
foo: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: 'thirdBar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'fourthBar',
|
||||
},
|
||||
},
|
||||
configView: [
|
||||
{
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'foo',
|
||||
label: 'thirdBar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'fourthBar',
|
||||
},
|
||||
],
|
||||
|
@ -139,150 +151,176 @@ describe('ConnectorConfigurationLogic', () => {
|
|||
it('should set local config entry and sort keys', () => {
|
||||
ConnectorConfigurationLogic.actions.setConfigState({
|
||||
bar: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: 'foo',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'foofoo',
|
||||
},
|
||||
password: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: 'thirdBar',
|
||||
options: [],
|
||||
order: 2,
|
||||
required: false,
|
||||
sensitive: true,
|
||||
tooltip: '',
|
||||
value: 'fourthBar',
|
||||
},
|
||||
});
|
||||
ConnectorConfigurationLogic.actions.setLocalConfigState({
|
||||
bar: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: 'foo',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'foofoo',
|
||||
},
|
||||
password: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: 'thirdBar',
|
||||
options: [],
|
||||
order: 2,
|
||||
required: false,
|
||||
sensitive: true,
|
||||
tooltip: '',
|
||||
value: 'fourthBar',
|
||||
},
|
||||
});
|
||||
ConnectorConfigurationLogic.actions.setLocalConfigEntry({
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'bar',
|
||||
label: 'foo',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'fafa',
|
||||
});
|
||||
expect(ConnectorConfigurationLogic.values).toEqual({
|
||||
...DEFAULT_VALUES,
|
||||
configState: {
|
||||
bar: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: 'foo',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'foofoo',
|
||||
},
|
||||
password: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: 'thirdBar',
|
||||
options: [],
|
||||
order: 2,
|
||||
required: false,
|
||||
sensitive: true,
|
||||
tooltip: '',
|
||||
value: 'fourthBar',
|
||||
},
|
||||
},
|
||||
configView: [
|
||||
{
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'bar',
|
||||
label: 'foo',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'foofoo',
|
||||
},
|
||||
{
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'password',
|
||||
label: 'thirdBar',
|
||||
options: [],
|
||||
order: 2,
|
||||
required: false,
|
||||
sensitive: true,
|
||||
tooltip: '',
|
||||
value: 'fourthBar',
|
||||
},
|
||||
],
|
||||
localConfigState: {
|
||||
bar: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: 'foo',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'fafa',
|
||||
},
|
||||
password: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: 'thirdBar',
|
||||
options: [],
|
||||
order: 2,
|
||||
required: false,
|
||||
sensitive: true,
|
||||
tooltip: '',
|
||||
value: 'fourthBar',
|
||||
},
|
||||
},
|
||||
localConfigView: [
|
||||
{
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'bar',
|
||||
label: 'foo',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'fafa',
|
||||
},
|
||||
{
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'password',
|
||||
label: 'thirdBar',
|
||||
options: [],
|
||||
order: 2,
|
||||
required: false,
|
||||
sensitive: true,
|
||||
tooltip: '',
|
||||
value: 'fourthBar',
|
||||
},
|
||||
],
|
||||
|
@ -297,14 +335,16 @@ describe('ConnectorConfigurationLogic', () => {
|
|||
configState: connectorIndex.connector.configuration,
|
||||
configView: [
|
||||
{
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'foo',
|
||||
label: 'bar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'barbar',
|
||||
},
|
||||
],
|
||||
|
@ -331,14 +371,16 @@ describe('ConnectorConfigurationLogic', () => {
|
|||
configState: connectorIndex.connector.configuration,
|
||||
configView: [
|
||||
{
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'foo',
|
||||
label: 'bar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'barbar',
|
||||
},
|
||||
],
|
||||
|
@ -350,14 +392,16 @@ describe('ConnectorConfigurationLogic', () => {
|
|||
localConfigState: connectorIndex.connector.configuration,
|
||||
localConfigView: [
|
||||
{
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
key: 'foo',
|
||||
label: 'bar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: false,
|
||||
tooltip: '',
|
||||
value: 'barbar',
|
||||
},
|
||||
],
|
||||
|
@ -371,13 +415,15 @@ describe('ConnectorConfigurationLogic', () => {
|
|||
ConnectorConfigurationLogic.actions.fetchIndexApiSuccess(connectorIndex);
|
||||
ConnectorConfigurationLogic.actions.setLocalConfigState({
|
||||
foo: {
|
||||
default_value: '',
|
||||
depends_on: [],
|
||||
display: 'textbox',
|
||||
display: DisplayType.TEXTBOX,
|
||||
label: 'bar',
|
||||
options: [],
|
||||
order: 1,
|
||||
required: false,
|
||||
sensitive: true,
|
||||
tooltip: '',
|
||||
value: 'Barbara',
|
||||
},
|
||||
});
|
||||
|
|
|
@ -12,6 +12,7 @@ import {
|
|||
ConnectorStatus,
|
||||
Dependency,
|
||||
DependencyLookup,
|
||||
DisplayType,
|
||||
SelectOption,
|
||||
} from '../../../../../../common/types/connectors';
|
||||
import { isNotNullish } from '../../../../../../common/utils/is_not_nullish';
|
||||
|
@ -55,14 +56,16 @@ interface ConnectorConfigurationValues {
|
|||
}
|
||||
|
||||
export interface ConfigEntry {
|
||||
default_value: string | number | boolean | null;
|
||||
depends_on: Dependency[];
|
||||
display: string;
|
||||
display: DisplayType;
|
||||
key: string;
|
||||
label: string;
|
||||
options: SelectOption[];
|
||||
order?: number;
|
||||
required: boolean;
|
||||
sensitive: boolean;
|
||||
tooltip: string;
|
||||
value: string | number | boolean | null;
|
||||
}
|
||||
|
||||
|
@ -229,11 +232,35 @@ export const ConnectorConfigurationLogic = kea<
|
|||
{
|
||||
setLocalConfigEntry: (
|
||||
configState,
|
||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||||
{ key, depends_on, display, label, options, order, required, sensitive, value }
|
||||
{
|
||||
key,
|
||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||||
default_value,
|
||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||||
depends_on,
|
||||
display,
|
||||
label,
|
||||
options,
|
||||
order,
|
||||
required,
|
||||
sensitive,
|
||||
tooltip,
|
||||
value,
|
||||
}
|
||||
) => ({
|
||||
...configState,
|
||||
[key]: { depends_on, display, label, options, order, required, sensitive, value },
|
||||
[key]: {
|
||||
default_value,
|
||||
depends_on,
|
||||
display,
|
||||
label,
|
||||
options,
|
||||
order,
|
||||
required,
|
||||
sensitive,
|
||||
tooltip,
|
||||
value,
|
||||
},
|
||||
}),
|
||||
setLocalConfigState: (_, { configState }) => configState,
|
||||
},
|
||||
|
|
213
x-pack/plugins/translations/translations/en.json
Normal file
213
x-pack/plugins/translations/translations/en.json
Normal file
|
@ -0,0 +1,213 @@
|
|||
{
|
||||
formats: {
|
||||
number: {
|
||||
currency: {
|
||||
style: 'currency',
|
||||
},
|
||||
percent: {
|
||||
style: 'percent',
|
||||
},
|
||||
},
|
||||
date: {
|
||||
short: {
|
||||
month: 'numeric',
|
||||
day: 'numeric',
|
||||
year: '2-digit',
|
||||
},
|
||||
medium: {
|
||||
month: 'short',
|
||||
day: 'numeric',
|
||||
year: 'numeric',
|
||||
},
|
||||
long: {
|
||||
month: 'long',
|
||||
day: 'numeric',
|
||||
year: 'numeric',
|
||||
},
|
||||
full: {
|
||||
weekday: 'long',
|
||||
month: 'long',
|
||||
day: 'numeric',
|
||||
year: 'numeric',
|
||||
},
|
||||
},
|
||||
time: {
|
||||
short: {
|
||||
hour: 'numeric',
|
||||
minute: 'numeric',
|
||||
},
|
||||
medium: {
|
||||
hour: 'numeric',
|
||||
minute: 'numeric',
|
||||
second: 'numeric',
|
||||
},
|
||||
long: {
|
||||
hour: 'numeric',
|
||||
minute: 'numeric',
|
||||
second: 'numeric',
|
||||
timeZoneName: 'short',
|
||||
},
|
||||
full: {
|
||||
hour: 'numeric',
|
||||
minute: 'numeric',
|
||||
second: 'numeric',
|
||||
timeZoneName: 'short',
|
||||
},
|
||||
},
|
||||
relative: {
|
||||
years: {
|
||||
units: 'year',
|
||||
},
|
||||
months: {
|
||||
units: 'month',
|
||||
},
|
||||
days: {
|
||||
units: 'day',
|
||||
},
|
||||
hours: {
|
||||
units: 'hour',
|
||||
},
|
||||
minutes: {
|
||||
units: 'minute',
|
||||
},
|
||||
seconds: {
|
||||
units: 'second',
|
||||
},
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
'xpack.enterpriseSearch.connector.ingestionStatus.title': 'Ingestion status',
|
||||
'xpack.enterpriseSearch.content.index.connector.filteringRules.regExError': 'Value should be a regular expression',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.advancedFiltersDescription': 'These rules apply before the data is obtained from the data source.',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.advancedFiltersLinkTitle': 'Learn more about advanced sync rules.',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.advancedRulesTitle': 'Advanced rules',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.advancedTabTitle': 'Advanced rules',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.basicRulesDescription': 'These rules apply to documents during the integration filtering phase.',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.basicRulesTitle': 'Basic rules',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.basicTabTitle': 'Basic rules',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.description': 'Add a sync rule to customize what data is synchronized from {indexName}. Everything is included by default, and documents are validated against the configured set of sync rules in the listed order.',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.flyout.description': 'Plan and edit rules here before applying them to the next sync.',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.flyout.errorTitle': 'Sync {idsLength, plural, one {rule} other {rules}} {ids} {idsLength, plural, one {is} other {are}} invalid.',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.flyout.revertButtonTitle': 'Revert to active rules',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.flyout.title': 'Draft rules',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.link': 'Learn more about customizing your sync rules.',
|
||||
'xpack.enterpriseSearch.content.index.connector.syncRules.table.addRuleLabel': 'Add sync rule',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.apiKey.button.label': 'Generate API key',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.apiKey.confirmModal.cancelButton.label': 'Cancel',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.apiKey.confirmModal.confirmButton.label': 'Generate API key',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.apiKey.confirmModal.description': 'Generating a new API key will invalidate the previous key. Are you sure you want to generate a new API key? This can not be undone.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.apiKey.confirmModal.title': 'Generate an Elasticsearch API key',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.apiKey.description': 'First, generate an Elasticsearch API key. This {apiKeyName} key will enable read and write permissions for the connector to index documents to the created {indexName} index. Save the key in a safe place, as you will need it to configure your connector.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.config.cancelEditingButton.title': 'Cancel',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.config.connectorClientLink': 'example connector client',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.config.defaultValue': 'If left empty, the default value {defaultValue} will be used.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.config.description.firstParagraph': 'Now that your connector is deployed, enhance the deployed connector client for your custom data source. There’s an {link} for you to start adding your data source specific implementation logic.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.config.description.secondParagraph': 'While the connector clients in the repository are built in Ruby, there’s no technical limitation to only use Ruby. Build a connector client with the technology that works best for your skillset.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.config.description.thirdParagraph': 'If you need help, you can always open an {issuesLink} in the repository or ask a question in our {discussLink} forum.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.config.discussLink': 'Discuss',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.config.editButton.title': 'Edit configuration',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.config.error.title': 'Connector error',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.config.issuesLink': 'issue',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.config.submitButton.title': 'Save configuration',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.config.warning.title': 'This connector is tied to your Elastic index',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.connectorPackage.button.label': 'Explore the connectors repository',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.connectorPackage.clientExamplesLink': 'connector client examples',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.connectorPackage.configurationFileLink': 'configuration file',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.connectorPackage.connectorConnected': 'Your connector {name} has connected to Enterprise Search successfully.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.connectorPackage.connectorDeployedText': 'Once you’ve configured the connector, deploy the connector to your self managed infrastructure.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.connectorPackage.description.firstParagraph': 'The connectors repository contains several connector client examples to help you utilize our framework for accelerated development against custom data sources.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.connectorPackage.description.secondParagraph': 'The connectors repository contains several {link} to help you utilize our framework for accelerated development against custom data sources.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.connectorPackage.description.thirdParagraph': 'In this step, you will need to clone or fork the repository, and copy the generated API key and connector ID to the associated {link}. The connector ID will identify this connector to Enterprise Search.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.connectorPackage.waitingForConnector.button.label': 'Recheck now',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.connectorPackage.waitingForConnectorText': 'Your connector has not connected to Enterprise Search. Troubleshoot your configuration and refresh the page.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.connectorPackage.waitingForConnectorTitle': 'Waiting for your connector',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nameAndDescriptionFlyout.description': 'By naming and describing this connector your colleagues and wider team will know what this connector is meant for.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nameAndDescriptionFlyout.saveButtonLabel': 'Save name and description',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nameAndDescriptionFlyout.title': 'Describe this crawler',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nameAndDescriptionForm.description': 'By naming and describing this connector your colleagues and wider team will know what this connector is meant for.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.config.encryptionWarningMessage': 'Encryption for data source credentials is unavailable in this beta. Your data source credentials will be stored, unencrypted, in Elasticsearch.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.config.securityDocumentationLinkLabel': 'Learn more about Elasticsearch security',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.config.sourceSecurityDocumentationLinkLabel': '{name} authentication',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.connectorConnected': 'Your connector {name} has connected to Enterprise Search successfully.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.schedulingReminder.description': 'Remember to set a sync schedule in the Scheduling tab to continually refresh your searchable data.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.schedulingReminder.title': 'Configurable sync schedule',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.securityReminder.description': 'Restrict and personalize the read access users have to the index documents at query time.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.securityReminder.securityLinkLabel': 'Document level security',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.securityReminder.title': 'Document level security',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.steps.advancedConfigurationTitle': 'Advanced configuration',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.steps.configurationTitle': 'Configuration',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.steps.nameAndDescriptionTitle': 'Name and description',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.steps.researchConfigurationTitle': 'Research configuration requirements',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnectorAdvancedConfiguration.description': 'Finalize your connector by triggering a one time sync, or setting a recurring sync schedule.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnectorAdvancedConfiguration.schedulingButtonLabel': 'Set schedule and sync',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.researchConfiguration.connectorDocumentationLinkLabel': 'Documentation',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.researchConfiguration.description': 'This connector supports several authentication methods. Ask your administrator for the correct connection credentials.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.researchConfiguration.serviceDocumentationLinkLabel': '{name} documentation',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.scheduleSync.description': 'Once your connectors are configured to your liking, don’t forget to set a recurring sync schedule to make sure your documents are indexed and relevant. You can also trigger a one-time sync without enabling a sync schedule.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.steps.deployConnector.title': 'Deploy a connector',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.steps.enhance.title': 'Enhance your connector client',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.steps.generateApiKey.title': 'Generate an API key',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.steps.nameAndDescriptionTitle': 'Name and description',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.steps.schedule.button.label': 'Set schedule and sync',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.steps.schedule.title': 'Set a recurring sync schedule',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.support.connectorFeedback.label': 'Connector feedback',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.support.description': 'Your connector will have to be deployed to your own infrastructure.',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.support.dontSeeIntegration.label': 'Don’t see the integration you’re looking for?',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.support.getHelp.label': 'Get help',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.support.issue.label': 'File an issue',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.support.manageKeys.label': 'Manage keys',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.support.readme.label': 'Connector readme',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.support.searchUI.label': 'Use Search UI for Workplace Search',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.support.title': 'Support and documentation',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.support.viewDocumentation.label': 'View documentation',
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.warning.description': 'If you sync at least one document before you’ve finalized your connector client, you will have to recreate your search index.',
|
||||
'xpack.enterpriseSearch.content.indices.connector.syncRules.advancedRules.error': 'JSON format is invalid',
|
||||
'xpack.enterpriseSearch.content.indices.connector.syncRules.advancedRules.title': 'Advanced rules',
|
||||
'xpack.enterpriseSearch.content.indices.connectorScheduling.configured.description': 'Your connector is configured and deployed. Configure a one-time sync by clicking the Sync button, or enable a recurring sync schedule. ',
|
||||
'xpack.enterpriseSearch.content.indices.connectorScheduling.error.title': 'Review your connector configuration for reported errors.',
|
||||
'xpack.enterpriseSearch.content.indices.connectorScheduling.notConnected.button.label': 'Configure',
|
||||
'xpack.enterpriseSearch.content.indices.connectorScheduling.notConnected.description': 'Configure and deploy your connector, then return here to set your sync schedule. This schedule will dictate the interval that the connector will sync with your data source for updated documents.',
|
||||
'xpack.enterpriseSearch.content.indices.connectorScheduling.notConnected.title': 'Configure your connector to schedule a sync',
|
||||
'xpack.enterpriseSearch.content.indices.connectorScheduling.resetButton.label': 'Reset',
|
||||
'xpack.enterpriseSearch.content.indices.connectorScheduling.saveButton.label': 'Save',
|
||||
'xpack.enterpriseSearch.content.indices.connectorScheduling.switch.label': 'Enable recurring syncs with the following schedule',
|
||||
'xpack.enterpriseSearch.content.indices.connectorScheduling.unsaved.title': 'You have not saved your changes, are you sure you want to leave?',
|
||||
'xpack.enterpriseSearch.content.indices.selectConnector.buildYourOwnConnectorLinkLabel': 'build your own',
|
||||
'xpack.enterpriseSearch.content.indices.selectConnector.connectorCheckable.description': 'Search over your {name} content with Enterprise Search.',
|
||||
'xpack.enterpriseSearch.content.indices.selectConnector.connectorCheckable.documentationLinkLabel': 'Documentation',
|
||||
'xpack.enterpriseSearch.content.indices.selectConnector.description': 'Get started by selecting the connector you\'d like to configure to extract, index and sync data from your data source into your newly created search index.',
|
||||
'xpack.enterpriseSearch.content.indices.selectConnector.moreConnectorsMessage': 'Looking for more connectors? {workplaceSearchLink} or {buildYourOwnConnectorLink}.',
|
||||
'xpack.enterpriseSearch.content.indices.selectConnector.selectAndConfigureButtonLabel': 'Select and configure',
|
||||
'xpack.enterpriseSearch.content.indices.selectConnector.successToast.title': 'Your index will now use the {connectorName} native connector.',
|
||||
'xpack.enterpriseSearch.content.indices.selectConnector.title': 'Select a connector',
|
||||
'xpack.enterpriseSearch.content.indices.selectConnector.workplaceSearchLinkLabel': 'View additional integrations in Workplace Search',
|
||||
'xpack.enterpriseSearch.content.nativeConnectors.mongodb.name': 'MongoDB',
|
||||
'xpack.enterpriseSearch.content.nativeConnectors.mysql.name': 'MySQL',
|
||||
'xpack.enterpriseSearch.content.searchIndex.totalStats.documentCountCardLabel': 'Document count',
|
||||
'xpack.enterpriseSearch.content.sources.basicRulesTable.includeEverythingMessage': 'Include everything else from this source',
|
||||
'xpack.enterpriseSearch.index.connector.rule.basicTable.policyTitle': 'Policy',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.basicTable.fieldTitle': 'Field',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.basicTable.ruleTitle': 'Rule',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.basicTable.valueTitle': 'Value',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.cancelEditingFilteringDraft': 'Cancel',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.description': 'Include or exclude high level items, file types and (file or folder) paths to
|
||||
synchronize from {indexName}. Everything is included by default. Each document is
|
||||
tested against the rules below and the first rule that matches will be applied.',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.draftNewFilterRulesTitle': 'Draft new sync rules',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.editFilterRulesTitle': 'Edit sync rules',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.errorCallout.editDraftRulesTitle': 'Edit draft rules',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.errorCallout.successEditDraftRulesTitle': 'Edit draft rules',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.invalidDescription': 'Draft rules did not validate. Edit the draft rules before they can be activated.',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.invalidTitle': 'Draft sync rules are invalid',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.successCallout.applyDraftRulesTitle': 'Activate draft rules',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.syncRulesLabel': 'Learn more about sync rules',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.title': 'Sync rules ',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.unsavedChanges': 'Your changes have not been saved. Are you sure you want to leave?',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.validatedDescription': 'Activate draft rules to take effect on the next sync.',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.validateDraftTitle': 'Save and validate draft',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.validatedTitle': 'Draft sync rules validated',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.validatingCallout.editDraftRulesTitle': 'Edit draft rules',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.validatingDescription': 'Draft rules need to be validated before they can be activated. This may take a few minutes.',
|
||||
'xpack.enterpriseSearch.index.connector.syncRules.validatingTitle': 'Draft sync rules are validating',
|
||||
},
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue