ores.assets.core
Table of Contents
2. Summary
ores.assets.core manages dynamically loaded images (SVG), tags, image-tag
associations, and currency-to-image mappings in ORE Studio. It provides the
business logic and persistence layer — domain services, temporal ORM
repositories, and NATS message handlers in the 0x4000–0x4FFF range — that
let clients store, categorise, and retrieve asset images at runtime. It also
ships a synthetic-data generator for test and development use.
3. Inputs
- NATS request messages from UI clients (image create/update/query, tag operations, currency-image lookups) in the 0x4000–0x4FFF range.
- PostgreSQL connections to
ores_assets_*tables (images,tags,image_tags,currency_images) with temporal versioning. - DQ population events via
publish_from_dq_handlerwhen assets are loaded from the data-quality pipeline.
4. Outputs
- Image, tag, and association records persisted to the
ores_assetsschema with bitemporal history (valid_from/valid_to). - NATS response messages returned to callers.
5. Entry points
include/ores.assets.core/ores.assets.hpp— aggregate include.include/ores.assets.core/messaging/registrar.hpp— registers all NATS handlers with the service host.include/ores.assets.core/service/assets_service.hpp— top-level business logic entry point.
6. Dependencies
ores.assets.api— shared domain types and NATS protocol schemas.ores.dq— ORM base classes and data-quality 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.assets.api — protocol types and domain entities.
- ores.assets.service — NATS service entrypoint.
- ores.assets 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.assets.api.lib
ores.nats.lib
PRIVATE
ores.dq.api.lib
ores.service.lib
ores.telemetry.core.lib
ores.utility.lib
ores.database.lib
ores.security.lib
ores.history.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.eventing.api.lib
ores.eventing.core.lib
ores.testing.lib
Catch2::Catch2
faker-cxx::faker-cxx
ores.openssl_cleanup
Threads::Threads)
