CMDCOrchestrator.WorkflowSpec (cmdc_orchestrator v0.6.0)

Copy Markdown View Source

企业 Workflow Runtime 的可持久化规格。

WorkflowSpec 面向保存、校验、展示和发布;to_dag/1 会把规格转换成 旧执行器继续支持的 %CMDCOrchestrator.DAG{},保证 0.4 对 0.3 用法非破坏。

Summary

Functions

执行无副作用 dry run。

构建 WorkflowSpec,返回错误元组而不是抛异常。

构建 WorkflowSpec,非法输入抛出异常。

返回 WorkflowSpec 顶层 NimbleOptions schema。

返回当前 schema 版本。

把 WorkflowSpec 转成旧 %DAG{} 运行结构。

校验 WorkflowSpec,返回规格、warnings 或结构化错误。

Types

t()

@type t() :: %CMDCOrchestrator.WorkflowSpec{
  description: String.t() | nil,
  edges: [CMDCOrchestrator.WorkflowSpec.EdgeSpec.t()],
  metadata: map(),
  mode: :sync | :async,
  name: String.t() | nil,
  nodes: [CMDCOrchestrator.WorkflowSpec.NodeSpec.t()],
  policies: map(),
  schema_version: String.t(),
  version: String.t(),
  workflow_id: String.t()
}

validation_issue()

@type validation_issue() :: %{
  :code => atom(),
  :message => String.t(),
  optional(:path) => [term()],
  optional(:details) => term()
}

Functions

dry_run(input, opts \\ [])

@spec dry_run(
  map() | keyword() | t(),
  keyword()
) :: {:ok, map()} | {:error, map()}

执行无副作用 dry run。

new(input)

@spec new(map() | keyword() | t()) :: {:ok, t()} | {:error, term()}

构建 WorkflowSpec,返回错误元组而不是抛异常。

new!(spec)

@spec new!(map() | keyword() | t()) :: t()

构建 WorkflowSpec,非法输入抛出异常。

schema()

@spec schema() :: NimbleOptions.t()

返回 WorkflowSpec 顶层 NimbleOptions schema。

schema_version()

@spec schema_version() :: String.t()

返回当前 schema 版本。

to_dag(input)

@spec to_dag(map() | keyword() | t()) ::
  {:ok, CMDCOrchestrator.DAG.t()} | {:error, term()}

把 WorkflowSpec 转成旧 %DAG{} 运行结构。

validate(input)

@spec validate(map() | keyword() | t()) ::
  {:ok, t(), [validation_issue()]}
  | {:error, [validation_issue()], [validation_issue()]}

校验 WorkflowSpec,返回规格、warnings 或结构化错误。