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.