Configuration¶
DP³ configuration is split across multiple files. You can browse them by filename below, but if you need to configure a specific aspect of the platform, start with these task-oriented groups. For step-by-step workflows, see the How-to guides.
How to configure the platform and required services¶
Use these pages when wiring DP³ to MongoDB, RabbitMQ, Redis, and the basic API/runtime settings needed to get the platform running. The supplied Docker Compose setup already starts MongoDB, RabbitMQ, and Redis for local development, but their connection details and runtime knobs are still configured in these files.
ð database.yml- MongoDB connection and storage settings.ð processing_core.yml- Worker processes, threads, RabbitMQ connection, and enabled modules.ð event_logging.yml- Redis-based event logging.ð api.yml- API-facing settings, including datapoint logging.ð control.yml- Operational actions exposed by the/controlendpoint.
How to configure the data model and entity lifecycle¶
Use these pages to define entities and attributes, decide how long entities should live, and understand how cleanup settings affect them. Entities are immortal by default, so most applications should review lifetime and cleanup settings explicitly.
ð db_entities- Entity and attribute definitions.ð lifetimes- Lifetime policies such as immortal, TTL, and weak entities.ð garbage_collector.yml- How often expired entities are collected.ð history_manager.yml- Cleanup and retention tasks that affect stored history and snapshots.- How to add an attribute - End-to-end rollout of a newly configured attribute.
How to configure snapshots¶
Snapshot behavior spans several files: whether an entity supports snapshots, when snapshots are created, how long they are kept, how they are stored, and whether they can be triggered manually.
ð snapshots.yml- Snapshot creation schedule and snapshot-specific options.ð db_entities- Per-entity snapshot enablement viaentity.snapshot.ð history_manager.yml- Snapshot cleanup schedule and retention window.ð database.yml- Snapshot storage-related database settings.ð control.yml- Manual snapshot triggering throughmake_snapshots.
How to configure data retention, cleanup, and archival¶
Use these pages when deciding how long datapoints and snapshots are kept, when old data is aggregated or deleted, and whether raw datapoints are archived.
ð db_entities- Per-attribute retention settings such ashistory_params.max_ageandtimeseries_params.max_age.ð history_manager.yml- Aggregation, cleaning, snapshot pruning, and datapoint archivation schedules.ð lifetimes- How incoming data can extend entity lifetime.ð garbage_collector.yml- Final collection of expired entities.
How to configure modules, new attributes, and periodic jobs¶
Use these pages when enabling modules, adding module-specific configuration, scheduling periodic updates, or rolling out a newly emitted attribute. If a module or external producer starts sending a new attribute, define it in db_entities first, validate the configuration with dp3 check, and then reload the affected API and worker processes.
ð processing_core.yml- Module loading, worker runtime, and enabled modules.ð modules- Module-specific configuration files.ð updater.yml- Periodic batch updates over stored entities.ð control.yml- Refresh actions for module configuration and entity initialization.ð db_entities- Attribute definitions required for module-produced data.- How to add an attribute - The shared workflow for attributes emitted by external producers and DP³ modules.
- How to add an input module - Connect an external producer to the DP³ API.
- How to add a secondary module - Add worker-side logic that reacts to incoming or stored data.
Reference by file¶
DP³ configuration folder consists of these files and folders:
ð db_entities- Database entities configuration folder. This is your data model.ð modules- Modules configuration folder.ð api.yml- API configuration file.ð control.yml- Configuration file controlling allowed/controlendpoint actions.ð database.yml- Connection to the DB.ð event_logging.yml- Tracking the app operation using Redis.ð garbage_collector.yml- Removing entities with expired lifetimes.ð history_manager.yml- How often is history management performed.ð processing_core.yml- Settings of main application workers.ð snapshots.yml- How often are entity snapshots taken.ð updater.yml- Periodic updates of all entities over a longer time frame.
The details of their meaning and usage are explained on their respective pages.
Example configuration¶
Example configuration is included config/ folder in DP³ repository.