Documentation
¶
Index ¶
- Constants
- Variables
- func CleanLogMessage(msg string) string
- func ExportDefaultLimitsJSON() []byte
- func FormatCapability(capabilityID string) string
- func FormatStepRef(stepRef string) string
- func FormatTimestamp(timestamp string) string
- func GetLogLevel(msg string) string
- func GetStyle(status string) lipgloss.Style
- func HighlightLogLevels(msg string, levelStyle lipgloss.Style) string
- func MapCapabilityStatus(status string) string
- func New(runtimeContext *runtime.Context) *cobra.Command
- func NewFakeActionCapabilities(ctx context.Context, lggr logger.Logger, registry *capabilities.Registry, ...) ([]services.Service, error)
- func ReplaceSecretNamesWithEnvVars(secrets []byte) ([]byte, error)
- type DataPoint
- type Inputs
- type LimitedConfidentialHTTPAction
- func (l *LimitedConfidentialHTTPAction) Close() error
- func (l *LimitedConfidentialHTTPAction) Description() string
- func (l *LimitedConfidentialHTTPAction) HealthReport() map[string]error
- func (l *LimitedConfidentialHTTPAction) Initialise(ctx context.Context, deps core.StandardCapabilitiesDependencies) error
- func (l *LimitedConfidentialHTTPAction) Name() string
- func (l *LimitedConfidentialHTTPAction) Ready() error
- func (l *LimitedConfidentialHTTPAction) SendRequest(ctx context.Context, metadata commonCap.RequestMetadata, ...) (*commonCap.ResponseAndMetadata[*confidentialhttp.HTTPResponse], ...)
- func (l *LimitedConfidentialHTTPAction) Start(ctx context.Context) error
- type LimitedConsensusNoDAG
- func (l *LimitedConsensusNoDAG) Close() error
- func (l *LimitedConsensusNoDAG) Description() string
- func (l *LimitedConsensusNoDAG) HealthReport() map[string]error
- func (l *LimitedConsensusNoDAG) Initialise(ctx context.Context, deps core.StandardCapabilitiesDependencies) error
- func (l *LimitedConsensusNoDAG) Name() string
- func (l *LimitedConsensusNoDAG) Ready() error
- func (l *LimitedConsensusNoDAG) Report(ctx context.Context, metadata commonCap.RequestMetadata, ...) (*commonCap.ResponseAndMetadata[*sdkpb.ReportResponse], caperrors.Error)
- func (l *LimitedConsensusNoDAG) Simple(ctx context.Context, metadata commonCap.RequestMetadata, ...) (*commonCap.ResponseAndMetadata[*valuespb.Value], caperrors.Error)
- func (l *LimitedConsensusNoDAG) Start(ctx context.Context) error
- type LimitedHTTPAction
- func (l *LimitedHTTPAction) Close() error
- func (l *LimitedHTTPAction) Description() string
- func (l *LimitedHTTPAction) HealthReport() map[string]error
- func (l *LimitedHTTPAction) Initialise(ctx context.Context, deps core.StandardCapabilitiesDependencies) error
- func (l *LimitedHTTPAction) Name() string
- func (l *LimitedHTTPAction) Ready() error
- func (l *LimitedHTTPAction) SendRequest(ctx context.Context, metadata commonCap.RequestMetadata, ...) (*commonCap.ResponseAndMetadata[*customhttp.Response], caperrors.Error)
- func (l *LimitedHTTPAction) Start(ctx context.Context) error
- type LogLevel
- type ManualTriggers
- type Metric
- type MetricAttribute
- type MetricData
- type MetricsLog
- type MetricsScope
- type ResourceAttribute
- type ScopeMetrics
- type SimulationLimits
- func (l *SimulationLimits) ChainWriteGasLimit() uint64
- func (l *SimulationLimits) ChainWriteReportSizeLimit() int
- func (l *SimulationLimits) ConfHTTPRequestSizeLimit() int
- func (l *SimulationLimits) ConfHTTPResponseSizeLimit() int
- func (l *SimulationLimits) ConsensusObservationSizeLimit() int
- func (l *SimulationLimits) HTTPRequestSizeLimit() int
- func (l *SimulationLimits) HTTPResponseSizeLimit() int
- func (l *SimulationLimits) LimitsSummary() string
- func (l *SimulationLimits) WASMBinarySize() int
- func (l *SimulationLimits) WASMCompressedBinarySize() int
- type SimulationLogger
- func (s *SimulationLogger) Debug(message string, fields ...interface{})
- func (s *SimulationLogger) Error(message string, fields ...interface{})
- func (s *SimulationLogger) Info(message string, fields ...interface{})
- func (s *SimulationLogger) PrintStepLog(timestamp, component, stepRef, capability, status string)
- func (s *SimulationLogger) PrintTimestampedLog(timestamp, prefix, message string, prefixStyle lipgloss.Style)
- func (s *SimulationLogger) PrintTimestampedLogWithStatus(timestamp, prefix, message, status string)
- func (s *SimulationLogger) PrintWorkflowMetadata(metadata interface{})
- func (s *SimulationLogger) Warn(message string, fields ...interface{})
- type TelemetryLog
- type TriggerInfoAndBeforeStart
Constants ¶
const WorkflowExecutionTimeout = 5 * time.Minute
Variables ¶
var ( StyleBlue = lipgloss.NewStyle().Foreground(lipgloss.Color(ui.ColorBlue500)) StyleBrightCyan = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color(ui.ColorTeal400)) StyleYellow = lipgloss.NewStyle().Foreground(lipgloss.Color(ui.ColorYellow400)) StyleRed = lipgloss.NewStyle().Foreground(lipgloss.Color(ui.ColorRed400)) StyleGreen = lipgloss.NewStyle().Foreground(lipgloss.Color(ui.ColorGreen400)) StyleMagenta = lipgloss.NewStyle().Foreground(lipgloss.Color(ui.ColorPurple400)) )
Style instances for consistent styling (using Chainlink Blocks palette)
Functions ¶
func CleanLogMessage ¶
CleanLogMessage removes structured log patterns from messages
func ExportDefaultLimitsJSON ¶ added in v1.6.0
func ExportDefaultLimitsJSON() []byte
ExportDefaultLimitsJSON returns the embedded default limits JSON.
func FormatCapability ¶
FormatCapability formats capability ID for display
func FormatStepRef ¶
FormatStepRef formats step reference, handling the -1 case
func FormatTimestamp ¶
FormatTimestamp converts RFC3339Nano timestamp to simple format
func GetLogLevel ¶
GetLogLevel extracts log level from a message
func HighlightLogLevels ¶
HighlightLogLevels highlights INFO, WARN, ERROR in log messages
func MapCapabilityStatus ¶
MapCapabilityStatus maps capability status to display format
func NewFakeActionCapabilities ¶
func NewFakeActionCapabilities(ctx context.Context, lggr logger.Logger, registry *capabilities.Registry, secretsPath string, limits *SimulationLimits) ([]services.Service, error)
NewFakeActionCapabilities builds faked capabilities, then registers them with the capability registry.
func ReplaceSecretNamesWithEnvVars ¶
ReplaceSecretNamesWithEnvVars resolves env var references in the secrets YAML, returning a new YAML with the env var names replaced by their actual values. It rebuilds the YAML from the parsed structure to avoid substring corruption.
Types ¶
type DataPoint ¶
type DataPoint struct {
Attributes []MetricAttribute `json:"Attributes"`
StartTime string `json:"StartTime"`
Time string `json:"Time"`
Value interface{} `json:"Value"`
}
type Inputs ¶
type Inputs struct {
WasmPath string `validate:"omitempty,file,ascii,max=97" cli:"--wasm"`
WorkflowPath string `validate:"required,workflow_path_read"`
ConfigPath string `validate:"omitempty,file,ascii,max=97"`
SecretsPath string `validate:"omitempty,file,ascii,max=97"`
EngineLogs bool `validate:"omitempty" cli:"--engine-logs"`
Broadcast bool `validate:"-"`
WorkflowName string `validate:"required"`
// Chain-type-specific fields
ChainTypeClients map[string]map[uint64]chain.ChainClient `validate:"omitempty"`
ChainTypeKeys map[string]interface{} `validate:"-"`
// ChainTypeResolved holds the full ResolveClients bundle per chain type
// (clients, forwarders, experimental-selector flags) so later steps
// (health check, capability registration) have a single source of truth.
ChainTypeResolved map[string]chain.ResolvedChains `validate:"-"`
// Non-interactive mode options
NonInteractive bool `validate:"-"`
TriggerIndex int `validate:"-"`
HTTPPayload string `validate:"-"` // JSON string or @/path/to/file.json
ChainTypeInputs map[string]string `validate:"-"` // CLI-supplied chain-type-specific trigger inputs
// Limits enforcement
LimitsPath string `validate:"-"` // "default" or path to custom limits JSON
// SkipTypeChecks passes --skip-type-checks to cre-compile for TypeScript workflows.
SkipTypeChecks bool `validate:"-"`
// InvocationDir is the working directory at the time the CLI was invoked, before
// SetExecutionContext changes it to the workflow directory. Used to resolve file
// paths entered interactively or via flags relative to where the user ran the command.
InvocationDir string `validate:"-"`
}
type LimitedConfidentialHTTPAction ¶ added in v1.6.0
type LimitedConfidentialHTTPAction struct {
// contains filtered or unexported fields
}
LimitedConfidentialHTTPAction wraps a confhttpserver.ClientCapability and enforces request/response size limits and connection timeout from SimulationLimits.
func NewLimitedConfidentialHTTPAction ¶ added in v1.6.0
func NewLimitedConfidentialHTTPAction(inner confhttpserver.ClientCapability, limits *SimulationLimits) *LimitedConfidentialHTTPAction
func (*LimitedConfidentialHTTPAction) Close ¶ added in v1.6.0
func (l *LimitedConfidentialHTTPAction) Close() error
func (*LimitedConfidentialHTTPAction) Description ¶ added in v1.6.0
func (l *LimitedConfidentialHTTPAction) Description() string
func (*LimitedConfidentialHTTPAction) HealthReport ¶ added in v1.6.0
func (l *LimitedConfidentialHTTPAction) HealthReport() map[string]error
func (*LimitedConfidentialHTTPAction) Initialise ¶ added in v1.6.0
func (l *LimitedConfidentialHTTPAction) Initialise(ctx context.Context, deps core.StandardCapabilitiesDependencies) error
func (*LimitedConfidentialHTTPAction) Name ¶ added in v1.6.0
func (l *LimitedConfidentialHTTPAction) Name() string
func (*LimitedConfidentialHTTPAction) Ready ¶ added in v1.6.0
func (l *LimitedConfidentialHTTPAction) Ready() error
func (*LimitedConfidentialHTTPAction) SendRequest ¶ added in v1.6.0
func (l *LimitedConfidentialHTTPAction) SendRequest(ctx context.Context, metadata commonCap.RequestMetadata, input *confidentialhttp.ConfidentialHTTPRequest) (*commonCap.ResponseAndMetadata[*confidentialhttp.HTTPResponse], caperrors.Error)
type LimitedConsensusNoDAG ¶ added in v1.6.0
type LimitedConsensusNoDAG struct {
// contains filtered or unexported fields
}
LimitedConsensusNoDAG wraps a consensusserver.ConsensusCapability and enforces observation size limits from SimulationLimits.
func NewLimitedConsensusNoDAG ¶ added in v1.6.0
func NewLimitedConsensusNoDAG(inner consensusserver.ConsensusCapability, limits *SimulationLimits) *LimitedConsensusNoDAG
func (*LimitedConsensusNoDAG) Close ¶ added in v1.6.0
func (l *LimitedConsensusNoDAG) Close() error
func (*LimitedConsensusNoDAG) Description ¶ added in v1.6.0
func (l *LimitedConsensusNoDAG) Description() string
func (*LimitedConsensusNoDAG) HealthReport ¶ added in v1.6.0
func (l *LimitedConsensusNoDAG) HealthReport() map[string]error
func (*LimitedConsensusNoDAG) Initialise ¶ added in v1.6.0
func (l *LimitedConsensusNoDAG) Initialise(ctx context.Context, deps core.StandardCapabilitiesDependencies) error
func (*LimitedConsensusNoDAG) Name ¶ added in v1.6.0
func (l *LimitedConsensusNoDAG) Name() string
func (*LimitedConsensusNoDAG) Ready ¶ added in v1.6.0
func (l *LimitedConsensusNoDAG) Ready() error
func (*LimitedConsensusNoDAG) Report ¶ added in v1.6.0
func (l *LimitedConsensusNoDAG) Report(ctx context.Context, metadata commonCap.RequestMetadata, input *sdkpb.ReportRequest) (*commonCap.ResponseAndMetadata[*sdkpb.ReportResponse], caperrors.Error)
func (*LimitedConsensusNoDAG) Simple ¶ added in v1.6.0
func (l *LimitedConsensusNoDAG) Simple(ctx context.Context, metadata commonCap.RequestMetadata, input *sdkpb.SimpleConsensusInputs) (*commonCap.ResponseAndMetadata[*valuespb.Value], caperrors.Error)
type LimitedHTTPAction ¶ added in v1.6.0
type LimitedHTTPAction struct {
// contains filtered or unexported fields
}
LimitedHTTPAction wraps an httpserver.ClientCapability and enforces request/response size limits and connection timeout from SimulationLimits.
func NewLimitedHTTPAction ¶ added in v1.6.0
func NewLimitedHTTPAction(inner httpserver.ClientCapability, limits *SimulationLimits) *LimitedHTTPAction
func (*LimitedHTTPAction) Close ¶ added in v1.6.0
func (l *LimitedHTTPAction) Close() error
func (*LimitedHTTPAction) Description ¶ added in v1.6.0
func (l *LimitedHTTPAction) Description() string
func (*LimitedHTTPAction) HealthReport ¶ added in v1.6.0
func (l *LimitedHTTPAction) HealthReport() map[string]error
func (*LimitedHTTPAction) Initialise ¶ added in v1.6.0
func (l *LimitedHTTPAction) Initialise(ctx context.Context, deps core.StandardCapabilitiesDependencies) error
func (*LimitedHTTPAction) Name ¶ added in v1.6.0
func (l *LimitedHTTPAction) Name() string
func (*LimitedHTTPAction) Ready ¶ added in v1.6.0
func (l *LimitedHTTPAction) Ready() error
func (*LimitedHTTPAction) SendRequest ¶ added in v1.6.0
func (l *LimitedHTTPAction) SendRequest(ctx context.Context, metadata commonCap.RequestMetadata, input *customhttp.Request) (*commonCap.ResponseAndMetadata[*customhttp.Response], caperrors.Error)
type ManualTriggers ¶
type ManualTriggers struct {
ManualCronTrigger *fakes.ManualCronTriggerService
ManualHTTPTrigger *fakes.ManualHTTPTriggerService
}
ManualTriggers holds chain-agnostic trigger services used in simulation.
func NewManualTriggerCapabilities ¶
func NewManualTriggerCapabilities(ctx context.Context, lggr logger.Logger, registry *capabilities.Registry) (*ManualTriggers, error)
NewManualTriggerCapabilities creates and registers cron and HTTP trigger capabilities. These are chain-agnostic and shared across all chain types.
func (*ManualTriggers) Close ¶
func (m *ManualTriggers) Close() error
Close closes cron and HTTP trigger services.
type Metric ¶
type Metric struct {
Name string `json:"Name"`
Description string `json:"Description"`
Unit string `json:"Unit"`
Data MetricData `json:"Data"`
}
type MetricAttribute ¶
type MetricData ¶
type MetricData struct {
DataPoints []DataPoint `json:"DataPoints"`
}
type MetricsLog ¶
type MetricsLog struct {
Resource []ResourceAttribute `json:"Resource"`
ScopeMetrics []ScopeMetrics `json:"ScopeMetrics"`
}
MetricsLog represents OpenTelemetry metrics logs
type MetricsScope ¶
type ResourceAttribute ¶
type ScopeMetrics ¶
type ScopeMetrics struct {
Scope MetricsScope `json:"Scope"`
Metrics []Metric `json:"Metrics"`
}
type SimulationLimits ¶ added in v1.6.0
type SimulationLimits struct {
Workflows cresettings.Workflows
}
SimulationLimits holds the workflow-level limits applied during simulation.
func DefaultLimits ¶ added in v1.6.0
func DefaultLimits() (*SimulationLimits, error)
DefaultLimits returns simulation limits populated from the embedded defaults.
func LoadLimits ¶ added in v1.6.0
func LoadLimits(path string) (*SimulationLimits, error)
LoadLimits reads a limits JSON file from disk and returns parsed SimulationLimits.
func ResolveLimits ¶ added in v1.6.0
func ResolveLimits(limitsFlag string) (*SimulationLimits, error)
ResolveLimits resolves a --limits flag value to SimulationLimits. Returns nil if limitsFlag is "none" (no limits enforcement).
func (*SimulationLimits) ChainWriteGasLimit ¶ added in v1.12.0
func (l *SimulationLimits) ChainWriteGasLimit() uint64
ChainWriteGasLimit returns the default EVM gas limit.
func (*SimulationLimits) ChainWriteReportSizeLimit ¶ added in v1.6.0
func (l *SimulationLimits) ChainWriteReportSizeLimit() int
ChainWriteReportSizeLimit returns the chain write report size limit in bytes.
func (*SimulationLimits) ConfHTTPRequestSizeLimit ¶ added in v1.6.0
func (l *SimulationLimits) ConfHTTPRequestSizeLimit() int
ConfHTTPRequestSizeLimit returns the confidential HTTP request size limit in bytes.
func (*SimulationLimits) ConfHTTPResponseSizeLimit ¶ added in v1.6.0
func (l *SimulationLimits) ConfHTTPResponseSizeLimit() int
ConfHTTPResponseSizeLimit returns the confidential HTTP response size limit in bytes.
func (*SimulationLimits) ConsensusObservationSizeLimit ¶ added in v1.6.0
func (l *SimulationLimits) ConsensusObservationSizeLimit() int
ConsensusObservationSizeLimit returns the consensus observation size limit in bytes.
func (*SimulationLimits) HTTPRequestSizeLimit ¶ added in v1.6.0
func (l *SimulationLimits) HTTPRequestSizeLimit() int
HTTPRequestSizeLimit returns the HTTP action request size limit in bytes.
func (*SimulationLimits) HTTPResponseSizeLimit ¶ added in v1.6.0
func (l *SimulationLimits) HTTPResponseSizeLimit() int
HTTPResponseSizeLimit returns the HTTP action response size limit in bytes.
func (*SimulationLimits) LimitsSummary ¶ added in v1.6.0
func (l *SimulationLimits) LimitsSummary() string
LimitsSummary returns a human-readable summary of key limits.
func (*SimulationLimits) WASMBinarySize ¶ added in v1.6.0
func (l *SimulationLimits) WASMBinarySize() int
WASMBinarySize returns the WASM binary size limit in bytes.
func (*SimulationLimits) WASMCompressedBinarySize ¶ added in v1.6.0
func (l *SimulationLimits) WASMCompressedBinarySize() int
WASMCompressedBinarySize returns the WASM compressed binary size limit in bytes.
type SimulationLogger ¶
type SimulationLogger struct {
// contains filtered or unexported fields
}
SimulationLogger provides an easy interface for formatted simulation logs
func NewSimulationLogger ¶
func NewSimulationLogger(verbosity bool) *SimulationLogger
NewSimulationLogger creates a new simulation logger with verbosity control
func (*SimulationLogger) Debug ¶
func (s *SimulationLogger) Debug(message string, fields ...interface{})
Debug logs a debug level message with colored formatting (only if verbosity is enabled)
func (*SimulationLogger) Error ¶
func (s *SimulationLogger) Error(message string, fields ...interface{})
Error logs an error level message with colored formatting
func (*SimulationLogger) Info ¶
func (s *SimulationLogger) Info(message string, fields ...interface{})
Info logs an info level message with colored formatting
func (*SimulationLogger) PrintStepLog ¶
func (s *SimulationLogger) PrintStepLog(timestamp, component, stepRef, capability, status string)
PrintStepLog prints a capability step log with timestamp and styled status
func (*SimulationLogger) PrintTimestampedLog ¶
func (s *SimulationLogger) PrintTimestampedLog(timestamp, prefix, message string, prefixStyle lipgloss.Style)
PrintTimestampedLog prints a log with timestamp and styled prefix
func (*SimulationLogger) PrintTimestampedLogWithStatus ¶
func (s *SimulationLogger) PrintTimestampedLogWithStatus(timestamp, prefix, message, status string)
PrintTimestampedLogWithStatus prints a log with timestamp, prefix, and styled status
func (*SimulationLogger) PrintWorkflowMetadata ¶
func (s *SimulationLogger) PrintWorkflowMetadata(metadata interface{})
PrintWorkflowMetadata prints workflow metadata with proper indentation
func (*SimulationLogger) Warn ¶
func (s *SimulationLogger) Warn(message string, fields ...interface{})
Warn logs a warning level message with colored formatting
type TelemetryLog ¶
type TelemetryLog struct {
Severity int `json:"Severity"`
Body struct {
Type string `json:"Type"`
Value string `json:"Value"` // Base64 encoded protobuf
} `json:"Body"`
Attributes []struct {
Key string `json:"Key"`
Value struct {
Type string `json:"Type"`
Value string `json:"Value"`
} `json:"Value"`
} `json:"Attributes"`
}
TelemetryLog represents the JSON structure of telemetry logs from beholder
type TriggerInfoAndBeforeStart ¶
type TriggerInfoAndBeforeStart struct {
TriggerFunc func() error
TriggerToRun *pb.TriggerSubscription
BeforeStart func(ctx context.Context, cfg simulator.RunnerConfig, registry *capabilities.Registry, services []services.Service, triggerSub []*pb.TriggerSubscription)
}