Properties
Properties provide named string values to Kubling’s template parser. They can be defined for the whole application or for one data source.
Application-wide properties
The application configuration supports inline properties and an external properties file:
properties:
REGION: "eu-west"
API_BASE_URL: "https://api.example.com"
propertiesFilePath: "/etc/kubling/runtime.properties"Application-wide values are combined in this order, from lowest to highest precedence:
- Inline
properties - Environment variables
- Values loaded from
propertiesFilePath
The properties file uses the standard key=value format:
REGION=eu-central
API_BASE_URL=https://api.internal.example.comBlank lines and lines beginning with # are ignored. Whitespace around the
key and value is also ignored.
The main application configuration is parsed before its inline and file-based properties are loaded. Use environment variables for templates inside that file. The resulting application properties are available to configuration templates loaded later.
Do not commit credentials in inline properties or properties files. Inject them through the deployment platform’s environment or secret-mount mechanism.
Data source properties
dataSources[].properties adds values to one data source’s template context.
These values override application-wide properties with the same name when
Kubling parses that data source’s external configuration.
dataSources:
- name: inventory
dataSourceType: PROVIDER_GRPC
properties:
PROVIDER_HOST: inventory-provider
config: "bundle:inventory-provider.yaml"The referenced configuration can then use the value directly:
address: "{{ PROVIDER_HOST }}"
port: 50051Use config when data source-scoped interpolation is required.
configObject is already part of the VDB document and is not parsed again
with the data source’s property scope.
Schema properties
dataSources[].schema.properties carries values that belong to the schema
model rather than to the connection configuration:
schema:
type: PHYSICAL
properties:
catalog: inventory
ddlFilePaths:
- "bundle:inventory.ddl"Schema DDL templates access these values through the schema object, for
example {{ schema.properties.catalog }}. This keeps a shared DDL file
independent from one deployment’s schema values.