# Platform CSV Import Templates and Instructions

For the rules of preparing and importing CSV files (file names, lookup fields, association fields, (F) file columns, DELETE_FLAG, OVERWRITE_FLAG, etc.), see Data Import.

# Muyan Low-Code Platform Data Import Templates Applicable version: 1.0.0-beta18

TIP

  • Lines starting with ; are treated as comments. A downloaded template contains only the header row and comments (the comments are written in Chinese). The "example" line in the comments looks like ;; ็คบไพ‹: [email protected],...; to import it, delete the whole leading ;; ็คบไพ‹: (if you only delete ;;, ็คบไพ‹: becomes part of the first column's value).
  • The header row of every template has been verified by an actual import on 1.0.0-beta18 (what was verified is that the header row is recognized; for known issues with data lines, see the notes in each section). Columns you do not need can be deleted, but a column that does not exist in the model must not appear, otherwise the whole file fails to import.
  • The column name suffix (*) marks a lookup field, .name and the like mean lookup by a field of the associated object, [:] marks a collection field with multiple values separated by :, and (F) means the content is read from a file.
  • The $ROOT_ORG$ placeholder and the organization.name and enableRoles columns from before 1.0 have been removed since 1.0 (the organization model was deleted; permissions now use role requirement columns such as accessRequirement.name).

# Users and Permissions

# User.csv

Field Name Description
username(*) Username (used for lookup); an email address is recommended
password Initial password, encrypted and saved to the user table during import; however, the original CSV line (including the plaintext password) is saved in Exec History > Import Record and visible to DEVELOPER, so use only a temporary password and require the user to change it after the first login
name Name
accountLocked Whether the account is locked
accountExpired Whether the account has expired
passwordExpired Whether the password has expired
avatar Avatar image file path (attachment)
extInfo Extended information (JSON)
roles.name[:] Roles owned directly by the user (references HierarchyRole.name)

Download the User.csv template

# Group.csv

Field Name Description
name(*) User group name (used for lookup)
roles.name[:] Roles owned by the user group (references HierarchyRole.name)

Download the Group.csv template

# UserGroup.csv

Field Name Description
user.username(*) Username (used for lookup, references User.username)
group.name(*) Group name (used for lookup, references Group.name)

Download the UserGroup.csv template

# HierarchyRole.csv

Field Name Description
name(*) Role name (used for lookup), usually starting with ROLE_
implies.name[:] Other roles included in this role (references HierarchyRole.name); can be inherited level by level

Download the HierarchyRole.csv template

The platform has built-in ROLE_USER, ROLE_DEVELOPER (includes ROLE_USER) and ROLE_ADMIN (includes ROLE_DEVELOPER).

# RoleRequirement.csv

Field Name Description
name(*) Role requirement name (used for lookup)
hasPermissionRoles.name[:] Roles that satisfy the requirement (references HierarchyRole.name); having any one of them is enough
customLogic.name Custom decision logic (references DynamicLogic.name); when set, the logic makes the decision

Download the RoleRequirement.csv template

The platform has three built-in role requirements, USER, DEVELOPER and ADMIN, corresponding to ROLE_USER, ROLE_DEVELOPER and ROLE_ADMIN. The permission columns of domain models, forms, menus and actions all reference role requirement names.

# Domain Models

# DomainClass.csv

Field Name Description
shortName(*) Domain model short name (used for lookup); newly created models are all dynamic models
extInfo Extended information (JSON), see Dynamic Domain Model
createRoleRequirement.name Create permission (references RoleRequirement.name)
readRoleRequirement.name View permission (references RoleRequirement.name)
updateRoleRequirement.name Update permission (references RoleRequirement.name)
deleteRoleRequirement.name Delete permission (references RoleRequirement.name)

Download the DomainClass.csv template

Note: leaving a permission column empty means nobody has that permission (including administrators). The Development > Classes page can neither create models nor edit these four permissions; they can only be set with CSV.

# DomainClassField.csv

Field Name Description
domainClass.shortName(*) Model name (used for lookup, references DomainClass.shortName)
name(*) Field name (used for lookup)
dataType Data type (see Appendix P); cannot be changed after creation
referenceDomain.shortName Referenced model (required for types DOMAIN_OBJECT and DOMAIN_OBJECT_LIST)
nullable Whether it can be null
editable Whether it is editable
defaultValue Default value
options Options, a JSON array, for example "[""VIP"",""ๆ™ฎ้€šๅฎขๆˆท""]"
extInfo Extended information (JSON)

Download the DomainClassField.csv template

Notes:

  • The database column name is generated automatically from the field name and does not need to be filled in.
  • The model also has a comment field. In 1.0.0-beta18, filling it in makes the field fail to be created, so do not use it for now.

# DomainClassIndex.csv

Field Name Description
domainClass.shortName(*) Model name (used for lookup, references DomainClass.shortName)
name(*) Index name (used for lookup)
fields Field names included in the index, a JSON array, for example "[""code""]"
unique Whether it is a unique index

Download the DomainClassIndex.csv template

Used to create database indexes for dynamic models.

Known issue in 1.0.0-beta18

DomainClassIndex is itself a dynamic model (its type is DYNAMIC in Development > Classes), and in the current version every line fails when importing data into a dynamic model (ScopedValue not bound, see the known issues in Data Import), so the data lines of this template currently cannot be imported successfully.

# Dynamic Logic

# DynamicLogicEngine.csv

Field Name Description
name(*) Dynamic logic engine name (used for lookup)
description Description
handlerClassName Handler class name

Download the DynamicLogicEngine.csv template

Note: this is built-in platform data. Do not modify it unless you know exactly what you are doing.

# DynamicLogicType.csv

Field Name Description
name(*) Dynamic logic type name (used for lookup)
label Label
description Description
codeTemplate Code template

Download the DynamicLogicType.csv template

Note: this is built-in platform data. Do not modify it unless you know exactly what you are doing.

# DynamicLogic.csv

Field Name Description
dynamicLogicEngine.name Dynamic logic engine name (references DynamicLogicEngine.name)
name(*) Dynamic logic name (used for lookup)
logicType.name Logic type name (references DynamicLogicType.name)
code(F) Source file path, relative to the seed data root directory, usually starting with groovy/
description Description
isSystem Whether it is system logic
sourceFileName Source file name (optional)
enableLog Whether to record execution logs
rateLimit Call rate limit (optional)

Download the DynamicLogic.csv template

# DynamicObjectHook.csv

Field Name Description
objectType.shortName Object type short name (references DomainClass.shortName)
name(*) Object hook name (used for lookup)
hookType Type (see Appendix O)
coreLogic.name Core logic name (references DynamicLogic.name)
active Whether it is enabled
isSystem Whether it is a system object hook
description Description

Download the DynamicObjectHook.csv template

# Forms and Menus

# DynamicFormType.csv

Field Name Description
name(*) Form type name (see Appendix D)

Download the DynamicFormType.csv template

Form types are built-in platform data and usually do not need to be imported.

# DynamicForm.csv

Field Name Description
name(*) Form name (used for lookup), unique in the system
label Label
description Description
objectType.shortName(*) Object type (references DomainClass.shortName)
type.name(*) Form type (references DynamicFormType.name, see Appendix D)
formHook.name Form Hook (references DynamicLogic.name)
formHookTriggerFields Fields that trigger the Form Hook
dataHook.name Data Hook (references DynamicLogic.name)
extInfo Extended information (JSON)
accessRequirement.name Access permission (references RoleRequirement.name)

Download the DynamicForm.csv template

Note: a form without accessRequirement cannot be opened. The System Config > Forms > Forms screen does not have this item; it can only be set with CSV. For Form Hook and Data Hook, see Form Customization (Form Hook).

# DynamicFormGroup.csv

Field Name Description
displaySequence Display sequence
name(*) Field group name (used for lookup)
label Label
icon Icon
form.name(*) Form name (used for lookup, references DynamicForm.name)
helpText Help text

Download the DynamicFormGroup.csv template

# DynamicFormField.csv

Field Name Description
form.name(*) Form name (used for lookup, references DynamicForm.name)
fieldName(*) Field name (used for lookup)
displaySequence Display sequence
label Label
helpText Help text
fieldType Field type (see Appendix E)
nullable Whether it can be null
group.name Field group (references DynamicFormGroup.name)
extInfo Extended information (JSON)
displayType Display control (see Appendix F)
editable Whether it is editable
decides Fields to refresh in linkage when this field changes; separate multiple field names with commas (in CSV the whole cell must be wrapped in double quotes, for example "customer,amount"); @ALL@ does not take effect in 1.0.0-beta18

Download the DynamicFormField.csv template

Note: as soon as a form defines any form field, it shows only the defined fields.

# DynamicMenu.csv

Field Name Description
parent.name Parent menu name (references DynamicMenu.name)
label Label
icon Icon
link Link URL (used by internal link and external link types)
type Type (see Appendix C)
displaySequence Display sequence
name(*) Menu name (used for lookup)
form.name Associated form (references DynamicForm.name, used by the FORM type)
accessRequirement.name Access permission (references RoleRequirement.name)

Download the DynamicMenu.csv template

Note: a menu of type MENU_GROUP without an access permission is hidden from everyone; a menu of type FORM without an access permission is shown according to the access permission of its form.

# Object Actions

# DynamicActionGroup.csv

Field Name Description
name(*) Action group name (used for lookup)
label Label
icon Icon
helpText Help text
displaySequence Display sequence

Download the DynamicActionGroup.csv template

# DynamicAction.csv

Field Name Description
name(*) Action name (used for lookup)
mode Mode (see Appendix A)
form.name Parameter form (references DynamicForm.name, usually of type ACTION)
confirmMessage Confirmation message before execution
coreLogic.name Core logic name (references DynamicLogic.name)
enableLogic.name Enable logic name (references DynamicLogic.name)
label Label
icon Icon
helpText Help text
enableAsync Whether to execute asynchronously
isSystem Whether it is a system action
extInfo Extended information (JSON)
active Whether it is enabled
accessRequirement.name Execute permission (references RoleRequirement.name)

Download the DynamicAction.csv template

# DynamicActionDynamicForm.csv

Field Name Description
action.name(*) Action name (used for lookup, references DynamicAction.name)
form.name(*) Form name (used for lookup, references DynamicForm.name)
displaySequence Display sequence
group.name Action group (references DynamicActionGroup.name)

Download the DynamicActionDynamicForm.csv template

An action is shown in the UI only after it is bound to a form. DynamicActionDomainClass, which bound actions to domain models before 1.0, has been removed since 1.0 (replaced by DynamicActionDynamicForm, which binds actions to forms).

# Dashboards and Filters

# DynamicDashboardWidget.csv

Field Name Description
name(*) Widget name (used for lookup)
label Label
displaySequence Display sequence
description Description
form.name Dashboard it belongs to (references DynamicForm.name, of type DASHBOARD)
enableLogic.name Enable logic name (references DynamicLogic.name)
coreLogic.name Core logic name (references DynamicLogic.name)
type Type (see Appendix G)
options Options (JSON)
refreshInterval Auto refresh interval; the 1.0.0-beta18 frontend does not read this field, so it has no effect

Download the DynamicDashboardWidget.csv template

# DynamicFilter.csv

Field Name Description
name(*) Filter name (used for lookup)
label Label
displaySequence Display sequence
conditions Filter conditions (JSON)
objectType.shortName Object type short name (references DomainClass.shortName)
isDefault Whether it is the default
description Description
icon Icon
isSystem Whether it is a system filter

Download the DynamicFilter.csv template

# System Configuration and Display Themes

# DynamicConfig.csv / DynamicConfig_withFile.csv

Field Name Description
name Name
key(*) Key (used for lookup)
value / value(F) Value / value (read from a file)
parent.key Parent key (references DynamicConfig.key)
description Description
modifyRemark Modification remark
displaySequence Display sequence
allowPublicAccess Whether access without login is allowed
icon Icon
isSystem Whether it is a system configuration

Download the DynamicConfig.csv template Download the DynamicConfig_withFile.csv template

Note: both files are imported into the same model. The value(F) column in DynamicConfig_withFile.csv is a file path; the system reads the configuration value from that file, and the path is relative to the seed data root directory.

# DynamicTheme.csv

Field Name Description
name(*) Theme name (used for lookup)
description Description
css(F) Custom CSS file
active Whether it is active
title Title
squareLogo Square logo (attachment file path)
favicon Favicon (attachment file path)
backgroundImage Background image (attachment file path)
logo Logo (attachment file path)
themeSettings(F) Theme settings JSON file
ssoEnableLogic Single sign-on enable logic
landingPage.name Home page after login (references DynamicForm.name)

Download the DynamicTheme.csv template

Note: file paths in css(F), themeSettings(F) and the image columns are relative to the seed data root directory.

# Scheduled Tasks and System Integration

# DynamicTask.csv

Field Name Description
name(*) Task name (used for lookup)
helpText Description
coreLogic.name Core logic name (references DynamicLogic.name)
active Whether it is enabled
startDate Effective time
expiryDate Expiry time
cronExpression Cron expression (used by CRON_TASK)
dynamicTaskType Task type (see Appendix Q)
parameters Task parameters (JSON)
scheduleDate Execution time (used by SCHEDULE_TASK)
isSystem Whether it is a system task

Download the DynamicTask.csv template

See Scheduled Tasks for details.

# DynamicService.csv

Field Name Description
name(*) Service name (used for lookup), also part of the call URL
active Whether it is enabled
logic.name Core logic name (references DynamicLogic.name)
enableAnonymous Whether calls without login are allowed
enableLog Whether to record call logs
bodyType Request body type (see Appendix R)

Download the DynamicService.csv template

Note: when enableAnonymous is Y, the service can be called without login. 1.0.0-beta18 fixed a security issue related to this switch; see Dynamic Service for details.

# DynamicWebhook.csv

Field Name Description
name(*) Webhook name (used for lookup)
description Description
httpMethod HTTP method (see Appendix M)
url Call URL, generated by the system on creation; usually left empty
active Whether it is enabled
coreLogic.name Core logic name (references DynamicLogic.name)
effectiveDate Effective time
expiryDate Expiry time

Download the DynamicWebhook.csv template

DynamicIntegration and DynamicIntegrationDomainClass from before 1.0 have been removed since 1.0 (use Webhook or dynamic services to receive external calls).

# Internationalization

# I18nType.csv

Field Name Description
name(*) Translation namespace name (used for lookup)
description Description

Download the I18nType.csv template

# I18n.csv

Field Name Description
type.name(*) Translation namespace (used for lookup, references I18nType.name)
lang(*) Language (used for lookup), CHINESE or ENGLISH
entries(F) Path of the translation content JSON file
OVERWRITE_FLAG Whether to force overwriting changes made in the UI

Download the I18n.csv template

# Platform and Plugins

# AppVersion.csv

Field Name Description
versionNumber(*) Version number (used for lookup)
codeName Version code name
releaseNote(F) Release note file
goLiveDate Go-live time

Download the AppVersion.csv template

# DynamicPlugin.csv

Field Name Description
name(*) Plugin name (used for lookup)
pluginVersion(*) Plugin version (used for lookup)
description Description
storageFile Plugin package file (attachment)
enabled Whether it is enabled
dependsOnPlugins Plugins it depends on (JSON)
isSystem Whether it is a system plugin
OVERWRITE_FLAG Whether to force overwrite

Download the DynamicPlugin.csv template

Note: plugins are usually imported as plugin packages (see "Plugin Data Import" in Data Import), so you do not need to write this file by hand.

# Tenant.csv

Field Name Description
name(*) Tenant identifier (used for lookup)

Download the Tenant.csv template

Note: Tenant.csv is placed in the seed data root directory (not in the csv subdirectory), and is used only when no tenant is specified with the system property gorm.tenantId (the environment variable TENANT_ID in the docker image).

# Removed Templates

The following models have been removed since 1.0. This page no longer documents them, and do not use the leftover old templates with the same names on the site: Organization, Role, GroupRole, RequestMap, DynamicPrompt, DynamicFormWizardStep, DynamicActionDomainClass, DynamicFieldDefinition, DynamicFieldInstance, DynamicFieldHook, DynamicIntegration, DynamicIntegrationDomainClass (alternatives: use HierarchyRole for roles, RoleRequirement for permissions, DynamicActionDynamicForm to bind actions to forms, Form Hook for field-level customization, and Webhook or dynamic services for external integration).

# Appendix: Enum Value Definitions

# Appendix A: DynamicAction.mode

  • OBJECT_SINGLE: Acts on a single object
  • OBJECT_MULTIPLE: Acts on multiple objects
  • CLASS_LEVEL: Does not act on specific objects; shown on the object list page

# Appendix C: DynamicMenu.type

  • MENU_GROUP: Menu group
  • EXTERNAL_LINK: External link
  • INTERNAL_LINK: Internal link
  • FORM: Form

# Appendix D: DynamicForm.type

The platform has the following built-in form types (DynamicFormType):

LIST, CREATE, UPDATE, DELETE, FINDER, WIZARD, DASHBOARD, MASTER_DETAIL_LIST, TREE_LIST, INLINE_FULL_TEXT_SEARCH_LIST, FULL_TEXT_SEARCH_LIST, INLINE_DISPLAY, RELATED_DETAIL_LIST, INLINE_EDITABLE_DISPLAY, CARD_LIST, GANTT, GANTT_TOOLTIP, SUB_TABLE, DYNAMIC_FRAME, AMIS, DEFAULT, DOMAIN, ACTION, IFRAME

Of these, the types that have a standalone page renderer in the current frontend and can be opened as a menu entry are:

Type Description
LIST Table list
CREATE Create
UPDATE Edit, view
DOMAIN Object form
DEFAULT Default form
MASTER_DETAIL_LIST Master-detail list
TREE_LIST Tree list
FINDER Finder
DASHBOARD Dashboard
ACTION Action parameter form
AMIS AMIS form
IFRAME Embedded page

The other types (such as GANTT, CARD_LIST, WIZARD) have no corresponding page renderer in the current frontend.

# Appendix E: DynamicFormField.fieldType

  • STATIC_FIELD: A field of the model
  • TRANSIENT_FIELD: A temporary field that does not correspond to a model field, usually used in action parameter forms

DYNAMIC_FIELD from before 1.0 has been removed since 1.0.

# Appendix F: displayType

DynamicFormField.displayType is the control name in lowercase. The current frontend supports the following values:

array, authentication, boolean, code, currency, date, dateRange, datetime, decimal, enum, file, fileList, functionEditor, genericObject, genericObjects, httpMethod, icon, id, image, int, integer, json, lineChart, link, long, markdown, object, objects, password, percentage, popOverSteps, progress, relativeSubTable, roles, stacktrace, string, subTable, tableChart, text, treeSelect, valueSelect, video, zonedDatetime

For any other value, the UI shows Unsupported displayType: xxx. The uppercase DisplayComponentType enum from before 1.0 (such as TEXT_AREA, CURRENCY) has been removed since 1.0. For a description of each control, see Basic Form Customization.

# Appendix G: DynamicDashboardWidget.type

  • MARKDOWN: Markdown content
  • HTML: HTML content
  • PIE_CHART: Pie chart
  • LINE_CHART: Line chart
  • COLUMN_CHART: Column chart
  • GAUGE_CHART: Gauge chart
  • LIQUID_CHART: Liquid chart
  • DATA_TABLE: Data table
  • AREA_CHART: Area chart
  • BAR_CHART: Bar chart
  • BULLET_CHART: Bullet chart
  • PROGRESS_CHART: Progress chart
  • RING_PROGRESS_CHART: Ring progress chart
  • TINY_AREA_CHART: Tiny area chart
  • TINY_LINE_CHART: Tiny line chart
  • TINY_COLUMN_CHART: Tiny column chart
  • BI_DIRECTION_BAR: Bi-directional bar chart
  • STATISTIC: Statistic
  • COUNTDOWN: Countdown
  • HISTOGRAM: Histogram

# Appendix M: httpMethod

  • GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, TRACE

# Appendix O: DynamicObjectHook.hookType

  • CREATE: Whether it can be created
  • UPDATE_DELETE: Whether it can be updated/deleted Not effective
  • BEFORE_CREATE: Before create
  • BEFORE_DELETE: Before delete
  • BEFORE_UPDATE: Before update
  • AFTER_CREATE: After create
  • AFTER_DELETE: After delete
  • AFTER_UPDATE: After update

Note: UPDATE_DELETE can still be imported, but in the current version no code executes this kind of object hook; whether an object can be modified or deleted is decided only by the domain model's updateRoleRequirement and deleteRoleRequirement.

# Appendix P: DomainClassField.dataType

  • STRING: String
  • BOOLEAN: Boolean
  • BIG_DECIMAL: High-precision decimal
  • INTEGER: Integer
  • LONG: Long integer
  • DOUBLE: Double-precision floating point
  • LOCAL_DATE: Date
  • ZONED_DATETIME: Date and time with time zone
  • OFFSET_DATETIME: Date and time with time zone offset
  • JSON_STRING: JSON string
  • DOMAIN_OBJECT: Single associated object
  • DOMAIN_OBJECT_LIST: Multiple associated objects (one-to-many)
  • ENUM: Enum
  • ENUM_LIST: Enum list
  • FILE: Single attachment
  • FILE_LIST: Multiple attachments
  • MAPPED_DOMAIN_OBJECT: Mapped associated object
  • MAPPED_DOMAIN_OBJECT_COLLECTION: Mapped associated object collection
  • GENERIC_OBJECT: Single object of any type
  • GENERIC_OBJECTS: Multiple objects of any type

# Appendix Q: DynamicTask.dynamicTaskType

  • CRON_TASK: Runs periodically according to a Cron expression
  • SCHEDULE_TASK: Runs once at the specified time

# Appendix R: DynamicService.bodyType

  • JSON
  • XML
  • INPUT_STREAM
Last Updated: 9/24/2026, 2:27:35 PM