ores.variability.core
Table of Contents
2. Summary
ores.variability.core manages system-wide configuration and runtime
variability for ORE Studio. It stores feature flags and system settings in the
database with bitemporal versioning (so any configuration change can be audited
and rolled back), and exposes NATS handlers for querying and updating settings
at runtime. Other components depend on this library to drive runtime-
configurable behaviour without redeployment.
3. Inputs
- NATS request messages for setting query/update operations.
- PostgreSQL connections to the
ores_variability_*tables with temporal versioning.
4. Outputs
- System-setting records persisted to the
ores_variabilityschema with bitemporal history. - NATS response messages returned to callers.
5. Entry points
include/ores.variability.core/ores.variability.hpp— aggregate include.include/ores.variability.core/messaging/registrar.hpp— registers NATS handlers with the service host.include/ores.variability.core/service/— setting management services.include/ores.variability.core/repository/— ORM entities and mappers.
6. Dependencies
ores.variability.api— shared domain types and NATS protocol schemas.ores.dq— ORM base classes.soci— SQL ORM for PostgreSQL persistence.nats.c— NATS messaging client.
7. Build dependencies
What the shared profile cannot know, declared here rather than hand-edited into the generated build file. Each block is spliced into its generated file after the profile's baseline.
8. See also
- ores.variability.api — protocol types and domain entities.
- ores.variability.service — NATS service entrypoint.
- ores.variability Messaging Reference — full NATS subject and message catalogue.
9. Test dependencies
The suites link what the profile cannot know about.
target_link_libraries(${lib_target_name}
PUBLIC
ores.variability.api.lib
ores.database.lib
ores.logging.lib
ores.nats.lib
PRIVATE
ores.service.lib
ores.utility.lib
ores.security.lib
ores.dq.api.lib
ores.history.core.lib
ores.diff.lib
ores.eventing.core.lib
faker-cxx::faker-cxx
libfort::fort
Boost::boost)
target_link_libraries(${tests_target_name}
PRIVATE
${lib_target_name}
ores.telemetry.core.lib
ores.utility.lib
ores.logging.lib
ores.service.lib
ores.eventing.api.lib
ores.eventing.core.lib
ores.refdata.core.lib
ores.diff.lib
ores.testing.lib
ores.openssl_cleanup
Catch2::Catch2
faker-cxx::faker-cxx
Threads::Threads)
