feat: publish immutable workflow definitions with typed SDK

This commit is contained in:
2026-09-18 00:28:00 +08:00
parent a664ec9370
commit 520e98d9d1
33 changed files with 2603 additions and 11 deletions

56
sdk/go/workflow_views.go Normal file
View File

@@ -0,0 +1,56 @@
package orbit
import "time"
// CreateWorkflowDefinitionRequest 创建命名空间内的稳定定义身份,不发布版本或启动实例。
type CreateWorkflowDefinitionRequest struct {
Name string `json:"name"` // Name 命名空间内唯一ASCII名称,最长128字符。
Description string `json:"description"` // Description 用途说明,最多1024个Unicode字符。
}
// PublishWorkflowVersionRequest 发布不可变版本;同版本内容冲突不能通过更换幂等键覆盖。
type PublishWorkflowVersionRequest struct {
Version string `json:"version"` // Version 研发指定的ASCII版本名,最长64字符,不包含路径分隔符。
Specification WorkflowSpecification `json:"specification"` // WorkflowSpecification 完整且显式的冻结规则。
Reason string `json:"reason"` // Reason 非空发布原因,最多1024个字符,写入审计。
}
// WorkflowDefinition 仅含命名空间级元数据;读取完整版本还须授权所有引用队列。
type WorkflowDefinition struct {
ID string `json:"id"` // ID 定义稳定标识。
NamespaceID string `json:"namespace_id"` // NamespaceID 定义隔离范围。
Name string `json:"name"` // Name 创建时冻结的唯一名称。
Description string `json:"description"` // Description 创建时冻结的用途说明。
Revision uint64 `json:"revision,string"` // Revision 从1开始,每个新发布版本增加1,不能替代业务版本名。
CreatedAt time.Time `json:"created_at"` // CreatedAt UTC数据库创建时间。
UpdatedAt time.Time `json:"updated_at"` // UpdatedAt 最近新版本发布的UTC数据库时间。
}
// WorkflowAnalysis 是静态预算上界;不表示业务任务已执行或已分配配额。
type WorkflowAnalysis struct {
Steps uint32 `json:"steps"` // Steps 全定义静态步骤数。
MaxConcurrency uint32 `json:"max_concurrency"` // MaxConcurrency 并行业务任务上界。
MaxTaskAttempts uint32 `json:"max_task_attempts"` // MaxTaskAttempts 所有路径的保守尝试预算总和。
Queues []string `json:"queues"` // Queues 排序去重队列,始终为数组。
}
// WorkflowVersion 返回原始发布内容和身份,不使用可变的latest别名。
type WorkflowVersion struct {
ID string `json:"id"` // ID 不可变版本记录标识。
NamespaceID string `json:"namespace_id"` // NamespaceID 隔离范围。
DefinitionID string `json:"definition_id"` // DefinitionID 父定义标识,由应用事务校验。
Version string `json:"version"` // Version 发布版本名。
Specification WorkflowSpecification `json:"specification"` // WorkflowSpecification 已冻结规则,数字精度不经float64转换。
ContentDigest string `json:"content_digest"` // ContentDigest 带域分隔的SHA-256,64位小写十六进制。
PublishedBy string `json:"published_by"` // PublishedBy 原发布凭据标识,不包含凭据秘密。
PublishedAt time.Time `json:"published_at"` // PublishedAt 原发布时间,重复发布不更新。
Analysis WorkflowAnalysis `json:"analysis"` // WorkflowAnalysis 根据结构版本1规则计算的静态检查结果。
}
type WorkflowDefinitionResult struct {
Definition WorkflowDefinition `json:"definition"` // Definition 创建事务的原始快照。
Deduplicated bool `json:"deduplicated"` // Deduplicated 是否返回原回执。
}
type WorkflowVersionResult struct {
Version WorkflowVersion `json:"version"` // Version 原版本快照,不包含当前父定义状态。
Deduplicated bool `json:"deduplicated"` // Deduplicated 原键或同版本同内容重复请求。
}