ores.reporting.core
Table of Contents
2. Summary
ores.reporting.core manages the report lifecycle in ORE Studio: report-type
definitions (e.g., NPV cube, trade cashflows, XVA), parameterised report
definitions, execution instances with concurrency policies, and run history.
It exposes NATS handlers for report CRUD and triggering ORE risk runs, and
persists all report metadata to the ores_reporting schema.
3. Inputs
- NATS request messages for report-type, definition, and instance management.
- PostgreSQL connections to
ores_reporting_*tables. - ORE risk-engine invocations triggered by the scheduler or client requests.
4. Outputs
- Report-definition and run-instance records persisted to the
ores_reportingschema. - ORE output files (NPV cube, cashflows) made available to UI clients.
- NATS response messages returned to callers.
5. Entry points
include/ores.reporting.core/ores.reporting.core.hpp— aggregate include.include/ores.reporting.core/messaging/registrar.hpp— registers all NATS handlers with the service host.include/ores.reporting.core/service/— per-entity service headers.
6. Dependencies
ores.reporting.api— shared domain types and NATS protocol schemas.ores.dq— ORM base classes and persistence infrastructure.ores.iam.core— identity and authorisation context.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.reporting — component group overview.
- ores.reporting.api — protocol types and domain entities.
- ores.reporting.service — NATS service entrypoint.
- ores.reporting 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.reporting.api.lib
ores.database.lib
ores.logging.lib
ores.nats.lib
ores.scheduler.api.lib
ores.service.lib
PRIVATE
ores.compute.api.lib
ores.diff.lib
ores.dq.api.lib
ores.history.core.lib
ores.iam.api.lib
ores.iam.client.lib
ores.marketdata.api.lib
ores.ore.core.lib
ores.platform.lib
ores.storage.api.lib
ores.storage.core.lib
ores.trading.api.lib
ores.utility.lib
ores.workflow.core.lib
ores.security.lib
faker-cxx::faker-cxx
libfort::fort
Boost::boost
Boost::json)
target_link_libraries(${tests_target_name}
PRIVATE
${lib_target_name}
ores.ore.core.lib
ores.reporting.service.lib
ores.inbox.api.lib
ores.inbox.core.lib
ores.refdata.api.lib
ores.iam.api.lib
ores.iam.core.lib
ores.eventing.core.lib
ores.nats.lib
ores.refdata.core.lib
ores.scheduler.core.lib
ores.storage.api.lib
ores.storage.core.lib
ores.utility.lib
ores.workflow.core.lib
ores.testing.lib
ores.logging.lib
Catch2::Catch2
faker-cxx::faker-cxx
ores.openssl_cleanup
Threads::Threads)
