Interpolate Command
Replace Keeper notation in template files with actual secret values from your Keeper vault.
Last updated
Was this helpful?
Was this helpful?
keeper://RECORD_UID/field/FIELD_NAME
keeper://RECORD_UID/custom_field/CUSTOM_FIELD_NAME
keeper://RECORD_UID/file/FILE_NAMEkeeper://RECORD_UID/field/FIELD_NAME:-default_valuekeeper://RECORD_UID/field/FIELD_NAME|transform
keeper://RECORD_UID/field/FIELD_NAME:-default|transformksm interpolate secrets.env --output-file /tmp/secrets.env
source /tmp/secrets.env && rm /tmp/secrets.enveval "$(ksm interpolate secrets.env --allow-unsafe-for-eval)"# Database configuration
DB_HOST=keeper://MyDatabaseCreds/field/host
DB_PORT=keeper://MyDatabaseCreds/field/port
DB_PASSWORD=keeper://MyDatabaseCreds/field/password
# API configuration
API_KEY=keeper://ApiCredentials/custom_field/api_key$ ksm interpolate config.env.template --output-file config.env# Database configuration
DB_HOST=db.example.com
DB_PORT=5432
DB_PASSWORD=MySecurePassword123
# API configuration
API_KEY=sk-1234567890abcdef$ ksm exec -- source .env
Error: No such file or directory: 'source'$ ksm interpolate secrets.env --output-file /tmp/secrets.env
$ source /tmp/secrets.env
$ rm /tmp/secrets.env$ eval "$(ksm interpolate secrets.env --allow-unsafe-for-eval)"# Use production values if available, otherwise defaults
DB_HOST=keeper://ProdDB/field/host:-localhost
DB_PORT=keeper://ProdDB/field/port:-5432
# Base64-encoded JWT secret
JWT_SECRET=keeper://Auth/field/secret|base64
# URL-encoded callback parameter
CALLBACK_URL=keeper://Config/field/callback|urlencode
# Combined: default + transformation
ENCODED_KEY=keeper://API/field/key:-default_value|base64$ ksm interpolate app.env.template --output-file app.envcat config.template | ksm interpolate > config.envksm interpolate *.templateksm interpolate --in-place --backup-suffix .bak config.envksm interpolate --dry-run --verbose production.env.template