Skip to Content
OpenETL
Reference

Pipeline CLI commands

Look up the arguments, flags and defaults for applying, inspecting and operating pipelines with openetl.

Edit on GitHub

These commands call the OpenETL API. The command definitions are in cmd/openetl. The CLI overview lists the other command groups.

Put flags before positional arguments. For a command group, put flags after the subcommand. NAME, PIPELINE, SOURCE and DESTINATION are resource names within a workspace, not full API paths. STREAM is the stream name reported by discovery or the pipeline.

Common flags and credentials

Every command on this page accepts these optional flags:

FlagTypeDefaultMeaning
--api-urlstringOPENETL_API_URL, otherwise http://localhost:8080The API server URL.
--api-key-filepathOPENETL_API_KEY_FILE, otherwise .openetl/admin.keyThe file that holds the API key. Relative paths start at the current directory.
--workspacestringdefaultThe resource's workspace. For apply and plan, this supplies the workspace only for documents without metadata.workspace.
-hbooleanfalsePrint the command's flags without calling the API.

OPENETL_API_KEY takes precedence over the key file, even if you supply --api-key-file. The API URL flag takes precedence over OPENETL_API_URL. The key-file flag takes precedence over OPENETL_API_KEY_FILE. There is no --api-key flag.

Help is written to standard error. Successful commands return exit status 0. Errors return exit status 1. Plan warnings alone do not cause an error.

Apply and plan

SyntaxResult
openetl apply -f FILECreate or update the resources in the file.
openetl plan -f FILEValidate the documents and show resource changes and pipeline plans without applying them.
FlagTypeRequiredDefaultMeaning
-frepeatable pathYesNoneA YAML or JSON file. Use - for standard input. Files can contain multiple documents separated by ---.
--dry-runbooleanNofalseValidate without applying. Available on apply only.
--no-checkbooleanNofalseDo not check what the apply changed. Available on apply only.

Neither command accepts positional arguments. A document's metadata.workspace takes precedence over --workspace. Organization resources do not belong to a workspace.

After apply changes resources, it asks a runner to check them:

  • Each source and destination that the apply created or updated.
  • The source and destination of each pipeline that the apply created or updated, on the pipeline's data plane.

apply discovers each source that passes its check, which refreshes the catalog that plans read. Then it prints the problems in the changed pipelines' plans. A failed check or a plan problem prints a warning and does not change the exit status, because the applied resources stay. The checks stop after 2 minutes. --dry-run and --no-check skip them.

plan returns an error if a pipeline that would be created or changed has plan problems. Its output can also show problems on unchanged pipelines. See Plan, then apply for the review procedure.

Pause, resume and sync

SyntaxResult
openetl pause NAMEPause the pipeline.
openetl resume NAMEResume the pipeline.
openetl sync NAMERequest a sync now. The command returns before the sync finishes.
FlagTypeRequiredDefaultMeaning
--streamstringNoNonePause or resume one stream. Available on pause and resume only.

Stream pause is unavailable for CDC streams and pipelines with transforms. A paused stream and a paused pipeline have separate states. Resuming the pipeline does not resume streams paused individually. See Pause and resume.

Inspect syncs, versions and logs

SyntaxResult
openetl syncs PIPELINEList syncs, newest first.
openetl versions PIPELINEList pipeline versions, newest first. * marks the current version.
openetl logs PIPELINEPrint the selected sync's log.
FlagCommandsTypeRequiredDefaultMeaning
--limitsyncs, versionsintegerNo20Maximum number of results. The CLI requests further API pages until it reaches the limit or the end.
--synclogsstringNoLatest syncThe sync ID from syncs.
-flogsbooleanNofalseFollow the log until the sync ends. Poll every 2 seconds when there are no new entries.
--jsonlogsbooleanNofalsePrint one log entry per line as protobuf JSON.

syncs shows a shortened error. Use logs to read the full message. A running sync can show failed attempts while recovery continues. A missing lag value is printed as -; it does not mean zero lag. See Troubleshoot a pipeline.

Reset and rewind

SyntaxResult
openetl reset NAMERead selected streams from the start on the next sync or run.
openetl rewind --yes NAMEPermit recovery from the previous checkpoint if the latest checkpoint cannot be read.
FlagCommandTypeRequiredDefaultMeaning
--streamresetrepeatable stringNoEvery streamSelect the streams to read again.
--yesrewindbooleanYes, set to truefalseAccept delivery of the latest epoch again, including possible duplicate rows.

Neither operation resumes a paused pipeline. Both operations are unavailable for pipelines with Flink transforms. A reset uses the connector's starting-position behavior. A rewind does not select an arbitrary point in history. See Reading from the start again for destination effects and recovery steps.

Rescale

openetl rescale --size SIZE NAME changes the job size until the pipeline's next version. A running job restarts at a checkpoint.

FlagTypeRequiredDefaultMeaning
--sizestringYesNonexs, s, m, l, xl, a CPU and memory pair such as 3,6Gi, or auto. CPU is in vCPUs. auto removes the manual size override.

The pipeline's resource settings define its normal size and limits. The data plane must have capacity for the requested size.

Inspect and remove overrides

SyntaxResult
openetl overrides PIPELINEList individually paused streams and overrides set by heal. overrides list is an alias.
openetl overrides remove PIPELINE FIELDRemove the named override so the pipeline specification controls that field again.

These commands have no flags beyond the common flags. Use the FIELD value from the list. Removing an override does not change the pipeline specification. See When heal slows syncs down.

Inspect, release and discard holds

SyntaxResult
openetl holds PIPELINEList held columns and cells, their states and available actions. holds list is an alias.
openetl holds release PIPELINE STREAM COLUMNRequest release of the held values on the next run.
openetl holds discard PIPELINE STREAM COLUMNRequest deletion of the saved values on the next run.
FlagCommandTypeRequiredDefaultMeaning
--new-versionholds releasebooleanNofalseRelease a whole-column hold into COLUMN__v2. Keep the existing column's type. Unavailable for a hold on individual cells alone.

Release and discard do not change destination data during the CLI request. See Handle schema changes and holds for repair and verification steps.

Check connections and discover streams

SyntaxResult
openetl check source SOURCEAsk a runner to check a source connection.
openetl check destination DESTINATIONAsk a runner to check a destination connection.
openetl check pipeline PIPELINEAsk a runner to check the pipeline's source and destination, discover the source's streams, and then print the pipeline's plan.
openetl discover SOURCEAsk a runner to list a source's streams and columns.
FlagTypeRequiredDefaultMeaning
--data-planestringNoThe server's default data plane. For check pipeline, the pipeline's data plane.The data plane whose runner performs the operation.

Put flags before source, destination or pipeline for check. check pipeline returns an error if a check fails or the plan has problems. These commands use connections already applied to the API. To test a connector locally with a config file, use the connector CLI.

On this page