type: config name: Configuration displayname: Configuration namespace: model schema: # ------------------------------------------------------------------------------------------------ # Model # ------------------------------------------------------------------------------------------------ model: type: dict schema: name: type: string paths: type: dict schema: log: type: string required: True entities: type: string required: True mappings: type: string required: True templates: type: string required: True output: type: string required: True ignore_file_prefix: type: string # ------------------------------------------------------------------------------------------------ # Variables # ------------------------------------------------------------------------------------------------ vars: type: dict # ------------------------------------------------------------------------------------------------ # Hooks # ------------------------------------------------------------------------------------------------ pre_hooks: type: dict valuesrules: type: list post_hooks: type: dict valuesrules: type: list # ------------------------------------------------------------------------------------------------ # Key Definition # ------------------------------------------------------------------------------------------------ keyattribute: type: dict required: True schema: type: type: string required: True role: type: string required: True mandatory: type: boolean ghost: type: string zerokey: type: string # ------------------------------------------------------------------------------------------------ # Modelling Constraints # ------------------------------------------------------------------------------------------------ constraints: type: dict schema: enforce_bk_type: type: [string, list] # ------------------------------------------------------------------------------------------------ # HASH Definition # ------------------------------------------------------------------------------------------------ hash_algorithm: type: string required: true hash_separator: type: string required: true hash_case: type: string required: True allowed: ['upper', 'lower', 'keep'] # ------------------------------------------------------------------------------------------------ # Business Key Treatment # ------------------------------------------------------------------------------------------------ business_key_treatment: type: dict required: True schema: trim: type: string required: True allowed: ['left', 'right', 'both'] case: type: string required: True allowed: ['upper', 'lower', 'keep'] # ------------------------------------------------------------------------------------------------ # Hashdiff Attribute Treatment # ------------------------------------------------------------------------------------------------ hashdiff_attribute_treatment: type: dict required: True schema: trim: type: string required: True allowed: ['left', 'right', 'both'] case: type: string required: True allowed: ['upper', 'lower', 'keep'] # ------------------------------------------------------------------------------------------------ # Common Attributes # ------------------------------------------------------------------------------------------------ commonattributes: type: dict valuesrules: type: dict schema: name: type: string required: True type: type: string required: True mandatory: type: boolean ghost: type: string # ------------------------------------------------------------------------------------------------ # Ghost-records # ------------------------------------------------------------------------------------------------ ghostrecord: type: dict valuesrules: type: string # ------------------------------------------------------------------------------------------------ # Layer # ------------------------------------------------------------------------------------------------ layer: type: dict valuesrules: type: dict schema: name: type: string required: True description: type: string connectionname: type: string sys_specification: type: string defaultdatabaseobject: type: dict schema: database: type: string schema: type: string filegroup: type: string properties: type: dict # ------------------------------------------------------------------------------------------------ # Entity Defaults # ------------------------------------------------------------------------------------------------ entitydefaults: type: dict valuesrules: type: dict schema: layer: type: string required: True attributes: type: list schema: type: string attribute_role: type: string map_implicit_roles: type: list schema: type: string extra: type: dict # ------------------------------------------------------------------------------------------------ # Generator config # ------------------------------------------------------------------------------------------------ generator: type: dict valuesrules: type: dict schema: templates: type: list schema: type: dict schema: subtype: type: [string,list] template: type: string required: True targetfolder: type: string required: True filename: type: string required: True lang: type: string required: True synchtarget: type: string # ------------------------------------------------------------------------------------------------ # Base templates # ------------------------------------------------------------------------------------------------ templates: type: dict schema: column_ddl: type: string required: True table_qualifier: type: string required: True attribute_expression: type: string required: True entity_key_name: type: string required: True query_entity_alias: type: string required: True # ------------------------------------------------------------------------------------------------ # Template Engine # ------------------------------------------------------------------------------------------------ jinja: type: dict # ------------------------------------------------------------------------------------------------ # sys_specifications # ------------------------------------------------------------------------------------------------ sys_specification: type: dict