Configuration
We generate config specification for all our components automatically.
Here is full specification for what can be specificed in env.toml for devenv.
.out fields are useful in case you want to use remote component, or integrate in other language than Go, otherwise can be ignored.
Fakes
Fake HTTP service with recording capabilities.
[fakes]
# Fake service image, usually can be found in our ECR with $project-fakes name
image = ''
# The port which Docker container is exposing
port = 0
# Fakes service config output
[fakes.out]
# Whether to respect caching or not, if cache = true component won't be deployed again
use_cache = false
# Base URL which can be used when running locally
base_url_host = ''
# Base URL to reach fakes service from other Docker containers
base_url_docker = ''
Blockchains
Various types of blockchain nodes.
[[blockchains]]
# Type can be one of: anvil geth besu solana aptos tron sui ton canton, this struct describes common configuration we are using across all blockchains
type = ''
# Blockchain node image in format: $registry:$image, ex.: ghcr.io/foundry-rs/foundry:stable
image = ''
# Whether to pull image or not when creating Docker container
pull_image = false
# The port Docker container will expose
port = ''
# Docker container name
container_name = ''
# WebSocket port container will expose
port_ws = ''
# Blockchain chain ID
chain_id = ''
# Docker command parameters override, ex. for Anvil: ["-b", "1", "--mixed-mining"]
docker_cmd_params = []
# Public key to mint when solana-test-validator starts
public_key = ''
# Solana's contracts directory
contracts_dir = ''
# Custom ports pairs in format $host_port_number:$docker_port_number
custom_ports = []
# Sui blockchain network faucet port
faucet_port = ''
# Number of Canton network validators
number_of_canton_validators = 0
# GAPv2 specific paramter: host netowork mode, if 'true' will run environment in host network mode
host_network_mode = false
# GAPv2 specific parameter: path to default Ubuntu's certificates
certificates_path = ''
# Docker image platform, default is 'linux/amd64'
image_platform = ''
# blockchain deployment output
[blockchains.out]
# Whether to respect caching or not, if cache = true component won't be deployed again
use_cache = false
# Type can be one of: anvil geth besu solana aptos tron sui ton canton, this struct describes common configuration we are using across all blockchains
type = ''
# Blockchain family, can be one of: evm solana aptos sui tron ton canton
family = ''
# Blockchain Docker container name
container_name = ''
# Chain ID
chain_id = ''
# Blockchain network-specific data
[blockchains.out.network_specific_data]
# Sui network account info
[blockchains.out.network_specific_data.sui_account]
# Alias key name, usually null
alias = ''
# -
flag = 0
# Sui key scheme
key_scheme = ''
# Sui key mnemonic
mnemonic = ''
# Sui key peer ID
peer_id = ''
# Sui key in base64 format
public_base64_key = ''
# Sui key address
sui_address = ''
# Canton network endpoints info
[blockchains.out.network_specific_data.canton_endpoints]
# https://docs.sync.global/app_dev/scan_api/index.html
scan_api_url = ''
# https://docs.sync.global/app_dev/token_standard/index.html#api-references
registry_api_url = ''
# Canton network super validator
[blockchains.out.network_specific_data.canton_endpoints.super_validator]
# https://docs.digitalasset.com/build/3.5/reference/json-api/json-api.html
json_ledger_api_url = ''
# https://docs.digitalasset.com/build/3.5/reference/lapi-proto-docs.html
grpc_ledger_api_url = ''
# https://docs.digitalasset.com/operate/3.5/howtos/configure/apis/admin_api.html
admin_api_url = ''
# https://docs.sync.global/app_dev/validator_api/index.html
validator_api_url = ''
# HTTP health check endpoint, responds on GET /health
http_health_check_url = ''
# GRPC health check endpoint, responds to grpc.health.v1.Health/Check
grpc_health_check_url = ''
# JSON Web Token for this participant
jwt = ''
# Canton participant endpoints
[[blockchains.out.network_specific_data.canton_endpoints.participants]]
# https://docs.digitalasset.com/build/3.5/reference/json-api/json-api.html
json_ledger_api_url = ''
# https://docs.digitalasset.com/build/3.5/reference/lapi-proto-docs.html
grpc_ledger_api_url = ''
# https://docs.digitalasset.com/operate/3.5/howtos/configure/apis/admin_api.html
admin_api_url = ''
# https://docs.sync.global/app_dev/validator_api/index.html
validator_api_url = ''
# HTTP health check endpoint, responds on GET /health
http_health_check_url = ''
# GRPC health check endpoint, responds to grpc.health.v1.Health/Check
grpc_health_check_url = ''
# JSON Web Token for this participant
jwt = ''
# Blockchain nodes info
[[blockchains.out.nodes]]
# External blockchain node WebSocket URL
ws_url = ''
# External blockchain node HTTP URL
http_url = ''
# Internal blockchain node WebSocket URL
internal_ws_url = ''
# Internal blockchain node HTTP URL
internal_http_url = ''
# Solana's programs, map of program name to program ID, there needs to be a matching .so file in contracts_dir
[blockchains.solana_programs]
# Docker container resources
[blockchains.resources]
# CPU shares, ex.: 2
cpus = 0.0
# Memory in MegaBytes, ex.:"200"
memory_mb = 0
# Docker container environment variables in TOML format key = value
[blockchains.custom_env]
Node Set
Chainlink node set forming a Decentralized Oracle Network.
[[nodesets]]
# Node set name, ex.:'don-1', Docker containers will be prefixed with this name so tests can distinguish one DON from another
name = ''
# Number of nodes in node set
nodes = 0
# HTTP ports range starting with port X and increasing by 1
http_port_range_start = 0
# P2P ports range starting with port X and increasing by 1
p2p_port_range_start = 0
# Delve debugger ports range starting with port X and increasing by 1
dlv_port_range_start = 0
# Override mode, applicable only to 'localcre'. Changes how config overrides to TOML nodes apply
override_mode = ''
# Turn DNS on, helpful to isolate container from the internet
no_dns = false
# Shared node set data base input for PostgreSQL
[nodesets.db]
# PostgreSQL Docker image in format: $registry:$tag
image = ''
# PostgreSQL connection port
port = 0
# PostgreSQL container name
name = ''
# PostgreSQL docker volume name
volume_name = ''
# Number of pre-created databases for Chainlink nodes
databases = 0
# Whether to create JobDistributor database or not
jd_database = false
# JobDistributor database dump path to load
jd_sql_dump_path = ''
# Whether to pull PostgreSQL image or not
pull_image = false
# Docker container resources
[nodesets.db.resources]
# CPU shares, ex.: 2
cpus = 0.0
# Memory in MegaBytes, ex.:"200"
memory_mb = 0
# PostgreSQL config output
[nodesets.db.out]
# PostgreSQL connection URL
url = ''
# Docker container name
container_name = ''
# PostgreSQL internal connection URL
internal_url = ''
# PostgreSQL internal connection URL to JobDistributor database
jd_url = ''
# PostgreSQL internal connection URL to JobDistributor database
jd_internal_url = ''
# Chainlink node TOML configurations
[[nodesets.node_specs]]
# whether to allow DNS in Docker containers or not, useful for isolating containers from network if set to 'false'
no_dns = false
# PostgreSQL database configuration
[nodesets.node_specs.db]
# PostgreSQL Docker image in format: $registry:$tag
image = ''
# PostgreSQL connection port
port = 0
# PostgreSQL container name
name = ''
# PostgreSQL docker volume name
volume_name = ''
# Number of pre-created databases for Chainlink nodes
databases = 0
# Whether to create JobDistributor database or not
jd_database = false
# JobDistributor database dump path to load
jd_sql_dump_path = ''
# Whether to pull PostgreSQL image or not
pull_image = false
# Docker container resources
[nodesets.node_specs.db.resources]
# CPU shares, ex.: 2
cpus = 0.0
# Memory in MegaBytes, ex.:"200"
memory_mb = 0
# PostgreSQL config output
[nodesets.node_specs.db.out]
# PostgreSQL connection URL
url = ''
# Docker container name
container_name = ''
# PostgreSQL internal connection URL
internal_url = ''
# PostgreSQL internal connection URL to JobDistributor database
jd_url = ''
# PostgreSQL internal connection URL to JobDistributor database
jd_internal_url = ''
# Chainlink node configuration
[nodesets.node_specs.node]
# Chainlink node Docker image in format $registry:$tag
image = ''
# Chainlink node Docker container name
name = ''
# Docker file path to rebuild, relative to 'docker_ctx' field path
docker_file = ''
# Docker build context path
docker_ctx = ''
# Whether to pull Docker image or not
pull_image = false
# Chainlink CRE capabilities paths for WASM binaries
capabilities = []
# path to capabilities inside Docker container (capabilities are copied inside container from local path)
capabilities_container_dir = ''
# node config overrides field for programmatic usage in tests
test_config_overrides = ''
# node config overrides field for manual overrides from env.toml configs
user_config_overrides = ''
# node secrets config overrides field for programmatic usage in tests
test_secrets_overrides = ''
# node secrets config overrides field for manual overrides from env.toml configs
user_secrets_overrides = ''
# Chainlink node API HTTP port
port = 0
# Chainlink node P2P port
p2p_port = 0
# Custom ports pairs in format $host_port_number:$docker_port_number
custom_ports = []
# Delve debugger port
debugger_port = 0
# Docker build args in format key = value or map format, ex.: "CL_IS_PROD_BUILD" = "false"
[nodesets.node_specs.node.docker_build_args]
# Docker container resources
[nodesets.node_specs.node.resources]
# CPU shares, ex.: 2
cpus = 0.0
# Memory in MegaBytes, ex.:"200"
memory_mb = 0
# Docker container environment variables
[nodesets.node_specs.node.env_vars]
# Chainlink node configuration output
[nodesets.node_specs.out]
# Whether to respect caching or not, if cache = true component won't be deployed again
use_cache = false
# Chainlink node config output
[nodesets.node_specs.out.node]
# User name for basic login/password authorization in Chainlink node
api_auth_user = ''
# Password for basic login/password authorization in Chainlink node
api_auth_password = ''
# Node Docker contaner name
container_name = ''
# Node external API HTTP URL
url = ''
# Node internal API HTTP URL
internal_url = ''
# Node internal P2P URL
p2p_internal_url = ''
# Node internal IP
internal_ip = ''
# PostgreSQL config output
[nodesets.node_specs.out.postgresql]
# PostgreSQL connection URL
url = ''
# Docker container name
container_name = ''
# PostgreSQL internal connection URL
internal_url = ''
# PostgreSQL internal connection URL to JobDistributor database
jd_url = ''
# PostgreSQL internal connection URL to JobDistributor database
jd_internal_url = ''
# Nodeset config output
[nodesets.out]
# Whether to respect caching or not, if cache = true component won't be deployed again
use_cache = false
# Nodeset shared database output (PostgreSQL)
[nodesets.out.db_out]
# PostgreSQL connection URL
url = ''
# Docker container name
container_name = ''
# PostgreSQL internal connection URL
internal_url = ''
# PostgreSQL internal connection URL to JobDistributor database
jd_url = ''
# PostgreSQL internal connection URL to JobDistributor database
jd_internal_url = ''
# Chainlink node config outputs
[[nodesets.out.cl_nodes]]
# Whether to respect caching or not, if cache = true component won't be deployed again
use_cache = false
# Chainlink node config output
[nodesets.out.cl_nodes.node]
# User name for basic login/password authorization in Chainlink node
api_auth_user = ''
# Password for basic login/password authorization in Chainlink node
api_auth_password = ''
# Node Docker contaner name
container_name = ''
# Node external API HTTP URL
url = ''
# Node internal API HTTP URL
internal_url = ''
# Node internal P2P URL
p2p_internal_url = ''
# Node internal IP
internal_ip = ''
# PostgreSQL config output
[nodesets.out.cl_nodes.postgresql]
# PostgreSQL connection URL
url = ''
# Docker container name
container_name = ''
# PostgreSQL internal connection URL
internal_url = ''
# PostgreSQL internal connection URL to JobDistributor database
jd_url = ''
# PostgreSQL internal connection URL to JobDistributor database
jd_internal_url = ''