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

Graph Migration plan #45791

Closed
flash1293 opened this issue Sep 16, 2019 · 2 comments
Closed

Graph Migration plan #45791

flash1293 opened this issue Sep 16, 2019 · 2 comments
Labels
Feature:Graph Graph application feature Team:Visualizations Visualization editors, elastic-charts and infrastructure

Comments

@flash1293
Copy link
Contributor

flash1293 commented Sep 16, 2019

This issue lays out the legacy dependencies of Graph and in what order to migrate all of the parts over to the new target architecture.

Server side

The Graph server contains two proxies forwarding regular search queries and explore queries to the respective Elasticsearch endpoints and license checking. The license is also checked client side which removes the need to do a separate check on the server side. The search endpoint can be replaced with a call to the low level search service app arch team is currently building. The proxy for explore calls can follow a similar approach as the Lens implementation.

Client side

All dependencies are included in a central app.js file which makes moving to the new platform easy because everything is already passed down from a central point. New components will never import stuff by themselves, but rely on getting all dependencies passed down from app.js.

The following files are currently imported and have to be replaced by their NP counterparts:

Done Import interim 👉
ui/directives/saved_object_finder
ui/directives/input_focus
ui/saved_objects/ui/saved_object_save_as_checkbox
{ addAppRedirectMessageToUrl, fatalError, toastNotifications } from ui/notify LP core.notifications
{ formatAngularHttpError } from ui/notify/lib LP core.notifications
{ IndexPatternsProvider } from ui/index_patterns data.indexPatterns
chrome from ui/chrome core.chrome
{ capabilities } from ui/capabilities Global Angular core.application
$http Global Angular core.http
config core.uiSettings
ui/kbn_top_nav Local Angular { TopNavMenu } from '../kibana_react/public' - make part of chrome component after state management is de-angularized
{ SavedObjectsClientProvider } from ui/saved_objects Global Angular ? core.saved_objects once saved objects are de-angularized
uiRoutes from ui/routes Local Angular ❌react router
{ uiModules } from ui/modules Local Angular
uiExports/fieldFormats Global Angular ? probably not necessary anymore (might have been transient dependency of index patterns)
ui/autoload/all Global Angular
uiExports/savedObjectTypes Global Angular ? app arch
{ SavedObjectRegistryProvider } from ui/saved_objects/saved_object_registry Global Angular ? app arch #46435
{ KibanaParsedUrl } from ui/url/kibana_parsed_url LP ? might be replaced by url service
{ xpackInfo } from plugins/xpack_main/services/xpack_info LP licensing plugin #44922
kbnUrl Local Angular ?
kbnBaseUrl Global Angular ?
confirmModal Global Angular replace by own implementation and core.overlays
chrome.getInjected LP #47319 npStart.core.injectedMetadata.getInjectedVar
ui.ace Local Angular ❌When inspect moved to inspector service
ui.bootstrap Local Angular ❌When UI is de-angularized
{ showSaveModal } from 'ui/saved_objects/show_saved_object_save_modal' LP replace by own implementation and core.overlays

The rewrite will be approached in the following order (see #44225 for tracking progress):

  • Shim plugin with local angular instance
  • Move all data fetching to core.http
  • Implement own confirModal
  • Migrate saved objects to own implementation
  • Move top nav to react
  • Typing data fetching
  • Typing layouting logic and move out of model
  • Redux state handling for the rest
  • Move to react router
  • Get rid of angular

Reference: https://github.com/elastic/kibana/blob/master/src/core/MIGRATION.md
Approach outline slide deck: https://docs.google.com/presentation/d/1qTQlbcUpNEZRZKxLWVdGLIs85UHIEz2oHt7QPx8qcrk/edit?usp=sharing

@flash1293 flash1293 added Feature:Graph Graph application feature Team:Visualizations Visualization editors, elastic-charts and infrastructure labels Sep 16, 2019
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-app

@timroes
Copy link
Contributor

timroes commented Mar 25, 2020

Done, Graph is moved completely to Kibana Platform.

@timroes timroes closed this as completed Mar 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:Graph Graph application feature Team:Visualizations Visualization editors, elastic-charts and infrastructure
Projects
None yet
Development

No branches or pull requests

3 participants