Cheat Sheet

On this page you’ll find a cheat sheet to support designing documents.

Document definition

document-definition:
  name: sample-document
  types:
  - id: address
    base-type: fieldset
    fields:
    - id: street
      type: fieldset
      fields:
      - id: name
        type: string
      - id: house-nr
        type: number
    - id: zip-code
      type: number(short)
  - base-type: number
    id: age-field
    default:
      value: 1
  content:
    - id: active
      type: boolean

    - id: name
      type: string
      validators:
      - required
    - id: motivation
      type: text
      default:
        value: "Motivational text"
    - id: hobbies
      type: string[]
      possible-values:
      - hockey
      - basketball
      - polo
      - cycling
      - running

    - id: delivery-address
      type: address
    - id: facturation-address
      type: address
      messages:
        tooltip: Only required if it is different from the delivery address
    - id: company-address
      type: address
      messages:
        description: Enter the address of your workspace

    - id: date-of-birth
      type: date
      messages:
       placeholder: Enter your date of birth
    - id: alarm-activates-at
      label: Alarm
      type: time
      messages:
        help: The alarm will activate at the specified hour
    - id: reviewed-at
      type: datetime

    - id: price
      type: currency(EUR,2)
    - id: tax
      type: percentage(100)
    - id: price-including-tax
      type: currency(EUR,2)
      formula: $(price) * (1 + $(tax))
    - id: olympic-year-locations
      type: number[]
      - 2014: 'Sochi (2014)'
      - 2016: 'Rio de Janeiro (2016)'
      - 2018: 'Pyeongchang (2018)'

    - id: mentors
      type: '@user[]'
      attributes:
        options-query: 'deleted = false'
      validators:
      - required
      messages:
        validation.required: At least one mentor must be assigned

    - id: is-sportive
      label: Sportive
      type: boolean
      formula: 'isNotEmpty($(hobbies))'

    - id: employees
      type: '@user[]'

    - id: company-information
      type: fieldset
      fields:
      - id: name
        type: string
      - id: amount-of-employees
        type: number
        default:
          formula: "50+1"
        formula: count($(employees)
      - id: phone-number
        type: string

    - id: application
      type: document(hr:applications)

    - type: age-field
      id: age
      default: null
    - type: age-field
      id: first-age

See the reference documentation for more information on configuring a document definition:

View definition

view-definition: # root key
  name: listView
  type: list # type of view this definition can affect
  properties:
    - "document.name"
    - "document.created"
    - "document.createdAt"
    - "document.createdBy"
    - "document.lastModified"
    - "document.lastModifiedAt"
    - "document.lastModifiedBy"
    - "versionLabel"
    - "field:name"
    - "field:address.street"

  filter:
    mode:
      basic: false
      advanced: true

    defaultSelector: SINGLE
    defaultQuery: "field:company like 'google'"
    basePredicate: "user.userDirectory != 1"

    fields:
      - id: field:name
      - id: field:company
        selector: MULTI
      - id: documeny.createdBy
        operand: ilike
      - id: field:mentor
        selector: MULTI
        operand: in

See the reference documentation for more information on configuring a view definition: