Documentation
¶
Index ¶
- func DiscoverChannelDirs(channelsDir string) ([]string, error)
- func FindChannelDir(channelsDir, channelID string) (string, error)
- func ListenerEndpoint(ch *ChannelConfig) (port int, path string)
- func ValidateListenerEndpoints(channels []*ChannelConfig) []string
- type ACKConfig
- type AWSSecretsManagerConfig
- type AccessControlConfig
- type AlertConfig
- type AlertRefConfig
- type AlertTrigger
- type AttachmentsConfig
- type AuditConfig
- type AuthConfig
- type AutoResponseConfig
- type BatchConfig
- type ChannelAssignConfig
- type ChannelConfig
- type ChannelDestMapConfig
- type ChannelDestRef
- type ChannelDestination
- type ChannelListener
- type ChannelLogging
- type ChannelPruningConfig
- type ChannelStorageConfig
- type CloudWatchLogConfig
- type ClusterConfig
- type CodeTemplateLibraryConfig
- type Config
- type CoordinationConfig
- type DBDestConfig
- type DBDestMapConfig
- type DBListener
- type DICOMDestConfig
- type DICOMDestMapConfig
- type DICOMListener
- type DLQRefConfig
- type DashboardAuthConfig
- type DashboardConfig
- type DataTypesConfig
- type DatadogLogConfig
- type DeadLetterConfig
- type DeduplicationConfig
- type Destination
- type DirectDestConfig
- type DirectDestMapConfig
- type ElasticsearchLogConfig
- type EmailListener
- type EncryptionConfig
- type ErrorHandlingConfig
- type FHIRDestConfig
- type FHIRDestMapConfig
- type FHIRListener
- type FHIRPollListener
- type FHIRSubscriptionListener
- type FTPConfig
- type FileDestConfig
- type FileDestMapConfig
- type FileListener
- type FileLogConfig
- type GCPSecretManagerConfig
- type GlobalConfig
- type GlobalHooks
- type HTTPAuthConfig
- type HTTPDestConfig
- type HTTPListener
- type HealthConfig
- type IHEListener
- type JMSDestConfig
- type JMSDestMapConfig
- type KafkaConfig
- type KafkaDestConfig
- type KafkaListener
- type LDAPConfig
- type LifecycleConfig
- type ListenerConfig
- type Loader
- type LogTransportConfig
- type LoggingConfig
- type MessageStorageConfig
- type OIDCConfig
- type OTelConfig
- type ObservabilityConfig
- type PayloadLogging
- type PerformanceConfig
- type PipelineConfig
- type PluginConfig
- type PrometheusConfig
- type PruningConfig
- type QueueConfig
- type RedisConfig
- type ResponseConfig
- type RetryConfig
- type RetryMapConfig
- type RoleConfig
- type RuntimeConfig
- type S3Config
- type SFTPDestMapConfig
- type SFTPListener
- type SMBConfig
- type SMTPDestConfig
- type SMTPDestMapConfig
- type SOAPListener
- type ScriptRef
- type SecretsConfig
- type StorageConfig
- type StorageDatabaseConfig
- type StorageMemoryConfig
- type StoragePlatformConfig
- type StoragePostgresConfig
- type StorageRetentionConfig
- type StorageS3Config
- type SumoLogicLogConfig
- type TCPDestConfig
- type TCPDestMapConfig
- type TCPListener
- type TLSConfig
- type TLSMapConfig
- type TenancyConfig
- type TracingConfig
- type VaultAuthConfig
- type VaultConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DiscoverChannelDirs ¶ added in v1.0.3
DiscoverChannelDirs recursively walks channelsDir and returns absolute paths to every directory that contains a channel.yaml file.
func FindChannelDir ¶ added in v1.0.3
FindChannelDir recursively searches channelsDir for a channel whose channel.yaml has the given id. Returns the absolute path to that directory or an error if not found.
func ListenerEndpoint ¶
func ListenerEndpoint(ch *ChannelConfig) (port int, path string)
ListenerEndpoint extracts the port and path from a channel's listener config. Returns port=0 for non-HTTP listener types (tcp, file, etc.) which are skipped during duplicate detection.
func ValidateListenerEndpoints ¶
func ValidateListenerEndpoints(channels []*ChannelConfig) []string
ValidateListenerEndpoints checks that no two enabled channels share the same port+path combination. Returns a list of human-readable error strings (empty if no duplicates).
Types ¶
type AWSSecretsManagerConfig ¶
type AccessControlConfig ¶
type AccessControlConfig struct {
Enabled bool `mapstructure:"enabled"`
Provider string `mapstructure:"provider"`
LDAP *LDAPConfig `mapstructure:"ldap"`
OIDC *OIDCConfig `mapstructure:"oidc"`
}
type AlertConfig ¶
type AlertConfig struct {
Name string `mapstructure:"name"`
Trigger AlertTrigger `mapstructure:"trigger"`
Destinations []string `mapstructure:"destinations"`
}
type AlertRefConfig ¶
type AlertRefConfig struct {
Destination string `yaml:"destination,omitempty"`
}
type AlertTrigger ¶
type AttachmentsConfig ¶
type AttachmentsConfig struct {
Enabled bool `yaml:"enabled,omitempty"`
Store string `yaml:"store,omitempty"`
MaxSizeMB int `yaml:"max_size_mb,omitempty"`
InlineThresholdKB int `yaml:"inline_threshold_kb,omitempty"`
Directory string `yaml:"directory,omitempty"`
Bucket string `yaml:"bucket,omitempty"`
Region string `yaml:"region,omitempty"`
}
type AuditConfig ¶
type AuthConfig ¶
type AuthConfig struct {
Type string `yaml:"type"`
Username string `yaml:"username,omitempty"`
Password string `yaml:"password,omitempty"`
Token string `yaml:"token,omitempty"`
Key string `yaml:"key,omitempty"`
Header string `yaml:"header,omitempty"`
QueryParam string `yaml:"query_param,omitempty"`
TokenURL string `yaml:"token_url,omitempty"`
AuthURL string `yaml:"auth_url,omitempty"`
ClientID string `yaml:"client_id,omitempty"`
ClientSecret string `yaml:"client_secret,omitempty"`
Scopes []string `yaml:"scopes,omitempty"`
RedirectURI string `yaml:"redirect_uri,omitempty"`
CAFile string `yaml:"ca_file,omitempty"`
ClientCertFile string `yaml:"client_cert_file,omitempty"`
ClientKeyFile string `yaml:"client_key_file,omitempty"`
PrivateKeyFile string `yaml:"private_key_file,omitempty"`
Passphrase string `yaml:"passphrase,omitempty"`
Mechanism string `yaml:"mechanism,omitempty"`
Handler string `yaml:"handler,omitempty"`
AccessKeyID string `yaml:"access_key_id,omitempty"`
SecretAccessKey string `yaml:"secret_access_key,omitempty"`
Domain string `yaml:"domain,omitempty"`
}
type AutoResponseConfig ¶
type BatchConfig ¶
type BatchConfig struct {
Enabled bool `yaml:"enabled,omitempty"`
Type string `yaml:"type,omitempty"`
SplitOn string `yaml:"split_on,omitempty"`
CustomSplitter string `yaml:"custom_splitter,omitempty"`
MaxBatchSize int `yaml:"max_batch_size,omitempty"`
BatchTimeoutMs int `yaml:"batch_timeout_ms,omitempty"`
}
type ChannelAssignConfig ¶
type ChannelConfig ¶
type ChannelConfig struct {
ID string `yaml:"id"`
Enabled bool `yaml:"enabled"`
Description string `yaml:"description,omitempty"`
Profiles []string `yaml:"profiles,omitempty"`
Tags []string `yaml:"tags,omitempty"`
Group string `yaml:"group,omitempty"`
Priority string `yaml:"priority,omitempty"`
DataTypes *DataTypesConfig `yaml:"data_types,omitempty"`
Listener ListenerConfig `yaml:"listener"`
Pipeline *PipelineConfig `yaml:"pipeline,omitempty"`
Validator *ScriptRef `yaml:"validator,omitempty"`
Transformer *ScriptRef `yaml:"transformer,omitempty"`
Destinations []ChannelDestination `yaml:"destinations,omitempty"`
Logging *ChannelLogging `yaml:"logging,omitempty"`
ErrorHandling *ErrorHandlingConfig `yaml:"error_handling,omitempty"`
Lifecycle *LifecycleConfig `yaml:"lifecycle,omitempty"`
MessageStorage *ChannelStorageConfig `yaml:"message_storage,omitempty"`
Batch *BatchConfig `yaml:"batch,omitempty"`
Attachments *AttachmentsConfig `yaml:"attachments,omitempty"`
Tracing *TracingConfig `yaml:"tracing,omitempty"`
Performance *PerformanceConfig `yaml:"performance,omitempty"`
Pruning *ChannelPruningConfig `yaml:"pruning,omitempty"`
Plugins []PluginConfig `yaml:"plugins,omitempty"`
DependsOn []string `yaml:"depends_on,omitempty"`
StartupOrder int `yaml:"startup_order,omitempty"`
CodeTemplates []string `yaml:"code_templates,omitempty"`
AutoResponse *AutoResponseConfig `yaml:"auto_response,omitempty"`
}
func LoadChannelConfig ¶
func LoadChannelConfig(channelDir string) (*ChannelConfig, error)
func (*ChannelConfig) MatchesProfile ¶ added in v1.0.2
func (c *ChannelConfig) MatchesProfile(active string) bool
MatchesProfile reports whether the channel should be loaded for the given active profile. Channels with an empty Profiles list match every profile.
type ChannelDestMapConfig ¶
type ChannelDestMapConfig struct {
TargetChannelID string `mapstructure:"target_channel_id"`
}
type ChannelDestRef ¶
type ChannelDestRef struct {
TargetChannelID string `yaml:"target_channel_id"`
}
type ChannelDestination ¶
type ChannelDestination struct {
Name string `yaml:"name,omitempty"`
Ref string `yaml:"ref,omitempty"`
Type string `yaml:"type,omitempty"`
HTTP *HTTPDestConfig `yaml:"http,omitempty"`
Kafka *KafkaDestConfig `yaml:"kafka,omitempty"`
TCP *TCPDestConfig `yaml:"tcp,omitempty"`
File *FileDestConfig `yaml:"file,omitempty"`
Database *DBDestConfig `yaml:"database,omitempty"`
SMTP *SMTPDestConfig `yaml:"smtp,omitempty"`
ChannelDest *ChannelDestRef `yaml:"channel,omitempty"`
DICOM *DICOMDestConfig `yaml:"dicom,omitempty"`
JMS *JMSDestConfig `yaml:"jms,omitempty"`
FHIR *FHIRDestConfig `yaml:"fhir,omitempty"`
Direct *DirectDestConfig `yaml:"direct,omitempty"`
Filter string `yaml:"filter,omitempty"`
Transformer *ScriptRef `yaml:"transformer,omitempty"`
ResponseTransformer *ScriptRef `yaml:"response_transformer,omitempty"`
Queue *QueueConfig `yaml:"queue,omitempty"`
Retry *RetryConfig `yaml:"retry,omitempty"`
}
func (*ChannelDestination) ToDestination ¶ added in v1.0.4
func (cd *ChannelDestination) ToDestination() Destination
ToDestination converts an inline ChannelDestination to a root-level Destination so the connector factory can create it without a named ref.
func (*ChannelDestination) UnmarshalYAML ¶
func (cd *ChannelDestination) UnmarshalYAML(value *yaml.Node) error
type ChannelListener ¶
type ChannelListener struct {
SourceChannelID string `yaml:"source_channel_id"`
}
type ChannelLogging ¶
type ChannelLogging struct {
Level string `yaml:"level,omitempty"`
Payloads *PayloadLogging `yaml:"payloads,omitempty"`
TruncateAt int `yaml:"truncate_at,omitempty"`
}
type ChannelPruningConfig ¶
type ChannelStorageConfig ¶
type CloudWatchLogConfig ¶
type ClusterConfig ¶
type ClusterConfig struct {
Enabled bool `mapstructure:"enabled"`
Mode string `mapstructure:"mode"`
Coordination *CoordinationConfig `mapstructure:"coordination"`
InstanceID string `mapstructure:"instance_id"`
HeartbeatInterval string `mapstructure:"heartbeat_interval"`
ChannelAssignment *ChannelAssignConfig `mapstructure:"channel_assignment"`
Deduplication *DeduplicationConfig `mapstructure:"deduplication"`
}
type Config ¶
type Config struct {
Runtime RuntimeConfig `mapstructure:"runtime"`
ChannelsDir string `mapstructure:"channels_dir"`
Destinations map[string]Destination `mapstructure:"destinations"`
Kafka KafkaConfig `mapstructure:"kafka"`
Secrets *SecretsConfig `mapstructure:"secrets"`
DeadLetter *DeadLetterConfig `mapstructure:"dead_letter"`
MessageStorage *MessageStorageConfig `mapstructure:"message_storage"`
Pruning *PruningConfig `mapstructure:"pruning"`
Observability *ObservabilityConfig `mapstructure:"observability"`
Logging *LoggingConfig `mapstructure:"logging"`
Alerts []AlertConfig `mapstructure:"alerts"`
AccessControl *AccessControlConfig `mapstructure:"access_control"`
Roles []RoleConfig `mapstructure:"roles"`
Audit *AuditConfig `mapstructure:"audit"`
Cluster *ClusterConfig `mapstructure:"cluster"`
Global *GlobalConfig `mapstructure:"global"`
Tenancy *TenancyConfig `mapstructure:"tenancy"`
Dashboard *DashboardConfig `mapstructure:"dashboard"`
CodeTemplates []CodeTemplateLibraryConfig `mapstructure:"code_templates"`
}
type CoordinationConfig ¶
type CoordinationConfig struct {
Type string `mapstructure:"type"`
Redis *RedisConfig `mapstructure:"redis"`
}
type DBDestConfig ¶
type DBDestMapConfig ¶
type DBListener ¶
type DICOMDestConfig ¶
type DICOMDestMapConfig ¶
type DICOMListener ¶
type DLQRefConfig ¶
type DLQRefConfig struct {
Destination string `yaml:"destination,omitempty"`
}
type DashboardAuthConfig ¶
type DashboardConfig ¶
type DashboardConfig struct {
Enabled bool `mapstructure:"enabled"`
Port int `mapstructure:"port"`
Auth *DashboardAuthConfig `mapstructure:"auth"`
}
type DataTypesConfig ¶
type DatadogLogConfig ¶
type DeadLetterConfig ¶
type DeduplicationConfig ¶
type Destination ¶
type Destination struct {
Type string `mapstructure:"type"`
Kafka *KafkaDestConfig `mapstructure:"kafka"`
HTTP *HTTPDestConfig `mapstructure:"http"`
TCP *TCPDestMapConfig `mapstructure:"tcp"`
File *FileDestMapConfig `mapstructure:"file"`
SFTP *SFTPDestMapConfig `mapstructure:"sftp"`
Database *DBDestMapConfig `mapstructure:"database"`
SMTP *SMTPDestMapConfig `mapstructure:"smtp"`
Channel *ChannelDestMapConfig `mapstructure:"channel"`
DICOM *DICOMDestMapConfig `mapstructure:"dicom"`
JMS *JMSDestMapConfig `mapstructure:"jms"`
FHIR *FHIRDestMapConfig `mapstructure:"fhir"`
Direct *DirectDestMapConfig `mapstructure:"direct"`
Retry *RetryMapConfig `mapstructure:"retry"`
}
type DirectDestConfig ¶
type DirectDestConfig struct {
To string `yaml:"to,omitempty"`
From string `yaml:"from,omitempty"`
SMTP *SMTPDestConfig `yaml:"smtp,omitempty"`
Certificate string `yaml:"certificate,omitempty"`
}
type DirectDestMapConfig ¶
type ElasticsearchLogConfig ¶
type EmailListener ¶
type EmailListener struct {
Protocol string `yaml:"protocol,omitempty"`
Host string `yaml:"host"`
Port int `yaml:"port,omitempty"`
PollInterval string `yaml:"poll_interval,omitempty"`
TLS *TLSConfig `yaml:"tls,omitempty"`
Auth *AuthConfig `yaml:"auth,omitempty"`
Folder string `yaml:"folder,omitempty"`
Filter string `yaml:"filter,omitempty"`
ReadAttachments bool `yaml:"read_attachments,omitempty"`
DeleteAfterRead bool `yaml:"delete_after_read,omitempty"`
}
type EncryptionConfig ¶
type ErrorHandlingConfig ¶
type ErrorHandlingConfig struct {
OnError string `yaml:"on_error,omitempty"`
DLQ *DLQRefConfig `yaml:"dlq,omitempty"`
Alert *AlertRefConfig `yaml:"alert,omitempty"`
}
type FHIRDestConfig ¶
type FHIRDestConfig struct {
BaseURL string `yaml:"base_url,omitempty"`
Version string `yaml:"version,omitempty"`
Auth *AuthConfig `yaml:"auth,omitempty"`
Operations []string `yaml:"operations,omitempty"`
Retry *RetryConfig `yaml:"retry,omitempty"`
}
type FHIRDestMapConfig ¶
type FHIRDestMapConfig struct {
BaseURL string `mapstructure:"base_url"`
Version string `mapstructure:"version"`
Operations []string `mapstructure:"operations"`
Auth *HTTPAuthConfig `mapstructure:"auth"`
TLS *TLSMapConfig `mapstructure:"tls"`
TimeoutMs int `mapstructure:"timeout_ms"`
}
type FHIRListener ¶
type FHIRListener struct {
Port int `yaml:"port"`
BasePath string `yaml:"base_path,omitempty"`
Version string `yaml:"version,omitempty"`
Resources []string `yaml:"resources,omitempty"`
SubscriptionType string `yaml:"subscription_type,omitempty"`
TLS *TLSConfig `yaml:"tls,omitempty"`
Auth *AuthConfig `yaml:"auth,omitempty"`
}
type FHIRPollListener ¶ added in v1.0.10
type FHIRPollListener struct {
BaseURL string `yaml:"base_url"`
PollInterval string `yaml:"poll_interval,omitempty"`
PollRange string `yaml:"poll_range,omitempty"` // e.g. "15m", "2h" — last N duration for _lastUpdated
Since string `yaml:"since,omitempty"` // alias for poll_range
DateParam string `yaml:"date_param,omitempty"` // default _lastUpdated; or date, onset-date, etc.
Resources []string `yaml:"resources,omitempty"`
SearchQueries []string `yaml:"search_queries,omitempty"`
Version string `yaml:"version,omitempty"`
TLS *TLSConfig `yaml:"tls,omitempty"`
Auth *AuthConfig `yaml:"auth,omitempty"`
}
FHIRPollListener configures outbound FHIR HTTP polling (GET search at interval).
type FHIRSubscriptionListener ¶ added in v1.0.10
type FHIRSubscriptionListener struct {
ChannelType string `yaml:"channel_type"` // "rest-hook" | "websocket"
Port int `yaml:"port,omitempty"`
Path string `yaml:"path,omitempty"`
WebSocketURL string `yaml:"websocket_url,omitempty"`
ReconnectBackoff string `yaml:"reconnect_backoff,omitempty"` // e.g. "2s"
MaxReconnectAttempts int `yaml:"max_reconnect_attempts,omitempty"` // 0 = unlimited
Version string `yaml:"version,omitempty"`
SubscriptionID string `yaml:"subscription_id,omitempty"`
TLS *TLSConfig `yaml:"tls,omitempty"`
Auth *AuthConfig `yaml:"auth,omitempty"`
}
FHIRSubscriptionListener configures FHIR R4B Subscription source (rest-hook or websocket).
type FTPConfig ¶
type FTPConfig struct {
Host string `yaml:"host"`
Port int `yaml:"port,omitempty"`
Auth *AuthConfig `yaml:"auth,omitempty"`
}
type FileDestConfig ¶
type FileDestConfig struct {
Scheme string `yaml:"scheme,omitempty"`
Directory string `yaml:"directory,omitempty"`
FilenamePattern string `yaml:"filename_pattern,omitempty"`
SFTP *SFTPListener `yaml:"sftp,omitempty"`
}
type FileDestMapConfig ¶
type FileListener ¶
type FileListener struct {
Scheme string `yaml:"scheme,omitempty"`
Directory string `yaml:"directory,omitempty"`
FilePattern string `yaml:"file_pattern,omitempty"`
PollInterval string `yaml:"poll_interval,omitempty"`
MoveTo string `yaml:"move_to,omitempty"`
ErrorDir string `yaml:"error_dir,omitempty"`
SortBy string `yaml:"sort_by,omitempty"`
FTP *FTPConfig `yaml:"ftp,omitempty"`
S3 *S3Config `yaml:"s3,omitempty"`
SMB *SMBConfig `yaml:"smb,omitempty"`
}
type FileLogConfig ¶
type GCPSecretManagerConfig ¶
type GlobalConfig ¶
type GlobalConfig struct {
Hooks *GlobalHooks `mapstructure:"hooks"`
}
type GlobalHooks ¶
type HTTPAuthConfig ¶
type HTTPAuthConfig struct {
Type string `mapstructure:"type" yaml:"type"`
Token string `mapstructure:"token" yaml:"token"`
Username string `mapstructure:"username" yaml:"username"`
Password string `mapstructure:"password" yaml:"password"`
Key string `mapstructure:"key" yaml:"key"`
Header string `mapstructure:"header" yaml:"header"`
QueryParam string `mapstructure:"query_param" yaml:"query_param"`
TokenURL string `mapstructure:"token_url" yaml:"token_url"`
ClientID string `mapstructure:"client_id" yaml:"client_id"`
ClientSecret string `mapstructure:"client_secret" yaml:"client_secret"`
Scopes []string `mapstructure:"scopes" yaml:"scopes"`
PrivateKeyFile string `mapstructure:"private_key_file" yaml:"private_key_file"`
Passphrase string `mapstructure:"passphrase" yaml:"passphrase"`
}
type HTTPDestConfig ¶
type HTTPDestConfig struct {
URL string `mapstructure:"url" yaml:"url"`
Method string `mapstructure:"method" yaml:"method"`
Headers map[string]string `mapstructure:"headers" yaml:"headers"`
QueryParams map[string]string `mapstructure:"query_params" yaml:"query_params"`
PathParams map[string]string `mapstructure:"path_params" yaml:"path_params"`
TimeoutMs int `mapstructure:"timeout_ms" yaml:"timeout_ms,omitempty"`
Auth *HTTPAuthConfig `mapstructure:"auth" yaml:"auth,omitempty"`
TLS *TLSMapConfig `mapstructure:"tls" yaml:"tls,omitempty"`
}
type HTTPListener ¶
type HTTPListener struct {
Port int `yaml:"port"`
Path string `yaml:"path,omitempty"`
Methods []string `yaml:"methods,omitempty"`
TLS *TLSConfig `yaml:"tls,omitempty"`
Auth *AuthConfig `yaml:"auth,omitempty"`
}
type HealthConfig ¶
type HealthConfig struct {
// Bind is the interface the health server listens on. Empty means all
// interfaces, which is what a self-hosted operator wants.
//
// Cloud deployments set it to 127.0.0.1: under ECS awsvpc networking every
// listening socket is reachable on the task's own ENI, and an engine health
// port answering to the VPC is a port the deployment manifest never
// declared. A supervising runner proxies /health through the one control
// port that is declared.
Bind string `mapstructure:"bind"`
Port int `mapstructure:"port"`
Path string `mapstructure:"path"`
ReadinessPath string `mapstructure:"readiness_path"`
LivenessPath string `mapstructure:"liveness_path"`
}
type IHEListener ¶
type IHEListener struct {
Profile string `yaml:"profile"`
Port int `yaml:"port"`
TLS *TLSConfig `yaml:"tls,omitempty"`
Auth *AuthConfig `yaml:"auth,omitempty"`
}
type JMSDestConfig ¶
type JMSDestConfig struct {
Provider string `yaml:"provider,omitempty"`
URL string `yaml:"url,omitempty"`
Queue string `yaml:"queue,omitempty"`
Auth *AuthConfig `yaml:"auth,omitempty"`
}
type JMSDestMapConfig ¶
type JMSDestMapConfig struct {
Provider string `mapstructure:"provider"`
URL string `mapstructure:"url"`
Queue string `mapstructure:"queue"`
Auth *HTTPAuthConfig `mapstructure:"auth"`
TimeoutMs int `mapstructure:"timeout_ms"`
}
type KafkaConfig ¶
type KafkaDestConfig ¶
type KafkaDestConfig struct {
Brokers []string `mapstructure:"brokers" yaml:"brokers"`
Topic string `mapstructure:"topic" yaml:"topic"`
ClientID string `mapstructure:"client_id" yaml:"client_id"`
Auth *HTTPAuthConfig `mapstructure:"auth" yaml:"auth,omitempty"`
TLS *TLSMapConfig `mapstructure:"tls" yaml:"tls,omitempty"`
}
type KafkaListener ¶
type LDAPConfig ¶
type LifecycleConfig ¶
type ListenerConfig ¶
type ListenerConfig struct {
Type string `yaml:"type"`
HTTP *HTTPListener `yaml:"http,omitempty"`
TCP *TCPListener `yaml:"tcp,omitempty"`
SFTP *SFTPListener `yaml:"sftp,omitempty"`
File *FileListener `yaml:"file,omitempty"`
Database *DBListener `yaml:"database,omitempty"`
Kafka *KafkaListener `yaml:"kafka,omitempty"`
Channel *ChannelListener `yaml:"channel,omitempty"`
Email *EmailListener `yaml:"email,omitempty"`
DICOM *DICOMListener `yaml:"dicom,omitempty"`
SOAP *SOAPListener `yaml:"soap,omitempty"`
FHIR *FHIRListener `yaml:"fhir,omitempty"`
FHIRPoll *FHIRPollListener `yaml:"fhir_poll,omitempty"`
FHIRSubscription *FHIRSubscriptionListener `yaml:"fhir_subscription,omitempty"`
IHE *IHEListener `yaml:"ihe,omitempty"`
}
type LogTransportConfig ¶
type LogTransportConfig struct {
Type string `mapstructure:"type"`
CloudWatch *CloudWatchLogConfig `mapstructure:"cloudwatch"`
Datadog *DatadogLogConfig `mapstructure:"datadog"`
SumoLogic *SumoLogicLogConfig `mapstructure:"sumologic"`
Elasticsearch *ElasticsearchLogConfig `mapstructure:"elasticsearch"`
File *FileLogConfig `mapstructure:"file"`
}
type LoggingConfig ¶
type LoggingConfig struct {
Transports []LogTransportConfig `mapstructure:"transports"`
}
type MessageStorageConfig ¶
type MessageStorageConfig struct {
Driver string `mapstructure:"driver"`
Mode string `mapstructure:"mode"`
Stages []string `mapstructure:"stages"`
DSN string `mapstructure:"dsn"`
Database *StorageDatabaseConfig `mapstructure:"database"`
Memory *StorageMemoryConfig `mapstructure:"memory"`
Postgres *StoragePostgresConfig `mapstructure:"postgres"`
S3 *StorageS3Config `mapstructure:"s3"`
Platform *StoragePlatformConfig `mapstructure:"platform"`
Retention *StorageRetentionConfig `mapstructure:"retention"`
}
type OIDCConfig ¶
type OTelConfig ¶
type OTelConfig struct {
Enabled bool `mapstructure:"enabled"`
Endpoint string `mapstructure:"endpoint"`
Protocol string `mapstructure:"protocol"`
Traces bool `mapstructure:"traces"`
Metrics bool `mapstructure:"metrics"`
ServiceName string `mapstructure:"service_name"`
ResourceAttributes map[string]string `mapstructure:"resource_attributes"`
}
type ObservabilityConfig ¶
type ObservabilityConfig struct {
OpenTelemetry *OTelConfig `mapstructure:"opentelemetry"`
Prometheus *PrometheusConfig `mapstructure:"prometheus"`
}
type PayloadLogging ¶
type PerformanceConfig ¶
type PipelineConfig ¶
type PluginConfig ¶ added in v1.0.7
type PluginConfig struct {
Name string `yaml:"name"`
Phase string `yaml:"phase"`
Entrypoint string `yaml:"entrypoint"`
}
PluginConfig declares a pipeline plugin registered via channel YAML.
type PrometheusConfig ¶
type PruningConfig ¶
type QueueConfig ¶
type RedisConfig ¶
type RedisConfig struct {
Address string `mapstructure:"address"`
Password string `mapstructure:"password"`
DB int `mapstructure:"db"`
PoolSize int `mapstructure:"pool_size"`
MinIdleConns int `mapstructure:"min_idle_conns"`
TLS *TLSMapConfig `mapstructure:"tls"`
KeyPrefix string `mapstructure:"key_prefix"`
}
type ResponseConfig ¶
type RetryConfig ¶
type RetryConfig struct {
MaxAttempts int `yaml:"max_attempts,omitempty"`
Backoff string `yaml:"backoff,omitempty"`
InitialDelayMs int `yaml:"initial_delay_ms,omitempty"`
MaxDelayMs int `yaml:"max_delay_ms,omitempty"`
Jitter bool `yaml:"jitter,omitempty"`
RetryOn []string `yaml:"retry_on,omitempty"`
NoRetryOn []string `yaml:"no_retry_on,omitempty"`
}
type RetryMapConfig ¶
type RetryMapConfig struct {
MaxAttempts int `mapstructure:"max_attempts"`
Backoff string `mapstructure:"backoff"`
InitialDelayMs int `mapstructure:"initial_delay_ms"`
MaxDelayMs int `mapstructure:"max_delay_ms"`
Jitter bool `mapstructure:"jitter"`
RetryOn []string `mapstructure:"retry_on"`
NoRetryOn []string `mapstructure:"no_retry_on"`
}
type RoleConfig ¶
type RuntimeConfig ¶
type RuntimeConfig struct {
Name string `mapstructure:"name"`
Profile string `mapstructure:"profile"`
LogLevel string `mapstructure:"log_level"`
Mode string `mapstructure:"mode"`
Storage StorageConfig `mapstructure:"storage"`
Encryption *EncryptionConfig `mapstructure:"encryption"`
Health *HealthConfig `mapstructure:"health"`
WorkerPool int `mapstructure:"worker_pool"`
}
type S3Config ¶
type S3Config struct {
Bucket string `yaml:"bucket"`
Region string `yaml:"region,omitempty"`
Prefix string `yaml:"prefix,omitempty"`
Auth *AuthConfig `yaml:"auth,omitempty"`
}
type SFTPDestMapConfig ¶
type SFTPDestMapConfig struct {
Host string `mapstructure:"host"`
Port int `mapstructure:"port"`
Directory string `mapstructure:"directory"`
FilenamePattern string `mapstructure:"filename_pattern"`
Auth *HTTPAuthConfig `mapstructure:"auth"`
}
type SFTPListener ¶
type SFTPListener struct {
Host string `yaml:"host"`
Port int `yaml:"port,omitempty"`
PollInterval string `yaml:"poll_interval,omitempty"`
Directory string `yaml:"directory,omitempty"`
FilePattern string `yaml:"file_pattern,omitempty"`
MoveTo string `yaml:"move_to,omitempty"`
ErrorDir string `yaml:"error_dir,omitempty"`
Auth *AuthConfig `yaml:"auth,omitempty"`
SortBy string `yaml:"sort_by,omitempty"`
}
type SMBConfig ¶
type SMBConfig struct {
Host string `yaml:"host"`
Auth *AuthConfig `yaml:"auth,omitempty"`
}
type SMTPDestConfig ¶
type SMTPDestMapConfig ¶
type SMTPDestMapConfig struct {
Host string `mapstructure:"host"`
Port int `mapstructure:"port"`
From string `mapstructure:"from"`
To []string `mapstructure:"to"`
Subject string `mapstructure:"subject"`
Auth *HTTPAuthConfig `mapstructure:"auth"`
TLS *TLSMapConfig `mapstructure:"tls"`
}
type SOAPListener ¶
type SOAPListener struct {
Port int `yaml:"port"`
WSDLPath string `yaml:"wsdl_path,omitempty"`
ServiceName string `yaml:"service_name,omitempty"`
TLS *TLSConfig `yaml:"tls,omitempty"`
Auth *AuthConfig `yaml:"auth,omitempty"`
}
type SecretsConfig ¶
type SecretsConfig struct {
Provider string `mapstructure:"provider"`
Vault *VaultConfig `mapstructure:"vault"`
AWS *AWSSecretsManagerConfig `mapstructure:"aws"`
GCP *GCPSecretManagerConfig `mapstructure:"gcp"`
}
type StorageConfig ¶
type StorageDatabaseConfig ¶ added in v1.0.15
type StorageDatabaseConfig struct {
DSN string `mapstructure:"dsn"`
TablePrefix string `mapstructure:"table_prefix"`
MaxOpenConns int `mapstructure:"max_open_conns"`
MaxIdleConns int `mapstructure:"max_idle_conns"`
}
StorageDatabaseConfig is a generic SQL storage config used by mysql, mssql, and sqlite drivers.
type StorageMemoryConfig ¶ added in v1.0.4
type StoragePlatformConfig ¶ added in v1.0.15
type StoragePlatformConfig struct {
// Endpoint is the full ingest URL.
Endpoint string `mapstructure:"endpoint"`
// Token authenticates the deployment. It is scoped to one deployment, so a
// leaked token cannot write another tenant's records.
Token string `mapstructure:"token"`
// DeploymentID is the record owner the control plane attributes writes to.
DeploymentID string `mapstructure:"deployment_id"`
// BatchSize is how many records accumulate before a send. Default 25.
BatchSize int `mapstructure:"batch_size"`
// FlushInterval is a Go duration string; a partial batch is sent when it
// elapses. Default 2s.
FlushInterval string `mapstructure:"flush_interval"`
}
StoragePlatformConfig configures the `platform` driver, which posts message and stage records to a managed control plane rather than storing them locally. Used by cloud deployments, where the operator surface is the platform's Messages view and the task deliberately holds no database credentials.
type StoragePostgresConfig ¶
type StorageRetentionConfig ¶
type StorageS3Config ¶
type SumoLogicLogConfig ¶
type TCPDestConfig ¶
type TCPDestMapConfig ¶
type TCPListener ¶
type TCPListener struct {
Port int `yaml:"port"`
Mode string `yaml:"mode,omitempty"`
MaxConnections int `yaml:"max_connections,omitempty"`
TimeoutMs int `yaml:"timeout_ms,omitempty"`
TLS *TLSConfig `yaml:"tls,omitempty"`
ACK *ACKConfig `yaml:"ack,omitempty"`
Response *ResponseConfig `yaml:"response,omitempty"`
}
type TLSConfig ¶
type TLSConfig struct {
Enabled bool `yaml:"enabled,omitempty"`
CertFile string `yaml:"cert_file,omitempty"`
KeyFile string `yaml:"key_file,omitempty"`
CAFile string `yaml:"ca_file,omitempty"`
ClientCertFile string `yaml:"client_cert_file,omitempty"`
ClientKeyFile string `yaml:"client_key_file,omitempty"`
MinVersion string `yaml:"min_version,omitempty"`
ClientAuth string `yaml:"client_auth,omitempty"`
InsecureSkipVerify bool `yaml:"insecure_skip_verify,omitempty"`
}
type TLSMapConfig ¶
type TLSMapConfig struct {
Enabled bool `mapstructure:"enabled" yaml:"enabled"`
CertFile string `mapstructure:"cert_file" yaml:"cert_file"`
KeyFile string `mapstructure:"key_file" yaml:"key_file"`
CAFile string `mapstructure:"ca_file" yaml:"ca_file"`
ClientCertFile string `mapstructure:"client_cert_file" yaml:"client_cert_file"`
ClientKeyFile string `mapstructure:"client_key_file" yaml:"client_key_file"`
MinVersion string `mapstructure:"min_version" yaml:"min_version"`
InsecureSkipVerify bool `mapstructure:"insecure_skip_verify" yaml:"insecure_skip_verify"`
}
type TenancyConfig ¶
type TracingConfig ¶
type VaultAuthConfig ¶
type VaultConfig ¶
type VaultConfig struct {
Address string `mapstructure:"address"`
Path string `mapstructure:"path"`
Auth *VaultAuthConfig `mapstructure:"auth"`
}