Skip to content
Weik.ioDocs
2026.2
Try Weik.io

Deploy a transfer

Weik.io 2026.2

weikio deploy runs the transfer on an agent, which writes the rclone configuration for that deployment and runs rclone on the schedule. Product page · Video

Watch: Deploy it, and see a file move, 3:31

The video deploys the transfer to devtest and watches a file move.

On this page

Deploy the transfer to devtest the same way you deploy any integration:

Terminal
$ weikio deploy finance/supplier-invoices --env devtest

The deploy checks first that an agent serves devtest and that every secret the two remotes need has a value there. When one is missing, the command fails at once with the command that sets it, before anything starts.

Watch the first run#

The transfer runs on its schedule. To see a run now, start one from the CLI, or with Run now on the deployment’s menu in the admin UI:

Terminal
$ weikio invoke finance/supplier-invoices --env devtest --endpoint direct:mft-run

The run waits behind a run already in progress and the command returns at once. Follow the log lines as the files move:

Terminal
$ weikio logs finance/supplier-invoices --env devtest -f

Each file is one line while the run is still going, not a batch at the end. A line prints as rclone wrote it, one JSON object after the time, the level, the route mft-log and the agent. A moved file is a line whose msg says Copied or Moved, with the file in object and its size in size, and a run ends with a line of rclone’s stats: the files, the bytes and the errors.

What the agent sets up#

At deploy, the agent resolves the two remotes like any other configuration, unseals the secrets they refer to and writes one rclone.conf for that deployment. Only the agent’s user can read it, and the passwords in it are obscured as rclone expects:

runs/<deployment>/rclone.conf (0600)
[supplier-ftp]
type = ftp
host = ftp.supplier.example
user = weikio
pass = YWJjZGVmZ2hpamtsbW5vcHFy

[invoice-archive]
type = azureblob
account = financearchive
key = SGVsbG8gdGhlcmUsIG5vdCBhIHJlYWwga2V5

At five o’clock the generated route runs, in effect, this command:

rclone --config runs/<deployment>/rclone.conf \
       --use-json-log -v --log-file runs/<deployment>/rclone.json \
       move supplier-ftp:/outgoing invoice-archive:invoices/incoming --filter "+ *.pdf" --filter "- **"

rclone writes its JSON log into the run folder, and a second route follows that file as it grows. Each file’s line reaches the hub as an OpenTelemetry log record with the integration, the version, the project, the environment and the agent on it.

Where it runs#

A transfer is placed like any integration: on every agent whose capabilities match its requirements, its environment and its project. A transfer that reads a folder at your plant needs an agent there, so give it a requirement such as requirements: { site: factory }. When two agents match, the transfer still runs once: the copies elect a leader through a lock the hub keeps, and another copy takes over when the leader’s agent goes away.

weikio status finance/supplier-invoices shows where it runs, and the admin UI lists it under Integrations › Transfers. Its page has a Runs section with every run and its files, which Runs and transferred files explains.