1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-18 20:59:44 +02:00
planka/server/config/models.js

126 lines
3.7 KiB
JavaScript

/**
* Default model settings
* (sails.config.models)
*
* Your default, project-wide model settings. Can also be overridden on a
* per-model basis by setting a top-level properties in the model definition.
*
* For details about all available model settings, see:
* https://sailsjs.com/config/models
*
* For more general background on Sails model settings, and how to configure
* them on a project-wide or per-model basis, see:
* https://sailsjs.com/docs/concepts/models-and-orm/model-settings
*/
module.exports.models = {
/**
*
* Whether model methods like `.create()` and `.update()` should ignore
* (and refuse to persist) unrecognized data-- i.e. properties other than
* those explicitly defined by attributes in the model definition.
*
* To ease future maintenance of your code base, it is usually a good idea
* to set this to `true`.
*
* > Note that `schema: false` is not supported by every database.
* > For example, if you are using a SQL database, then relevant models
* > are always effectively `schema: true`. And if no `schema` setting is
* > provided whatsoever, the behavior is left up to the database adapter.
* >
* > For more info, see:
* > https://sailsjs.com/docs/concepts/orm/model-settings#?schema
*
*/
// schema: true,
/**
*
* How and whether Sails will attempt to automatically rebuild the
* tables/collections/etc. in your schema.
*
* > Note that, when running in a production environment, this will be
* > automatically set to `migrate: 'safe'`, no matter what you configure
* > here. This is a failsafe to prevent Sails from accidentally running
* > auto-migrations on your production database.
* >
* > For more info, see:
* > https://sailsjs.com/docs/concepts/orm/model-settings#?migrate
*
*/
migrate: 'safe',
/**
*
* Base attributes that are included in all of your models by default.
* By convention, this is your primary key attribute (`id`), as well as two
* other timestamp attributes for tracking when records were last created
* or updated.
*
* > For more info, see:
* > https://sailsjs.com/docs/concepts/orm/model-settings#?attributes
*
*/
attributes: {
id: {
type: 'string',
autoIncrement: true,
},
createdAt: {
type: 'ref',
columnName: 'created_at',
},
updatedAt: {
type: 'ref',
columnName: 'updated_at',
},
},
beforeCreate(valuesToSet, proceed) {
valuesToSet.createdAt = new Date().toUTCString(); // eslint-disable-line no-param-reassign
proceed();
},
beforeUpdate(valuesToSet, proceed) {
valuesToSet.updatedAt = new Date().toUTCString(); // eslint-disable-line no-param-reassign
proceed();
},
/**
*
* The set of DEKs (data encryption keys) for at-rest encryption.
* i.e. when encrypting/decrypting data for attributes with `encrypt: true`.
*
* > The `default` DEK is used for all new encryptions, but multiple DEKs
* > can be configured to allow for key rotation. In production, be sure to
* > manage these keys like you would any other sensitive credential.
*
* > For more info, see:
* > https://sailsjs.com/docs/concepts/orm/model-settings#?dataEncryptionKeys
*
*/
dataEncryptionKeys: {
default: 'fKSf/hPekelUegjM7IyM/EhHbd7HI9Kiec5Lxy2t+7w=',
},
/**
*
* Whether or not implicit records for associations should be cleaned up
* automatically using the built-in polyfill. This is especially useful
* during development with sails-disk.
*
* Depending on which databases you're using, you may want to disable this
* polyfill in your production environment.
*
* (For production configuration, see `config/env/production.js`.)
*
*/
// cascadeOnDestroy: true,
};