manifest

package
v0.1.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package manifest provides static analysis of WorkflowConfig to produce infrastructure requirements manifests.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DatabaseRequirement

type DatabaseRequirement struct {
	ModuleName    string `json:"moduleName"`
	Driver        string `json:"driver,omitempty"`
	DSN           string `json:"dsn,omitempty"`
	MaxOpenConns  int    `json:"maxOpenConns,omitempty"`
	MaxIdleConns  int    `json:"maxIdleConns,omitempty"`
	EstCapacityMB int    `json:"estCapacityMB,omitempty"`
}

DatabaseRequirement describes a database dependency.

type EventBusRequirement

type EventBusRequirement struct {
	Technology string   `json:"technology"`
	Topics     []string `json:"topics,omitempty"`
	Queues     []string `json:"queues,omitempty"`
}

EventBusRequirement describes eventing infrastructure needs.

type ExternalAPIRequirement

type ExternalAPIRequirement struct {
	StepName string `json:"stepName"`
	URL      string `json:"url"`
	Method   string `json:"method,omitempty"`
	AuthType string `json:"authType,omitempty"`
}

ExternalAPIRequirement describes an outbound API dependency.

type PortRequirement

type PortRequirement struct {
	ModuleName string `json:"moduleName"`
	Port       int    `json:"port"`
	Protocol   string `json:"protocol"`
	Protected  bool   `json:"protected,omitempty"`
}

PortRequirement describes a network port the workflow listens on.

type ResourceEstimate

type ResourceEstimate struct {
	CPUCores float64 `json:"cpuCores"`
	MemoryMB int     `json:"memoryMB"`
	DiskMB   int     `json:"diskMB"`
}

ResourceEstimate provides rough resource estimates for capacity planning.

type ServiceRequirement

type ServiceRequirement struct {
	Name      string `json:"name"`
	Type      string `json:"type"`
	Port      int    `json:"port,omitempty"`
	Protected bool   `json:"protected,omitempty"`
}

ServiceRequirement describes a service the workflow provides.

type StorageRequirement

type StorageRequirement struct {
	ModuleName string `json:"moduleName"`
	Type       string `json:"type"` // s3, local, gcs
	Bucket     string `json:"bucket,omitempty"`
	Region     string `json:"region,omitempty"`
	RootDir    string `json:"rootDir,omitempty"`
}

StorageRequirement describes an object/file storage dependency.

type WorkflowManifest

type WorkflowManifest struct {
	Name         string                   `json:"name"`
	Databases    []DatabaseRequirement    `json:"databases,omitempty"`
	Services     []ServiceRequirement     `json:"services,omitempty"`
	EventBus     *EventBusRequirement     `json:"eventBus,omitempty"`
	Storage      []StorageRequirement     `json:"storage,omitempty"`
	ExternalAPIs []ExternalAPIRequirement `json:"externalAPIs,omitempty"`
	Ports        []PortRequirement        `json:"ports,omitempty"`
	ResourceEst  ResourceEstimate         `json:"resourceEstimate"`
}

WorkflowManifest is the full requirements report for a workflow config.

func Analyze

func Analyze(cfg *config.WorkflowConfig) *WorkflowManifest

Analyze walks a WorkflowConfig and returns its infrastructure manifest.

func AnalyzeWithName

func AnalyzeWithName(cfg *config.WorkflowConfig, name string) *WorkflowManifest

AnalyzeWithName is like Analyze but overrides the manifest name.

func (*WorkflowManifest) Summary

func (m *WorkflowManifest) Summary() string

Summary returns a human-readable summary string for the manifest.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL