Cloud Command Line

Meltano Cloud is currently in Beta.

While in Beta, functionality is not guaranteed and subject to change.
If you're interested in using Meltano Cloud please join our waitlist.

config #

The config command provides an interface for managing project configuration and secrets. The config command supports the setting of environment variables via the env command group.

env #

Values set via this interface will be injected as Environment Variables into tasks run within the associated project. Once set, values cannot be viewed. If you are unsure of the current value of an env var, use the set command to set a known value.

The list subcommand provides an interface to see existing set env var keys:

meltano-cloud config env list --limit 5

TAP_GITHUB_AUTH_TOKEN
TAP_GITHUB_USER_AGENT

The set subcommand provides an interface to set new, or override existing, env var values.

meltano-cloud config env set --key TAP_GITHUB_AUTH_TOKEN --value 'my_super_secret_auth_token'

The delete subcommand provides an interface to delete env vars:

meltano-cloud config env delete TAP_GITHUB_AUTH_TOKEN

deployment #

The deployment command provides an interface for managing Meltano Cloud deployments for your projects.

Create a new deployment interactively:

meltano-cloud deployment create

Create a new deployment non-interactively:

meltano-cloud deployment create --name 'my-dev-deployment' --environment 'dev' --git-rev 'develop'

The above example creates a new deployment named my-dev-deployment for the Meltano environment named dev, using the develop branch of the project’s git repository. Note that the Meltano environment name must match what is in meltano.yml.

List deployments:

$ meltano-cloud deployment list
╭───────────┬──────────┬───────────────┬───────────────────┬────────────────────┬───────────────────────╮
│  Default  │ Name     │ Environment   │ Tracked Git Rev   │ Current Git Hash   │ Last Deployed (UTC)   │
├───────────┼──────────┼───────────────┼───────────────────┼────────────────────┼───────────────────────┤
│           │ prod     │ prod          │ main              │ 0fa3aab            │ 2023-05-30 16:52:44   │
│     X     │ staging  │ staging       │ main              │ a3268dd            │ 2023-05-31 11:14:34   │
│           │ 1234-xyz │ dev           │ feat/1234-xyz     │ d105f18            │ 2023-06-01 03:57:31   │
╰───────────┴──────────┴───────────────┴───────────────────┴────────────────────┴───────────────────────╯

Delete a deployment:

meltano-cloud deployment delete --name 'my-dev-deployment'

Use a deployment as the default deployment for other commands:

meltano-cloud deployment use --name 'my-dev-deployment'

Selecting a default deployment can also be done interactively:

meltano-cloud deployment use

Currently Meltano Cloud doesn’t automatically sync updates to schedules stored in your meltano.yml file. If you’ve made a change to your schedules configuration and would like them to be re-deployed to Meltano Cloud you can run the following:

meltano-cloud deployment update --name prod

docs #

Opens the Meltano Cloud documentation in the system browser.

meltano-cloud docs

history #

Display the history of executions for a project.

$ meltano-cloud history --limit 3
╭──────────────────────────────────┬─────────────────┬──────────────┬─────────────────────┬──────────┬────────────╮
│ Execution ID                     │ Schedule Name   │ Deployment   │ Executed At (UTC)   │ Result   │ Duration   │
├──────────────────────────────────┼─────────────────┼──────────────┼─────────────────────┼──────────┼────────────┤
│ 15e1cbbde6b2424f86c04b237291d652 │ daily           │ sandbox      │ 2023-03-22 00:04:49 │ Success  │ 00:05:08   │
│ ad2b34087e7c4332a1398321552f2a82 │ daily           │ sandbox      │ 2023-03-22 00:03:23 │ Failed   │ 00:10:13   │
│ 695de7b041b445f5a46a7aac1d0879b9 │ daily           │ sandbox      │ 2023-03-21 15:44:55 │ Failed   │ 00:08:09   │
╰──────────────────────────────────┴─────────────────┴──────────────┴─────────────────────┴──────────┴────────────╯

# Display the last 12 hours of executions
$ meltano-cloud history --lookback 12h

# Display the last week of executions
$ meltano-cloud history --lookback 1w

# Display the last hour and a half of executions
$ meltano-cloud history --lookback 1h30m

login #

Logging into Meltano Cloud via the CLI stores a token locally which is used by the CLI to take actions that require authentication.

Logging in will open a browser tab where you may be asked to authenticate yourself using GitHub.

# Login to Meltano Cloud
meltano-cloud login

logout #

Logging out of Meltano Cloud invalidates your login token, and deletes the local copy that was saved when meltano cloud login was run.

# Logout from Meltano Cloud
meltano-cloud logout

logs #

# Print logs for an execution
meltano-cloud logs print --execution-id <execution_id>

project #

The project command provides an interface for Meltano Cloud projects.

The list subcommand shows all of the projects you have access to, and can use with other commands:

meltano-cloud project list
╭───────────┬───────────────────────────────┬──────────────────────────────────────────────────────────╮
│  Default  │ Name                          │ Git Repository                                           │
├───────────┼───────────────────────────────┼──────────────────────────────────────────────────────────┤
│           │ Meltano Squared               │ https://github.com/meltano/squared.git                   │
│           │ MDS-in-a-box                  │ https://github.com/aaronsteers/meltano-demo-in-a-box.git │
╰───────────┴───────────────────────────────┴──────────────────────────────────────────────────────────╯

When you run the login command, if you only have a single project, it will be set as the default project to use for future commands. Otherwise, you will need to run meltano-cloud project use to specify which Meltano Cloud project the other meltano-cloud commands should operate on.

When meltano-cloud project use is not provided any argument, it will list the available projects, and have you select one interactively using the arrow keys. To select a project as the default non-interactively, use the --name argument:

meltano-cloud project use --name 'Meltano Squared'
Set 'Meltano Squared' as the default Meltano Cloud project for future commands
meltano-cloud project list
╭───────────┬───────────────────────────────┬──────────────────────────────────────────────────────────╮
│  Default  │ Name                          │ Git Repository                                           │
├───────────┼───────────────────────────────┼──────────────────────────────────────────────────────────┤
│     X     │ Meltano Squared               │ https://github.com/meltano/squared.git                   │
│           │ MDS-in-a-box                  │ https://github.com/aaronsteers/meltano-demo-in-a-box.git │
╰───────────┴───────────────────────────────┴──────────────────────────────────────────────────────────╯

When specifying a project to use as the default for future command, its name must be exactly as shown when running meltano-cloud project list. If there are spaces or special characters in the name, then it must be quoted.

run #

Run a schedule immediately specifying the schedule name and deployment.

meltano-cloud run daily --deployment sandbox
Running a Meltano project in Meltano Cloud.

The running workload will appear in the history within 1-2 minutes.

schedule #

Prior to enabling or disabling a schedule, the project that schedule belongs to must be deployed.

Schedules are disabled when initially deployed, and must be enabled using the enable command.

Currently, updating a schedule requires a redeployment. In the future it will be possible to update a schedule without a redeployment.

# Enable a schedule
meltano-cloud schedule enable --deployment <deployment name> --schedule <schedule name>

# Disable a schedule
meltano-cloud schedule disable --deployment <deployment name> --schedule <schedule name>

Schedules can be listed using the list command:

meltano-cloud schedule list
╭──────────────┬────────────┬──────────────────────┬──────────────┬───────────╮
│ Deployment   │ Schedule   │ Interval             │   Runs / Day │ Enabled   │
├──────────────┼────────────┼──────────────────────┼──────────────┼───────────┤
│ staging      │ schedule_1 │ 0 6 * * 1,3,5        │        < 1.0 │ False     │
│ staging      │ schedule_2 │ 0 */6 * * *          │          4.0 │ True      │
│ prod         │ schedule_3 │ 0 6 * * *            │          1.0 │ True      │
│ prod         │ schedule_4 │ 15,45 */2 * * 1,3,5  │         10.3 │ False     │
╰──────────────┴────────────┴──────────────────────┴──────────────┴───────────╯
meltano-cloud schedule list --deployment prod
╭──────────────┬────────────┬──────────────────────┬──────────────┬───────────╮
│ Deployment   │ Schedule   │ Interval             │   Runs / Day │ Enabled   │
├──────────────┼────────────┼──────────────────────┼──────────────┼───────────┤
│ prod         │ schedule_3 │ 0 6 * * *            │          1.0 │ True      │
│ prod         │ schedule_4 │ 15,45 */2 * * 1,3,5  │         10.3 │ False     │
╰──────────────┴────────────┴──────────────────────┴──────────────┴───────────╯

Individual schedules can be more thoroughly described using the describe command:

meltano-cloud schedule describe --deployment staging --schedule schedule_4 --num-upcoming 5
Deployment name: prod
Schedule name:   schedule_4
Interval:        15,45 */2 * * 1,3,5
Enabled:         True

Approximate starting date and time (UTC) of next 5 schedule runs:
2023-03-24 20:45
2023-03-24 22:15
2023-03-24 22:45
2023-03-27 00:15
2023-03-27 00:45

The --only-upcoming option can be used to have the command only output the upcoming scheduled run start dates and times:

meltano-cloud schedule describe --deployment staging --schedule schedule_4 --num-upcoming 5 --only-upcoming
2023-03-24 20:45
2023-03-24 22:15
2023-03-24 22:45
2023-03-27 00:15
2023-03-27 00:45

If a schedule is disabled, it will never have any upcoming scheduled runs.