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

Mara configuration interface #5

Open
leo-schick opened this issue Dec 1, 2023 · 2 comments
Open

Mara configuration interface #5

leo-schick opened this issue Dec 1, 2023 · 2 comments

Comments

@leo-schick
Copy link
Member

TBD

@leo-schick
Copy link
Member Author

leo-schick commented Dec 3, 2023

Here are my thoughts about the mara config interface:

Phase 1

A config is done by a mara_config.py file. This file is placed in the root folder of the project or the path is specified via environment variable MARA_CONFIG. You can either provide a path to a directory or to the python file. When the directory is passed, the config should search for mara_config.py in the folder.

For now, I'd say the config should work as of today importing mara packages and patching them (and by that activating them). The logic could be duplicated in mara-cli and mara-app as they are currently the only projects invoking the config. But it is be possible as well to reactivate the mara-config package and placing the logic to import mara_config there.

Future ideas

For the future, I personally would like to get rid of all this monkey patching of configs which just return a scalar or dict value. I like the way how superset does it, see superset/config.py. One can still do fancy stuff in the config module, but by default, you just set global variables which are then used in the code. I am not 100% sure about this idea, because it still keeps us in the situation that one has to write the config manually.
For non-tech users I was thinking to add a mara init cli function which guides through setting up the config. For such a scenario a format which supports serialization would make more sense. E.g. yaml, toml or json.
One other idea I had in mind was that we could support a mapping from dbt config to mara which would make executioning of a dbt project throgh mara possible (e.g. via cli mara dbt run -s <model>). It would be powered by an integration with mara-catalog which has an integration to read dbt manifest files. But that's just a random idea into the blue...

@leo-schick
Copy link
Member Author

@jankatins

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

No branches or pull requests

1 participant