Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Ingest Node Pipeline] Pipeline Processors Editor #63694

Closed
Closed
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
c19382d
initial plugin setup
alisonelizabeth Apr 3, 2020
bf94f1c
add smoke test
alisonelizabeth Apr 5, 2020
e24165e
Merge branch 'master' of github.com:elastic/kibana into feature/inges…
alisonelizabeth Apr 5, 2020
b0bb193
Merge branch 'master' of github.com:elastic/kibana into feature/inges…
alisonelizabeth Apr 6, 2020
5a536bd
fix license check
alisonelizabeth Apr 6, 2020
ef2f1ab
refactor plugin setup
alisonelizabeth Apr 6, 2020
fc9235b
Merge branch 'master' into feature/ingest-node-pipelines
elasticmachine Apr 7, 2020
a841441
Merge branch 'master' into feature/ingest-node-pipelines
elasticmachine Apr 7, 2020
7de73c8
Server-side create/update ingest pipelines (#62744)
alisonelizabeth Apr 8, 2020
ac0ac2b
Merge branch 'master' into feature/ingest-node-pipelines
elasticmachine Apr 8, 2020
699ebef
List pipelines (#62785)
jloleysens Apr 9, 2020
92b3f21
[Ingest pipelines] Create pipeline UI (#63017)
alisonelizabeth Apr 14, 2020
993d065
Merge branch 'master' of github.com:elastic/kibana into feature/inges…
alisonelizabeth Apr 14, 2020
2b70fa7
First vertical slice of pipeline editor component
jloleysens Apr 15, 2020
402459f
Made a space for common parameters
jloleysens Apr 15, 2020
cf8b36b
[Ingest pipelines] Edit pipeline page (#63522)
alisonelizabeth Apr 15, 2020
3824e25
First iteration of CRUD functionality working
jloleysens Apr 16, 2020
7d48f21
Merge branch 'feature/ingest-node-pipelines' of github.com:elastic/ki…
jloleysens Apr 16, 2020
f3f705f
WiP on moving the pipeline editor to pipeline processor editor
jloleysens Apr 16, 2020
48a18c6
Finish refactor to work with passing state out
jloleysens Apr 16, 2020
9e09ad5
Refactor and fix tests
jloleysens Apr 16, 2020
8d18877
Merge branch 'master' of github.com:elastic/kibana into feature/inges…
alisonelizabeth Apr 20, 2020
7e7d776
[Ingest pipelines] Polish details panel and empty list (#63926)
alisonelizabeth Apr 20, 2020
4560d75
Address some early feedback and use FormDataProvider
jloleysens Apr 20, 2020
597b148
Merge branch 'feature/ingest-node-pipelines' of github.com:elastic/ki…
jloleysens Apr 20, 2020
6ffaeda
[Ingest pipelines] Delete pipeline (#63635)
alisonelizabeth Apr 20, 2020
2c340b2
Merge branch 'master' of github.com:elastic/kibana into feature/inges…
jloleysens Apr 21, 2020
34cb91a
[Ingest Node Pipelines] Clone Pipeline (#64049)
jloleysens Apr 22, 2020
29b006b
Merge branch 'feature/ingest-node-pipelines' of github.com:elastic/ki…
jloleysens Apr 22, 2020
564f74f
Update to using the more flexible controlled component pattern
jloleysens Apr 22, 2020
9c0bd8e
Handle sub-form validity
jloleysens Apr 22, 2020
82a999c
Fix Jest test
jloleysens Apr 22, 2020
be9a290
Refactor some names
jloleysens Apr 22, 2020
2957970
Mark as private
jloleysens Apr 22, 2020
736c98e
Major WiP
jloleysens Apr 23, 2020
eba5305
[Ingest node pipelines] Privileges (#63850)
jloleysens Apr 23, 2020
74b69c7
First iteration of drag and drop tree on feature parity
jloleysens Apr 23, 2020
8314d23
First steps toward add on failure handler
jloleysens Apr 23, 2020
1141e50
First iteration of nested tree with add on failure working
jloleysens Apr 23, 2020
5c84cc4
Refactor and some UI layout updates
jloleysens Apr 23, 2020
09f74db
Remove immer (not call stack safe)
jloleysens Apr 23, 2020
dbc5cc5
Merge branch 'master' into feature/ingest-node-pipelines
elasticmachine Apr 24, 2020
a2b4049
[Ingest Node Pipelines] More lenient treatment of on-failure value (#…
jloleysens Apr 25, 2020
e40cefc
Move file to components folder
jloleysens Apr 27, 2020
cad13fd
Merge branch 'master' into feature/ingest-node-pipelines
elasticmachine Apr 27, 2020
fc0ed64
[Ingest pipelines] Simulate pipeline (#64223)
alisonelizabeth Apr 27, 2020
6c71bff
Merge branch 'feature/ingest-node-pipelines' of github.com:elastic/ki…
jloleysens Apr 28, 2020
0ef475c
Updated tree rendering
jloleysens Apr 28, 2020
6dbdf06
[Ingest Node Pipelines] Show flyout after editing or creating a pipel…
jloleysens Apr 28, 2020
e7f1e3c
Clarification of terms
jloleysens Apr 29, 2020
b60ef5f
Implement move between lists functionality
jloleysens Apr 29, 2020
a9c5384
Merge branch 'master' of github.com:elastic/kibana into feature/inges…
alisonelizabeth Apr 29, 2020
5643419
fix TS
alisonelizabeth Apr 29, 2020
61d194b
Prevent nesting a parent inside of its own child
jloleysens Apr 29, 2020
d9ef80a
Add comment
jloleysens Apr 29, 2020
f3a16f2
Merge branch 'master' into feature/ingest-node-pipelines
elasticmachine Apr 29, 2020
7010b9e
Merge branch 'master' of github.com:elastic/kibana into feature/inges…
alisonelizabeth Apr 29, 2020
3c4353f
Merge branch 'master' into feature/ingest-node-pipelines
elasticmachine Apr 30, 2020
a4c298d
[Ingest pipelines] Cleanup (#64794)
alisonelizabeth Apr 30, 2020
5bbb9fc
address review feedback
alisonelizabeth Apr 30, 2020
dd93b11
remove unused import
alisonelizabeth Apr 30, 2020
3ccc16d
Big refactor to tree rendering structure
jloleysens Apr 30, 2020
b8b169f
Remove unused component
jloleysens Apr 30, 2020
62b0f53
A number of NB changes
jloleysens May 1, 2020
a5bd69a
Merge branch 'feature/ingest-node-pipelines' of github.com:elastic/ki…
jloleysens May 4, 2020
68c12f9
Merge branch 'master' of github.com:elastic/kibana into pipeline-edit…
jloleysens May 4, 2020
3992a29
fix bad conflict resolution
jloleysens May 4, 2020
b88f703
Implemented a slightly better destination resolution algo.
jloleysens May 4, 2020
b05e356
Fix subtle staleness bug, whitelist keys for setValue
jloleysens May 4, 2020
f70165c
NB styling fix!!
jloleysens May 4, 2020
e6f9bd0
Fix stale delete bug too
jloleysens May 4, 2020
fb2733b
Update naming of editor modes and update comments
jloleysens May 7, 2020
74221e4
Use field types combo box
jloleysens May 7, 2020
53c42d9
Add delete confirmation modal
jloleysens May 7, 2020
8617031
Refactor delete modal component file name
jloleysens May 7, 2020
d32b73c
Better visual integration with existing form
jloleysens May 7, 2020
62b3277
Update layout and styling of form
jloleysens May 7, 2020
9e1e698
Move pipeline processor copy into pipeline processor component
jloleysens May 7, 2020
d5b0e8a
First step of refactor to moving between trees
jloleysens May 7, 2020
8e738a2
First iteration of x-tree drag and drop
jloleysens May 7, 2020
39c8dbd
Remove unused import
jloleysens May 7, 2020
1a63baf
Fix jest test types
jloleysens May 7, 2020
e6f4f74
Fix up minor i18n issues and fix up layout of on failure
jloleysens May 7, 2020
830e9e9
Remove unnecessary prop
jloleysens May 7, 2020
41613be
Update spacing above add processor button to make it more center
jloleysens May 7, 2020
c7fe2db
Merge branch 'master' of github.com:elastic/kibana into pipeline-edit…
jloleysens May 8, 2020
eff46b0
Fix destination resolution algo
jloleysens May 8, 2020
0fcdd06
Update dragging resolver unit tests and add a lot more comments
jloleysens May 8, 2020
49def41
Use one sorting algo (removed use of euiReorder for now)
jloleysens May 9, 2020
698d8ff
Add placeholder tests and update comments
jloleysens May 11, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@
/x-pack/plugins/snapshot_restore/ @elastic/es-ui
/x-pack/plugins/upgrade_assistant/ @elastic/es-ui
/x-pack/plugins/watcher/ @elastic/es-ui
/x-pack/plugins/ingest_pipelines/ @elastic/es-ui

# Endpoint
/x-pack/plugins/endpoint/ @elastic/endpoint-app-team
Expand Down
1 change: 1 addition & 0 deletions x-pack/.i18nrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"xpack.indexLifecycleMgmt": "plugins/index_lifecycle_management",
"xpack.infra": "plugins/infra",
"xpack.ingestManager": "plugins/ingest_manager",
"xpack.ingestPipelines": "plugins/ingest_pipelines",
"xpack.lens": "legacy/plugins/lens",
"xpack.licenseMgmt": "plugins/license_management",
"xpack.licensing": "plugins/licensing",
Expand Down
9 changes: 9 additions & 0 deletions x-pack/plugins/ingest_pipelines/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# ingest_pipelines

> Ingest node pipelines UI

---

## Development

See the [kibana contributing guide](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md) for instructions setting up your development environment.
16 changes: 16 additions & 0 deletions x-pack/plugins/ingest_pipelines/common/constants.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
import { LicenseType } from '../../licensing/common/types';

const basicLicense: LicenseType = 'basic';

export const PLUGIN_ID = 'ingest_pipelines';

export const PLUGIN_MIN_LICENSE_TYPE = basicLicense;

export const BASE_PATH = '/management/elasticsearch/ingest_pipelines';

export const API_BASE_PATH = '/api/ingest_pipelines';
7 changes: 7 additions & 0 deletions x-pack/plugins/ingest_pipelines/common/lib/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/

export { deserializePipelines } from './pipeline_serialization';
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
import { deserializePipelines } from './pipeline_serialization';

describe('pipeline_serialization', () => {
describe('deserializePipelines()', () => {
it('should deserialize pipelines', () => {
expect(
deserializePipelines({
pipeline1: {
description: 'pipeline 1 description',
version: 1,
processors: [
{
script: {
source: 'ctx._type = null',
},
},
],
on_failure: [
{
set: {
field: 'error.message',
value: '{{ failure_message }}',
},
},
],
},
pipeline2: {
description: 'pipeline2 description',
version: 1,
processors: [],
},
})
).toEqual([
{
name: 'pipeline1',
description: 'pipeline 1 description',
version: 1,
processors: [
{
script: {
source: 'ctx._type = null',
},
},
],
on_failure: [
{
set: {
field: 'error.message',
value: '{{ failure_message }}',
},
},
],
},
{
name: 'pipeline2',
description: 'pipeline2 description',
version: 1,
processors: [],
},
]);
});
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/

import { PipelinesByName, Pipeline } from '../types';

export function deserializePipelines(pipelinesByName: PipelinesByName): Pipeline[] {
const pipelineNames: string[] = Object.keys(pipelinesByName);

const deserializedPipelines = pipelineNames.map((name: string) => {
return {
...pipelinesByName[name],
name,
};
});

return deserializedPipelines;
}
33 changes: 33 additions & 0 deletions x-pack/plugins/ingest_pipelines/common/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/

export interface ESCommonProcessorOptions {
on_failure?: Processor[];
ignore_failure?: boolean;
if?: string;
tag?: string;
}

export interface Processor<Extend = { [key: string]: any }> {
[type: string]: ESCommonProcessorOptions & Extend;
}

export interface Pipeline {
name: string;
description: string;
version?: number;
processors: Processor[];
on_failure?: Processor[];
}

export interface PipelinesByName {
[key: string]: {
description: string;
version?: number;
processors: Processor[];
on_failure?: Processor[];
};
}
17 changes: 17 additions & 0 deletions x-pack/plugins/ingest_pipelines/kibana.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"id": "ingestPipelines",
"version": "8.0.0",
"server": true,
"ui": true,
"requiredPlugins": [
"licensing",
"management"
],
"optionalPlugins": [
"usageCollection"
],
"configPath": [
"xpack",
"ingest_pipelines"
]
}
26 changes: 26 additions & 0 deletions x-pack/plugins/ingest_pipelines/public/application/app.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/

import React from 'react';
import { HashRouter, Switch, Route } from 'react-router-dom';
import { BASE_PATH } from '../../common/constants';
import { PipelinesList, PipelinesCreate, PipelinesEdit } from './sections';

export const App = () => {
return (
<HashRouter>
<AppWithoutRouter />
</HashRouter>
);
};

export const AppWithoutRouter = () => (
<Switch>
<Route exact path={BASE_PATH} component={PipelinesList} />
<Route exact path={`${BASE_PATH}/create`} component={PipelinesCreate} />
<Route exact path={`${BASE_PATH}/edit/:name`} component={PipelinesEdit} />
</Switch>
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/

export { PipelineForm } from './pipeline_form';

export { SectionError } from './section_error';

export { PipelineRequestFlyoutProvider as PipelineRequestFlyout } from './pipeline_request_flyout_provider';
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/

export { PipelineForm } from './pipeline_form';
Loading