kimoudev
10/06/2020, 1:58 PMdouwe_maan
10/06/2020, 3:29 PMI would like to know if the project is still going on,Definitely! I hope that's clear from the activity in this Slack workspace and the repo at https://gitlab.com/meltano/meltano 😄
I would like to contribute especially to integrate the UI side.Awesome! We have a bunch of open issues in https://gitlab.com/groups/meltano/-/epics/78 already, and new issues and contributions to address existing ones are more than welcome!
So I would like to know:
- How does the backend work?What aspect of the backend are you interested in? The core Meltano business logic can be found in the
meltano.core module (https://gitlab.com/meltano/meltano/-/tree/master/src/meltano/core), the CLI commands that use this core functionality are in meltano.cli (https://gitlab.com/meltano/meltano/-/tree/master/src/meltano/cli), and the Flask API that is used by the API can be found at meltano.api (https://gitlab.com/meltano/meltano/-/tree/master/src/meltano/api).
- How do the UI APIs work from the controller.Which controller are you referring to? The controllers in https://gitlab.com/meltano/meltano/-/tree/master/src/meltano/api/controllers define endpoints that the UI can make requests to, like
/plugins/all defined here: https://gitlab.com/meltano/meltano/-/blob/master/src/meltano/api/controllers/plugins.py#L40kimoudev
10/06/2020, 8:19 PMdouwe_maan
10/06/2020, 8:27 PMmeltano.yml is a pretty central part of its design, and not something that's likely to change, since it's exactly this feature that brings DevOps best practices such as version control and CI/CD to Meltano projects, as discussed briefly in https://meltano.com/docs/project.html.
I shared some more thoughts on storing things in meltano.yml instead of the system database in https://gitlab.com/meltano/meltano/-/issues/2306#note_401383373, which you may want to check out if this is a topic of interest to you.
Note that plugin configuration can already be stored in the database; see point 3 under https://meltano.com/docs/configuration.html#configuration-layers.
If you have multiple users with their own plugins and configurations, your best bet would be to have a separate Meltano project for each user/team/project, so that all implementation details are managed separately and the users and projects aren't in each other's ways. We can definitely explore more scalable ways of managing multiple projects in the UI or the CLI, of course.
Please let me know if this helps! If you have a specific use case in mind that doesn't seem to fit the current architecture, I'll gladly discuss it some more.kimoudev
10/07/2020, 7:34 PMdouwe_maan
10/07/2020, 8:56 PMWith a little more analysis, meltano is not built for use in CLOUD type SAAS.Correct, it's currently optimized for data engineers who want to manage their ELT pipelines like a software engineering project, not through a visual UI. The UI is explicitly lower priority than the CLI right now: https://meltano.com/docs/ui.html
Otherwise the questions would be:
1-How can a user have several similar loaders? user1 = {gitlab-tap=>enterprise1, gitlab-tap2=>enterprise2}See https://meltano.slack.com/archives/CFG3C3C66/p1602095081147800?thread_ts=1602086759.143100&cid=CFG3C3C66
2-How to initialize each project according to the user if the server should start on a project.As you've identified, Meltano currently requires projects to be created explicitly using
meltano init , after which a Git repo can be initialized in the directory which can then be shared and collaborated on using a platform like GitLab or GitHub, to get the benefits of DevOps best practices such as version control and CI/CD.
Inside each such project, a project-specific UI can be spun up using meltano ui , based on the assumption that a company's data team would have just a single Meltano project all team members can work in.
Meltano does not currently have a higher level UI to create and manage projects, although I'll gladly discuss adding such a UI and related CLI tooling to allow Meltano to be used in a multi-tenant SaaS setup. Would you like to create an issue for that?kimoudev
10/07/2020, 10:33 PMdouwe_maan
10/07/2020, 10:47 PM