Constraints

Constraints are defined per field and control its content. Currently, two types of constraints are supported:

  • Whether a field is mandatory/required and the user needs to fill it
  • Whether a field should have unique content and no two rows can exist in the database with the same value of this field

In our library/book example, we define a name of the library to be unique and mandatory and the title of a book should be required:

library:
    table: lib
    label: Library
    fields:
        name:
            type: text
            required: true
            unique: true
book:
    table: book
    label: Book
    fields:
        title:
            type: text
            required: true
        author:
            type: text
        library:
            type: reference
            reference:
                nameField: name
                entity: library

So it’s just as easy as adding either “required: true” or “unique: true” to the field definition. Note that both constraints are used for the field “name” in the entity “library”.