code: function onCreating(model, attr, options) {
          if (schema.tables[this.tableName].hasOwnProperty('created_by')) {
              if (!options.importing || (options.importing && !this.get('created_by'))) {
                  this.set('created_by', String(this.contextUser(options)));
              }
          }
  
          if (schema.tables[this.tableName].hasOwnProperty('updated_by')) {
              if (!options.importing) {
                  this.set('updated_by', String(this.contextUser(options)));
              }
          }
  
          if (schema.tables[this.tableName].hasOwnProperty('created_at')) {
              if (!model.get('created_at')) {
                  model.set('created_at', new Date());
              }
          }
  
          if (schema.tables[this.tableName].hasOwnProperty('updated_at')) {
              if (!model.get('updated_at')) {
                  model.set('updated_at', new Date());
              }
          }
  
          return Promise.resolve(this.onValidate(model, attr, options))
              .then(() => {
                  /**
                   * @NOTE:
                   *
                   * The API requires only specific attributes to send. If we don't set the rest explicitly to null,
                   * we end up in a situation that on "created" events the field set is incomplete, which is super confusing
                   * and hard to work with if you trigger internal events, which rely on full field set. This ensures consistency.
                   *
                   * @NOTE:
                   *
                   * Happens after validation to ensure we don't set fields which are not nullable on db level.
                   */
                  _.each(Object.keys(schema.tables[this.tableName]), (columnKey) => {
                      if (model.get(columnKey) === undefined) {
                          model.set(columnKey, null);
                      }
                  });
  
                  model._changed = _.cloneDeep(model.changed);
              });
      }
docs: Adding resources implies setting these properties on the server side
  - set `created_by` based on the context
  - set `updated_by` based on the context
  - the bookshelf `timestamps` plugin sets `created_at` and `updated_at`
  - if plugin is disabled (e.g. import) we have a fallback condition
  
  Exceptions: internal context or importing