Eval variables
eval(...) evaluates a sandboxed expression against resolved data. It is data-flow logic, not JavaScript eval or Function execution.
evalStage: ${opt:stage, "dev"}
replicas: ${opt:replicas, 2 | Number}
isScaled: ${eval(${self:replicas} > 1)}
minReplicas: 2
desiredReplicas: '${eval(${replicas} < ${minReplicas} ? ${minReplicas} : ${replicas})}'
workerMemoryMb: ${eval(${replicas} * 256)}
canDeploy: ${eval(${evalStage} == "prod" && ${replicas} >= 3)}Use eval for small boolean, arithmetic, or comparison expressions. Avoid using it as a substitute for a full programming language; executable config belongs in trusted JS/TS modules.
Common uses
replicas: ${opt:replicas, 2 | Number}
minReplicas: 2
isScaled: ${eval(${replicas} > 1)}
desiredReplicas: '${eval(${replicas} < ${minReplicas} ? ${minReplicas} : ${replicas})}'
workerMemoryMb: ${eval(${replicas} * 256)}Compare inputs
eval(...) can use resolved values from any variable source.
stage: ${opt:stage, "dev"}
region: ${env:AWS_REGION, "us-east-1"}
databaseTier: ${file(./settings.yml):database.tier}
isProd: ${eval(${stage} == "prod")}
useMultiAz: ${eval(${stage} == "prod" && ${databaseTier} == "standard")}
isPrimaryRegion: ${eval(${region} == "us-east-1")}Return values
Expressions can return booleans, numbers, or strings.
stage: ${opt:stage, "dev"}
replicas: ${opt:replicas, 1 | Number}
environmentName: '${eval(${stage} == "prod" ? "production" : "development")}'
timeoutSeconds: '${eval(${stage} == "prod" ? 30 : 5)}'
hasWorkers: ${eval(${replicas} > 0)}Safety
eval(...) uses Configorama’s sandboxed expression evaluator. Use it for config-time decisions without turning the config file into executable JS.
See security model for the data-flow classification and dynamic configuration for conditional examples.
Last updated on