Skip to content

Commit

Permalink
fix: use coderabbit suggestion
Browse files Browse the repository at this point in the history
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
  • Loading branch information
SebassNoob and coderabbitai[bot] authored Apr 30, 2024
1 parent 3bd85c1 commit d546387
Showing 1 changed file with 25 additions and 38 deletions.
63 changes: 25 additions & 38 deletions interapp-backend/scheduler/scheduler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -164,46 +164,33 @@ schedule('0 0 0 */1 * *', async () => {
console.info('db snapshot taken at location: ', newFile);
});

// backup minio bucket
const requiredEnv = [
'MINIO_ENDPOINT',
'MINIO_ADDRESS',
'MINIO_ROOT_USER',
'MINIO_ROOT_PASSWORD',
'MINIO_BUCKETNAME',
];
const missingEnv = requiredEnv.filter((env) => !process.env[env]);
// Simplify environment variable handling and improve error messaging
const envVars = {
MINIO_ENDPOINT: process.env.MINIO_ENDPOINT,
MINIO_ADDRESS: process.env.MINIO_ADDRESS,
MINIO_ROOT_USER: process.env.MINIO_ROOT_USER,
MINIO_ROOT_PASSWORD: process.env.MINIO_ROOT_PASSWORD,
MINIO_BUCKETNAME: process.env.MINIO_BUCKETNAME,
};
const missingEnv = Object.entries(envVars).filter(([, value]) => !value).map(([key]) => key);
if (missingEnv.length > 0) {
console.error('Missing required environment variables: ', missingEnv);
process.exit(1);
throw new Error(`Missing required environment variables: ${missingEnv.join(', ')}`);
}

const minioURL = `http://${process.env.MINIO_ENDPOINT}${process.env.MINIO_ADDRESS}`;
const minioAccessKey = process.env.MINIO_ROOT_USER as string;
const minioSecretKey = process.env.MINIO_ROOT_PASSWORD as string;
const minioBucketName = process.env.MINIO_BUCKETNAME as string;
const { MINIO_ENDPOINT, MINIO_ADDRESS, MINIO_ROOT_USER, MINIO_ROOT_PASSWORD, MINIO_BUCKETNAME } = envVars;
const minioURL = `http://${MINIO_ENDPOINT}${MINIO_ADDRESS}`;
const minioAccessKey = MINIO_ROOT_USER;
const minioSecretKey = MINIO_ROOT_PASSWORD;
const minioBucketName = MINIO_BUCKETNAME;
const minioAliasName = 'minio';

const minioBackupTask = schedule(
'0 0 0 */1 * *',
async () => {
// this is mounted on the host machine -- see docker compose file
const path = '/tmp/minio-dump';
if (!existsSync(path)) mkdirSync(path);

const d = new Date();
const fmted = `interapp_minio_${d.toLocaleDateString('en-GB').replace(/\//g, '_')}`;

const newFile = `${path}/${fmted}.tar.gz`;

// create a new backup
await $`mc mirror ${minioAliasName}/${minioBucketName} /tmp/minio-dump/temp`;
await $`cd /tmp && tar -cvf ${newFile} minio-dump/temp`;
await $`rm -rf /tmp/minio-dump/temp`;
},
{ scheduled: false },
);

// set up mc alias first
const minioBackupTask = schedule('0 0 0 */1 * *', async () => {
const path = '/tmp/minio-dump';
if (!existsSync(path)) mkdirSync(path);
const d = new Date();
const fmted = `interapp_minio_${d.toLocaleDateString('en-GB').replace(/\//g, '_')}`;
const newFile = `${path}/${fmted}.tar.gz`;
await $`mc mirror ${minioAliasName}/${minioBucketName} /tmp/minio-dump/temp`;
await $`cd /tmp && tar -cvf ${newFile} minio-dump/temp`;
await $`rm -rf /tmp/minio-dump/temp`;
}, { scheduled: false });
await $`mc alias set ${minioAliasName} ${minioURL} ${minioAccessKey} ${minioSecretKey}`;
minioBackupTask.start();

0 comments on commit d546387

Please sign in to comment.