24
server/database/sequelize.ts
Normal file
24
server/database/sequelize.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { Sequelize } from "sequelize-typescript";
|
||||
import Logger from "../logging/logger";
|
||||
import * as models from "../models";
|
||||
|
||||
const isProduction = process.env.NODE_ENV === "production";
|
||||
const isSSLDisabled = process.env.PGSSLMODE === "disable";
|
||||
|
||||
export const sequelize = new Sequelize(
|
||||
process.env.DATABASE_URL || process.env.DATABASE_CONNECTION_POOL_URL || "",
|
||||
{
|
||||
logging: (msg) => Logger.debug("database", msg),
|
||||
typeValidation: true,
|
||||
dialectOptions: {
|
||||
ssl:
|
||||
isProduction && !isSSLDisabled
|
||||
? {
|
||||
// Ref.: https://github.com/brianc/node-postgres/issues/2009
|
||||
rejectUnauthorized: false,
|
||||
}
|
||||
: false,
|
||||
},
|
||||
models: Object.values(models),
|
||||
}
|
||||
);
|
||||
9
server/database/vaults.ts
Normal file
9
server/database/vaults.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import SequelizeEncrypted from "sequelize-encrypted";
|
||||
import { Sequelize } from "sequelize-typescript";
|
||||
|
||||
/**
|
||||
* Encrypted field storage, use via the Encrypted decorator, not directly.
|
||||
*/
|
||||
export default function vaults() {
|
||||
return SequelizeEncrypted(Sequelize, process.env.SECRET_KEY);
|
||||
}
|
||||
Reference in New Issue
Block a user