Define interface for meltano `analysis` / `dashboard` plugins
Following from and parallel to #2838 (closed) which covers validator plugins - what should our interface be for analysis plugins?
Supporting the webserver UI
I think we should extend meltano ui start
so it also starts any installed analysis webservers. For simplicity, in our first invocation, we may require the plugin name to be explicitly referenced. However, in future, I could see all webservers being on included/excluded based on yaml config.
meltano ui start <plugin_name>
, as in meltano ui start superset
or meltano ui start lightdash
https://meltano.com/docs/command-line-interface.html#ui
Supporting analysis-specific hooks
We should probably make some hooks available for analysis plugins. For instance, running a given command after a tap, target, or transform is added to the project.
Supporting project introspection
As an alternative or complement to hooks, we could also have a discovery API which would call an analysis tool and allow it to configure itself and/or add BI-facing projections of the underlying data. Types of things which might be exposed via introspection:
- contents of
meltano.yml
: list of taps, extractors, plugins installed - contents of
dbt_project.yml
: transform metadata - root project directory: ability to scan, parse files
Support analysis "build" and/or "deploy" invocations
The locally available dashboard files probably need to be compiled and verified (build
step) and/or deployed to another webserver (deploy
step).