Skip to content

Applications API v2#72

Merged
romanwozniak merged 12 commits into
caraml-dev:mainfrom
romanwozniak:applications_api_v2
Nov 30, 2022
Merged

Applications API v2#72
romanwozniak merged 12 commits into
caraml-dev:mainfrom
romanwozniak:applications_api_v2

Conversation

@romanwozniak
Copy link
Copy Markdown
Collaborator

@romanwozniak romanwozniak commented Nov 28, 2022

Context:

Until now, the information about enabled CaraML applications in the MLP deployment was persisted in the DB and retrieved from there via an API call. In the hindsight, that wasn't the best design decision, because it was required to add DB migration script for adding/modifying the app configuration, which in turn required releasing the new version of the mlp app.

Also, the information about the available CaraML applications conceptually belongs to the deployment configuration, because the same version of CaraML can be deployed with a different subset of CaraML applications (e.g. it should be possible to deploy CaraML with Merlin, but without Turing etc.). It's harder to achieve this, because the DB migrations are strictly versioned.

This MR attempts to solve this issue by introducing Applications API v2, which retrieves the information about CaraML applications from the runtime configuration and doesn't persist this data in the database. This refactoring is also done in preparation to embed CaraML microfrontends into the mlp host UI.

Changes:

  • Refactored CaraML API layer to support both v1 and v2 endpoints simultaneously
  • Refactored MLP UI and @gojek/mlp-ui components library to use /v2/applications instead of /v1/applications
  • Refactored MLP landing page to only show information about the resources if the application that owns such resources (i.e. models -> Merlin, routers -> Turing etc) is enabled

Next Steps:

Since the frontends of CaraML apps are still using /v1/applications, it's required to keep this API endpoint until these apps are updated to use the new version of @gojek/mlp-ui. After it's done, Applications API v1 can be completely removed from the codebase.

@romanwozniak romanwozniak marked this pull request as ready for review November 29, 2022 05:33
Copy link
Copy Markdown
Collaborator

@deadlycoconuts deadlycoconuts left a comment

Choose a reason for hiding this comment

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

LGTM! 🚀 Thanks for the extensive refactoring; just had a couple of minor questions but no comments besides that!

Comment thread api/api/router.go
Comment thread api/config/config.go
Comment thread api/config/testdata/config-2.yaml Outdated
Comment thread api/config/config.go
Comment thread ui/packages/app/src/pages/project/components/FeastJobsTable.js
Comment thread ui/packages/app/src/pages/project/Project.js
@romanwozniak
Copy link
Copy Markdown
Collaborator Author

@deadlycoconuts thank you for the review 🙌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants