config

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2022 License: MIT Imports: 35 Imported by: 0

Documentation

Overview

Package presenters allow for the specification and result of a Job, its associated TaskSpecs, and every JobRun and TaskRun to be returned in a user friendly human readable format.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnset        = errors.New("env var unset")
	ErrInvalid      = errors.New("env var invalid")
	DefaultLogLevel = LogLevel{zapcore.InfoLevel}
)

Functions

func EnvVarName

func EnvVarName(field string) string

EnvVarName gets the environment variable name for a config schema field

func FriendlyBigInt

func FriendlyBigInt(n *big.Int) string

FriendlyBigInt returns a string printing the integer in both decimal and hexadecimal formats.

func ParseBigInt

func ParseBigInt(str string) (interface{}, error)

func ParseBool

func ParseBool(s string) (interface{}, error)

func ParseDuration

func ParseDuration(s string) (interface{}, error)

func ParseF32

func ParseF32(s string) (interface{}, error)

func ParseFileSize

func ParseFileSize(s string) (interface{}, error)

func ParseHomeDir

func ParseHomeDir(str string) (interface{}, error)

func ParseIP

func ParseIP(s string) (interface{}, error)
func ParseLink(str string) (interface{}, error)

func ParseLogLevel

func ParseLogLevel(str string) (interface{}, error)

func ParseString

func ParseString(str string) (interface{}, error)

func ParseURL

func ParseURL(s string) (interface{}, error)

func ParseUint16

func ParseUint16(s string) (interface{}, error)

func ParseUint32

func ParseUint32(s string) (interface{}, error)

func ParseUint64

func ParseUint64(s string) (interface{}, error)

func TryEnvVarName

func TryEnvVarName(field string) string

Types

type ConfigPrinter

type ConfigPrinter struct {
	EnvPrinter
}

ConfigPrinter are the non-secret values of the node

If you add an entry here, you should update NewConfigPrinter and ConfigPrinter#String accordingly.

func NewConfigPrinter

func NewConfigPrinter(cfg GeneralConfig) (ConfigPrinter, error)

NewConfigPrinter creates an instance of ConfigPrinter

func (ConfigPrinter) GetID

func (c ConfigPrinter) GetID() string

GetID generates a new ID for jsonapi serialization.

func (*ConfigPrinter) SetID

func (c *ConfigPrinter) SetID(value string) error

SetID is used to conform to the UnmarshallIdentifier interface for deserializing from jsonapi documents.

func (ConfigPrinter) String

func (c ConfigPrinter) String() string

String returns the values as a newline delimited string

type ConfigSchema

type ConfigSchema struct {
	FeatureFeedsManager bool `env:"FEATURE_FEEDS_MANAGER" default:"false"`

	AdminCredentialsFile                       string                        `env:"ADMIN_CREDENTIALS_FILE" default:"$ROOT/apicredentials"`
	AllowOrigins                               string                        `env:"ALLOW_ORIGINS" default:"http://localhost:3000,http://localhost:6688"`
	AuthenticatedRateLimit                     int64                         `env:"AUTHENTICATED_RATE_LIMIT" default:"1000"`
	AuthenticatedRateLimitPeriod               time.Duration                 `env:"AUTHENTICATED_RATE_LIMIT_PERIOD" default:"1m"`
	AutoPprofEnabled                           bool                          `env:"AUTO_PPROF_ENABLED" default:"false"`
	AutoPprofProfileRoot                       string                        `env:"AUTO_PPROF_PROFILE_ROOT"` // Defaults to $CHAINLINK_ROOT
	AutoPprofPollInterval                      models.Duration               `env:"AUTO_PPROF_POLL_INTERVAL" default:"10s"`
	AutoPprofGatherDuration                    models.Duration               `env:"AUTO_PPROF_GATHER_DURATION" default:"10s"`
	AutoPprofGatherTraceDuration               models.Duration               `env:"AUTO_PPROF_GATHER_TRACE_DURATION" default:"5s"`
	AutoPprofMaxProfileSize                    utils.FileSize                `env:"AUTO_PPROF_MAX_PROFILE_SIZE" default:"100mb"`
	AutoPprofCPUProfileRate                    int                           `env:"AUTO_PPROF_CPU_PROFILE_RATE" default:"1"`
	AutoPprofMemProfileRate                    int                           `env:"AUTO_PPROF_MEM_PROFILE_RATE" default:"1"`
	AutoPprofBlockProfileRate                  int                           `env:"AUTO_PPROF_BLOCK_PROFILE_RATE" default:"1"`
	AutoPprofMutexProfileFraction              int                           `env:"AUTO_PPROF_MUTEX_PROFILE_FRACTION" default:"1"`
	AutoPprofMemThreshold                      utils.FileSize                `env:"AUTO_PPROF_MEM_THRESHOLD" default:"4gb"`
	AutoPprofGoroutineThreshold                int                           `env:"AUTO_PPROF_GOROUTINE_THRESHOLD" default:"5000"`
	BalanceMonitorEnabled                      bool                          `env:"BALANCE_MONITOR_ENABLED"`
	BlockBackfillDepth                         uint64                        `env:"BLOCK_BACKFILL_DEPTH" default:"10"`
	BlockBackfillSkip                          bool                          `env:"BLOCK_BACKFILL_SKIP" default:"false"`
	BlockEmissionIdleWarningThreshold          time.Duration                 `env:"BLOCK_EMISSION_IDLE_WARNING_THRESHOLD"`
	BlockHistoryEstimatorBatchSize             uint32                        `env:"BLOCK_HISTORY_ESTIMATOR_BATCH_SIZE"`
	BlockHistoryEstimatorBlockDelay            uint16                        `env:"BLOCK_HISTORY_ESTIMATOR_BLOCK_DELAY"`
	BlockHistoryEstimatorBlockHistorySize      uint16                        `env:"BLOCK_HISTORY_ESTIMATOR_BLOCK_HISTORY_SIZE"`
	BlockHistoryEstimatorTransactionPercentile uint16                        `env:"BLOCK_HISTORY_ESTIMATOR_TRANSACTION_PERCENTILE"`
	BridgeResponseURL                          url.URL                       `env:"BRIDGE_RESPONSE_URL"`
	ChainType                                  string                        `env:"CHAIN_TYPE"`
	ClientNodeURL                              string                        `env:"CLIENT_NODE_URL" default:"http://localhost:6688"`
	DatabaseBackupDir                          string                        `env:"DATABASE_BACKUP_DIR" default:""`
	DatabaseBackupFrequency                    time.Duration                 `env:"DATABASE_BACKUP_FREQUENCY" default:"1h"`
	DatabaseBackupMode                         string                        `env:"DATABASE_BACKUP_MODE" default:"none"`
	DatabaseBackupURL                          *url.URL                      `env:"DATABASE_BACKUP_URL" default:""`
	DatabaseBackupOnVersionUpgrade             bool                          `env:"DATABASE_BACKUP_ON_VERSION_UPGRADE" default:"true"`
	DatabaseListenerMaxReconnectDuration       time.Duration                 `env:"DATABASE_LISTENER_MAX_RECONNECT_DURATION" default:"10m"`
	DatabaseListenerMinReconnectInterval       time.Duration                 `env:"DATABASE_LISTENER_MIN_RECONNECT_INTERVAL" default:"1m"`
	DatabaseLockingMode                        string                        `env:"DATABASE_LOCKING_MODE" default:"advisorylock"`
	DatabaseMaximumTxDuration                  time.Duration                 `env:"DATABASE_MAXIMUM_TX_DURATION" default:"30m"`
	DatabaseTimeout                            models.Duration               `env:"DATABASE_TIMEOUT" default:"0"`
	DatabaseURL                                string                        `env:"DATABASE_URL"`
	DefaultChainID                             *big.Int                      `env:"ETH_CHAIN_ID"`
	DefaultHTTPAllowUnrestrictedNetworkAccess  bool                          `env:"DEFAULT_HTTP_ALLOW_UNRESTRICTED_NETWORK_ACCESS" default:"false"`
	DefaultHTTPLimit                           int64                         `env:"DEFAULT_HTTP_LIMIT" default:"32768"`
	DefaultHTTPTimeout                         models.Duration               `env:"DEFAULT_HTTP_TIMEOUT" default:"15s"`
	DefaultMaxHTTPAttempts                     uint                          `env:"MAX_HTTP_ATTEMPTS" default:"5"`
	Dev                                        bool                          `env:"CHAINLINK_DEV" default:"false"`
	EVMDisabled                                bool                          `env:"EVM_DISABLED" default:"false"`
	EthTxReaperInterval                        time.Duration                 `env:"ETH_TX_REAPER_INTERVAL"`
	EthTxReaperThreshold                       time.Duration                 `env:"ETH_TX_REAPER_THRESHOLD"`
	EthTxResendAfterThreshold                  time.Duration                 `env:"ETH_TX_RESEND_AFTER_THRESHOLD"`
	EthereumDisabled                           bool                          `env:"ETH_DISABLED" default:"false"`
	EthereumHTTPURL                            string                        `env:"ETH_HTTP_URL"`
	EthereumSecondaryURL                       string                        `env:"ETH_SECONDARY_URL" default:""`
	EthereumSecondaryURLs                      string                        `env:"ETH_SECONDARY_URLS" default:""`
	EthereumURL                                string                        `env:"ETH_URL"`
	EvmDefaultBatchSize                        uint32                        `env:"ETH_DEFAULT_BATCH_SIZE"`
	EvmEIP1559DynamicFees                      bool                          `env:"EVM_EIP1559_DYNAMIC_FEES"`
	EvmFinalityDepth                           uint32                        `env:"ETH_FINALITY_DEPTH"`
	EvmGasBumpPercent                          uint16                        `env:"ETH_GAS_BUMP_PERCENT"`
	EvmGasBumpThreshold                        uint64                        `env:"ETH_GAS_BUMP_THRESHOLD"`
	EvmGasBumpTxDepth                          uint16                        `env:"ETH_GAS_BUMP_TX_DEPTH"`
	EvmGasBumpWei                              *big.Int                      `env:"ETH_GAS_BUMP_WEI"`
	EvmGasLimitDefault                         uint64                        `env:"ETH_GAS_LIMIT_DEFAULT"`
	EvmGasLimitMultiplier                      float32                       `env:"ETH_GAS_LIMIT_MULTIPLIER"`
	EvmGasLimitTransfer                        uint64                        `env:"ETH_GAS_LIMIT_TRANSFER"`
	EvmGasPriceDefault                         *big.Int                      `env:"ETH_GAS_PRICE_DEFAULT"`
	EvmGasTipCapDefault                        *big.Int                      `env:"EVM_GAS_TIP_CAP_DEFAULT"`
	EvmGasTipCapMinimum                        *big.Int                      `env:"EVM_GAS_TIP_CAP_MINIMUM"`
	EvmHeadTrackerHistoryDepth                 uint                          `env:"ETH_HEAD_TRACKER_HISTORY_DEPTH"`
	EvmHeadTrackerMaxBufferSize                uint                          `env:"ETH_HEAD_TRACKER_MAX_BUFFER_SIZE"`
	EvmHeadTrackerSamplingInterval             time.Duration                 `env:"ETH_HEAD_TRACKER_SAMPLING_INTERVAL"`
	EvmLogBackfillBatchSize                    uint32                        `env:"ETH_LOG_BACKFILL_BATCH_SIZE"`
	EvmMaxGasPriceWei                          *big.Int                      `env:"ETH_MAX_GAS_PRICE_WEI"`
	EvmMaxInFlightTransactions                 uint32                        `env:"ETH_MAX_IN_FLIGHT_TRANSACTIONS"`
	EvmMaxQueuedTransactions                   uint64                        `env:"ETH_MAX_QUEUED_TRANSACTIONS"`
	EvmMinGasPriceWei                          *big.Int                      `env:"ETH_MIN_GAS_PRICE_WEI"`
	EvmNonceAutoSync                           bool                          `env:"ETH_NONCE_AUTO_SYNC"`
	EvmRPCDefaultBatchSize                     uint32                        `env:"ETH_RPC_DEFAULT_BATCH_SIZE"`
	ExplorerAccessKey                          string                        `env:"EXPLORER_ACCESS_KEY"`
	ExplorerSecret                             string                        `env:"EXPLORER_SECRET"`
	ExplorerURL                                *url.URL                      `env:"EXPLORER_URL"`
	FMDefaultTransactionQueueDepth             uint32                        `env:"FM_DEFAULT_TRANSACTION_QUEUE_DEPTH" default:"1"`
	FMSimulateTransactions                     bool                          `env:"FM_SIMULATE_TRANSACTIONS" default:"false"`
	FeatureExternalInitiators                  bool                          `env:"FEATURE_EXTERNAL_INITIATORS" default:"false"`
	FeatureOffchainReporting                   bool                          `env:"FEATURE_OFFCHAIN_REPORTING" default:"false"`
	FeatureUICSAKeys                           bool                          `env:"FEATURE_UI_CSA_KEYS" default:"false"`
	FeatureUIFeedsManager                      bool                          `env:"FEATURE_UI_FEEDS_MANAGER" default:"false"`
	FlagsContractAddress                       string                        `env:"FLAGS_CONTRACT_ADDRESS"`
	GasEstimatorMode                           string                        `env:"GAS_ESTIMATOR_MODE"`
	GlobalLockRetryInterval                    models.Duration               `env:"GLOBAL_LOCK_RETRY_INTERVAL" default:"1s"`
	HTTPServerWriteTimeout                     time.Duration                 `env:"HTTP_SERVER_WRITE_TIMEOUT" default:"10s"`
	InsecureFastScrypt                         bool                          `env:"INSECURE_FAST_SCRYPT" default:"false"`
	InsecureSkipVerify                         bool                          `env:"INSECURE_SKIP_VERIFY" default:"false"`
	JSONConsole                                bool                          `env:"JSON_CONSOLE" default:"false"`
	JobPipelineMaxRunDuration                  time.Duration                 `env:"JOB_PIPELINE_MAX_RUN_DURATION" default:"10m"`
	JobPipelineReaperInterval                  time.Duration                 `env:"JOB_PIPELINE_REAPER_INTERVAL" default:"1h"`
	JobPipelineReaperThreshold                 time.Duration                 `env:"JOB_PIPELINE_REAPER_THRESHOLD" default:"24h"`
	JobPipelineResultWriteQueueDepth           uint64                        `env:"JOB_PIPELINE_RESULT_WRITE_QUEUE_DEPTH" default:"100"`
	KeeperDefaultTransactionQueueDepth         uint32                        `env:"KEEPER_DEFAULT_TRANSACTION_QUEUE_DEPTH" default:"1"`
	KeeperGasPriceBufferPercent                uint32                        `env:"KEEPER_GAS_PRICE_BUFFER_PERCENT" default:"20"`
	KeeperGasTipCapBufferPercent               uint32                        `env:"KEEPER_GAS_TIP_CAP_BUFFER_PERCENT" default:"20"`
	KeeperMaximumGracePeriod                   int64                         `env:"KEEPER_MAXIMUM_GRACE_PERIOD" default:"100"`
	KeeperRegistryCheckGasOverhead             uint64                        `env:"KEEPER_REGISTRY_CHECK_GAS_OVERHEAD" default:"200000"`
	KeeperRegistryPerformGasOverhead           uint64                        `env:"KEEPER_REGISTRY_PERFORM_GAS_OVERHEAD" default:"150000"`
	KeeperRegistrySyncInterval                 time.Duration                 `env:"KEEPER_REGISTRY_SYNC_INTERVAL" default:"30m"`
	KeeperRegistrySyncUpkeepQueueSize          uint32                        `env:"KEEPER_REGISTRY_SYNC_UPKEEP_QUEUE_SIZE" default:"10"`
	KeeperCheckUpkeepGasPriceFeatureEnabled    bool                          `env:"KEEPER_CHECK_UPKEEP_GAS_PRICE_FEATURE_ENABLED" default:"false"`
	LeaseLockRefreshInterval                   time.Duration                 `env:"LEASE_LOCK_REFRESH_INTERVAL" default:"1s"`
	LeaseLockDuration                          time.Duration                 `env:"LEASE_LOCK_DURATION" default:"10s"`
	LinkContractAddress                        string                        `env:"LINK_CONTRACT_ADDRESS"`
	LogLevel                                   LogLevel                      `env:"LOG_LEVEL"`
	LogSQLMigrations                           bool                          `env:"LOG_SQL_MIGRATIONS" default:"true"`
	LogSQL                                     bool                          `env:"LOG_SQL" default:"false"`
	LogToDisk                                  bool                          `env:"LOG_TO_DISK" default:"false"`
	LogUnixTS                                  bool                          `env:"LOG_UNIX_TS" default:"false"`
	MigrateDatabase                            bool                          `env:"MIGRATE_DATABASE" default:"true"`
	MinIncomingConfirmations                   uint32                        `env:"MIN_INCOMING_CONFIRMATIONS"`
	MinRequiredOutgoingConfirmations           uint64                        `env:"MIN_OUTGOING_CONFIRMATIONS"`
	MinimumContractPayment                     assets.Link                   `env:"MINIMUM_CONTRACT_PAYMENT_LINK_JUELS"`
	OCRBlockchainTimeout                       time.Duration                 `env:"OCR_BLOCKCHAIN_TIMEOUT" default:"20s"`
	OCRBootstrapCheckInterval                  time.Duration                 `env:"OCR_BOOTSTRAP_CHECK_INTERVAL" default:"20s"`
	OCRContractConfirmations                   uint                          `env:"OCR_CONTRACT_CONFIRMATIONS"`
	OCRContractPollInterval                    time.Duration                 `env:"OCR_CONTRACT_POLL_INTERVAL" default:"1m"`
	OCRContractSubscribeInterval               time.Duration                 `env:"OCR_CONTRACT_SUBSCRIBE_INTERVAL" default:"2m"`
	OCRContractTransmitterTransmitTimeout      time.Duration                 `env:"OCR_CONTRACT_TRANSMITTER_TRANSMIT_TIMEOUT" default:"10s"`
	OCRDHTLookupInterval                       int                           `env:"OCR_DHT_LOOKUP_INTERVAL" default:"10"`
	OCRDatabaseTimeout                         time.Duration                 `env:"OCR_DATABASE_TIMEOUT" default:"10s"`
	OCRDefaultTransactionQueueDepth            uint32                        `env:"OCR_DEFAULT_TRANSACTION_QUEUE_DEPTH" default:"1"`
	OCRIncomingMessageBufferSize               int                           `env:"OCR_INCOMING_MESSAGE_BUFFER_SIZE" default:"10"`
	OCRKeyBundleID                             string                        `env:"OCR_KEY_BUNDLE_ID"`
	OCRMonitoringEndpoint                      string                        `env:"OCR_MONITORING_ENDPOINT"`
	OCRNewStreamTimeout                        time.Duration                 `env:"OCR_NEW_STREAM_TIMEOUT" default:"10s"`
	OCRObservationGracePeriod                  time.Duration                 `env:"OCR_OBSERVATION_GRACE_PERIOD" default:"1s"`
	OCRObservationTimeout                      time.Duration                 `env:"OCR_OBSERVATION_TIMEOUT" default:"5s"`
	OCROutgoingMessageBufferSize               int                           `env:"OCR_OUTGOING_MESSAGE_BUFFER_SIZE" default:"10"`
	OCRSimulateTransactions                    bool                          `env:"OCR_SIMULATE_TRANSACTIONS" default:"false"`
	OCRTraceLogging                            bool                          `env:"OCR_TRACE_LOGGING" default:"false"`
	OCRTransmitterAddress                      string                        `env:"OCR_TRANSMITTER_ADDRESS"`
	ORMMaxIdleConns                            int                           `env:"ORM_MAX_IDLE_CONNS" default:"10"`
	ORMMaxOpenConns                            int                           `env:"ORM_MAX_OPEN_CONNS" default:"20"`
	P2PAnnounceIP                              net.IP                        `env:"P2P_ANNOUNCE_IP"`
	P2PAnnouncePort                            uint16                        `env:"P2P_ANNOUNCE_PORT"`
	P2PBootstrapPeers                          []string                      `env:"P2P_BOOTSTRAP_PEERS"`
	P2PDHTAnnouncementCounterUserPrefix        uint32                        `env:"P2P_DHT_ANNOUNCEMENT_COUNTER_USER_PREFIX" default:"0"`
	P2PListenIP                                net.IP                        `env:"P2P_LISTEN_IP" default:"0.0.0.0"`
	P2PListenPort                              uint16                        `env:"P2P_LISTEN_PORT"`
	P2PNetworkingStack                         ocrnetworking.NetworkingStack `env:"P2P_NETWORKING_STACK" default:"V1"`
	P2PPeerID                                  p2pkey.PeerID                 `env:"P2P_PEER_ID"`
	P2PPeerstoreWriteInterval                  time.Duration                 `env:"P2P_PEERSTORE_WRITE_INTERVAL" default:"5m"`
	P2PV2AnnounceAddresses                     []string                      `env:"P2PV2_ANNOUNCE_ADDRESSES"`
	P2PV2Bootstrappers                         []string                      `env:"P2PV2_BOOTSTRAPPERS"`
	P2PV2DeltaDial                             models.Duration               `env:"P2PV2_DELTA_DIAL" default:"15s"`
	P2PV2DeltaReconcile                        models.Duration               `env:"P2PV2_DELTA_RECONCILE" default:"1m"`
	P2PV2ListenAddresses                       []string                      `env:"P2PV2_LISTEN_ADDRESSES"`
	Port                                       uint16                        `env:"CHAINLINK_PORT" default:"6688"`
	RPID                                       string                        `env:"MFA_RPID"`
	RPOrigin                                   string                        `env:"MFA_RPORIGIN"`
	ReaperExpiration                           models.Duration               `env:"REAPER_EXPIRATION" default:"240h"`
	ReplayFromBlock                            int64                         `env:"REPLAY_FROM_BLOCK" default:"-1"`
	RootDir                                    string                        `env:"ROOT" default:"~/.chainlink"`
	SecureCookies                              bool                          `env:"SECURE_COOKIES" default:"true"`
	SessionTimeout                             models.Duration               `env:"SESSION_TIMEOUT" default:"15m"`
	StatsPusherLogging                         string                        `env:"STATS_PUSHER_LOGGING" default:"false"`
	TLSCertPath                                string                        `env:"TLS_CERT_PATH" `
	TLSHost                                    string                        `env:"CHAINLINK_TLS_HOST" `
	TLSKeyPath                                 string                        `env:"TLS_KEY_PATH" `
	TLSPort                                    uint16                        `env:"CHAINLINK_TLS_PORT" default:"6689"`
	TLSRedirect                                bool                          `env:"CHAINLINK_TLS_REDIRECT" default:"false"`
	TelemetryIngressLogging                    bool                          `env:"TELEMETRY_INGRESS_LOGGING" default:"false"`
	TelemetryIngressServerPubKey               string                        `env:"TELEMETRY_INGRESS_SERVER_PUB_KEY"`
	TelemetryIngressURL                        *url.URL                      `env:"TELEMETRY_INGRESS_URL"`
	TriggerFallbackDBPollInterval              time.Duration                 `env:"TRIGGER_FALLBACK_DB_POLL_INTERVAL" default:"30s"`
	UnAuthenticatedRateLimit                   int64                         `env:"UNAUTHENTICATED_RATE_LIMIT" default:"5"`
	UnAuthenticatedRateLimitPeriod             time.Duration                 `env:"UNAUTHENTICATED_RATE_LIMIT_PERIOD" default:"20s"`
}

ConfigSchema records the schema of configuration at the type level

type DatabaseBackupMode

type DatabaseBackupMode string
var (
	DatabaseBackupModeNone DatabaseBackupMode = "none"
	DatabaseBackupModeLite DatabaseBackupMode = "lite"
	DatabaseBackupModeFull DatabaseBackupMode = "full"
)

type EnvPrinter

type EnvPrinter struct {
	AllowOrigins                               string          `json:"ALLOW_ORIGINS"`
	BlockBackfillDepth                         uint64          `json:"BLOCK_BACKFILL_DEPTH"`
	BlockHistoryEstimatorBlockDelay            uint16          `json:"GAS_UPDATER_BLOCK_DELAY"`
	BlockHistoryEstimatorBlockHistorySize      uint16          `json:"GAS_UPDATER_BLOCK_HISTORY_SIZE"`
	BlockHistoryEstimatorTransactionPercentile uint16          `json:"GAS_UPDATER_TRANSACTION_PERCENTILE"`
	BridgeResponseURL                          string          `json:"BRIDGE_RESPONSE_URL,omitempty"`
	ChainType                                  string          `json:"CHAIN_TYPE"`
	ClientNodeURL                              string          `json:"CLIENT_NODE_URL"`
	DatabaseBackupFrequency                    time.Duration   `json:"DATABASE_BACKUP_FREQUENCY"`
	DatabaseBackupMode                         string          `json:"DATABASE_BACKUP_MODE"`
	DatabaseBackupOnVersionUpgrade             bool            `json:"DATABASE_BACKUP_ON_VERSION_UPGRADE"`
	DatabaseMaximumTxDuration                  time.Duration   `json:"DATABASE_MAXIMUM_TX_DURATION"`
	DatabaseTimeout                            models.Duration `json:"DATABASE_TIMEOUT"`
	DatabaseLockingMode                        string          `json:"DATABASE_LOCKING_MODE"`
	DefaultChainID                             string          `json:"ETH_CHAIN_ID"`
	DefaultHTTPLimit                           int64           `json:"DEFAULT_HTTP_LIMIT"`
	DefaultHTTPTimeout                         models.Duration `json:"DEFAULT_HTTP_TIMEOUT"`
	Dev                                        bool            `json:"CHAINLINK_DEV"`
	EthereumDisabled                           bool            `json:"ETH_DISABLED"`
	EthereumHTTPURL                            string          `json:"ETH_HTTP_URL"`
	EthereumSecondaryURLs                      []string        `json:"ETH_SECONDARY_URLS"`
	EthereumURL                                string          `json:"ETH_URL"`
	ExplorerURL                                string          `json:"EXPLORER_URL"`
	FMDefaultTransactionQueueDepth             uint32          `json:"FM_DEFAULT_TRANSACTION_QUEUE_DEPTH"`
	FeatureExternalInitiators                  bool            `json:"FEATURE_EXTERNAL_INITIATORS"`
	FeatureOffchainReporting                   bool            `json:"FEATURE_OFFCHAIN_REPORTING"`
	GasEstimatorMode                           string          `json:"GAS_ESTIMATOR_MODE"`
	InsecureFastScrypt                         bool            `json:"INSECURE_FAST_SCRYPT"`
	JSONConsole                                bool            `json:"JSON_CONSOLE"`
	JobPipelineReaperInterval                  time.Duration   `json:"JOB_PIPELINE_REAPER_INTERVAL"`
	JobPipelineReaperThreshold                 time.Duration   `json:"JOB_PIPELINE_REAPER_THRESHOLD"`
	KeeperDefaultTransactionQueueDepth         uint32          `json:"KEEPER_DEFAULT_TRANSACTION_QUEUE_DEPTH"`
	KeeperGasPriceBufferPercent                uint32          `json:"KEEPER_GAS_PRICE_BUFFER_PERCENT"`
	KeeperGasTipCapBufferPercent               uint32          `json:"KEEPER_GAS_TIP_CAP_BUFFER_PERCENT"`
	KeeperMaximumGracePeriod                   int64           `json:"KEEPER_MAXIMUM_GRACE_PERIOD"`
	KeeperRegistryCheckGasOverhead             uint64          `json:"KEEPER_REGISTRY_CHECK_GAS_OVERHEAD"`
	KeeperRegistryPerformGasOverhead           uint64          `json:"KEEPER_REGISTRY_PERFORM_GAS_OVERHEAD"`
	KeeperRegistrySyncInterval                 time.Duration   `json:"KEEPER_REGISTRY_SYNC_INTERVAL"`
	KeeperRegistrySyncUpkeepQueueSize          uint32          `json:"KEEPER_REGISTRY_SYNC_UPKEEP_QUEUE_SIZE"`
	KeeperCheckUpkeepGasPriceFeatureEnabled    bool            `json:"KEEPER_CHECK_UPKEEP_GAS_PRICE_FEATURE_ENABLED"`
	LeaseLockDuration                          time.Duration   `json:"LEASE_LOCK_DURATION"`
	LeaseLockRefreshInterval                   time.Duration   `json:"LEASE_LOCK_REFRESH_INTERVAL"`
	LinkContractAddress                        string          `json:"LINK_CONTRACT_ADDRESS"`
	FlagsContractAddress                       string          `json:"FLAGS_CONTRACT_ADDRESS"`
	LogLevel                                   LogLevel        `json:"LOG_LEVEL"`
	LogSQLMigrations                           bool            `json:"LOG_SQL_MIGRATIONS"`
	LogSQL                                     bool            `json:"LOG_SQL"`
	LogToDisk                                  bool            `json:"LOG_TO_DISK"`
	OCRBootstrapCheckInterval                  time.Duration   `json:"OCR_BOOTSTRAP_CHECK_INTERVAL"`
	TriggerFallbackDBPollInterval              time.Duration   `json:"JOB_PIPELINE_DB_POLL_INTERVAL"`
	OCRContractTransmitterTransmitTimeout      time.Duration   `json:"OCR_CONTRACT_TRANSMITTER_TRANSMIT_TIMEOUT"`
	OCRDatabaseTimeout                         time.Duration   `json:"OCR_DATABASE_TIMEOUT"`
	OCRDefaultTransactionQueueDepth            uint32          `json:"OCR_DEFAULT_TRANSACTION_QUEUE_DEPTH"`
	OCRIncomingMessageBufferSize               int             `json:"OCR_INCOMING_MESSAGE_BUFFER_SIZE"`
	P2PBootstrapPeers                          []string        `json:"P2P_BOOTSTRAP_PEERS"`
	P2PListenIP                                string          `json:"P2P_LISTEN_IP"`
	P2PListenPort                              string          `json:"P2P_LISTEN_PORT"`
	P2PNetworkingStack                         string          `json:"P2P_NETWORKING_STACK"`
	P2PPeerID                                  string          `json:"P2P_PEER_ID"`
	P2PV2AnnounceAddresses                     []string        `json:"P2PV2_ANNOUNCE_ADDRESSES"`
	P2PV2Bootstrappers                         []string        `json:"P2PV2_BOOTSTRAPPERS"`
	P2PV2DeltaDial                             models.Duration `json:"P2PV2_DELTA_DIAL"`
	P2PV2DeltaReconcile                        models.Duration `json:"P2PV2_DELTA_RECONCILE"`
	P2PV2ListenAddresses                       []string        `json:"P2PV2_LISTEN_ADDRESSES"`
	OCROutgoingMessageBufferSize               int             `json:"OCR_OUTGOING_MESSAGE_BUFFER_SIZE"`
	OCRNewStreamTimeout                        time.Duration   `json:"OCR_NEW_STREAM_TIMEOUT"`
	OCRDHTLookupInterval                       int             `json:"OCR_DHT_LOOKUP_INTERVAL"`
	OCRTraceLogging                            bool            `json:"OCR_TRACE_LOGGING"`
	Port                                       uint16          `json:"CHAINLINK_PORT"`
	ReaperExpiration                           models.Duration `json:"REAPER_EXPIRATION"`
	ReplayFromBlock                            int64           `json:"REPLAY_FROM_BLOCK"`
	RootDir                                    string          `json:"ROOT"`
	SecureCookies                              bool            `json:"SECURE_COOKIES"`
	SessionTimeout                             models.Duration `json:"SESSION_TIMEOUT"`
	TelemetryIngressLogging                    bool            `json:"TELEMETRY_INGRESS_LOGGING"`
	TelemetryIngressServerPubKey               string          `json:"TELEMETRY_INGRESS_SERVER_PUB_KEY"`
	TelemetryIngressURL                        string          `json:"TELEMETRY_INGRESS_URL"`
	TLSHost                                    string          `json:"CHAINLINK_TLS_HOST"`
	TLSPort                                    uint16          `json:"CHAINLINK_TLS_PORT"`
	TLSRedirect                                bool            `json:"CHAINLINK_TLS_REDIRECT"`
}

EnvPrinter contains the supported environment variables

type FilePersistedSecretGenerator

type FilePersistedSecretGenerator struct{}

func (FilePersistedSecretGenerator) Generate

func (f FilePersistedSecretGenerator) Generate(rootDir string) ([]byte, error)

type GeneralConfig

type GeneralConfig interface {
	GeneralOnlyConfig
	GlobalConfig
}

func NewGeneralConfig

func NewGeneralConfig() GeneralConfig

NewGeneralConfig returns the config with the environment variables set to their respective fields, or their defaults if environment variables are not set.

type GeneralOnlyConfig

type GeneralOnlyConfig interface {
	AdminCredentialsFile() string
	AllowOrigins() string
	AppID() uuid.UUID
	AuthenticatedRateLimit() int64
	AuthenticatedRateLimitPeriod() models.Duration
	AutoPprofEnabled() bool
	AutoPprofProfileRoot() string
	AutoPprofPollInterval() models.Duration
	AutoPprofGatherDuration() models.Duration
	AutoPprofGatherTraceDuration() models.Duration
	AutoPprofMaxProfileSize() utils.FileSize
	AutoPprofCPUProfileRate() int
	AutoPprofMemProfileRate() int
	AutoPprofBlockProfileRate() int
	AutoPprofMutexProfileFraction() int
	AutoPprofMemThreshold() utils.FileSize
	AutoPprofGoroutineThreshold() int
	BlockBackfillDepth() uint64
	BlockBackfillSkip() bool
	BridgeResponseURL() *url.URL
	CertFile() string
	ClientNodeURL() string
	DatabaseBackupDir() string
	DatabaseBackupFrequency() time.Duration
	DatabaseBackupMode() DatabaseBackupMode
	DatabaseBackupURL() *url.URL
	DatabaseBackupOnVersionUpgrade() bool
	DatabaseListenerMaxReconnectDuration() time.Duration
	DatabaseListenerMinReconnectInterval() time.Duration
	DatabaseLockingMode() string
	DatabaseMaximumTxDuration() time.Duration
	DatabaseTimeout() models.Duration
	DatabaseURL() url.URL
	DefaultChainID() *big.Int
	DefaultHTTPAllowUnrestrictedNetworkAccess() bool
	DefaultHTTPLimit() int64
	DefaultHTTPTimeout() models.Duration
	DefaultMaxHTTPAttempts() uint
	Dev() bool
	EVMDisabled() bool
	EthereumDisabled() bool
	EthereumHTTPURL() *url.URL
	EthereumSecondaryURLs() []url.URL
	EthereumURL() string
	ExplorerAccessKey() string
	ExplorerSecret() string
	ExplorerURL() *url.URL
	FMDefaultTransactionQueueDepth() uint32
	FMSimulateTransactions() bool
	FeatureExternalInitiators() bool
	FeatureFeedsManager() bool
	FeatureOffchainReporting() bool
	FeatureUICSAKeys() bool
	FeatureUIFeedsManager() bool
	GetAdvisoryLockIDConfiguredOrDefault() int64
	GetDatabaseDialectConfiguredOrDefault() dialects.DialectName
	GlobalLockRetryInterval() models.Duration
	HTTPServerWriteTimeout() time.Duration
	InsecureFastScrypt() bool
	InsecureSkipVerify() bool
	JSONConsole() bool
	JobPipelineMaxRunDuration() time.Duration
	JobPipelineReaperInterval() time.Duration
	JobPipelineReaperThreshold() time.Duration
	JobPipelineResultWriteQueueDepth() uint64
	KeeperDefaultTransactionQueueDepth() uint32
	KeeperGasPriceBufferPercent() uint32
	KeeperGasTipCapBufferPercent() uint32
	KeeperMaximumGracePeriod() int64
	KeeperRegistryCheckGasOverhead() uint64
	KeeperRegistryPerformGasOverhead() uint64
	KeeperRegistrySyncInterval() time.Duration
	KeeperRegistrySyncUpkeepQueueSize() uint32
	KeeperCheckUpkeepGasPriceFeatureEnabled() bool
	KeyFile() string
	LeaseLockRefreshInterval() time.Duration
	LeaseLockDuration() time.Duration
	LogLevel() zapcore.Level
	DefaultLogLevel() zapcore.Level
	LogSQLMigrations() bool
	LogSQL() bool
	LogToDisk() bool
	LogUnixTimestamps() bool
	MigrateDatabase() bool
	OCRBlockchainTimeout() time.Duration
	OCRBootstrapCheckInterval() time.Duration
	OCRContractPollInterval() time.Duration
	OCRContractSubscribeInterval() time.Duration
	OCRContractTransmitterTransmitTimeout() time.Duration
	OCRDHTLookupInterval() int
	OCRDatabaseTimeout() time.Duration
	OCRDefaultTransactionQueueDepth() uint32
	OCRIncomingMessageBufferSize() int
	OCRKeyBundleID() (string, error)
	OCRMonitoringEndpoint() string
	OCRNewStreamTimeout() time.Duration
	OCRObservationGracePeriod() time.Duration
	OCRObservationTimeout() time.Duration
	OCROutgoingMessageBufferSize() int
	OCRSimulateTransactions() bool
	OCRTraceLogging() bool
	OCRTransmitterAddress() (ethkey.EIP55Address, error)
	ORMMaxIdleConns() int
	ORMMaxOpenConns() int
	P2PAnnounceIP() net.IP
	P2PAnnouncePort() uint16
	P2PBootstrapPeers() ([]string, error)
	P2PDHTAnnouncementCounterUserPrefix() uint32
	P2PListenIP() net.IP
	P2PListenPort() uint16
	P2PListenPortRaw() string
	P2PNetworkingStack() (n ocrnetworking.NetworkingStack)
	P2PNetworkingStackRaw() string
	P2PPeerID() p2pkey.PeerID
	P2PPeerIDRaw() string
	P2PPeerstoreWriteInterval() time.Duration
	P2PV2AnnounceAddresses() []string
	P2PV2AnnounceAddressesRaw() []string
	P2PV2Bootstrappers() (locators []ocrtypes.BootstrapperLocator)
	P2PV2BootstrappersRaw() []string
	P2PV2DeltaDial() models.Duration
	P2PV2DeltaReconcile() models.Duration
	P2PV2ListenAddresses() []string
	Port() uint16
	RPID() string
	RPOrigin() string
	ReaperExpiration() models.Duration
	ReplayFromBlock() int64
	RootDir() string
	SecureCookies() bool
	SessionOptions() sessions.Options
	SessionSecret() ([]byte, error)
	SessionTimeout() models.Duration
	SetDialect(dialects.DialectName)
	SetLogLevel(lvl zapcore.Level) error
	SetLogSQL(logSQL bool)
	StatsPusherLogging() bool
	TLSCertPath() string
	TLSDir() string
	TLSHost() string
	TLSKeyPath() string
	TLSPort() uint16
	TLSRedirect() bool
	TelemetryIngressLogging() bool
	TelemetryIngressServerPubKey() string
	TelemetryIngressURL() *url.URL
	TriggerFallbackDBPollInterval() time.Duration
	UnAuthenticatedRateLimit() int64
	UnAuthenticatedRateLimitPeriod() models.Duration
	Validate() error
}

type GlobalConfig

type GlobalConfig interface {
	GlobalBalanceMonitorEnabled() (bool, bool)
	GlobalBlockEmissionIdleWarningThreshold() (time.Duration, bool)
	GlobalBlockHistoryEstimatorBatchSize() (uint32, bool)
	GlobalBlockHistoryEstimatorBlockDelay() (uint16, bool)
	GlobalBlockHistoryEstimatorBlockHistorySize() (uint16, bool)
	GlobalBlockHistoryEstimatorTransactionPercentile() (uint16, bool)
	GlobalEthTxReaperInterval() (time.Duration, bool)
	GlobalEthTxReaperThreshold() (time.Duration, bool)
	GlobalEthTxResendAfterThreshold() (time.Duration, bool)
	GlobalEvmDefaultBatchSize() (uint32, bool)
	GlobalEvmEIP1559DynamicFees() (bool, bool)
	GlobalEvmFinalityDepth() (uint32, bool)
	GlobalEvmGasBumpPercent() (uint16, bool)
	GlobalEvmGasBumpThreshold() (uint64, bool)
	GlobalEvmGasBumpTxDepth() (uint16, bool)
	GlobalEvmGasBumpWei() (*big.Int, bool)
	GlobalEvmGasLimitDefault() (uint64, bool)
	GlobalEvmGasLimitMultiplier() (float32, bool)
	GlobalEvmGasLimitTransfer() (uint64, bool)
	GlobalEvmGasPriceDefault() (*big.Int, bool)
	GlobalEvmGasTipCapDefault() (*big.Int, bool)
	GlobalEvmGasTipCapMinimum() (*big.Int, bool)
	GlobalEvmHeadTrackerHistoryDepth() (uint32, bool)
	GlobalEvmHeadTrackerMaxBufferSize() (uint32, bool)
	GlobalEvmHeadTrackerSamplingInterval() (time.Duration, bool)
	GlobalEvmLogBackfillBatchSize() (uint32, bool)
	GlobalEvmMaxGasPriceWei() (*big.Int, bool)
	GlobalEvmMaxInFlightTransactions() (uint32, bool)
	GlobalEvmMaxQueuedTransactions() (uint64, bool)
	GlobalEvmMinGasPriceWei() (*big.Int, bool)
	GlobalEvmNonceAutoSync() (bool, bool)
	GlobalEvmRPCDefaultBatchSize() (uint32, bool)
	GlobalFlagsContractAddress() (string, bool)
	GlobalGasEstimatorMode() (string, bool)
	GlobalChainType() (string, bool)
	GlobalLinkContractAddress() (string, bool)
	GlobalMinIncomingConfirmations() (uint32, bool)
	GlobalMinRequiredOutgoingConfirmations() (uint64, bool)
	GlobalMinimumContractPayment() (*assets.Link, bool)
	GlobalOCRContractConfirmations() (uint16, bool)
}

GlobalConfig holds global ENV overrides for EVM chains If set the global ENV will override everything The second bool indicates if it is set or not

type LogLevel

type LogLevel struct {
	zapcore.Level
}

LogLevel determines the verbosity of the events to be logged.

type SecretGenerator

type SecretGenerator interface {
	Generate(string) ([]byte, error)
}

SecretGenerator is the interface for objects that generate a secret used to sign or encrypt.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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