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

[Integrations Manager] Initial plugin #37950

Conversation

jfsiii
Copy link
Contributor

@jfsiii jfsiii commented Jun 4, 2019

Looking for 👀 from @elastic/infra-logs-ui & @elastic/kibana-platform on general making a new Kibana plugin.

Most of the code is only a bit beyond "Hello World" but I wanted to get feedback on the approach before I got too far.

Here's an overview of what each file does right now

> tree x-pack/plugins/integrations_manager/
x-pack/plugins/integrations_manager/
├── common 
│   ├── constants.ts        # common strings, mostly. id, paths, etc
│   └── types.ts            # as we find common types
├── index.ts                # legacy plugin definition
├── kibana.json             # new platform style shown in MIGRATION.md
├── public
│   ├── components          # plugin-specific components (used by screens/*)
│   ├── data.ts             # all client-side data fetching
│   ├── index.tsx           # React root. Client-side routes applied
│   ├── register_feature.ts # add to registry for /#/home/feature_directory
│   ├── routes.tsx          # every re: client-side routes. paths, mappings
│   └── screens             # typically a view for a client-side route
│       ├── detail.tsx      # integration detail view i.e. '/detail/:pkgkey'
│       └── home.tsx        # integration list view i.e. '/'
└── server            
    ├── index.ts            # new platform style shown in MIGRATION.md 
    ├── plugin.ts           # new platform style shown in MIGRATION.md
    ├── registry.ts         # anything registry-related
    ├── routes.ts           # every re: server-side routes. paths, mappings
    └── saved_objects.ts    # anything saved objects-related

5 directories, 16 files

Summary

  • mounted under /app/integrations_manager

  • Integrations Manager communicates with Registry (currently on localhost 8080)

  • quick pass at List & Detail views

    Screen Shot 2019-05-28 at 11 11 49 AMScreen Shot 2019-05-28 at 11 12 50 AM

  • nav icon is placeholder/incorrect
  • using Saved Objects client

Checklist

Use strikethroughs to remove checklist items you don't feel are applicable to this PR.

For maintainers

@elasticmachine
Copy link
Contributor

💔 Build Failed

@ruflin ruflin requested a review from jasonrhodes June 4, 2019 07:54
@ruflin ruflin added the Feature:EPM Fleet team's Elastic Package Manager (aka Integrations) project label Jun 4, 2019
@elasticmachine
Copy link
Contributor

💔 Build Failed

@elasticmachine
Copy link
Contributor

💔 Build Failed

@elasticmachine
Copy link
Contributor

💔 Build Failed

@jfsiii jfsiii marked this pull request as ready for review June 5, 2019 13:39
@elasticmachine
Copy link
Contributor

💔 Build Failed

@elasticmachine
Copy link
Contributor

💔 Build Failed

@elasticmachine
Copy link
Contributor

💔 Build Failed

@jfsiii
Copy link
Contributor Author

jfsiii commented Jun 6, 2019

jenkins, test this

@elasticmachine
Copy link
Contributor

💔 Build Failed

@jfsiii jfsiii force-pushed the 36708-integrations-manager-plugin branch from 4174a5a to 4d96fd8 Compare June 6, 2019 10:26
@jfsiii jfsiii requested review from a team as code owners June 6, 2019 10:26
@jfsiii jfsiii requested a review from a team June 6, 2019 10:26
@jfsiii jfsiii requested a review from a team as a code owner June 6, 2019 10:26
@jfsiii jfsiii force-pushed the 36708-integrations-manager-plugin branch from 4d96fd8 to 4174a5a Compare June 6, 2019 10:34
@jfsiii jfsiii requested review from a team and removed request for a team June 6, 2019 10:49
John Schulz and others added 16 commits June 11, 2019 09:02
Still playing with patterns, but keeping them in sync seems like A Good Thing
Co-Authored-By: Felix Stürmer <weltenwort@users.noreply.github.com>
Co-Authored-By: Felix Stürmer <weltenwort@users.noreply.github.com>
Co-Authored-By: Felix Stürmer <weltenwort@users.noreply.github.com>
Co-Authored-By: Felix Stürmer <weltenwort@users.noreply.github.com>
Co-Authored-By: Felix Stürmer <weltenwort@users.noreply.github.com>
```
> http -a elastic:changeme -A basic GET :5601/api/integrations_manager/package/envoyproxy-0.0.5/get
HTTP/1.1 200 OK
Date: Fri, 07 Jun 2019 21:55:02 GMT
Transfer-Encoding: chunked
cache-control: no-cache
connection: close
content-encoding: gzip
content-type: application/json; charset=utf-8
kbn-name: kibana
kbn-xpack-sig: 9b2bee4e36b2242b4c157c665bf740e6
vary: origin,accept-encoding

{
    "meta": {
        "paths": [
            "ENVOYPROXY-0.0.5/",
            "ENVOYPROXY-0.0.5/KIBANA/",
            "ENVOYPROXY-0.0.5/KIBANA/VISUALIZATION/",
            "ENVOYPROXY-0.0.5/KIBANA/VISUALIZATION/7E4084E0-5C99-11E9-8477-077EC9664DBD.JSON",
            "ENVOYPROXY-0.0.5/KIBANA/VISUALIZATION/0A994AF0-5C9D-11E9-8477-077EC9664DBD.JSON",
            "ENVOYPROXY-0.0.5/KIBANA/VISUALIZATION/36F872A0-5C03-11E9-85B4-19D0072EB4F2.JSON",
            "ENVOYPROXY-0.0.5/KIBANA/VISUALIZATION/38F96190-5C99-11E9-8477-077EC9664DBD.JSON",
            "ENVOYPROXY-0.0.5/KIBANA/VISUALIZATION/80844540-5C97-11E9-8477-077EC9664DBD.JSON",
            "ENVOYPROXY-0.0.5/KIBANA/VISUALIZATION/AB48C3F0-5CA6-11E9-8477-077EC9664DBD.JSON",
            "ENVOYPROXY-0.0.5/KIBANA/SEARCH/",
            "ENVOYPROXY-0.0.5/KIBANA/DASHBOARD/",
            "ENVOYPROXY-0.0.5/KIBANA/DASHBOARD/0C610510-5CBD-11E9-8477-077EC9664DBD.JSON",
            "ENVOYPROXY-0.0.5/KIBANA/INDEX-PATTERN/",
            "ENVOYPROXY-0.0.5/KIBANA/INDEX-PATTERN/FILEBEAT-*.JSON",
            "ENVOYPROXY-0.0.5/DOCS/",
            "ENVOYPROXY-0.0.5/DOCS/DOCS.ASCIIDOC",
            "ENVOYPROXY-0.0.5/IMG/",
            "ENVOYPROXY-0.0.5/IMG/ICON.PNG",
            "ENVOYPROXY-0.0.5/IMG/KIBANA-ENVOYPROXY.JPG",
            "ENVOYPROXY-0.0.5/MANIFEST.YML",
            "ENVOYPROXY-0.0.5/ELASTICSEARCH/",
            "ENVOYPROXY-0.0.5/ELASTICSEARCH/INGEST-PIPELINE/",
            "ENVOYPROXY-0.0.5/ELASTICSEARCH/INGEST-PIPELINE/PIPELINE-JSON.JSON",
            "ENVOYPROXY-0.0.5/ELASTICSEARCH/INGEST-PIPELINE/PIPELINE-ENTRY.JSON",
            "ENVOYPROXY-0.0.5/ELASTICSEARCH/INGEST-PIPELINE/PIPELINE-TCP.JSON",
            "ENVOYPROXY-0.0.5/ELASTICSEARCH/INGEST-PIPELINE/PIPELINE-PLAINTEXT.JSON",
            "ENVOYPROXY-0.0.5/ELASTICSEARCH/INGEST-PIPELINE/PIPELINE-HTTP.JSON"
        ],
        "pkgkey": "envoyproxy-0.0.5"
    }
}
```
```
‣ http -a elastic:changeme -A basic GET :5601/api/integrations_manager/package/envoyproxy-0.0.5/get
HTTP/1.1 200 OK
Date: Sat, 08 Jun 2019 03:40:17 GMT
Transfer-Encoding: chunked
cache-control: no-cache
connection: close
content-encoding: gzip
content-type: application/json; charset=utf-8
kbn-name: kibana
kbn-xpack-sig: 9b2bee4e36b2242b4c157c665bf740e6
vary: origin,accept-encoding

{
    "meta": {
        "paths": [
            "/",
            "/kibana/",
            "/kibana/visualization/",
            "/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json",
            "/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json",
            "/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json",
            "/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json",
            "/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json",
            "/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json",
            "/kibana/search/",
            "/kibana/dashboard/",
            "/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json",
            "/kibana/index-pattern/",
            "/kibana/index-pattern/filebeat-*.json",
            "/docs/",
            "/docs/docs.asciidoc",
            "/img/",
            "/img/icon.png",
            "/img/kibana-envoyproxy.jpg",
            "/manifest.yml",
            "/elasticsearch/",
            "/elasticsearch/ingest-pipeline/",
            "/elasticsearch/ingest-pipeline/pipeline-json.json",
            "/elasticsearch/ingest-pipeline/pipeline-entry.json",
            "/elasticsearch/ingest-pipeline/pipeline-tcp.json",
            "/elasticsearch/ingest-pipeline/pipeline-plaintext.json",
            "/elasticsearch/ingest-pipeline/pipeline-http.json"
        ],
        "pkgkey": "envoyproxy-0.0.5"
    }
}
```
@jfsiii jfsiii force-pushed the 36708-integrations-manager-plugin branch from 538ad99 to a257437 Compare June 11, 2019 13:03
@elasticmachine
Copy link
Contributor

💔 Build Failed

Copy link
Member

@jasonrhodes jasonrhodes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM for merging as a baseline, I'll continue to review this as we move on and get more concrete with implementations. Looking good though, nice work!

@elasticmachine
Copy link
Contributor

💔 Build Failed

John Schulz added 2 commits June 11, 2019 12:58
e.g. https://kibana-ci.elastic.co/job/elastic+kibana+pull-request/JOB=kibana-intake,node=immutable/1413/console

```
11:12:59  -- building renovate config
11:13:01
11:13:01 ERROR: 'node scripts/build_renovate_config' caused changes to the following files:
11:13:01
11:13:01 renovate.json5
```
@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@jfsiii jfsiii merged commit d073328 into elastic:feature-integrations-manager Jun 11, 2019
@jfsiii jfsiii deleted the 36708-integrations-manager-plugin branch June 18, 2019 21:01
@sgrodzicki sgrodzicki added the Team:Infra Monitoring UI - DEPRECATED DEPRECATED - Label for the Infra Monitoring UI team. Use Team:obs-ux-infra_services label Oct 21, 2019
@elasticmachine
Copy link
Contributor

Pinging @elastic/logs-metrics-ui (Team:logs-metrics-ui)

@jen-huang jen-huang added Team:Fleet Team label for Observability Data Collection Fleet team and removed Team:Infra Monitoring UI - DEPRECATED DEPRECATED - Label for the Infra Monitoring UI team. Use Team:obs-ux-infra_services labels Mar 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:EPM Fleet team's Elastic Package Manager (aka Integrations) project Team:Fleet Team label for Observability Data Collection Fleet team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants