Schema URL

Type: object

Make agile applications without technical debt

Properties

boundedContextName string required

The name of the package, singular in kebab case

Examples: "iam", "queue-manager"
minLength=2
moduleName string required

The name of the module, singular in kebab case

Examples: "account", "job-registry"
minLength=2
moduleNames string required

The name of the module, plural in kebab case

Examples: "accounts", "jobs-registry"
minLength=2
aggregateName string required

The name of the aggregateName, singular in pascal case, is composed of the boundedContextName plus the moduleName

Examples: "IamAccount", "QueueManagerJobRegistry"
minLength=2
version string

Schema version

Default: "0.0.1"
minLength=2
hasOAuth boolean

Enabled authentication for this module

Default: false
Examples: false
hasTenant boolean

Enabled tenant for this module

Default: false
Examples: false
hasAuditing boolean

Enabled auditing for this module

Default: false
Examples: false
front object

Appearance properties for front application

4 nested properties
outlineFontSetIcon string

Font set outline icon to be used in the front application

Examples: "material-symbols-outlined"
minLength=2
outlineIcon string

Outline icon to be used in the front application

Examples: "heroicons_solid:tag", "photo_auto_merge"
minLength=2
solidFontSetIcon string

Font set solid icon to be used in the front application

Examples: "material-symbols-outlined"
minLength=2
solidIcon string

Solid icon to be used in the front application

Examples: "heroicons_solid:tag", "photo_auto_merge"
minLength=2
aggregateProperties propertyDefinition[]
excludedFiles string[]

Files to be excluded from the module

Examples: "src/@api/iam/account/resolvers/iam-create-accounts.resolver.ts", "src/@api/iam/account/resolvers/iam-create-accounts.resolver.spec.ts"
excludedOperations enum[]

Operations to be excluded from the module

Examples: ["create","update","delete"], ["create","update","delete","findById"]

Definitions

propertyDefinition object
name string required

The name of property, in camelCase

minLength=2
type string required

The type of property

Values: "array" "bigint" "blob.long" "blob.medium" "blob.tiny" "blob" "boolean" "char" "date" "decimal" "encrypted" "enum" "float" "id" "int" "json" "jsonb" "manyToMany" "password" "relationship" "smallint" "text" "timestamp" "varchar"
Examples: "varchar"
description string

The description of the property

minLength=2
arrayOptions object

Options to define array property

4 nested properties
type string required

The type of property

Values: "char" "date" "decimal" "enum" "id" "int" "timestamp" "varchar"
length number

Set max length to property

min=1
maxLength number

Set max length to property

min=1
enumOptions string[]

Values for enum type

length number

Set max length to property

min=1
maxLength number

Set max length to property

min=1
nullable boolean

Set property to nullable

unsigned boolean

Set property like unsigned

primaryKey boolean

Set property to primary key

index string

To define property like a index

Values: "index" "unique"
indexFields string[]

Fields to do composite unique index

indexName string

The name of index, if there are various indexes with the same name, they will be grouped

minLength=2
indexUsing string

To define property like a index

Values: "Btree" "GIN" "HASH" "spgist" "GiST" "BRIN"
isI18n boolean

Set property as i18n, this property will be used to translate the entity in the translation table

enumOptions string[]

Values for enum type

defaultValue string | number | boolean

Default value for property

example number | string | boolean | array

Example value for property, this value will be used in swagger documentation

decimals number[]

Total digits of the number and length of the decimal places in the back of the number, example: [10, 2].

autoIncrement boolean

Set number property as auto increment

applyTimezone boolean

Apply timezone to date property, by default is true

relationship object

Relationship definition for this property

11 nested properties
type string

The type of web component

Values: "many-to-many" "many-to-one" "none" "one-to-many" "one-to-one"
singularName string

Singular name of the property referred to in the relationship, only for one-to-many and many-to-many relationship, example: book

minLength=2
aggregateName string

Aggregate referring to this relationship, example: LibraryAuthor

minLength=2
modulePath string

Path to the module that refers to this relationship, example: library/author

minLength=2
key string

Property key that refers to this relationship, only for many-to-one relationship, example: id

minLength=2
field string

Field to obtain the relationship data, example: author

minLength=2
description string

The description of the relationship field

minLength=2
avoidConstraint boolean

Avoid constraint rules for this relationship

packageName string

Path to packageName where is the relationship, example: @aurora-ts/core

minLength=2
isDenormalized boolean

Set many-to-many relationship as denormalized, creating a field to store the selected ids

pivot object

Relationship pivot table definition for this relationship

9 nested properties
boundedContextName string

The name of the package, singular in kebab-case

minLength=2
moduleName string

The name of the module, singular in kebab-case

minLength=2
moduleNames string

The name of the module, plural in kebab-case

minLength=2
aggregateName string

The name of the aggregateName, singular in PascalCase

minLength=2
hasOAuth boolean

Enabled authentication for this pivot table

Default: false
hasAuditing boolean

Enabled auditing for pivot table

Default: false
aggregateProperties propertyDefinition[]
excludedFiles string[]
excludedOperations enum[]

Operations to be excluded from the module

Examples: ["create","update","delete"], ["create","update","delete","findById"]
webComponent object

Web Component that wil be rendered for this property

6 nested properties
type string

The type of web component

Values: "async-search-multiple-select" "async-search-select" "grid-elements-manager" "grid-select-element" "grid-select-multiple-elements" "multiple-select" "search-multiple-select" "search-select" "select"
className string

CSS class for web component

minLength=2
detailSort number

Web component order on detail view

min=1
isDetailHidden boolean

Set hidden web component on detail view

listSort number

Web component order on list view

min=1
isListHidden boolean

Set hidden web component on list view

additionalApisDefinition object
path string required

Path to access api

Examples: "auditing/side-effect/rollback", "iam/account/check-unique-username"
minLength=2
resolverType string required

Type of resolver, query or mutation

Values: "query" "mutation"
Examples: "query"
httpMethod string required

Verb of api rest

Values: "get" "post" "put" "delete" "patch"
Examples: "post"
relationshipDefinition object

Relationship definition for this property

type string

The type of web component

Values: "many-to-many" "many-to-one" "none" "one-to-many" "one-to-one"
singularName string

Singular name of the property referred to in the relationship, only for one-to-many and many-to-many relationship, example: book

minLength=2
aggregateName string

Aggregate referring to this relationship, example: LibraryAuthor

minLength=2
modulePath string

Path to the module that refers to this relationship, example: library/author

minLength=2
key string

Property key that refers to this relationship, only for many-to-one relationship, example: id

minLength=2
field string

Field to obtain the relationship data, example: author

minLength=2
description string

The description of the relationship field

minLength=2
avoidConstraint boolean

Avoid constraint rules for this relationship

packageName string

Path to packageName where is the relationship, example: @aurora-ts/core

minLength=2
isDenormalized boolean

Set many-to-many relationship as denormalized, creating a field to store the selected ids

pivot object

Relationship pivot table definition for this relationship

9 nested properties
boundedContextName string

The name of the package, singular in kebab-case

minLength=2
moduleName string

The name of the module, singular in kebab-case

minLength=2
moduleNames string

The name of the module, plural in kebab-case

minLength=2
aggregateName string

The name of the aggregateName, singular in PascalCase

minLength=2
hasOAuth boolean

Enabled authentication for this pivot table

Default: false
hasAuditing boolean

Enabled auditing for pivot table

Default: false
aggregateProperties propertyDefinition[]
excludedFiles string[]
excludedOperations enum[]

Operations to be excluded from the module

Examples: ["create","update","delete"], ["create","update","delete","findById"]
webComponentDefinition object

Web Component that wil be rendered for this property

type string

The type of web component

Values: "async-search-multiple-select" "async-search-select" "grid-elements-manager" "grid-select-element" "grid-select-multiple-elements" "multiple-select" "search-multiple-select" "search-select" "select"
className string

CSS class for web component

minLength=2
detailSort number

Web component order on detail view

min=1
isDetailHidden boolean

Set hidden web component on detail view

listSort number

Web component order on list view

min=1
isListHidden boolean

Set hidden web component on list view

excludedOperationDefinition enum[]

Operations to be excluded from the module

Examples:
  • [ "create", "update", "delete" ]
  • [ "create", "update", "delete", "findById" ]
frontDefinition object

Appearance properties for front application

outlineFontSetIcon string

Font set outline icon to be used in the front application

Examples: "material-symbols-outlined"
minLength=2
outlineIcon string

Outline icon to be used in the front application

Examples: "heroicons_solid:tag", "photo_auto_merge"
minLength=2
solidFontSetIcon string

Font set solid icon to be used in the front application

Examples: "material-symbols-outlined"
minLength=2
solidIcon string

Solid icon to be used in the front application

Examples: "heroicons_solid:tag", "photo_auto_merge"
minLength=2
pivotTableDefinition object

Relationship pivot table definition for this relationship

boundedContextName string

The name of the package, singular in kebab-case

minLength=2
moduleName string

The name of the module, singular in kebab-case

minLength=2
moduleNames string

The name of the module, plural in kebab-case

minLength=2
aggregateName string

The name of the aggregateName, singular in PascalCase

minLength=2
hasOAuth boolean

Enabled authentication for this pivot table

Default: false
hasAuditing boolean

Enabled auditing for pivot table

Default: false
aggregateProperties propertyDefinition[]
excludedFiles string[]
excludedOperations enum[]

Operations to be excluded from the module

Examples: ["create","update","delete"], ["create","update","delete","findById"]