ores.iam.api

Table of Contents

1. Diagram

ores.iam.api component diagram

Figure 1: ores.iam.api

2. Summary

ores.iam.api is the shared contract library for the IAM domain. It provides domain types for accounts, roles, tenants, parties, and session tokens, together with JSON and table I/O via generated codecs, and the NATS message protocol schemas for the 0x2000–0x2FFF range consumed by both ores.iam.core (server) and client components. It is a compiled library, not header-only: src/ builds the domain tables, JSON I/O, generators, and the session auth service.

3. Inputs

  • Domain entity type definitions (account.hpp, account_role.hpp, account_party.hpp, etc.).
  • NATS protocol message definitions.

4. Outputs

  • C++ headers for all IAM domain types with JSON and table I/O variants.
  • NATS protocol headers for account management, authentication, and session operations.

5. Entry points

  • include/ores.iam.api/domain/ — all domain entity headers.
  • include/ores.iam.api/messaging/ — NATS protocol message headers.

6. Dependencies

  • fort — formatted table rendering.

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

9. Test dependencies

The suites link what the profile cannot know about.

target_link_libraries(${lib_target_name}
    PUBLIC
        ores.eventing.api.lib
        ores.platform.lib
        ores.security.lib
    PRIVATE
        ores.utility.lib
        faker-cxx::faker-cxx
        libfort::fort)

target_link_libraries(${lib_target_name} PRIVATE ores.codec.pch)
target_link_libraries(${tests_target_name}
    PRIVATE
        ores.iam.api.lib
        ores.workflow.api.lib
        ores.telemetry.core.lib
        ores.utility.lib
        ores.testing.lib
        faker-cxx::faker-cxx
        Catch2::Catch2
        ores.openssl_cleanup
        Threads::Threads)

Emacs 29.3 (Org mode 9.6.15)