Skip to content

Commit c7aa2ed

Browse files
committed
Merge branch 'feature-integrations-manager' of github.com:elastic/kibana into feature-ingest
2 parents 570c1c7 + 232347f commit c7aa2ed

101 files changed

Lines changed: 5461 additions & 9 deletions

File tree

Some content is hidden

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

docs/epm/index.asciidoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[role="xpack"]
2+
[[epm]]
3+
== Elastic Package Manager
4+
5+
These are the docs for the Elastic Package Manager (EPM).

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,8 @@
131131
"@types/react-grid-layout": "^0.16.7",
132132
"@types/recompose": "^0.30.5",
133133
"@use-it/interval": "^0.1.3",
134+
"@types/tar": "^4.0.0",
135+
"@types/yauzl": "^2.9.1",
134136
"JSONStream": "1.3.5",
135137
"abortcontroller-polyfill": "^1.3.0",
136138
"angular": "^1.7.8",
@@ -422,6 +424,7 @@
422424
"listr": "^0.14.1",
423425
"load-grunt-config": "^3.0.1",
424426
"mocha": "6.2.1",
427+
"mock-http-server": "1.3.0",
425428
"multistream": "^2.1.1",
426429
"murmurhash3js": "3.0.1",
427430
"mutation-observer": "^1.0.3",

renovate.json5

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,22 @@
289289
'@types/lodash.clonedeep',
290290
],
291291
},
292+
{
293+
groupSlug: 'tar',
294+
groupName: 'tar related packages',
295+
packageNames: [
296+
'tar',
297+
'@types/tar',
298+
],
299+
},
300+
{
301+
groupSlug: 'yauzl',
302+
groupName: 'yauzl related packages',
303+
packageNames: [
304+
'yauzl',
305+
'@types/yauzl',
306+
],
307+
},
292308
{
293309
groupSlug: 'bluebird',
294310
groupName: 'bluebird related packages',
@@ -681,6 +697,14 @@
681697
'@types/git-url-parse',
682698
],
683699
},
700+
{
701+
groupSlug: 'js-search',
702+
groupName: 'js-search related packages',
703+
packageNames: [
704+
'js-search',
705+
'@types/js-search',
706+
],
707+
},
684708
{
685709
groupSlug: 'jsdom',
686710
groupName: 'jsdom related packages',

x-pack/.i18nrc.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"xpack.canvas": "legacy/plugins/canvas",
1010
"xpack.crossClusterReplication": "legacy/plugins/cross_cluster_replication",
1111
"xpack.dashboardMode": "legacy/plugins/dashboard_mode",
12+
"xpack.epm":"legacy/plugins/integrations_manager",
1213
"xpack.features": "plugins/features",
1314
"xpack.fileUpload": "legacy/plugins/file_upload",
1415
"xpack.fleet": "legacy/plugins/fleet",

x-pack/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import { snapshotRestore } from './legacy/plugins/snapshot_restore';
4242
import { transform } from './legacy/plugins/transform';
4343
import { actions } from './legacy/plugins/actions';
4444
import { alerting } from './legacy/plugins/alerting';
45+
import { epm } from './legacy/plugins/integrations_manager';
4546
import { lens } from './legacy/plugins/lens';
4647
import { ingest } from './legacy/plugins/ingest';
4748
import { fleet } from './legacy/plugins/fleet';
@@ -89,5 +90,6 @@ module.exports = function (kibana) {
8990
alerting(kibana),
9091
ingest(kibana),
9192
fleet(kibana),
93+
epm(kibana),
9294
];
9395
};
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Integrations Manager
2+
3+
## Development
4+
### Branch
5+
We're using a long-running feature branch [`feature-integrations-manager`](https://github.com/elastic/kibana/tree/feature-integrations-manager).
6+
7+
<details>
8+
<summary>Keeping up to date with upstream kibana</summary>
9+
10+
```bash
11+
## checkout feature branch to your fork
12+
git checkout -B feature-integrations-manager origin/feature-integrations-manager
13+
14+
## make sure your feature branch is current with upstream feature branch
15+
git pull upstream feature-integrations-manager
16+
17+
## pull in changes from upstream master
18+
git pull upstream master
19+
20+
## push changes to your remote
21+
git push origin
22+
23+
# Open a **DRAFT PR**. Normal PRs will re-notify authors of commits already merged
24+
# Draft PR will trigger CI run. Once CI is green ...
25+
26+
## push your changes to upstream feature branch
27+
git push upstream
28+
```
29+
</details>
30+
31+
### Feature development
32+
In your own fork of `elastic/kibana`, create a feature branch based on `feature-integrations-manager`.
33+
34+
```
35+
git checkout -b 1234-feature-description feature-integrations-manager
36+
# ... git commits for feature
37+
open https://github.com/elastic/kibana/compare/feature-integrations-manager...yourgithubname:1234-feature-description
38+
```
39+
40+
See https://github.com/elastic/kibana/pull/37950 for an example.
41+
42+
### Getting started
43+
See the Kibana docs for [how to set up your dev environment](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#setting-up-your-development-environment), [run Elasticsearch](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#running-elasticsearch), and [start Kibana](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#running-kibana).
44+
45+
One common workflow is:
46+
1. `yarn es snapshot`
47+
1. In another shell: `yarn start --no-base-path`
48+
49+
### Plugin architecture
50+
Follows the `common`, `server`, `public` structure from the [Architecture Style Guide
51+
](https://github.com/elastic/kibana/blob/master/style_guides/architecture_style_guide.md#file-and-folder-structure).
52+
53+
We use New Platform approach (structure, APIs, etc) where possible. There's a `kibana.json` manifest, and the server uses the `server/{index,plugin}.ts` approach from [`MIGRATION.md`](https://github.com/elastic/kibana/blob/master/src/core/MIGRATION.md#architecture). The client code we author is using New Platform shape & APIs, but the Manager deals with external systems which are at their own stages of migration.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"title": "Asset",
3+
"type": "object",
4+
"description": "Item installed for Kibana (e.g. dashboard, visualization), Elasticsearch (e.g. ingest pipeline, ILM policy), or a Kibana plugin (e.g. ML job)",
5+
"properties": {
6+
"id": {
7+
"type": "string"
8+
},
9+
"type": {
10+
"$ref": "./asset_type.v1.json"
11+
}
12+
},
13+
"required": [
14+
"id",
15+
"type"
16+
]
17+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"type": "string",
3+
"title": "AssetType",
4+
"description": "Types of assets which can be installed/removed",
5+
"enum": [
6+
"index-template",
7+
"ingest-pipeline",
8+
"ilm-policy",
9+
"rollup-job",
10+
"ml-job",
11+
"data-frame-transform"
12+
]
13+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"title": "Datasource",
3+
"type": "object",
4+
"description": "A logical grouping of places where data is coming from, such as \"Production\", \"Staging\", \"Production East-1\", \"Metrics Cluster\", etc. -- these groupings are user-defined. We store information collected from the user about this logical grouping such as a name and any other information we need about it to generate the associated config. A package defines its own data source templates that can use user-provided values to generate the data source config. A single data source will typically enable users to collect both logs and metrics. A data source can be in multiple policies at the same time. A datasource can have multiple streams.",
5+
"properties": {
6+
"name": {
7+
"type": "string"
8+
},
9+
"package": {
10+
"$ref": "./package.v1.json"
11+
},
12+
"streams": {
13+
"type": "array",
14+
"items": {
15+
"$ref": "./stream.v1.json"
16+
}
17+
},
18+
"id": {
19+
"type": "string",
20+
"format": "uuid"
21+
},
22+
"read_alias": {
23+
"type": "string"
24+
}
25+
},
26+
"required": [
27+
"name",
28+
"package",
29+
"streams"
30+
]
31+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{
2+
"title": "Input",
3+
"type": "object",
4+
"description": "Where the data comes from",
5+
"properties": {
6+
"type": {
7+
"type": "string",
8+
"enum": [
9+
"log",
10+
"metric/system",
11+
"metric/docker",
12+
"etc"
13+
]
14+
},
15+
"config": {
16+
"type": "object",
17+
"example": "{paths: \"/var/log/*.log\"} or {metricsets: [\"container\", \"cpu\"]} or {username: \"elastic\", password: \"changeme\"}",
18+
"description": "Mix of configurable and required properties still TBD. Object for now might become string"
19+
},
20+
"ingest_pipelines": {
21+
"type": "array",
22+
"description": "Need a distinction for \"main\" ingest pipeline. Should be handled during install. Likely by package/manifest format",
23+
"items": {
24+
"type": "string"
25+
}
26+
},
27+
"id": {
28+
"type": "string",
29+
"format": "uuid"
30+
},
31+
"index_template": {
32+
"type": "string"
33+
},
34+
"ilm_policy": {
35+
"type": "string"
36+
},
37+
"fields": {
38+
"type": "array",
39+
"description": "",
40+
"items": {
41+
"type": "object",
42+
"description": "contents from fields.yml"
43+
}
44+
}
45+
},
46+
"required": [
47+
"type",
48+
"config"
49+
]
50+
}

0 commit comments

Comments
 (0)