6.2.2 UI (UI Version 1.1)

UI definitions and example definitions are shown below. For a description of the UI, see “UI design”.

(Table) UI definitions (UI version 1.1)

Label Default value Required Description
apiVersion: 1.1 Yes API version
kind: Yes Specify "ui" for UI.
type: No Only "resource" can be specified for UI.
name: Yes Internal name of the UI definition. Specify the directory name for this YAML file.
label: Yes YAML file display name
includes: No List the related YAML files for use in this YAML file.
- kind: Yes Type of YAML file to be loaded
  name: Yes Internal name of YAML file to be loaded
description: No Detailed description
editmode: normal No The following can be specified.
  • normal: Always editable in the UI.
  • protected: The "type" cannot be edited unless you click the "edit" button.
  • readonly: Read-only
rememberViewSettings: false No Using the table components, specify the following settings for when a user changes the display.
  • true: Save the display settings
  • false: Do not save the display settings
context: No How to obtain the contextID
- type: No The following can be specified.
  • uipath: URL path parameter
  • query: URL query parameter
  • fixed: Fixed value
  value: No The following can be specified by type.
  • For uipath, the name of the YAML file for the uipath linked to the path parameter you want to specify
    When using this UI in a workflow, you need to specify uipath for type and workflow_detail_by_context_id for value.
  • For query, URL query parameter name
  • For fixed, the value you want to specify
attachment: No "name" of the Attachment YAML file
dataSource: No Data source to be used
schemas: No Specify if using schema.
- name: Yes User-defined name. Must be unique within the schema.
  schema: Yes Name of the schema for the YAML file of the datamodel specified with "include"
tables: No Specify if using datamodel.
- name: Yes User-defined name. Must be unique within the table.
  table: Yes Name of the table for the YAML file of the datamodel specified with "include"
  view: No Specify detailed processing by datamodel application.
<CRUD>: No Specify the application (create/read/update/delete).
- graphql: Yes User-defined GraphQL. If "null", use the default GraphQL for the UI foundation.
  override: No Use if the graphql property is "null". Overwrite the default GraphQL filter.
   <<HASURA table field arguments>>: No Properties available for use with graphql
  parameters: No Parameters for graphql
- name: Yes Parameter name
Must be unique within parameters.
  parameter: Yes
type: Yes The following can be specified.
  • uipath: URL path parameter
  • query: URL query parameter
  • fixed: Fixed value
value: Yes Specify the following by type.
  • For uipath, the name of the YAML file for the uipath linked to the path parameter you want to specify
  • For query, URL query parameter name
  • For fixed, the value you want to specify
  autorefresh: 0 No Automatic refresh interval (seconds)
  action: No Specify the action to occur in datamodel. For details on actions, see "Script". Capture "handleAfterLoadData" from "(Table) List of execution timings for each component and function names (UI Version 1.1)" and perform the processing.
components: Yes UI component
- name: Yes Internal name of the component
  label: No Component display name
  type: Yes Specify the component type.
For component types, see "(Table) Usable components (UI version 1.1)". However, there should only be one attachment in the UI.
  properties: No Use the Label:Value format to specify the property value by type. For descriptions of properties, see "(Table) Grid properties (UI version 1.1)" to "(Table) Attachment properties (UI version 1.1)".
  children: No Child components displayed on the components. The same properties and restrictions as with parent components apply.
- name: No
  (others): No
  action: No Define actions that are to be executed within the component. For details on actions, see "Script".
buttons: No Define the action button
Displayed in the specified position as a button for controlling the entire UI.
- name: Yes Internal name of the button
  label: No Button display name
  type: Yes Specify as prepared as standard or set by the user themselves;. For more information about types, see "(Table) Action button type (UI version 1.1)".
  description: No Button description
  order: No Set the value for determining the display order of buttons. Displayed in ascending order.
  properties: No Use the Label:Value format to specify the property value. For descriptions of properties, see "(Table) Button properties (UI version 1.1)".
  action: No Specify the action that will be performed when clicking on a button that a user has set themselves or a user-customized version of a button prepared as standard. Do not specify if using buttons prepared as standard and without any customization. For details, see "Script".

(Table) Action button type (UI version 1.1)

Type Description
start Start the workflow.
save Save the current records.
cancel Cancel edits to the records and return to the previous window.
accept Respond to core.ask actions with {oi_response: "accept"}. Advance the workflow to the next stage.
reject Respond to core.ask actions with {oi_response: "reject"}. Return the workflow to what is was originally.
complete Respond to core.ask actions with {oi_response: "complete"}. Complete the workflow.
custom A button set the user themselves. Execute scripts for setting action items.
edit Set whether to enable editing UI forms where "editmode" is set to "protected".

If responding to core.ask actions with the accept, reject, or complete action buttons, it is necessary to add a schema to the input of the Task model as shown below, and to specify the structure of the response.

    input:
      schema:
        type: object
        properties:
          oi_response:
            type: string
            required: true

For details on task models, see “Workflow”.

In the UI definition, configure the window using Reach and Material-UI. As shown in the figure below, use Grid, Paper, etc., to configure the layout of the window so that it is hierarchical in structure.

(Figure) Conceptual diagram of a window structured using React and Material-UI (UI version 1.1)

(Figure) Conceptual diagram of a window structured using React and Material-UI (UI version 1.1) (Figure) Conceptual diagram of a window structured using React and Material-UI (UI version 1.1)

Below is a list of components that can be used within a UI definition and the properties of those components.

(Table) Usable components (UI version 1.1)

Component Material-UI Description
Grid Grid A UI grid. For more details, see the website(s) below.
https://v5.mui.com/material-ui/react-grid/
Paper Paper Paper component for the Material-UI. Make sure that the contents are written on the paper. For more details, see the website(s) below.
https://v5.mui.com/material-ui/react-paper/
Form TextField,
Checkbox,
Select
Display and edit the contents of records from specified tables. For more details, see the website(s) below.
https://v5.mui.com/material-ui/react-text-field/#main-content
https://v5.mui.com/material-ui/react-checkbox/#main-content
https://v5.mui.com/material-ui/react-select/#main-content
Table DataGrid DataGrid component for the Material-UI. For more details, see the website(s) below.
https://v5.mui.com/x/react-data-grid/
Display a list of records from the specified table.
Button Button Define actions for each component and execute.
Card Card Card component for the Material-UI. Display cards that can be used for links, etc.
Tabs - Specify the type of tab using "tab", "toggle", and "dynamic".
Tab Tabs If the type of tab component is set to "toggle", specify the icon that is to be displayed from among the Material-UI tabs components. The tabs component cannot be used alone or placed as a child component other than as a tabs component.
Article - Display a memo-type note in a comment bubble.
Attachment - Upload or download files.

(Table) Grid properties (UI version 1.1)

Label Default value Required Description
components: Yes UI component
  type: Yes Specify "grid".
Grids can be adjusted. For more details, see the website(s) below.
https://v5.mui.com/x/react-data-grid/
  properties: No
  xs: 12 No The size can be specified using an integer of between 1 and 12, depending on the area widths shown below.
  • Extra small (xs): 0px~
  • Small (sm): 600px~
  • Medium (md): 900px~
  • Large (lg): 1200px~
  • Extra large (xl): 1536px~
  sm: 12 No
  md: 12 No
  lg: 12 No
  xl: 12 No
  container: false No Specify that this is the parent element within the grid.
  item: false No Specify that this is the child element within the grid.
  justifyContent: No Specify where on the horizontal axis the child element (grid item) should be placed using the parent element (grid container). This can be specified based on the properties of the justifyContent in the Material-UI. For more details, see the website(s) below.
https://v5.mui.com/material-ui/react-grid/
  maxHeight: No Maximum height
  maxWidth: No Maximum width
  minHeight: No Minimum height
  minWidth: No Minimum width
  height: No Height
  width: No Width

(Table) Paper properties (UI version 1.1)

Label Default value Required Description
components: Yes UI component
  type: Yes Specify "paper". For more details, see the website(s) below.
https://v5.mui.com/material-ui/react-paper/
  properties: No
  icon: No Specify the icon for the paper label. Specify from the material icons in the link below.
https://v5.mui.com/material-ui/material-icons/
Example:  AccountBalance
  collapsible: false No Specify whether the paper can be opened or closed.
  • true: Can be opened/closed
  • false: Cannot be opened/closed
  expanded: true No Specify whether Paper is opened. Valid when collapsible is "true".
  • true: Opened
  • false: Closed
  hintMessage: No Set text strings to be displayed as hint messages. Display a question mark icon next to the label. Click on the question mark icon to display the set values.

(Table) Form properties (UI version 1.1)

Label Default value Required Description
components: Yes UI component
  type: Yes Specify "form".
Display and edit records.
  properties: No
  fields: Yes Specify the form fields.
Displayed in the order defined here.
- name: Yes Specify a unique name within "fields".
  source: Yes Specify the type of dataSource to be used from "table", "schema", or "padding".
  field: Required if source is set to anything other than "padding" If source is set to "table", specify "all". If source is set to "schema", specify "create", "read", or "update".
all: No table.field format. The table section must exist within dataSource.tables.name, or "context" must be specified. Currently, only "context.title" can be specified for "context".
create: No Specify the field for the schema.
read: No
update: No
  label: Required if source is set to anything other than "padding" Specify the display name on the form.
  displayName: Required if "table" is specified for "type" and "ref-sys" is specified for "Datamodel" Value to be displayed. Use for searches.
Specify the names for the columns to be displayed.
In such a case, specify using the following format: ref-sys table name.ref-sys column name.
Example: if "table" is specified for "type" and "ref-sys" is set
displayName: user.name
  hintMessage: No Set text strings to be displayed as hint messages. Display a question mark icon next to the field. Click on the question mark icon to display the set values.
  properties: No Specify the field attributes in object.array. Specify "readOnly", "password", "required", "operator", "visible", "checkbox", "xs", "sm", "md", "lg", or "xl".
Example:
properties:
   readOnly: false
readOnly: false No Specify "true" or "false". If "true" is specified, it will not be possible to change the value of the corresponding field.
password: false No Specify whether it is a password. If it is a password, the input value will be masked.
Specify "true" or "false".
required: false No Specify "true" or "false". If "true" is specified, it is necessary to fill in the corresponding field. If the field is saved without specifying a value, an error will be displayed.
operator: false No Specify whether or not the operator selection list is displayed to the left side of the text field.
Specify "true" or "false".
visible: true No The following can be specified.
  • true: Display from the start.
  • false: Hide this field until it is instructed to be displayed by script.
checkbox: false No The following can be specified.
  • true: Display the checkbox.
  • false: Do not display the checkbox.
xs: No The size can be specified using an integer of between 1 and 12, depending on the area widths shown below.
  • Extra small (xs): 0px~
  • Small (sm): 600px~
  • Medium (md): 900px~
  • Large (lg): 1200px~
  • Extra large (xl): 1536px~
sm: No
md: No
lg: No
xl: No
multiline: false No The following can be specified.
  • true: Multiple lines can be displayed in the TextField.
  • false: Displays only one line in the TextField.
maxRows: No Specify the number of lines. Automatically change the height of the TextField until it reaches the specified number of rows. Enabled when multiline is set to "true".
rows: No Specify the number of lines. Display at a height of the specified number of lines from the start. Enabled when multiline is set to "true".
  validation: No Input check rules
regex: Required if the field data type is set to a text string type Specify a regular expression for the text. Enabled if the field data type is set to a text string type "varchar" and "text" apply for "table”. "string" applies for “api”. For information on the field data type, see "(Table) Column types" for "table". For "api", use the types that can be defined with JSON Schema.
min: Required if the field data type is set to a number string type Specify the minimum value. Enabled if the field data type is set to a number string type “integer” applies for "table”. "integer" and “number” apply for “api”.
For information on the field data type, see "(Table) Column types" for "table". For "api", use the types that can be defined with JSON Schema.
max: Specify the maximum value. Enabled if the field data type is set to a number string type “integer” applies for "table”. "integer" and “number” apply for “api”.
For information on the field data type, see "(Table) Column types" for "table". For "api", use the types that can be defined with JSON Schema.
message: No Message displayed when there is an input check error
Templates can be used. Not stored in the database.
  lookup: No If lookup is specified, it is treated as a lookup field.
If the specified field is document-related, selection options from the specified folder path or filename are displayed.
source: Yes Specify "table" as the type of the dataSource that is to be used.
style: single No Either "single" or "multi" can be specified.
If "multi" is specified, multiple selections can be made. However, in such a case, the selected values cannot be reflected in the Database. (Temporary restrictions)
filter: No Specify the filtering condition.
If the type has been specified as "table", and the specified field is document-related, filter the displayed records.
- No
- operator: Yes The conditional operator for this condition. Select from "eq", "ne", "gt", "ge", "lt", "le", "regex", "wildcard", "in", or "notIn".
Determine whether or not the Field value specified in firstOperand is included in the list elements (separated with commas) specified in secondOperand.
The conditional operator compares the values for firstOperand and secondOperand in a text-string format.
  firstOperand: Yes 1st target of comparison. Specify the field name for the table.
Example: role.id
If the type is specified as "table", the document path can be specified. All of the following files are determined in the specified folder.
Example: /myGroup/myRepository/MyDocPath
  secondOperand: Yes 2nd target of comparison. Specify the values of the firstOperand and the operator.
The template definition can be used. For usable template definitions, see "(Table) Usable template definitions".
If using in/notIn for "operator" and not using template definitions, add a list using a text string with entries separated by a comma.
Example:
  • If not using template definitions:
    "Service Desk Agent"
  • If the type is specified as "table" and using template definitions:
    '{{ .GetValue ".Requester.Customer" }}'
  • If using in/notIn for "operator" and not using template definitions:
    groupA,groupB,groupC
field: Yes Field name for the reference table
If the type is specified as "table", specify the column name. Use the table.column format to specify the table name and column.
Example: group.id
mode: No Use "client" or "server" to specify where sorting and filtering are performed.
labelQuery: Required if "mode" is specified as "server" Specify an expression for obtaining the value that is to be displayed in "field".
displayColumn: No Use the table name.column name format to specify the columns that will be displayed as options when using "lookup".
For details on forming table definitions and their descriptions, see "Datamodel".
(Example)
user.id
user.username
If nothing is specified, all properties are displayed.
(Example)
displayColumn:
    - user.name
    - user.role
    - user.group
 - (column name): No Column name
filterable: No Specify the column name to be displayed in the filter conditions. If no specification is made, the filter is enabled for all columns specified in displayColumn.
 - (column name): No Column name

(Table) Table properties (UI version 1.1)

Label Default value Required Description
components: Yes UI component
  type: Yes Specify "table". Display a list of records from the specified table.
  properties: No
  selection: No Specify "checkbox" or "radio".
If specified, a checkbox or radio button is added.
*Radio buttons are used to specify a single value.
  toolbar: No Specify "true" or "false" for the toolbar display settings.
columns: true No Switch column display
filter: true No Filter
density: true No Line height
export: true No Export function
  rowCount: 0 No If no specification is made (or "0" is specified), the height linked to the value selected in "Rows per page" (displayed in the lower right on the table on the Ops I GUI) is used.
  columns: Yes Specify the table columns.
Displayed in the order defined here.
- name: Yes Column name. Must be unique within the array.
  column: Yes Specify the data source to be used for each action in the column.
all: Required if "table" is specified for the "source" Specify data source fields to be used in all CRUD actions.
  source: Yes Specify the type of dataSource to be used with "table" or "api".
  label: No Specify the column display name.
  editable: false No Specify whether it is editable or not.
  • true: Editable
  • false: Not editable
To reflect changes in the database, it is necessary to execute a save action.
  sortname: false No The name used for "sort". If nothing is specified, "column" is used.
  hidable: true No Use the options below to specify whether or not columns can be hidden.
  • true: Cannot be hidden
  • false: Can be hidden
  hide: false No Specify whether or not columns are hidden.
If "true" is specified, the column will be hidden.
  width: No Specify a fixed value for the column width. (Unit: px)
  type: auto No The display format for columns. "auto", "chip", or "stepper" can be specified.
For details, see "(Table) Table column type (UI version 1.1)".
  action: auto No Specify the action to be executed for this column. For details on actions, see "Script". Capture "handleCellClick" and "handleCellValueChange" from "(Table) List of execution timings for each component and function names (UI Version 1.1)" and perform the processing.
  properties: No Set the properties. Can currently only be used for the "chip" type.
If using the "chip" type, an error will be displayed ("An error occurred") if the "properties" are not set.
link: false No Display strings as hyperlinks and make cells clickable. As cell click events will be generated, handle window navigations using custom scripts.
leftIcon: No Specify the icon to be displayed on the left side of table cells.
type: Yes Specify icons provided in the Material-UI.
https://v5.mui.com/material-ui/material-icons/
action: No Specify the actions to be performed when icons are clicked. For details on actions, see "Script". Capture "handleIconClick" from "(Table) List of execution timings for each component and function names (UI Version 1.1)" and perform the processing.
conditions: No Specify the conditions by which icons are displayed. If nothing is specified, icons will always be displayed.
- No
- operator: Yes "eq", "ne", "gt", "ge", "lt", "le", "regex", "wildcard", "in", or "notIn" can be specified.
  firstOperand: Yes Specify the field name of the data source to be used for evaluations.
  secondOperand: Yes Specify the values to be used for evaluations.
rightIcon: No Specify the icon to be displayed on the right side of table cells.
type: Yes Specify icons provided in the Material-UI.
https://v5.mui.com/material-ui/material-icons/
action: No Specify the actions to be performed when icons are clicked. For details on actions, see "Script". Capture "handleIconClick" from "(Table) List of execution timings for each component and function names (UI Version 1.1)" and perform the processing.
conditions: No Specify the conditions by which icons are displayed. If nothing is specified, icons will always be displayed
- No
- operator: Yes "eq", "ne", "gt", "ge", "lt", "le", "regex", "wildcard", "in", or "notIn" can be specified.
  firstOperand: Yes Specify the field name of the data source to be used for evaluations.
  secondOperand: Yes Specify the values to be used for evaluations.
color: primary Specify one of the options The following color props can be specified.
https://v5.mui.com/material-ui/react-chip/#color-chip
colorTokens: Specify cell colors using color codes. (Can only be used if "type" is specified as "chip".)
main: Yes Specify chip background colors using color codes.
contrastText: #ffffff No Specify the text color within a chip using color codes.
variant: filled No The following can be specified.
  • filled: Color fill
  • outlined: Add an outline
switch: No Specify the field name of the data source. Use if you want to change the chip type color or stepper type icon according to the value of the data source field.
cases: Required if "switch" is specified
- case: Yes Specify the value used for evaluations with the data source field specified with "switch".
  color: Specify one of the options The following color props can be specified.
https://v5.mui.com/material-ui/react-chip/#color-chip
  colorTokens: Use color codes to specify cell colors for when the value of "switch" and "case" are the same. Can only be used if "type" is specified as "chip".
main: Yes Specify chip background colors using color codes.
contrastText: #ffffff No Specify the text color within a chip using color codes.
  variant: Required if "column.type" is specified as "chip" The following can be specified.
  • filled: Color fill
  • outlined: Add an outline

(Table) Table column type (UI version 1.1)

Column type Description
auto Set according to the specified columns from the Datamodel.
chip Display chips along with column values.
For more details, see the website(s) below.
https://v5.mui.com/material-ui/react-chip/

stepper Display icons showing the progress and status of work tasks.

(Table) Button properties (UI version 1.1)

Label Default value Required Description
components: Yes UI component
  type: Yes Specify "button".
Execute actions defined for each component.
Placed to the right end of the grid.
  properties: No
  buttons: Yes Configure detailed button settings.
- name: Yes Button name
  label: No Button display name
  action: Yes Specify the action to be executed when a button is clicked. For details, see "Script".

(Table) Card properties (UI version 1.1)

Label Default value Required Description
components: Yes UI component
  type: Yes Specify "card".
  properties: No
  image: No Specify if displaying images.
src: No Image file name
Store images in the same directory as the YAML file for the UI that uses the Card component.
position: left No Image position
"top", "bottom", "left", "right", or "background" can be specified.
sx: No Specify based on the sx properties of the Material-UI. For more details, see the website(s) below.
https://v5.mui.com/system/getting-started/the-sx-prop/
height: No Height
width: No Width
  link: No Navigation destination when clicked
  content: No Display contents
Specify in HTML format. If nothing is specified, the destination set in "link" is displayed.
  clickable: all No Clickable scope
The following can be specified.
  • all
  • image: image only
  • none
  sx: No Specify based on the sx properties of the Material-UI. For more details, see the website(s) below.
https://v5.mui.com/system/getting-started/the-sx-prop/
height: No Height
width: No Width

(Table) Tabs properties (UI version 1.1)

Label Default value Required Description
components: Yes UI component
  type: Yes Specify "tabs".
  properties: No
  type: Yes "tab", "toggle", or "dynamic" can be specified. If "toggle" is specified with "Paper" directly above, display the button at the position of the Paper title label.

(Table) Tab properties (UI version 1.1)

Label Default value Required Description
components: Yes UI component
  type: Yes Specify "tab".
  properties: Yes
  icon: No If the type is set to "toggle", specify the icon to be displayed from among the MUI icons.
  visible: true No The following can be specified.
  • true: Display from the start.
  • false: Hide this field until it is instructed to be displayed by script.
  dataSource: No Specify the dedicated dataSource for the tab. Specify in the Dynamic tab in cases where the same dataSource is to be used for each tab.
schemas: No
- ref: Yes Specify the name of the schema data source. The name defined in uiManifest.dataSource.schemas[] must be specified.
tables: No
- ref: Yes Specify the name of the table data source. The name defined in uiManifest.dataSource.tables[] must be specified.
  action: No Specify the actions for handling events that occur in table data sources.

(Table) Article properties (UI version 1.1)

Label Default value Required Description
components: Yes UI component
  type: Yes Specify "article".
  properties: No
  ticketid: Yes Specify the source for obtaining ticket IDs.
type: Yes The following can be specified.
  • uipath: URL path parameter
  • query: URL query parameter
  • fixed: Fixed value
value: Yes Specify the following by type.
  • For uipath, the name of the YAML file for the uipath linked to the path parameter you want to specify
  • For query, URL query parameter name
  • For fixed, the value you want to specify
  ds: Yes Specify the source for obtaining the ds of ticket APIs.
type: Yes The following can be specified.
  • uipath: URL path parameter
  • query: URL query parameter
  • fixed: Fixed value
value: Yes Specify the following by type.
  • For uipath, the name of the YAML file for the uipath linked to the path parameter you want to specify
  • For query, URL query parameter name
  • For fixed, the value you want to specify
  customer: false No Specify whether or not the window is for use by customers.
Specify "true" or "false".
  maxHeight: No Maximum height
  maxWidth: No Maximum width
  minHeight: No Minimum height
  minWidth: No Minimum width
  height: No Height
  width: No Width

(Table) Attachment properties (UI version 1.1)

Label Default value Required Description
components: Yes UI component
  type: Yes Specify "attachment".
Upload or download files.
  properties: No
  editable: false No The following can be specified.
  • true: Editable
  • false: Not editable
  hintMessage: No Set text strings to be displayed as hint messages. Display a question mark icon next to the label. Click on the question mark icon to display the set values.

<Definition example>

apiVersion: 1.1
kind: ui

## Meta data
type: resource
name: sample_request_1_ui
label: sample_request_1_ui
description: sample_request_1_ui

## Dependencies
includes:
  - kind: datamodel
    name: all_type_columns_datamodel
  - kind: script
    name: check_value_input
  - kind: attachment
    name: test_attachment

context:
  type: uipath
  value: workflow_detail_by_context_id

attachment: test_attachment

dataSource:
  tables:
    - name: table_ds1
      table: type1_table
    - name: table_ds3
      table: type3_table
    - name: table_ds2
      table: type2_table
    - name: group
      table: group

components:
  - name: grid_container
    type: grid
    properties:
      container: true
      justifyContent: center
    children:
      - name: grid_item
        type: grid
        properties:
          item: true
        children:
          - name: test_paper
            label: Form 1 for testing
            type: paper
            properties:
              icon: Assignment
            children:
              - name: test_form1
                label: test_form1
                type: form
                properties:
                  fields:
                    - field:
                        all: table_ds1.smallint
                      label: smallint
                      name: smallint
                      source: table
                      properties:
                        required: true
                        xs: 3
                        sm: 3
                    - field:
                        all: table_ds1.integer
                      label: integer
                      name: integer
                      source: table
                      properties:
                        xs: 3
                        sm: 3
                    - field:
                        all: table_ds1.decimal
                      label: decimal
                      name: decimal
                      source: table
                      properties:
                        xs: 3
                        sm: 3
                    - field:
                        all: table_ds1.serial
                      label: serial
                      name: serial
                      source: table
                      properties:
                        readOnly: true
                        xs: 12
                        sm: 12
                      load: false
                    - field:
                        all: table_ds1.money
                      label: money
                      name: money
                      source: table
                    - field:
                        all: table_ds3.enum
                      label: enum
                      name: enum
                      source: table
                    - field:
                        all: table_ds3.cidr
                      label: cidr
                      name: cidr
                      source: table
                    - field:
                        all: table_ds2.varchar
                      label: varchar
                      name: varchar
                      source: table
                    - field:
                        all: table_ds2.date
                      label: date
                      name: date
                      source: table
                    - field:
                        all: table_ds2.text
                      label: text
                      name: text
                      source: table
                    - source: table
                      name: lookup
                      field:
                        all: table_ds2.lookup
                      label: lookup
                      properties:
                        required: true
                        xs: 12
                        sm: 12
                        md: 12
                      displayName: group.name
                      lookup:
                        source: table
                        field: group.id
                        displayColumn:
                          - group.name
              - name: attachment_name
                type: attachment
                label: attachment
                properties:
                  editable: true

buttons:
  - type: save
    name: save
    label: save
  - type: accept
    name: accept
    label: apply
  - type: custom
    name: check_value
    action: check_value_input
    label: Check Value
  - type: custom
    name: save_attachment
    action: save_attachment
    label: Save Attachment