Skip to main content
Version: Preview

Pipelines

A pipeline is a plugin pointed at a source, running on a schedule. You describe the connection once and the plugin discovers what is there on every run, so the catalog stays in step with the system it describes. The Marmot server runs the plugin, so the server needs network access to the source.

Create a pipeline​

On Plugins, select Add plugin, choose the plugin, name the pipeline, fill in the connection and choose a schedule. Create a pipeline in the UI walks through each step.

Check that it worked​

The pipeline runs on its next scheduled run, or straight away with Run now on Plugins. Its row shows the last run and recent runs, and View runs shows the log of each one. From a terminal:

marmot runs list --pipelines marketplace-postgres

Credentials​

On open source Marmot the credential is part of the config. It's encrypted at rest on the server and never returned by the API. In Terraform, keep the value in your secret manager and pass it through a variable, as above, so it isn't written into the configuration itself.

On Marmot Cloud a pipeline holds no credential: it authenticates to Google Cloud, AWS or Azure as itself, or reads a password from your secret manager shortly before each run. See pipelines on Marmot Cloud.

Schedules​

Match the schedule to how often the source changes, and spread pipelines across the hour so they don't all start at once. To stop a pipeline running for a while, pause it (Pause the schedule when editing it, or enabled = false in Terraform) rather than deleting it, so the run history stays. Use the plugin's include patterns to catalog only the schemas people ask about.

Running plugins outside the server​

The CLI and the Kubernetes operator run plugins on the machine or cluster where they are invoked and push the results to Marmot. Use them when the server can't reach the source, or when you want each source's credentials confined to its own runner.

Next steps​