Skip to content
Back to skills

Workflow Orchestration

ASecurity

"Use FedML workflow DAGs, Job subclasses, WorkflowMLOpsApi, and

  • 247 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
devopspythonbashapibackend

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill workflow-orchestration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Workflow Orchestration?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Workflow Orchestration
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-workflow-orchestration-arex-skill/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-workflow-orchestration-arex-skill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: workflow-orchestration
description: "Use FedML workflow DAGs, Job subclasses, WorkflowMLOpsApi, and
  train/deploy/inference job wrappers to orchestrate dependent jobs."
disable-model-invocation: true
metadata:
  disco-role: operating
  parent_skill: "fedml"
license: Apache 2.0
---

# FedML Workflow Orchestration

Use this sub-skill for `fedml.workflow` DAGs, custom `Job` subclasses, `Workflow.add_job`, workflow status/output inspection, and customized job wrappers such as `TrainJob`, `ModelDeployJob`, and `ModelInferenceJob`.

## Do not use this for

- A single `fedml launch job.yaml` without dependencies: use `../launch-and-packaging/SKILL.md`.
- Plain model card deployment without a workflow DAG: use `../model-serving/SKILL.md`.
- Training-loop internals: use `../distributed-training/SKILL.md`.

## Local DAG smoke

For offline structural validation, use custom `Job` subclasses and run the bundled helper from the root skill directory:

```bash
python sub-skills/workflow-orchestration/scripts/local_workflow_smoke.py
```

The helper avoids backend workflow creation and remote launch side effects. It validates job dependencies, inputs/outputs, and status transitions.

## Core local pattern

```python
from fedml.workflow import Job, JobStatus, Workflow

class LocalJob(Job):
    def run(self):
        self.output_data_dict = {"ok": True, "inputs": self.input_data_dict}
    def status(self):
        return JobStatus.FINISHED
    def kill(self):
        pass

workflow = Workflow("demo")
a = LocalJob("prepare")
b = LocalJob("consume")
workflow.add_job(a)
workflow.add_job(b, dependencies=[a])
```

For fully offline tests, avoid `Workflow.run()` unless backend update calls are mocked. The bundled smoke manually computes metadata and executes a dependency-safe local path.

## Remote workflow path

Real workflow runs and customized jobs may call backend APIs, upload/download inputs/outputs, and launch jobs. Before using them, confirm:

- API key and backend version.
- The workflow type and name.
- Job YAML paths for `TrainJob` or deploy/inference wrappers.
- Remote side effects and resource usage are allowed.
- Output storage and cleanup expectations.

Relevant classes:

- `Workflow(name, loop=False, api_key=None, workflow_type=...)`
- `Workflow.add_job(job, dependencies=None)`
- `Workflow.run()`
- `WorkflowMLOpsApi`
- `Job` and `JobStatus`
- `TrainJob`, `ModelDeployJob`, `ModelInferenceJob`

## Evidence anchors

- `python/fedml/workflow/workflow.py` — workflow graph and execution order.
- `python/fedml/workflow/jobs.py` — `Job`/`JobStatus` contracts.
- `python/fedml/workflow/workflow_mlops_api.py` — backend workflow APIs.
- `python/fedml/workflow/customized_jobs/` — train/deploy/inference wrappers.
- `python/fedml/workflow/driver_example/` — remote workflow example.

## Cautions

- `Workflow.add_job` rejects non-`Job` objects and duplicate names.
- Cycles fail when topological order is computed.
- `Workflow.run()` updates backend workflow status, so it is not purely offline.
- Customized jobs encode inputs, launch job YAMLs, and move outputs through FedML storage; they need credentials.

## Exit criteria

A workflow-orchestration task is complete when the DAG shape, job dependencies, local-vs-remote execution path, credentials, and output handoff are explicit, and local smoke or remote workflow status is recorded.

Files in this skill

  • SKILL.md3.3 KB
  • scripts/local_workflow_smoke.py2.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.