docs: function beforeValidate (controller, args) {
      // get model from controller
      var model = controller.model
      // get model data from input
      var data = args[model.name]
      // get schema id
      var schemaId = args.meta || !model.schemaDataId
          ? model.schemaId
          : model.schemaDataId
      // if validating meta data convert property names to columns names
      if (args.meta) {
          // clone data before modifying - shallow since only property names are
          // being modified
          data = _.clone(data)
          // iterate over all data properties
          _.each(data, (val, key) => {
              // get column name for key
              var columnName = model.columnName(key)
              // if property does not map to column then skip
              if (!columnName) {
                  return
              }
              // use column name for validation
              if (columnName !== key) {
                  // copy value to column name
                  data[columnName] = val
                  // delete entry for original property
                  delete data[key]
              }
          })
      }
      // get global validator
      var validator = model.global().validator
      // throw error if validation failed
      if (!validator.validate(schemaId, data)) {
          // throw error
          httpError(400, 'Validation Error', validator.errors)
      }
  }