ModuleDefinitionSchema
@aurorajs.dev/catalyst-cli / generator/domain/model / ModuleDefinitionSchema
Interface: ModuleDefinitionSchema
Section titled “Interface: ModuleDefinitionSchema”Defined in: generator/domain/model.ts:281
Full schema for a generated module. This is the in-memory representation
loaded from cliter/<bc>/<module>.aurora.yaml, after validation and
default-filling.
Properties
Section titled “Properties”additionalApis?
Section titled “additionalApis?”
optionaladditionalApis?:AdditionalApi[]
Defined in: generator/domain/model.ts:282
aggregateName
Section titled “aggregateName”aggregateName:
string
Defined in: generator/domain/model.ts:283
aggregateProperties
Section titled “aggregateProperties”aggregateProperties:
Property[]
Defined in: generator/domain/model.ts:284
boundedContextName
Section titled “boundedContextName”boundedContextName:
string
Defined in: generator/domain/model.ts:285
excludedFiles?
Section titled “excludedFiles?”
optionalexcludedFiles?:string[]
Defined in: generator/domain/model.ts:287
Templates skipped when generating this module.
excludedOperations?
Section titled “excludedOperations?”
optionalexcludedOperations?:string[]
Defined in: generator/domain/model.ts:289
CRUD operations skipped when generating this module.
front?
Section titled “front?”
optionalfront?:object
Defined in: generator/domain/model.ts:291
Frontend-only presentation metadata (icon, grammatical gender, …).
detailMode?
Section titled “detailMode?”
optionaldetailMode?:DetailMode
How the detail surface is presented. See DetailMode.
Default 'view' (routed page). 'dialog' embeds the form inside the list.
dialogWidth?
Section titled “dialogWidth?”
optionaldialogWidth?:DialogWidth
Named-token width of the create/edit dialog. See DialogWidth.
Only applies when detailMode: 'dialog'; inert (read by no template)
in 'view' mode. Default 'md'.
displayField?
Section titled “displayField?”
optionaldisplayField?:string
Human-readable display label for this aggregate. Accepts two shapes detected automatically by the codegen:
- Identifier shape: a bare JS identifier (matches
/^[a-zA-Z_$][a-zA-Z0-9_$]*$/) naming a single property — e.g.'email'. Used directly as a property reference. - Template shape: an interpolation template containing one or
more
{<identifier>}placeholders — e.g.'{code} - {name}'. The codegen substitutes each placeholder with<row>.<identifier>at emit time. Anything that doesn’t match the placeholder grammar (including{},{not.a.field},{123invalid}) is emitted verbatim. Consumed by list-component delete-toast text, FK column auto-include accessors, and FK column header rendering. Defaults to'name'(identifier shape) when unset. Seeopenspec/specs/frontend-module-generator/spec.md→ “Schema —front.displayFieldattribute”.
embedSupport?
Section titled “embedSupport?”
optionalembedSupport?:boolean
SPEC-15: when true, the module generates embed-mode artifacts
(*-form-embed.component.ts, getXEmbedColumns factory in
*.columns.ts, mode polymorphic input on the list-component).
Required when another module references this one via
widget.type: grid-elements-manager. Default false.
gender?
Section titled “gender?”
optionalgender?:Gender
Grammatical gender of the module’s singular noun. Used by the
generator to pick F/M variants from the global i18n JSON
(e.g. New.F → “Nueva”, New.M → “Nuevo”). Ignored by languages
without grammatical gender.
outlineFontSetIcon?
Section titled “outlineFontSetIcon?”
optionaloutlineFontSetIcon?:string
outlineIcon?
Section titled “outlineIcon?”
optionaloutlineIcon?:string
solidFontSetIcon?
Section titled “solidFontSetIcon?”
optionalsolidFontSetIcon?:string
solidIcon?
Section titled “solidIcon?”
optionalsolidIcon?:string
hasAuditing
Section titled “hasAuditing”hasAuditing:
boolean
Defined in: generator/domain/model.ts:342
hasCustomFields?
Section titled “hasCustomFields?”
optionalhasCustomFields?:boolean
Defined in: generator/domain/model.ts:353
Emits the hasCustomFields satellite value table + wiring (design.md D2,
add-custom-fields change): <bc>_<module>_custom_field_value, its
one-to-many Drizzle relation, the per-BC relation whitelist entry, the
GraphQL field + resolver, and the FieldSchema relation entry. Optional
and default-absent — UNLIKE hasOAuth/hasTenant/hasAuditing, it is
NOT in schema-loader.ts’s validateSchema() required list: every
existing .aurora.yaml (in this repo and consumer repos) must keep
working without declaring it (non-breaking opt-in).
hasOAuth
Section titled “hasOAuth”hasOAuth:
boolean
Defined in: generator/domain/model.ts:354
hasTenant
Section titled “hasTenant”hasTenant:
boolean
Defined in: generator/domain/model.ts:355
i18nStrategy?
Section titled “i18nStrategy?”
optionali18nStrategy?:"embedded"|"table"
Defined in: generator/domain/model.ts:365
How isI18n: true properties are persisted (design.md D1,
add-i18n-embedded-codegen change). 'embedded' (default when absent)
stores the translated map + search text as columns on the aggregate’s
own table (design.md D2/D3). 'table' is recognized but NOT YET emitted
— its companion-table codegen is deferred to a follow-up change
(design.md Non-Goals). Mirrors hasCustomFields: optional, default-absent,
non-breaking for every existing .aurora.yaml.
moduleName
Section titled “moduleName”moduleName:
string
Defined in: generator/domain/model.ts:366
moduleNames
Section titled “moduleNames”moduleNames:
string
Defined in: generator/domain/model.ts:367