mirror of
https://github.com/sourcebot-dev/sourcebot.git
synced 2025-12-14 21:35:25 +00:00
fix attempt #3: Do not require a encrpytion key at build time
This commit is contained in:
parent
d17c90a8f3
commit
98becf531a
2 changed files with 10 additions and 6 deletions
|
|
@ -1,10 +1,6 @@
|
||||||
import dotenv from 'dotenv';
|
import dotenv from 'dotenv';
|
||||||
|
|
||||||
export const getEnv = (env: string | undefined, defaultValue?: string, required?: boolean) => {
|
export const getEnv = (env: string | undefined, defaultValue?: string) => {
|
||||||
if (required && !env && !defaultValue) {
|
|
||||||
throw new Error(`Missing required environment variable`);
|
|
||||||
}
|
|
||||||
|
|
||||||
return env ?? defaultValue;
|
return env ?? defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -14,4 +10,4 @@ dotenv.config({
|
||||||
});
|
});
|
||||||
|
|
||||||
// @note: You can use https://generate-random.org/encryption-key-generator to create a new 32 byte key
|
// @note: You can use https://generate-random.org/encryption-key-generator to create a new 32 byte key
|
||||||
export const SOURCEBOT_ENCRYPTION_KEY = getEnv(process.env.SOURCEBOT_ENCRYPTION_KEY, undefined, true)!;
|
export const SOURCEBOT_ENCRYPTION_KEY = getEnv(process.env.SOURCEBOT_ENCRYPTION_KEY);
|
||||||
|
|
@ -9,6 +9,10 @@ const generateIV = (): Buffer => {
|
||||||
};
|
};
|
||||||
|
|
||||||
export function encrypt(text: string): { iv: string; encryptedData: string } {
|
export function encrypt(text: string): { iv: string; encryptedData: string } {
|
||||||
|
if (!SOURCEBOT_ENCRYPTION_KEY) {
|
||||||
|
throw new Error('Encryption key is not set');
|
||||||
|
}
|
||||||
|
|
||||||
const encryptionKey = Buffer.from(SOURCEBOT_ENCRYPTION_KEY, 'ascii');
|
const encryptionKey = Buffer.from(SOURCEBOT_ENCRYPTION_KEY, 'ascii');
|
||||||
|
|
||||||
const iv = generateIV();
|
const iv = generateIV();
|
||||||
|
|
@ -21,6 +25,10 @@ export function encrypt(text: string): { iv: string; encryptedData: string } {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function decrypt(iv: string, encryptedText: string): string {
|
export function decrypt(iv: string, encryptedText: string): string {
|
||||||
|
if (!SOURCEBOT_ENCRYPTION_KEY) {
|
||||||
|
throw new Error('Encryption key is not set');
|
||||||
|
}
|
||||||
|
|
||||||
const encryptionKey = Buffer.from(SOURCEBOT_ENCRYPTION_KEY, 'ascii');
|
const encryptionKey = Buffer.from(SOURCEBOT_ENCRYPTION_KEY, 'ascii');
|
||||||
|
|
||||||
const ivBuffer = Buffer.from(iv, 'hex');
|
const ivBuffer = Buffer.from(iv, 'hex');
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue