string (default)

A property that should be stored and read as a basic string.

{
  "key": "currency",
  "label": "Product Code",
  "type": "string"
},

number

A property that should be stored and read as either an integer or floating point number. Database engines should look at the configuration to determine ideal storage format.

config.decimal_places
number
default:
"0"

The number of decimal places to preserve accuracy to. Overages should be automatically rounded with a warning. A hook can pre-format to accomplish floor or ceiling.

  {
    "key": "price",
    "label": "Retail Price",
    "type": "number",
    "config": {
      "decimal_places": 2
    }
  },

reference

Defines a reference to another sheet. Links should be established automatically by the matching engine or similar upon an evaluation of unique or similar columns between datasets.

config.ref
required

The full path reference to another sheet/table configuration. Must be in the same workbook.

config.relationship
required

The type of relationship this defines. Can be has-one

enum

Defines an enumerated list of options for the user to select from. Matching tooling attempts to resolve incoming data assignment to a valid option. The maximum number of options for this list is 100. For larger lists, users should use the reference or future lookup types.

config.allow_custom
boolean
default:
"false"

Permit the user to create new options for this specific field.

config.options
required

An array of valid options the user can select from

value
required

The value or ID of this option. This value will be sent in egress

label
string
default:
"value"

A visual label for this option, defaults to value if not provided

color
string

An optional color to assign this option

icon
string

A reference pointer to a previously registered icon

meta
object

An arbitrary JSON object to be associated with this option and made available to hooks

{
  "key": "status",
  "label": "Status",
  "type": "enum",
  "config": {
    "options": [
      {
        "value": "active"
      },
      {
        "value": "inactive",
        "label": "Disabled",
        "color": "#ff0000",
        "icon": "fa fa-ban",
        "meta": {
          "foo": "bar"
        }
      }
    ]
  }
},

boolean

A true or false value type. Matching engines should attempt to resolve all common ways of representing this value and it should usually be displayed as a checkbox.

{
  "key": "is_active",
  "label": "Active",
  "type": "boolean"
}

date

Store a field as a GMT date. Data hooks must convert this value into a YYYY-MM-DD format in order for it to be considered a valid value. Datetime is not currently available, but will be a separately supported Field Type in the future, and will include timezone.