How do I list codegen entities?

Table of Contents

Entities are defined as org-mode model files under each component's modeling/ directory and discovered via ores.codegen's manifest.

Question

How do I list all codegen entities by metatype?

Answer

Run compass codegen entity list from the project root:

./compass.sh codegen entity list

By default only the Entity tier is shown (domain_entity and junction). Each row includes a short ID (first 8 hex chars of the org-roam UUID) that can be passed directly to compass show:

./compass.sh show 9F2A1B3C

To include meta-entity types (enum, field_group, table, schema, data, component, service_registry):

./compass.sh codegen entity list --all

To filter to a single metatype:

./compass.sh codegen entity list --type domain_entity
./compass.sh codegen entity list --type junction

Sample output (trimmed):

domain_entity  [entity]  (133)
  name                           ID         component            model path
  ------------------------------ ---------- -------------------- ----------
  country                        9F2A1B3C   refdata              projects/ores.refdata/modeling/ores.refdata.country.org
  currency                       A3F2C1D0   refdata              projects/ores.refdata/modeling/ores.refdata.currency.org

junction  [entity]  (13)
  name                           ID         component            model path
  ------------------------------ ---------- -------------------- ----------
  party_country                  ...        refdata              projects/ores.refdata/modeling/ores.refdata.party_country_junction.org

The same model file may appear under multiple components (e.g. refdata and refdata-cpp) if both components process it; this is expected.

Script

compass codegen entity is implemented in projects/ores.compass/src/compass_codegen_entity.py and dispatched from compass.py.

Tested by

Run ./compass.sh codegen entity list and verify the Entity tier appears grouped by metatype with a non-zero count.

See also

Emacs 29.1 (Org mode 9.6.6)