{ 'public_id': { 'type': 'integer' }, 'name': { 'type': 'string', 'required': True, 'regex': r'(\w+)-*(\w)([\w-]*)' # kebab case validation, }, 'label': { 'type': 'string', 'required': False }, 'author_id': { 'type': 'integer', 'required': True }, 'editor_id': { 'type': 'integer', 'nullable': True, 'required': False }, 'active': { 'type': 'boolean', 'required': False, 'default': True }, 'fields': { 'type': 'list', 'required': False, 'default': None ###### DEFAULT FIELDS ####### 'schema': { "type" : { 'type': 'string', # Text, Password, Textarea, radio, select, date 'required': true }, "name" : { 'type': 'string', 'required': true }, "label" : { 'type': 'string', 'required': true }, "default" : { 'type': 'integer', 'nullable': True, 'empty': True }, "options" : { 'type': 'list', 'empty': True, 'schema': { "name" : { 'type': 'string', 'required': true }, "label" : { 'type': 'string', 'required': true }, } } }, ###### Reference FIELDS ####### 'schema': { "type" : { 'type': 'string', # Reference 'required': true }, "name" : { 'type': 'string', 'required': true }, "label" : { 'type': 'string', 'required': true }, "ref_types": { 'type': 'list', # List of public_id of type 'empty': True, }, "summaries" : { 'type': 'list', 'empty': True, 'schema': { "type_id" : { 'type': 'integer', 'required': true }, "line" : { 'type': 'string', # enter curved brackets for field interpolation example: Customer IP {} 'required': true }, "label" : { 'type': 'string', 'required': true }, "fields" : { # List of field names 'type': 'list', 'empty': True }, "icon" : { 'type': 'string', # Free Font Awesome example: 'fa fa-cube' 'required': true }, "prefix" : { 'type': 'boolean', 'required': false, 'default': true } } }, "default" : { 'type': 'integer', 'nullable': True, 'empty': True } }, }, 'version': { 'type': 'string', 'default': DEFAULT_VERSION }, 'description': { 'type': 'string', 'nullable': True, 'empty': True }, 'render_meta': { 'type': 'dict', 'allow_unknown': False, 'schema': { 'icon': { 'type': 'string', 'nullable': True }, ###### DEFAULT SECTION ####### 'sections': { 'type': 'list', 'empty': True, 'schema': { "type" : { 'type': 'string', 'required': true }, "name" : { 'type': 'string', 'required': true }, "label" : { 'type': 'string', 'required': true }, "fields" :{ 'type': 'list', 'empty': True, } }, ###### REFERENCE SECTION ####### 'sections': { 'type': 'list', 'empty': True, 'schema': { "type" : { 'type': 'string', 'required': true }, "name" : { 'type': 'string', 'required': true }, "label" : { 'type': 'string', 'required': true }, "reference" : { 'type': 'dict', 'empty': false, 'schema': { "type_id" : { 'type': 'integer', 'required': true }, "section_name" : { 'type': 'string', 'required': true }, "selected_fields" :{ # List of field names 'type': 'list', 'empty': True } } }, "fields" :{ 'type': 'list', 'empty': True, } } }, 'externals': { 'type': 'list', 'empty': True, 'schema': { "name" : { 'type': 'string', 'required': true }, "href" : { 'type': 'string', # enter curved brackets for field interpolation example: http://example.org/{}/example/ 'required': false }, "label" : { 'type': 'string', 'required': true }, "icon" : { 'type': 'string', # Free Font Awesome example: 'fas fa-external-link-alt' 'required': true }, "fields" : { # List of field names 'type': 'list', 'empty': True } } }, 'summary': { 'type': 'dict', 'empty': True 'schema': { "fields" : { # List of field names 'type': 'list', 'empty': True } } } } }, 'acl': { 'type': 'dict', 'allow_unknown': True, 'required': False, 'schema: { "activated" : { 'type': 'boolean', 'required': False, 'default': True }, "groups" : { 'type': 'dict', 'nullable': True 'required': False, 'schema': { 'type': 'list', # Example: "2" : ["READ","CREATE","UPDATE", "DELETE"] # The integer value is the public_id of the group 'empty': True } } } } }