Documentation Index
Fetch the complete documentation index at: https://docs.springtail.io/llms.txt
Use this file to discover all available pages before exploring further.
Properties Component
The Properties class is shared by all backend processes and is responsible for accessing and managing configuration and system properties in the Springtail system.Setup
This component can be initialized in two ways:- through properties file override
- through Redis
SPRINGTAIL_PROPERTIES_FILE environment variable that contains properties file like system.json.settings. This file is designed for running a minimalistic setup in the development environment. This file will be loaded into Redis and all the information for accessing Redis will come from this file.
To run the services through Redis without properties file, it is required to setup a number of environment variables:
INSTANCE_KEY and FDW_ID, these environment variables will be all setup in the same way, while INSTANCE_KEY and FDW_ID will be different per server process and FDW instance.
The information in these environment variables will be used to access Redis and read the rest of the configuration from there.
Configuration
The configuration consists of multiple components and is stored in JSON format in Redis. All top level keys created in Redis are prefixed with the value ofDATABASE_INSTANCE_ID followed by ”:”. It will be stored in instance_config hash under system_settings key. The value of the system settings is a JSON string that contains configuration for different system components that belong to one or more processes.
Here is a list of various configuration components and what they belong to:
logging- common for all processesiopool- only for processes accessing data storagewrite_cache- only for log manager that implements ingestion pipelinsys_tbl_mgr- only for processes accessing data storagestorage- only for processes accessing data storagelog_mgr- only for log manager processfs- only for processes accessing data storageextension_config- only for FDW processesproxy- only for proxyaws_users_override- common for all process, for testing in local development environment only, it prevents Properties component from accessing AWSotel- Open Telemetry configuration used by all processes
Functionality
Properties class provides a variety of get and set API calls for accessing and manipulating the data stored in Redis configuration database. Upon startup, it will read all the data from Redis and store them internally. The data that it is going to manage are all stored withDATABASE_INSTANCE_ID prefix in the key.