propeller logo

Reference

CLI reference and core data models for the Propeller system

This page provides a quick reference for the Propeller CLI and the core data models used throughout the system.

CLI Reference

The propeller-cli binary is installed to $GOBIN by make install. All commands communicate with the Manager over HTTP.

Global Flags

FlagShortDefaultDescription
--manager-url-mhttp://localhost:7070URL of the Manager HTTP API
--tls-verification-vEnable TLS certificate verification
--users-url-uhttp://localhost:9002Magistrala users service URL
--domains-url-dhttp://localhost:9003Magistrala domains service URL
--clients-url-chttp://localhost:9006Magistrala clients service URL
--channels-url-zhttp://localhost:9005Magistrala channels service URL
--content-type-tHTTP Content-Type header value

Tasks

propeller-cli tasks create <name> [--cli-args <args>]
propeller-cli tasks view   <id>
propeller-cli tasks update <id>
propeller-cli tasks delete <id>
propeller-cli tasks start  <id>
propeller-cli tasks stop   <id>
propeller-cli tasks        [--offset <n>] [--limit <n>]   # list all tasks
FlagShortDefaultDescription
--offset-o0Pagination offset for list
--limit-l10Maximum results to return

Provision

The provision command runs an interactive TUI-based wizard that:

  1. Creates a Magistrala domain.
  2. Creates a Manager client and N proplet clients.
  3. Creates a channel and connects all clients to it.
  4. Writes the resulting credentials to a config.toml file.
propeller-cli provision [--file-name <path>]
FlagShortDefaultDescription
--file-name-fconfig.tomlOutput path for the generated config

Data Models

Task

FieldTypeDescription
idstring (UUID)Unique task identifier. Assigned by the Manager on creation.
namestringHuman-readable task name.
kindstringTask kind: standard or federated.
stateintegerCurrent execution state (see Task States below).
image_urlstringOCI image reference for the Wasm binary (e.g. docker.io/myorg/app:v1).
filestringBase64-encoded Wasm binary for direct embedding.
cli_argsarray of stringArguments passed to the Wasm runtime (e.g. ["--invoke", "add"]).
inputsarrayInput values (strings or numbers) forwarded to the Wasm function.
envobjectEnvironment variables injected into the Wasm execution context.
daemonbooleanIf true, the task runs continuously until explicitly stopped.
encryptedbooleanIf true, the Wasm binary is encrypted and requires a TEE for decryption.
kbs_resource_pathstringKBS resource path used to fetch the decryption key for an encrypted task.
proplet_idstring (UUID)Pin execution to a specific proplet, bypassing the scheduler.
depends_onarray of stringIDs of tasks that must complete before this task starts (workflow DAG).
run_ifstringCondition for execution: success (default) or failure.
workflow_idstring (UUID)ID of the workflow this task belongs to.
job_idstring (UUID)ID of the job this task belongs to.
resultsanyOutput stored after the task completes successfully.
errorstringError message if the task failed.
monitoring_profileobjectPer-task monitoring configuration (see Monitoring).
schedulestringCron expression for recurring execution (e.g. "0 * * * *").
timezonestringTimezone for cron schedule evaluation (default: UTC).
is_recurringbooleantrue if a schedule is set.
next_runtimestampComputed time of the next scheduled execution.
priorityintegerTask priority hint for the scheduler (range 0–100, default 50).
modestringFederated learning mode: infer or train.
start_timetimestampTime the task started executing.
finish_timetimestampTime the task completed or failed.
created_attimestampTime the task was created.
updated_attimestampTime the task was last updated.

Task States

ValueNameDescription
0PendingTask created, not yet started.
1ScheduledTask assigned to a proplet.
2RunningTask is executing on a proplet.
3CompletedTask finished successfully.
4FailedTask encountered an error.
5SkippedTask was skipped (e.g. dependency condition not met).
6InterruptedTask was stopped externally.

Job

FieldTypeDescription
job_idstring (UUID)Unique job identifier.
namestringHuman-readable job name.
stateintegerCurrent execution state (see Task States).
tasksarrayList of task objects belonging to this job.
start_timetimestampTime the job started executing.
finish_timetimestampTime the job completed or failed.
created_attimestampTime the job was created.

Job Execution Modes

ModeDescription
parallelAll tasks in the job start simultaneously.
sequentialTasks start one at a time in order. A task failure stops the job (fail-fast).
configurableUses DAG-based topological sort: starts tasks with no dependencies first, then starts dependent tasks as their prerequisites complete.

Proplet

FieldTypeDescription
idstring (UUID)Unique proplet identifier, set by the proplet on startup.
namestringHuman-readable proplet name.
task_countintegerNumber of tasks currently running on this proplet.
alivebooleantrue if the most recent heartbeat was received within the last 10 seconds.
last_alive_attimestampMost recent heartbeat timestamp recorded by the Manager (omitted if never received).
metadataobjectSystem metadata reported by the proplet: os, hostname, cpu_arch, wasm_runtime, total_memory_bytes, proplet_version, ip, environment, location, tags, description.

On this page