feat: Improved error for community edition when database columns cannot be decrypted

This commit is contained in:
Tom Moor
2022-05-21 13:25:32 +01:00
parent 67049a7868
commit f2be756cf4

View File

@@ -1,4 +1,5 @@
import vaults from "@server/database/vaults";
import Logger from "@server/logging/logger";
const key = "sequelize:vault";
@@ -15,7 +16,19 @@ export default function Encrypted(target: any, propertyKey: string) {
* Get the value of an encrypted column given the target and the property key.
*/
export function getEncryptedColumn(target: any, propertyKey: string): string {
return Reflect.getMetadata(key, target, propertyKey).get.call(target);
try {
return Reflect.getMetadata(key, target, propertyKey).get.call(target);
} catch (err) {
if (err.message.includes("bad decrypt")) {
Logger.error(
`Failed to decrypt database column (${propertyKey}). The SECRET_KEY environment variable may have changed since installation.`,
err
);
process.exit(1);
}
throw err;
}
}
/**