diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/pipeline_setup.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/pipeline_setup.js index 7b073eb06efe..667849fa7aa5 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/pipeline_setup.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/pipeline_setup.js @@ -2,12 +2,13 @@ import uiModules from 'ui/modules'; import _ from 'lodash'; import Pipeline from '../lib/pipeline'; import angular from 'angular'; -import * as ProcessorTypes from '../lib/processor_types'; +import * as ProcessorTypes from '../processors/view_models'; import IngestProvider from 'ui/ingest'; import '../styles/_pipeline_setup.less'; import './pipeline_output'; import './source_data'; -import './processor_ui'; +import './processor_ui_container'; +import '../processors'; import pipelineSetupTemplate from '../views/pipeline_setup.html'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui.js deleted file mode 100644 index ced078b7d223..000000000000 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui.js +++ /dev/null @@ -1,15 +0,0 @@ -import './processor_ui_container'; -import './processor_ui_append'; -import './processor_ui_convert'; -import './processor_ui_date'; -import './processor_ui_geoip'; -import './processor_ui_grok'; -import './processor_ui_gsub'; -import './processor_ui_join'; -import './processor_ui_lowercase'; -import './processor_ui_remove'; -import './processor_ui_rename'; -import './processor_ui_set'; -import './processor_ui_split'; -import './processor_ui_trim'; -import './processor_ui_uppercase'; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_container.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_container.js index bf02ffc6280d..4f53e822bf08 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_container.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_container.js @@ -3,7 +3,7 @@ import _ from 'lodash'; import '../styles/_processor_ui_container.less'; import './output_preview'; import './processor_ui_container_header'; -import processorUiContainerTemplate from '../views/processor_ui_container.html'; +import template from '../views/processor_ui_container.html'; const app = uiModules.get('kibana'); @@ -14,7 +14,7 @@ app.directive('processorUiContainer', function ($compile) { pipeline: '=', processor: '=' }, - template: processorUiContainerTemplate, + template: template, link: function ($scope, $el) { const processor = $scope.processor; const pipeline = $scope.pipeline; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/lib/__tests__/pipeline.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/lib/__tests__/pipeline.js index b6053b22a32e..b3901529c613 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/lib/__tests__/pipeline.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/lib/__tests__/pipeline.js @@ -2,7 +2,7 @@ import _ from 'lodash'; import expect from 'expect.js'; import sinon from 'sinon'; import Pipeline from '../pipeline'; -import * as processorTypes from '../processor_types'; +import * as processorTypes from '../../processors/view_models'; describe('processor pipeline', function () { diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/lib/processor_types.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/lib/processor_types.js deleted file mode 100644 index 811302a48c31..000000000000 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/lib/processor_types.js +++ /dev/null @@ -1,354 +0,0 @@ -import _ from 'lodash'; -import keysDeep from './keys_deep'; - -class Processor { - constructor(processorId, typeId, title) { - if (!typeId || !title) { - throw new Error('Cannot instantiate the base Processor class.'); - } - - this.processorId = processorId; - this.title = title; - this.typeId = typeId; - this.collapsed = false; - this.parent = undefined; - this.inputObject = undefined; - this.outputObject = undefined; - this.error = undefined; - } - - setParent(newParent) { - const oldParent = this.parent; - this.parent = newParent; - - return (oldParent !== this.parent); - } -} - -export class Append extends Processor { - constructor(processorId) { - super(processorId, 'append', 'Append'); - this.targetField = ''; - this.values = []; - } - - get description() { - const target = this.targetField || '?'; - return `[${target}]`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - targetField: this.targetField || '', - values: this.values || [] - }; - } -}; - -export class Convert extends Processor { - constructor(processorId) { - super(processorId, 'convert', 'Convert'); - this.sourceField = ''; - this.targetField = ''; - this.type = 'auto'; - } - - get description() { - const source = this.sourceField || '?'; - const type = this.type || '?'; - const target = this.targetField ? ` -> [${this.targetField}]` : ''; - return `[${source}] to ${type}${target}`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - sourceField: this.sourceField || '', - targetField: this.targetField || '', - type: this.type || 'auto' - }; - } -}; - -export class Date extends Processor { - constructor(processorId) { - super(processorId, 'date', 'Date'); - this.sourceField = ''; - this.targetField = '@timestamp'; - this.formats = []; - this.timezone = 'Etc/UTC'; - this.locale = 'ENGLISH'; - this.customFormat = ''; - } - - get description() { - const source = this.sourceField || '?'; - const target = this.targetField || '?'; - return `[${source}] -> [${target}]`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - sourceField: this.sourceField || '', - targetField: this.targetField || '', - formats: this.formats || [], - timezone: this.timezone || '', - locale: this.locale || '', - customFormat: this.customFormat || '' - }; - } -}; - -export class GeoIp extends Processor { - constructor(processorId) { - super(processorId, 'geoip', 'Geo IP'); - this.sourceField = ''; - this.targetField = ''; - this.databaseFile = ''; - this.databaseFields = []; - } - - get description() { - const source = this.sourceField || '?'; - const target = this.targetField || '?'; - return `[${source}] -> [${target}]`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - sourceField: this.sourceField || '', - targetField: this.targetField || '', - databaseFile: this.databaseFile || '', - databaseFields: this.databaseFields || [] - }; - } -}; - -export class Grok extends Processor { - constructor(processorId) { - super(processorId, 'grok', 'Grok'); - this.sourceField = ''; - this.pattern = ''; - } - - get description() { - const inputKeys = keysDeep(this.inputObject); - const outputKeys = keysDeep(this.outputObject); - const addedKeys = _.difference(outputKeys, inputKeys); - const added = addedKeys.sort().map(field => `[${field}]`).join(', '); - const source = this.sourceField || '?'; - - return `[${source}] -> ${added}`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - sourceField: this.sourceField || '', - pattern: this.pattern || '' - }; - } -}; - -export class Gsub extends Processor { - constructor(processorId) { - super(processorId, 'gsub', 'Gsub'); - this.sourceField = ''; - this.pattern = ''; - this.replacement = ''; - } - - get description() { - const source = this.sourceField || '?'; - return `[${source}] - /${this.pattern}/ -> '${this.replacement}'`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - sourceField: this.sourceField || '', - pattern: this.pattern || '', - replacement: this.replacement || '' - }; - } -}; - -export class Join extends Processor { - constructor(processorId) { - super(processorId, 'join', 'Join'); - this.sourceField = ''; - this.separator = ''; - } - - get description() { - const source = this.sourceField || '?'; - const separator = this.separator ? ` on '${this.separator}'` : ''; - return `[${source}]${separator}`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - sourceField: this.sourceField || '', - separator: this.separator || '' - }; - } -}; - -export class Lowercase extends Processor { - constructor(processorId) { - super(processorId, 'lowercase', 'Lowercase'); - this.sourceField = ''; - } - - get description() { - const source = this.sourceField || '?'; - return `[${source}]`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - sourceField: this.sourceField || '' - }; - } -}; - -export class Remove extends Processor { - constructor(processorId) { - super(processorId, 'remove', 'Remove'); - this.sourceField = ''; - } - - get description() { - const source = this.sourceField || '?'; - return `[${source}]`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - sourceField: this.sourceField || '' - }; - } -}; - -export class Rename extends Processor { - constructor(processorId) { - super(processorId, 'rename', 'Rename'); - this.sourceField = ''; - this.targetField = ''; - } - - get description() { - const source = this.sourceField || '?'; - const target = this.targetField || '?'; - return `[${source}] -> [${target}]`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - sourceField: this.sourceField || '', - targetField: this.targetField || '' - }; - } -}; - -export class Set extends Processor { - constructor(processorId) { - super(processorId, 'set', 'Set'); - this.targetField = ''; - this.value = ''; - } - - get description() { - const target = this.targetField || '?'; - return `[${target}]`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - targetField: this.targetField || '', - value: this.value || '' - }; - } -}; - -export class Split extends Processor { - constructor(processorId) { - super(processorId, 'split', 'Split'); - this.sourceField = ''; - this.separator = ''; - } - - get description() { - const source = this.sourceField || '?'; - const separator = this.separator || '?'; - return `[${source}] on '${separator}'`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - sourceField: this.sourceField || '', - separator: this.separator || '' - }; - } -}; - -export class Trim extends Processor { - constructor(processorId) { - super(processorId, 'trim', 'Trim'); - this.sourceField = ''; - } - - get description() { - const source = this.sourceField || '?'; - return `[${source}]`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - sourceField: this.sourceField || '' - }; - } -}; - -export class Uppercase extends Processor { - constructor(processorId) { - super(processorId, 'uppercase', 'Uppercase'); - this.sourceField = ''; - } - - get description() { - const source = this.sourceField || '?'; - return `[${source}]`; - } - - get model() { - return { - processorId: this.processorId, - typeId: this.typeId, - sourceField: this.sourceField || '' - }; - } -}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_append.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/append/directive.js similarity index 94% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_append.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/append/directive.js index d1fcdaafbeda..4736f64e125c 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_append.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/append/directive.js @@ -1,5 +1,5 @@ import uiModules from 'ui/modules'; -import template from '../views/processor_ui_append.html'; +import template from './view.html'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_append.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/append/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_append.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/append/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/append/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/append/view_model.js new file mode 100644 index 000000000000..a0a9711367a4 --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/append/view_model.js @@ -0,0 +1,23 @@ +import Processor from '../base/view_model'; + +export class Append extends Processor { + constructor(processorId) { + super(processorId, 'append', 'Append'); + this.targetField = ''; + this.values = []; + } + + get description() { + const target = this.targetField || '?'; + return `[${target}]`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + targetField: this.targetField || '', + values: this.values || [] + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/base/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/base/view_model.js new file mode 100644 index 000000000000..ed04ef321aa5 --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/base/view_model.js @@ -0,0 +1,23 @@ +export default class Processor { + constructor(processorId, typeId, title) { + if (!typeId || !title) { + throw new Error('Cannot instantiate the base Processor class.'); + } + + this.processorId = processorId; + this.title = title; + this.typeId = typeId; + this.collapsed = false; + this.parent = undefined; + this.inputObject = undefined; + this.outputObject = undefined; + this.error = undefined; + } + + setParent(newParent) { + const oldParent = this.parent; + this.parent = newParent; + + return (oldParent !== this.parent); + } +} diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_convert.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/convert/directive.js similarity index 91% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_convert.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/convert/directive.js index 009e01758ff9..0aab15cf1a6e 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_convert.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/convert/directive.js @@ -1,7 +1,7 @@ -import uiModules from 'ui/modules'; -import template from '../views/processor_ui_convert.html'; import _ from 'lodash'; -import keysDeep from '../lib/keys_deep'; +import uiModules from 'ui/modules'; +import keysDeep from '../../lib/keys_deep'; +import template from './view.html'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_convert.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/convert/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_convert.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/convert/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/convert/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/convert/view_model.js new file mode 100644 index 000000000000..ada158dc3445 --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/convert/view_model.js @@ -0,0 +1,28 @@ +import _ from 'lodash'; +import Processor from '../base/view_model'; + +export class Convert extends Processor { + constructor(processorId) { + super(processorId, 'convert', 'Convert'); + this.sourceField = ''; + this.targetField = ''; + this.type = 'auto'; + } + + get description() { + const source = this.sourceField || '?'; + const type = this.type || '?'; + const target = this.targetField ? ` -> [${this.targetField}]` : ''; + return `[${source}] to ${type}${target}`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + sourceField: this.sourceField || '', + targetField: this.targetField || '', + type: this.type || 'auto' + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_date.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/date/directive.js similarity index 88% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_date.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/date/directive.js index 808953ea0c51..f9e42bfa399e 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_date.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/date/directive.js @@ -1,9 +1,9 @@ -import uiModules from 'ui/modules'; -import template from '../views/processor_ui_date.html'; import _ from 'lodash'; -import keysDeep from '../lib/keys_deep'; -const createMultiSelectModel = require('../lib/create_multi_select_model'); -import '../styles/_processor_ui_date.less'; +import uiModules from 'ui/modules'; +import keysDeep from '../../lib/keys_deep'; +import createMultiSelectModel from '../../lib/create_multi_select_model'; +import template from './view.html'; +import './styles.less'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/styles/_processor_ui_date.less b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/date/styles.less similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/styles/_processor_ui_date.less rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/date/styles.less diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_date.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/date/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_date.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/date/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/date/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/date/view_model.js new file mode 100644 index 000000000000..0186675e3e22 --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/date/view_model.js @@ -0,0 +1,32 @@ +import Processor from '../base/view_model'; + +export class Date extends Processor { + constructor(processorId) { + super(processorId, 'date', 'Date'); + this.sourceField = ''; + this.targetField = '@timestamp'; + this.formats = []; + this.timezone = 'Etc/UTC'; + this.locale = 'ENGLISH'; + this.customFormat = ''; + } + + get description() { + const source = this.sourceField || '?'; + const target = this.targetField || '?'; + return `[${source}] -> [${target}]`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + sourceField: this.sourceField || '', + targetField: this.targetField || '', + formats: this.formats || [], + timezone: this.timezone || '', + locale: this.locale || '', + customFormat: this.customFormat || '' + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_geoip.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/geoip/directive.js similarity index 92% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_geoip.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/geoip/directive.js index bf25da521089..3f7b9ff7edf4 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_geoip.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/geoip/directive.js @@ -1,8 +1,8 @@ -import uiModules from 'ui/modules'; import _ from 'lodash'; -import keysDeep from '../lib/keys_deep'; -import template from '../views/processor_ui_geoip.html'; -import '../styles/_processor_ui_geoip.less'; +import uiModules from 'ui/modules'; +import keysDeep from '../../lib/keys_deep'; +import template from './view.html'; +import './styles.less'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/styles/_processor_ui_geoip.less b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/geoip/styles.less similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/styles/_processor_ui_geoip.less rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/geoip/styles.less diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_geoip.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/geoip/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_geoip.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/geoip/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/geoip/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/geoip/view_model.js new file mode 100644 index 000000000000..7041b92cb4a4 --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/geoip/view_model.js @@ -0,0 +1,28 @@ +import Processor from '../base/view_model'; + +export class GeoIp extends Processor { + constructor(processorId) { + super(processorId, 'geoip', 'Geo IP'); + this.sourceField = ''; + this.targetField = ''; + this.databaseFile = ''; + this.databaseFields = []; + } + + get description() { + const source = this.sourceField || '?'; + const target = this.targetField || '?'; + return `[${source}] -> [${target}]`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + sourceField: this.sourceField || '', + targetField: this.targetField || '', + databaseFile: this.databaseFile || '', + databaseFields: this.databaseFields || [] + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_grok.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/grok/directive.js similarity index 91% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_grok.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/grok/directive.js index 8780bc2f6bcf..60bf7d652261 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_grok.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/grok/directive.js @@ -1,7 +1,7 @@ -import uiModules from 'ui/modules'; import _ from 'lodash'; -import keysDeep from '../lib/keys_deep'; -import template from '../views/processor_ui_grok.html'; +import uiModules from 'ui/modules'; +import keysDeep from '../../lib/keys_deep'; +import template from './view.html'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_grok.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/grok/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_grok.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/grok/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/grok/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/grok/view_model.js new file mode 100644 index 000000000000..548b2d52f2a2 --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/grok/view_model.js @@ -0,0 +1,30 @@ +import _ from 'lodash'; +import keysDeep from '../../lib/keys_deep'; +import Processor from '../base/view_model'; + +export class Grok extends Processor { + constructor(processorId) { + super(processorId, 'grok', 'Grok'); + this.sourceField = ''; + this.pattern = ''; + } + + get description() { + const inputKeys = keysDeep(this.inputObject); + const outputKeys = keysDeep(this.outputObject); + const addedKeys = _.difference(outputKeys, inputKeys); + const added = addedKeys.sort().map(field => `[${field}]`).join(', '); + const source = this.sourceField || '?'; + + return `[${source}] -> ${added}`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + sourceField: this.sourceField || '', + pattern: this.pattern || '' + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_gsub.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/gsub/directive.js similarity index 91% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_gsub.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/gsub/directive.js index 00336cd9fa87..abef4cddde24 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_gsub.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/gsub/directive.js @@ -1,7 +1,7 @@ -import uiModules from 'ui/modules'; import _ from 'lodash'; -import keysDeep from '../lib/keys_deep'; -import template from '../views/processor_ui_gsub.html'; +import uiModules from 'ui/modules'; +import keysDeep from '../../lib/keys_deep'; +import template from './view.html'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_gsub.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/gsub/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_gsub.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/gsub/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/gsub/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/gsub/view_model.js new file mode 100644 index 000000000000..32559f9d8ea5 --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/gsub/view_model.js @@ -0,0 +1,25 @@ +import Processor from '../base/view_model'; + +export class Gsub extends Processor { + constructor(processorId) { + super(processorId, 'gsub', 'Gsub'); + this.sourceField = ''; + this.pattern = ''; + this.replacement = ''; + } + + get description() { + const source = this.sourceField || '?'; + return `[${source}] - /${this.pattern}/ -> '${this.replacement}'`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + sourceField: this.sourceField || '', + pattern: this.pattern || '', + replacement: this.replacement || '' + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/index.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/index.js new file mode 100644 index 000000000000..f490163a4128 --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/index.js @@ -0,0 +1,14 @@ +import './append/directive'; +import './convert/directive'; +import './date/directive'; +import './geoip/directive'; +import './grok/directive'; +import './gsub/directive'; +import './join/directive'; +import './lowercase/directive'; +import './remove/directive'; +import './rename/directive'; +import './set/directive'; +import './split/directive'; +import './trim/directive'; +import './uppercase/directive'; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_join.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/join/directive.js similarity index 91% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_join.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/join/directive.js index e8c32f1c66e3..765467afb39f 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_join.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/join/directive.js @@ -1,7 +1,7 @@ -import uiModules from 'ui/modules'; import _ from 'lodash'; -import keysDeep from '../lib/keys_deep'; -import template from '../views/processor_ui_join.html'; +import uiModules from 'ui/modules'; +import keysDeep from '../../lib/keys_deep'; +import template from './view.html'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_join.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/join/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_join.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/join/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/join/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/join/view_model.js new file mode 100644 index 000000000000..a480b749d868 --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/join/view_model.js @@ -0,0 +1,24 @@ +import Processor from '../base/view_model'; + +export class Join extends Processor { + constructor(processorId) { + super(processorId, 'join', 'Join'); + this.sourceField = ''; + this.separator = ''; + } + + get description() { + const source = this.sourceField || '?'; + const separator = this.separator ? ` on '${this.separator}'` : ''; + return `[${source}]${separator}`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + sourceField: this.sourceField || '', + separator: this.separator || '' + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_lowercase.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/lowercase/directive.js similarity index 91% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_lowercase.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/lowercase/directive.js index 14c5a8a697bf..b661b0af8faa 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_lowercase.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/lowercase/directive.js @@ -1,7 +1,7 @@ -import uiModules from 'ui/modules'; import _ from 'lodash'; -import keysDeep from '../lib/keys_deep'; -import template from '../views/processor_ui_lowercase.html'; +import uiModules from 'ui/modules'; +import keysDeep from '../../lib/keys_deep'; +import template from './view.html'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_lowercase.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/lowercase/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_lowercase.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/lowercase/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/lowercase/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/lowercase/view_model.js new file mode 100644 index 000000000000..4cc12cd0437d --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/lowercase/view_model.js @@ -0,0 +1,21 @@ +import Processor from '../base/view_model'; + +export class Lowercase extends Processor { + constructor(processorId) { + super(processorId, 'lowercase', 'Lowercase'); + this.sourceField = ''; + } + + get description() { + const source = this.sourceField || '?'; + return `[${source}]`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + sourceField: this.sourceField || '' + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_remove.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/remove/directive.js similarity index 90% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_remove.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/remove/directive.js index 17b417c07cf2..30e84055ef6d 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_remove.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/remove/directive.js @@ -1,7 +1,7 @@ -import uiModules from 'ui/modules'; import _ from 'lodash'; -import keysDeep from '../lib/keys_deep'; -import template from '../views/processor_ui_remove.html'; +import uiModules from 'ui/modules'; +import keysDeep from '../../lib/keys_deep'; +import template from './view.html'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_remove.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/remove/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_remove.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/remove/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/remove/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/remove/view_model.js new file mode 100644 index 000000000000..fb33cfc5e4ce --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/remove/view_model.js @@ -0,0 +1,21 @@ +import Processor from '../base/view_model'; + +export class Remove extends Processor { + constructor(processorId) { + super(processorId, 'remove', 'Remove'); + this.sourceField = ''; + } + + get description() { + const source = this.sourceField || '?'; + return `[${source}]`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + sourceField: this.sourceField || '' + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_rename.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/rename/directive.js similarity index 91% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_rename.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/rename/directive.js index 57d8239cd25b..9496c9caa3c5 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_rename.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/rename/directive.js @@ -1,7 +1,7 @@ -import uiModules from 'ui/modules'; import _ from 'lodash'; -import keysDeep from '../lib/keys_deep'; -import template from '../views/processor_ui_rename.html'; +import uiModules from 'ui/modules'; +import keysDeep from '../../lib/keys_deep'; +import template from './view.html'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_rename.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/rename/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_rename.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/rename/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/rename/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/rename/view_model.js new file mode 100644 index 000000000000..1899fcfc3c2a --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/rename/view_model.js @@ -0,0 +1,24 @@ +import Processor from '../base/view_model'; + +export class Rename extends Processor { + constructor(processorId) { + super(processorId, 'rename', 'Rename'); + this.sourceField = ''; + this.targetField = ''; + } + + get description() { + const source = this.sourceField || '?'; + const target = this.targetField || '?'; + return `[${source}] -> [${target}]`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + sourceField: this.sourceField || '', + targetField: this.targetField || '' + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_set.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/set/directive.js similarity index 91% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_set.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/set/directive.js index 6c8b2e01d0f8..b7a2521f3718 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_set.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/set/directive.js @@ -1,5 +1,5 @@ import uiModules from 'ui/modules'; -import template from '../views/processor_ui_set.html'; +import template from './view.html'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_set.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/set/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_set.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/set/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/set/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/set/view_model.js new file mode 100644 index 000000000000..4c7f31352c2d --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/set/view_model.js @@ -0,0 +1,23 @@ +import Processor from '../base/view_model'; + +export class Set extends Processor { + constructor(processorId) { + super(processorId, 'set', 'Set'); + this.targetField = ''; + this.value = ''; + } + + get description() { + const target = this.targetField || '?'; + return `[${target}]`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + targetField: this.targetField || '', + value: this.value || '' + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_split.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/split/directive.js similarity index 91% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_split.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/split/directive.js index 1cdcc4f1ecd7..9f1bd9280f5a 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_split.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/split/directive.js @@ -1,7 +1,7 @@ -import uiModules from 'ui/modules'; import _ from 'lodash'; -import keysDeep from '../lib/keys_deep'; -import template from '../views/processor_ui_split.html'; +import uiModules from 'ui/modules'; +import keysDeep from '../../lib/keys_deep'; +import template from './view.html'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_split.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/split/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_split.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/split/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/split/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/split/view_model.js new file mode 100644 index 000000000000..30e7c8d81473 --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/split/view_model.js @@ -0,0 +1,24 @@ +import Processor from '../base/view_model'; + +export class Split extends Processor { + constructor(processorId) { + super(processorId, 'split', 'Split'); + this.sourceField = ''; + this.separator = ''; + } + + get description() { + const source = this.sourceField || '?'; + const separator = this.separator || '?'; + return `[${source}] on '${separator}'`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + sourceField: this.sourceField || '', + separator: this.separator || '' + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_trim.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/trim/directive.js similarity index 91% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_trim.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/trim/directive.js index 08442c73e9e1..d016bde56903 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_trim.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/trim/directive.js @@ -1,7 +1,7 @@ -import uiModules from 'ui/modules'; import _ from 'lodash'; -import keysDeep from '../lib/keys_deep'; -import template from '../views/processor_ui_trim.html'; +import uiModules from 'ui/modules'; +import keysDeep from '../../lib/keys_deep'; +import template from './view.html'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_trim.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/trim/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_trim.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/trim/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/trim/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/trim/view_model.js new file mode 100644 index 000000000000..c0a52f2a899f --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/trim/view_model.js @@ -0,0 +1,21 @@ +import Processor from '../base/view_model'; + +export class Trim extends Processor { + constructor(processorId) { + super(processorId, 'trim', 'Trim'); + this.sourceField = ''; + } + + get description() { + const source = this.sourceField || '?'; + return `[${source}]`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + sourceField: this.sourceField || '' + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_uppercase.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/uppercase/directive.js similarity index 91% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_uppercase.js rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/uppercase/directive.js index ab667123dcb0..f8d8bb69695b 100644 --- a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/directives/processor_ui_uppercase.js +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/uppercase/directive.js @@ -1,7 +1,7 @@ -import uiModules from 'ui/modules'; import _ from 'lodash'; -import keysDeep from '../lib/keys_deep'; -import template from '../views/processor_ui_uppercase.html'; +import uiModules from 'ui/modules'; +import keysDeep from '../../lib/keys_deep'; +import template from './view.html'; const app = uiModules.get('kibana'); diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_uppercase.html b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/uppercase/view.html similarity index 100% rename from src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/views/processor_ui_uppercase.html rename to src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/uppercase/view.html diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/uppercase/view_model.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/uppercase/view_model.js new file mode 100644 index 000000000000..ce831ab40028 --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/uppercase/view_model.js @@ -0,0 +1,21 @@ +import Processor from '../base/view_model'; + +export class Uppercase extends Processor { + constructor(processorId) { + super(processorId, 'uppercase', 'Uppercase'); + this.sourceField = ''; + } + + get description() { + const source = this.sourceField || '?'; + return `[${source}]`; + } + + get model() { + return { + processorId: this.processorId, + typeId: this.typeId, + sourceField: this.sourceField || '' + }; + } +}; diff --git a/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/view_models.js b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/view_models.js new file mode 100644 index 000000000000..b82d5c92d610 --- /dev/null +++ b/src/plugins/kibana/public/settings/sections/indices/add_data_steps/pipeline_setup/processors/view_models.js @@ -0,0 +1,14 @@ +export { Append } from './append/view_model'; +export { Convert } from './convert/view_model'; +export { Date } from './date/view_model'; +export { GeoIp } from './geoip/view_model'; +export { Grok } from './grok/view_model'; +export { Gsub } from './gsub/view_model'; +export { Join } from './join/view_model'; +export { Lowercase } from './lowercase/view_model'; +export { Remove } from './remove/view_model'; +export { Rename } from './rename/view_model'; +export { Set } from './set/view_model'; +export { Split } from './split/view_model'; +export { Trim } from './trim/view_model'; +export { Uppercase } from './uppercase/view_model'; diff --git a/src/plugins/kibana/server/lib/converters/ingest_pipeline_api_kibana_to_es_converter.js b/src/plugins/kibana/server/lib/converters/ingest_pipeline_api_kibana_to_es_converter.js index 7c62bb973dfa..b26f14de1224 100644 --- a/src/plugins/kibana/server/lib/converters/ingest_pipeline_api_kibana_to_es_converter.js +++ b/src/plugins/kibana/server/lib/converters/ingest_pipeline_api_kibana_to_es_converter.js @@ -1,5 +1,5 @@ import _ from 'lodash'; -import * as ingestProcessorApiKibanaToEsConverters from './ingest_processor_api_kibana_to_es_converters'; +import * as ingestProcessorApiKibanaToEsConverters from '../processors/converters'; export default function ingestPipelineApiKibanaToEsConverter(pipelineApiDocument) { return { diff --git a/src/plugins/kibana/server/lib/converters/ingest_processor_api_kibana_to_es_converters.js b/src/plugins/kibana/server/lib/converters/ingest_processor_api_kibana_to_es_converters.js deleted file mode 100644 index dd00da1ea1a6..000000000000 --- a/src/plugins/kibana/server/lib/converters/ingest_processor_api_kibana_to_es_converters.js +++ /dev/null @@ -1,175 +0,0 @@ -import _ from 'lodash'; - -export function append(processorApiDocument) { - return { - append: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.target_field, - value: processorApiDocument.values - } - }; -} - -export function convert(processorApiDocument) { - const types = { - //: , - auto: 'auto', - number: 'float', - string: 'string', - boolean: 'boolean' - }; - - const processor = { - convert: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.source_field, - type: types[processorApiDocument.type] - } - }; - if (!_.isEmpty(processorApiDocument.target_field)) { - processor.convert.target_field = processorApiDocument.target_field; - } - - return processor; -} - -export function date(processorApiDocument) { - const formats = []; - processorApiDocument.formats.forEach((format) => { - if (format.toUpperCase() === 'CUSTOM') { - if (processorApiDocument.custom_format) { - formats.push(processorApiDocument.custom_format); - } - } else { - formats.push(format); - } - }); - - return { - date: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.source_field, - target_field: processorApiDocument.target_field, - formats: formats, - timezone: processorApiDocument.timezone, - locale: processorApiDocument.locale - } - }; -} - -export function geoip(processorApiDocument) { - const processor = { - geoip: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.source_field - } - }; - if (!_.isEmpty(processorApiDocument.target_field)) { - processor.geoip.target_field = processorApiDocument.target_field; - } - if (!_.isEmpty(processorApiDocument.database_file)) { - processor.geoip.database_file = processorApiDocument.database_file; - } - if (!_.isEmpty(processorApiDocument.database_fields)) { - processor.geoip.properties = processorApiDocument.database_fields; - } - - return processor; -} - -export function grok(processorApiDocument) { - return { - grok: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.source_field, - pattern: processorApiDocument.pattern - } - }; -} - -export function gsub(processorApiDocument) { - return { - gsub: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.source_field, - pattern: processorApiDocument.pattern, - replacement: processorApiDocument.replacement - } - }; -} - -export function join(processorApiDocument) { - return { - join: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.source_field, - separator: processorApiDocument.separator - } - }; -} - -export function lowercase(processorApiDocument) { - return { - lowercase: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.source_field - } - }; -} - -export function remove(processorApiDocument) { - return { - remove: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.source_field - } - }; -} - -export function rename(processorApiDocument) { - return { - rename: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.source_field, - target_field: processorApiDocument.target_field - } - }; -} - -export function set(processorApiDocument) { - return { - set: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.target_field, - value: processorApiDocument.value - } - }; -} - -export function split(processorApiDocument) { - return { - split: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.source_field, - separator: processorApiDocument.separator - } - }; -} - -export function trim(processorApiDocument) { - return { - trim: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.source_field - } - }; -} - -export function uppercase(processorApiDocument) { - return { - uppercase: { - tag: processorApiDocument.processor_id, - field: processorApiDocument.source_field - } - }; -} diff --git a/src/plugins/kibana/server/lib/processors/append/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/append/kibana_to_es_converter.js new file mode 100644 index 000000000000..3dd87ac0e6f2 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/append/kibana_to_es_converter.js @@ -0,0 +1,9 @@ +export default function append(processorApiDocument) { + return { + append: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.target_field, + value: processorApiDocument.values + } + }; +} diff --git a/src/plugins/kibana/server/lib/processors/append/schema.js b/src/plugins/kibana/server/lib/processors/append/schema.js new file mode 100644 index 000000000000..17f6582d548f --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/append/schema.js @@ -0,0 +1,8 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const append = base.keys({ + type_id: Joi.string().only('append').required(), + target_field: Joi.string().allow(''), + values: Joi.array().items(Joi.string().allow('')) +}); diff --git a/src/plugins/kibana/server/lib/processors/base/schema.js b/src/plugins/kibana/server/lib/processors/base/schema.js new file mode 100644 index 000000000000..66f699eed1a2 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/base/schema.js @@ -0,0 +1,5 @@ +import Joi from 'joi'; + +export const base = Joi.object({ + processor_id: Joi.string().required() +}); diff --git a/src/plugins/kibana/server/lib/processors/convert/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/convert/kibana_to_es_converter.js new file mode 100644 index 000000000000..0fa89ae985bf --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/convert/kibana_to_es_converter.js @@ -0,0 +1,24 @@ +import _ from 'lodash'; + +export default function convert(processorApiDocument) { + const types = { + //: , + auto: 'auto', + number: 'float', + string: 'string', + boolean: 'boolean' + }; + + const processor = { + convert: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.source_field, + type: types[processorApiDocument.type] + } + }; + if (!_.isEmpty(processorApiDocument.target_field)) { + processor.convert.target_field = processorApiDocument.target_field; + } + + return processor; +} diff --git a/src/plugins/kibana/server/lib/processors/convert/schema.js b/src/plugins/kibana/server/lib/processors/convert/schema.js new file mode 100644 index 000000000000..72d6938822af --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/convert/schema.js @@ -0,0 +1,9 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const convert = base.keys({ + type_id: Joi.string().only('convert').required(), + source_field: Joi.string().allow(''), + target_field: Joi.string().allow(''), + type: Joi.string() +}); diff --git a/src/plugins/kibana/server/lib/processors/converters.js b/src/plugins/kibana/server/lib/processors/converters.js new file mode 100644 index 000000000000..19c4a17fc7ca --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/converters.js @@ -0,0 +1,14 @@ +export append from '../processors/append/kibana_to_es_converter'; +export convert from '../processors/convert/kibana_to_es_converter'; +export date from '../processors/date/kibana_to_es_converter'; +export geoip from '../processors/geoip/kibana_to_es_converter'; +export grok from '../processors/grok/kibana_to_es_converter'; +export gsub from '../processors/gsub/kibana_to_es_converter'; +export join from '../processors/join/kibana_to_es_converter'; +export lowercase from '../processors/lowercase/kibana_to_es_converter'; +export remove from '../processors/remove/kibana_to_es_converter'; +export rename from '../processors/rename/kibana_to_es_converter'; +export set from '../processors/set/kibana_to_es_converter'; +export split from '../processors/split/kibana_to_es_converter'; +export trim from '../processors/trim/kibana_to_es_converter'; +export uppercase from '../processors/uppercase/kibana_to_es_converter'; diff --git a/src/plugins/kibana/server/lib/processors/date/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/date/kibana_to_es_converter.js new file mode 100644 index 000000000000..3d8ee3f09150 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/date/kibana_to_es_converter.js @@ -0,0 +1,23 @@ +export default function date(processorApiDocument) { + const formats = []; + processorApiDocument.formats.forEach((format) => { + if (format.toUpperCase() === 'CUSTOM') { + if (processorApiDocument.custom_format) { + formats.push(processorApiDocument.custom_format); + } + } else { + formats.push(format); + } + }); + + return { + date: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.source_field, + target_field: processorApiDocument.target_field, + formats: formats, + timezone: processorApiDocument.timezone, + locale: processorApiDocument.locale + } + }; +} diff --git a/src/plugins/kibana/server/lib/processors/date/schema.js b/src/plugins/kibana/server/lib/processors/date/schema.js new file mode 100644 index 000000000000..5798712c016d --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/date/schema.js @@ -0,0 +1,12 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const date = base.keys({ + type_id: Joi.string().only('date').required(), + source_field: Joi.string().allow(''), + target_field: Joi.string().allow(''), + formats: Joi.array().items(Joi.string().allow('')), + timezone: Joi.string().allow(''), + locale: Joi.string().allow(''), + custom_format: Joi.string().allow('') +}); diff --git a/src/plugins/kibana/server/lib/processors/geoip/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/geoip/kibana_to_es_converter.js new file mode 100644 index 000000000000..0ffa984c4ea8 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/geoip/kibana_to_es_converter.js @@ -0,0 +1,21 @@ +import _ from 'lodash'; + +export default function geoip(processorApiDocument) { + const processor = { + geoip: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.source_field + } + }; + if (!_.isEmpty(processorApiDocument.target_field)) { + processor.geoip.target_field = processorApiDocument.target_field; + } + if (!_.isEmpty(processorApiDocument.database_file)) { + processor.geoip.database_file = processorApiDocument.database_file; + } + if (!_.isEmpty(processorApiDocument.database_fields)) { + processor.geoip.properties = processorApiDocument.database_fields; + } + + return processor; +} diff --git a/src/plugins/kibana/server/lib/processors/geoip/schema.js b/src/plugins/kibana/server/lib/processors/geoip/schema.js new file mode 100644 index 000000000000..fd639e6434d8 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/geoip/schema.js @@ -0,0 +1,10 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const geoip = base.keys({ + type_id: Joi.string().only('geoip').required(), + source_field: Joi.string().allow(''), + target_field: Joi.string().allow(''), + database_file: Joi.string().allow(''), + database_fields: Joi.array().items(Joi.string().allow('')), +}); diff --git a/src/plugins/kibana/server/lib/processors/grok/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/grok/kibana_to_es_converter.js new file mode 100644 index 000000000000..2d63df575c15 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/grok/kibana_to_es_converter.js @@ -0,0 +1,9 @@ +export default function grok(processorApiDocument) { + return { + grok: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.source_field, + pattern: processorApiDocument.pattern + } + }; +} diff --git a/src/plugins/kibana/server/lib/processors/grok/schema.js b/src/plugins/kibana/server/lib/processors/grok/schema.js new file mode 100644 index 000000000000..3bb3b7a47e76 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/grok/schema.js @@ -0,0 +1,8 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const grok = base.keys({ + type_id: Joi.string().only('grok').required(), + source_field: Joi.string().allow(''), + pattern: Joi.string().allow('') +}); diff --git a/src/plugins/kibana/server/lib/processors/gsub/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/gsub/kibana_to_es_converter.js new file mode 100644 index 000000000000..62da94dff89d --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/gsub/kibana_to_es_converter.js @@ -0,0 +1,10 @@ +export default function gsub(processorApiDocument) { + return { + gsub: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.source_field, + pattern: processorApiDocument.pattern, + replacement: processorApiDocument.replacement + } + }; +} diff --git a/src/plugins/kibana/server/lib/processors/gsub/schema.js b/src/plugins/kibana/server/lib/processors/gsub/schema.js new file mode 100644 index 000000000000..9896f63ea852 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/gsub/schema.js @@ -0,0 +1,9 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const gsub = base.keys({ + type_id: Joi.string().only('gsub').required(), + source_field: Joi.string().allow(''), + pattern: Joi.string().allow(''), + replacement: Joi.string().allow('') +}); diff --git a/src/plugins/kibana/server/lib/processors/join/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/join/kibana_to_es_converter.js new file mode 100644 index 000000000000..58e0bea22824 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/join/kibana_to_es_converter.js @@ -0,0 +1,9 @@ +export default function join(processorApiDocument) { + return { + join: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.source_field, + separator: processorApiDocument.separator + } + }; +} diff --git a/src/plugins/kibana/server/lib/processors/join/schema.js b/src/plugins/kibana/server/lib/processors/join/schema.js new file mode 100644 index 000000000000..e82bb9c9f657 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/join/schema.js @@ -0,0 +1,8 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const join = base.keys({ + type_id: Joi.string().only('join').required(), + source_field: Joi.string().allow(''), + separator: Joi.string().allow('') +}); diff --git a/src/plugins/kibana/server/lib/processors/lowercase/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/lowercase/kibana_to_es_converter.js new file mode 100644 index 000000000000..b850bc066e87 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/lowercase/kibana_to_es_converter.js @@ -0,0 +1,8 @@ +export default function lowercase(processorApiDocument) { + return { + lowercase: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.source_field + } + }; +} diff --git a/src/plugins/kibana/server/lib/processors/lowercase/schema.js b/src/plugins/kibana/server/lib/processors/lowercase/schema.js new file mode 100644 index 000000000000..70c283b7b632 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/lowercase/schema.js @@ -0,0 +1,7 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const lowercase = base.keys({ + type_id: Joi.string().only('lowercase').required(), + source_field: Joi.string().allow('') +}); diff --git a/src/plugins/kibana/server/lib/processors/remove/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/remove/kibana_to_es_converter.js new file mode 100644 index 000000000000..840446ec39e3 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/remove/kibana_to_es_converter.js @@ -0,0 +1,8 @@ +export default function remove(processorApiDocument) { + return { + remove: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.source_field + } + }; +} diff --git a/src/plugins/kibana/server/lib/processors/remove/schema.js b/src/plugins/kibana/server/lib/processors/remove/schema.js new file mode 100644 index 000000000000..c2c2fc803be7 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/remove/schema.js @@ -0,0 +1,7 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const remove = base.keys({ + type_id: Joi.string().only('remove').required(), + source_field: Joi.string().allow('') +}); diff --git a/src/plugins/kibana/server/lib/processors/rename/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/rename/kibana_to_es_converter.js new file mode 100644 index 000000000000..20ee7de0817b --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/rename/kibana_to_es_converter.js @@ -0,0 +1,9 @@ +export default function rename(processorApiDocument) { + return { + rename: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.source_field, + target_field: processorApiDocument.target_field + } + }; +} diff --git a/src/plugins/kibana/server/lib/processors/rename/schema.js b/src/plugins/kibana/server/lib/processors/rename/schema.js new file mode 100644 index 000000000000..b3118501d862 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/rename/schema.js @@ -0,0 +1,8 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const rename = base.keys({ + type_id: Joi.string().only('rename').required(), + source_field: Joi.string().allow(''), + target_field: Joi.string().allow('') +}); diff --git a/src/plugins/kibana/server/lib/processors/schemas.js b/src/plugins/kibana/server/lib/processors/schemas.js new file mode 100644 index 000000000000..bcc0dbe8bd99 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/schemas.js @@ -0,0 +1,14 @@ +export { append } from './append/schema'; +export { convert } from './convert/schema'; +export { date } from './date/schema'; +export { geoip } from './geoip/schema'; +export { grok } from './grok/schema'; +export { gsub } from './gsub/schema'; +export { join } from './join/schema'; +export { lowercase } from './lowercase/schema'; +export { remove } from './remove/schema'; +export { rename } from './rename/schema'; +export { set } from './set/schema'; +export { split } from './split/schema'; +export { trim } from './trim/schema'; +export { uppercase } from './uppercase/schema'; diff --git a/src/plugins/kibana/server/lib/processors/set/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/set/kibana_to_es_converter.js new file mode 100644 index 000000000000..b0050b8ee1cf --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/set/kibana_to_es_converter.js @@ -0,0 +1,9 @@ +export default function set(processorApiDocument) { + return { + set: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.target_field, + value: processorApiDocument.value + } + }; +} diff --git a/src/plugins/kibana/server/lib/processors/set/schema.js b/src/plugins/kibana/server/lib/processors/set/schema.js new file mode 100644 index 000000000000..a417bcad1bf9 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/set/schema.js @@ -0,0 +1,8 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const set = base.keys({ + type_id: Joi.string().only('set').required(), + target_field: Joi.string().allow(''), + value: Joi.string().allow('') +}); diff --git a/src/plugins/kibana/server/lib/processors/split/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/split/kibana_to_es_converter.js new file mode 100644 index 000000000000..76af3b077f5f --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/split/kibana_to_es_converter.js @@ -0,0 +1,9 @@ +export default function split(processorApiDocument) { + return { + split: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.source_field, + separator: processorApiDocument.separator + } + }; +} diff --git a/src/plugins/kibana/server/lib/processors/split/schema.js b/src/plugins/kibana/server/lib/processors/split/schema.js new file mode 100644 index 000000000000..890a22b03870 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/split/schema.js @@ -0,0 +1,8 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const split = base.keys({ + type_id: Joi.string().only('split').required(), + source_field: Joi.string().allow(''), + separator: Joi.string().allow('') +}); diff --git a/src/plugins/kibana/server/lib/processors/trim/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/trim/kibana_to_es_converter.js new file mode 100644 index 000000000000..0c36010742e4 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/trim/kibana_to_es_converter.js @@ -0,0 +1,8 @@ +export default function trim(processorApiDocument) { + return { + trim: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.source_field + } + }; +} diff --git a/src/plugins/kibana/server/lib/processors/trim/schema.js b/src/plugins/kibana/server/lib/processors/trim/schema.js new file mode 100644 index 000000000000..c4d4da419560 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/trim/schema.js @@ -0,0 +1,7 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const trim = base.keys({ + type_id: Joi.string().only('trim').required(), + source_field: Joi.string().allow('') +}); diff --git a/src/plugins/kibana/server/lib/processors/uppercase/kibana_to_es_converter.js b/src/plugins/kibana/server/lib/processors/uppercase/kibana_to_es_converter.js new file mode 100644 index 000000000000..9f7aab663f96 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/uppercase/kibana_to_es_converter.js @@ -0,0 +1,8 @@ +export default function uppercase(processorApiDocument) { + return { + uppercase: { + tag: processorApiDocument.processor_id, + field: processorApiDocument.source_field + } + }; +} diff --git a/src/plugins/kibana/server/lib/processors/uppercase/schema.js b/src/plugins/kibana/server/lib/processors/uppercase/schema.js new file mode 100644 index 000000000000..d42a1bf22825 --- /dev/null +++ b/src/plugins/kibana/server/lib/processors/uppercase/schema.js @@ -0,0 +1,7 @@ +import Joi from 'joi'; +import { base } from '../base/schema'; + +export const uppercase = base.keys({ + type_id: Joi.string().only('uppercase').required(), + source_field: Joi.string().allow('') +}); diff --git a/src/plugins/kibana/server/lib/schemas/resources/ingest_processor_schemas.js b/src/plugins/kibana/server/lib/schemas/resources/ingest_processor_schemas.js deleted file mode 100644 index 845e2ff8b94f..000000000000 --- a/src/plugins/kibana/server/lib/schemas/resources/ingest_processor_schemas.js +++ /dev/null @@ -1,93 +0,0 @@ -import Joi from 'joi'; - -const base = Joi.object({ - processor_id: Joi.string().required() -}); - -export const append = base.keys({ - type_id: Joi.string().only('append').required(), - target_field: Joi.string().allow(''), - values: Joi.array().items(Joi.string().allow('')) -}); - -export const convert = base.keys({ - type_id: Joi.string().only('convert').required(), - source_field: Joi.string().allow(''), - target_field: Joi.string().allow(''), - type: Joi.string() -}); - -export const date = base.keys({ - type_id: Joi.string().only('date').required(), - source_field: Joi.string().allow(''), - target_field: Joi.string().allow(''), - formats: Joi.array().items(Joi.string().allow('')), - timezone: Joi.string().allow(''), - locale: Joi.string().allow(''), - custom_format: Joi.string().allow('') -}); - -export const geoip = base.keys({ - type_id: Joi.string().only('geoip').required(), - source_field: Joi.string().allow(''), - target_field: Joi.string().allow(''), - database_file: Joi.string().allow(''), - database_fields: Joi.array().items(Joi.string().allow('')), -}); - -export const grok = base.keys({ - type_id: Joi.string().only('grok').required(), - source_field: Joi.string().allow(''), - pattern: Joi.string().allow('') -}); - -export const gsub = base.keys({ - type_id: Joi.string().only('gsub').required(), - source_field: Joi.string().allow(''), - pattern: Joi.string().allow(''), - replacement: Joi.string().allow('') -}); - -export const join = base.keys({ - type_id: Joi.string().only('join').required(), - source_field: Joi.string().allow(''), - separator: Joi.string().allow('') -}); - -export const lowercase = base.keys({ - type_id: Joi.string().only('lowercase').required(), - source_field: Joi.string().allow('') -}); - -export const remove = base.keys({ - type_id: Joi.string().only('remove').required(), - source_field: Joi.string().allow('') -}); - -export const rename = base.keys({ - type_id: Joi.string().only('rename').required(), - source_field: Joi.string().allow(''), - target_field: Joi.string().allow('') -}); - -export const set = base.keys({ - type_id: Joi.string().only('set').required(), - target_field: Joi.string().allow(''), - value: Joi.string().allow('') -}); - -export const split = base.keys({ - type_id: Joi.string().only('split').required(), - source_field: Joi.string().allow(''), - separator: Joi.string().allow('') -}); - -export const trim = base.keys({ - type_id: Joi.string().only('trim').required(), - source_field: Joi.string().allow('') -}); - -export const uppercase = base.keys({ - type_id: Joi.string().only('uppercase').required(), - source_field: Joi.string().allow('') -}); diff --git a/src/plugins/kibana/server/lib/schemas/resources/pipeline_schema.js b/src/plugins/kibana/server/lib/schemas/resources/pipeline_schema.js index 847646a3243e..e2396b1906db 100644 --- a/src/plugins/kibana/server/lib/schemas/resources/pipeline_schema.js +++ b/src/plugins/kibana/server/lib/schemas/resources/pipeline_schema.js @@ -1,5 +1,5 @@ import _ from 'lodash'; import Joi from 'joi'; -import * as ingestProcessorSchemas from './ingest_processor_schemas'; +import * as ingestProcessorSchemas from '../../processors/schemas'; module.exports = Joi.array().items(_.values(ingestProcessorSchemas)); diff --git a/src/plugins/kibana/server/lib/schemas/simulate_request_schema.js b/src/plugins/kibana/server/lib/schemas/simulate_request_schema.js index dab4c0c6a883..ffea0c1c9551 100644 --- a/src/plugins/kibana/server/lib/schemas/simulate_request_schema.js +++ b/src/plugins/kibana/server/lib/schemas/simulate_request_schema.js @@ -1,5 +1,5 @@ import Joi from 'joi'; -import * as ingestProcessorSchemas from './resources/ingest_processor_schemas'; +import * as ingestProcessorSchemas from '../processors/schemas'; import _ from 'lodash'; export default Joi.object({