@plutonhq/core-backend 0.1.15 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/controllers/PlanController.d.ts +1 -0
- package/dist/controllers/PlanController.d.ts.map +1 -1
- package/dist/controllers/PlanController.js +1 -1
- package/dist/controllers/PlanController.js.map +1 -1
- package/dist/controllers/SettingsController.d.ts +3 -0
- package/dist/controllers/SettingsController.d.ts.map +1 -1
- package/dist/controllers/SettingsController.js +1 -1
- package/dist/controllers/SettingsController.js.map +1 -1
- package/dist/controllers/UserController.d.ts +4 -0
- package/dist/controllers/UserController.d.ts.map +1 -1
- package/dist/controllers/UserController.js +1 -1
- package/dist/controllers/UserController.js.map +1 -1
- package/dist/createApp.d.ts.map +1 -1
- package/dist/createApp.js +1 -1
- package/dist/createApp.js.map +1 -1
- package/dist/managers/BaseBackupManager.d.ts +4 -1
- package/dist/managers/BaseBackupManager.d.ts.map +1 -1
- package/dist/managers/BaseBackupManager.js +1 -1
- package/dist/managers/BaseBackupManager.js.map +1 -1
- package/dist/routes/plans.d.ts.map +1 -1
- package/dist/routes/plans.js +1 -1
- package/dist/routes/plans.js.map +1 -1
- package/dist/routes/settings.d.ts.map +1 -1
- package/dist/routes/settings.js +1 -1
- package/dist/routes/settings.js.map +1 -1
- package/dist/routes/users.d.ts.map +1 -1
- package/dist/routes/users.js +1 -1
- package/dist/routes/users.js.map +1 -1
- package/dist/services/PlanService.d.ts +8 -0
- package/dist/services/PlanService.d.ts.map +1 -1
- package/dist/services/PlanService.js +1 -1
- package/dist/services/PlanService.js.map +1 -1
- package/dist/services/SettingsService.d.ts +9 -0
- package/dist/services/SettingsService.d.ts.map +1 -1
- package/dist/services/SettingsService.js +1 -1
- package/dist/services/SettingsService.js.map +1 -1
- package/dist/services/events/BackupEventService.d.ts +11 -0
- package/dist/services/events/BackupEventService.d.ts.map +1 -1
- package/dist/services/events/BackupEventService.js +1 -1
- package/dist/services/events/BackupEventService.js.map +1 -1
- package/dist/services/listeners/BackupEventListener.d.ts +11 -9
- package/dist/services/listeners/BackupEventListener.d.ts.map +1 -1
- package/dist/services/listeners/BackupEventListener.js +1 -1
- package/dist/services/listeners/BackupEventListener.js.map +1 -1
- package/dist/strategies/backup/BackupStrategy.d.ts +4 -0
- package/dist/strategies/backup/BackupStrategy.d.ts.map +1 -1
- package/dist/strategies/backup/LocalStrategy.d.ts +4 -0
- package/dist/strategies/backup/LocalStrategy.d.ts.map +1 -1
- package/dist/strategies/backup/LocalStrategy.js +1 -1
- package/dist/strategies/backup/LocalStrategy.js.map +1 -1
- package/dist/strategies/backup/RemoteStrategy.d.ts +4 -0
- package/dist/strategies/backup/RemoteStrategy.d.ts.map +1 -1
- package/dist/strategies/backup/RemoteStrategy.js +1 -1
- package/dist/strategies/backup/RemoteStrategy.js.map +1 -1
- package/dist/utils/installHelpers.d.ts +6 -2
- package/dist/utils/installHelpers.d.ts.map +1 -1
- package/dist/utils/installHelpers.js +1 -1
- package/dist/utils/installHelpers.js.map +1 -1
- package/dist/utils/restic/restic.d.ts +5 -0
- package/dist/utils/restic/restic.d.ts.map +1 -1
- package/dist/utils/restic/restic.js +1 -1
- package/dist/utils/restic/restic.js.map +1 -1
- package/package.json +6 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createReadStream}from"fs";import{access,constants,readFile}from"fs/promises";import{planInsertSchema,planUpdateSchema}from"../db/schema/plans";import{planLogger}from"../utils/logger";import{generateUID}from"../utils/helpers";import{intervalToCron}from"../utils/intervalToCron";import{LocalStrategy as LocalBackupStrategy}from"../strategies/backup/LocalStrategy";import{RemoteStrategy as RemoteBackupStrategy}from"../strategies/backup/RemoteStrategy";import{appPaths}from"../utils/AppPaths";import{AppError,NotFoundError}from"../utils/AppError";import{sanitizeStoragePath}from"../utils/sanitizeStoragePath";export class PlanService{localAgent;planStore;backupStore;storageStore;deviceStore;restoreStore;constructor(localAgent,planStore,backupStore,storageStore,deviceStore,restoreStore){this.localAgent=localAgent,this.planStore=planStore,this.backupStore=backupStore,this.storageStore=storageStore,this.deviceStore=deviceStore,this.restoreStore=restoreStore}getStrategy(plan){return"main"!==plan.sourceId?new RemoteBackupStrategy(plan.sourceId):new LocalBackupStrategy(this.localAgent)}async getPlan(planId,history=!0){const result=await this.planStore.getById(planId,history);if(!result)throw new NotFoundError("Plan not found");return result}async getAllPlans(history=!0){return await this.planStore.getAll(history)}async checkActiveBackupsOrRestore(planId,type){return"restore"===type?await this.planStore.hasActiveRestore(planId):await this.planStore.hasActiveBackups(planId)}async createPlan(planData){const planId=generateUID(),{title:title,description:description,storage:storage,storagePath:storagePath,sourceConfig:sourceConfig,sourceId:sourceId,sourceType:sourceType,method:method,settings:settings,tags:tags=[]}=planData,planStorage=await this.getStorageDetails(planData.storage.id);if(!planStorage.name||!planStorage.type)throw new NotFoundError("Storage not found.");const device=await this.deviceStore.getById(sourceId);if(!device)throw new NotFoundError("Source device not found");const targetOS="main"!==sourceId?device.os??void 0:void 0,theStoragePath=sanitizeStoragePath(storagePath,planStorage.type,targetOS);let newPlanData={id:planId,title:title.trim(),description:description?.trim()||"",storageId:storage.id,storagePath:theStoragePath,method:method,sourceConfig:sourceConfig,sourceId:sourceId,sourceType:sourceType,settings:settings,tags:tags};try{const parsedPlanData=planInsertSchema.parse(newPlanData);newPlanData={...parsedPlanData,sourceType:parsedPlanData.sourceType}}catch(error){throw error}const cronExpression=intervalToCron(planData.settings.interval),backupScheduleOptions={...newPlanData,isActive:!0,storage:planStorage,cronExpression:cronExpression};try{const strategy=this.getStrategy(newPlanData),creationRes=await strategy.createBackup(planId,backupScheduleOptions);if(!creationRes.success)throw new AppError(500,creationRes.result)}catch(error){if(error instanceof AppError)throw error;throw new AppError(500,error?.message||"Error creating backup schedule")}const createdPlan=await this.planStore.create(newPlanData);if(!createdPlan)throw new AppError(500,"Failed to save the new plan to the database.");return planLogger("create",planId).info("Backup Plan created."),createdPlan}async updatePlan(planId,planData){const currentPlan=await this.planStore.getById(planId);if(!currentPlan)throw new NotFoundError("Plan not found.");let parsedPlanData;try{const parsedData=planUpdateSchema.parse(planData);parsedPlanData={...parsedData,sourceType:parsedData.sourceType||currentPlan.sourceType}}catch(error){throw error}const updatedPlan=await this.planStore.update(planId,parsedPlanData);if(!updatedPlan)throw new AppError(500,"Failed to update plan in the database.");const planStorage=await this.getStorageDetails(currentPlan.storageId);if(!planStorage.name||!planStorage.type)throw new NotFoundError("Storage not found.");const planSettings=parsedPlanData.settings||currentPlan.settings,cronExpression=intervalToCron(planSettings.interval),backupScheduleOptions={...updatedPlan,storage:planStorage,cronExpression:cronExpression};try{const strategy=this.getStrategy(updatedPlan),updateRes=await strategy.updateBackup(planId,backupScheduleOptions);if(!updateRes.success)throw"main"!==updatedPlan.sourceId&&await this.planStore.update(planId,currentPlan),new AppError(500,updateRes.result);return planLogger("update",planId).info("Backup Plan updated by User."),updatedPlan}catch(error){if(error instanceof AppError)throw error;throw new AppError(500,error?.message||"Failed to update plan")}}async deletePlan(planId,removeRemoteData){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError("Plan not found.");const storageName=plan.storage?.name||"",replicationStorages=removeRemoteData?await this.resolveReplicationStorages(plan):[],options={storageName:"Local"===storageName||"Local Storage"===storageName?"local":storageName,storagePath:plan.storagePath||"",encryption:plan.settings.encryption||!0,removeRemoteData:removeRemoteData,replicationStorages:replicationStorages},strategy=this.getStrategy(plan),deleteResult=await strategy.removeBackup(planId,options);if(!deleteResult.success)throw new AppError(500,deleteResult.result);await this.restoreStore.deleteByPlanId(planId),await this.backupStore.deleteByPlanId(planId);const deleteRes=await this.planStore.delete(planId);if(!deleteRes)throw new AppError(500,"Failed to delete plan from the database.");return planLogger("delete",planId).info("Plan and associated data successfully deleted."),deleteRes}async performBackup(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);if(await this.planStore.hasActiveBackups(planId))throw new AppError(500,"A backup is already in progress for this plan.");const strategy=this.getStrategy(plan),performResult=await strategy.performBackup(planId);if(!performResult.success)throw new AppError(500,performResult.result)}async pruneBackups(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const replicationStorages=await this.resolveReplicationStorages(plan),strategy=this.getStrategy(plan),pruneResult=await strategy.pruneBackups(planId,replicationStorages);if(!pruneResult.success)throw new AppError(500,"string"==typeof pruneResult.result?pruneResult.result:"Error Pruning Backup");return planLogger("prune",planId).info("Backup Plan prune successfully performed."),pruneResult.result}async pauseBackup(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const strategy=this.getStrategy(plan),pauseResult=await strategy.pauseBackup(planId);if(!pauseResult.success)throw new AppError(500,pauseResult.result);await this.planStore.setActive(planId,!1),planLogger("update",planId).info("Plan paused.")}async resumeBackup(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const strategy=this.getStrategy(plan),resumeResult=await strategy.resumeBackup(planId);if(!resumeResult.success)throw new AppError(500,resumeResult.result);await this.planStore.setActive(planId,!0),planLogger("update",planId).info("Plan resumed.")}async deleteReplicationStorage(planId,storageID,storagePath,removeData,replicationId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError("Plan not found.");const replication=plan.settings?.replication;if(!replication?.storages?.length)throw new AppError(400,"Plan has no replication storages configured.");const storageIndex=replicationId?replication.storages.findIndex(s=>s.replicationId===replicationId):replication.storages.findIndex(s=>s.storageId===storageID&&s.storagePath===storagePath);if(-1===storageIndex)return{success:!0,message:"Replication storage removed successfully."};let storageName="Unknown";const storageRecords=await this.storageStore.getByIds([storageID]);if(storageRecords?.length){const name=storageRecords[0].name;storageName="Local"===name||"Local Storage"===name?"local":name}if(removeData){const strategy=this.getStrategy(plan),purgeResult=await strategy.removeReplicationStorage(planId,{storageName:storageName,storagePath:storagePath,removeData:removeData});if(!purgeResult.success)throw new AppError(500,`Failed to purge replication data: ${purgeResult.result}`)}const updatedStorages=replication.storages.filter((_,i)=>i!==storageIndex),updatedReplication={...replication,storages:updatedStorages,...0===updatedStorages.length&&{enabled:!1}},updatedSettings={...plan.settings,replication:updatedReplication};await this.planStore.update(planId,{settings:updatedSettings});try{const planStorage=await this.getStorageDetails(plan.storageId),cronExpression=intervalToCron(updatedSettings.interval),updatedPlan=await this.planStore.getById(planId);if(updatedPlan&&planStorage.name){const backupScheduleOptions={...updatedPlan,storage:planStorage,cronExpression:cronExpression},strategy=this.getStrategy(updatedPlan);await strategy.updateBackup(planId,backupScheduleOptions)}}catch(error){planLogger("replication",planId).warn(`Failed to sync CronManager schedule after removing replication storage: ${error?.message||"Unknown error"}`)}return planLogger("replication",planId).info(`Replication storage "${storageName}" (${storagePath}) removed from plan.${removeData?" Replicated data was purged.":""}`),{success:!0,message:`Replication storage "${storageName}" removed successfully.`}}async unlockRepo(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const replicationStorages=await this.resolveReplicationStorages(plan),strategy=this.getStrategy(plan);if(!strategy.unlockRepo)throw new AppError(501,'The "unlockRepo" feature is not implemented for this strategy.');const unlockResult=await strategy.unlockRepo(planId,replicationStorages);return unlockResult.success?planLogger("unlock",planId).info("Repository unlocked successfully by user request."):planLogger("unlock",planId).error(`Failed to unlock repository: ${unlockResult.result}`),unlockResult}async getPlanLogs(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);if(plan){const logFilePath=`${appPaths.getLogsDir()}/plan-${plan.id}.log`;try{const rawLogs=await readFile(logFilePath,"utf-8");if(!rawLogs)throw new NotFoundError(`No logs found for plan with ID ${planId}`);return rawLogs.split(/\r?\n/).filter(line=>""!==line.trim()).map(line=>{try{const entry=JSON.parse(line);if(entry.time){const date=new Date(entry.time);entry.formattedTime=date.toLocaleString()}return entry}catch(e){return{raw:line}}})}catch(error){if("ENOENT"===error.code)throw new NotFoundError(`No logs found for plan with ID ${planId}`);throw error}}}async downloadPlanLogs(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const logFilePath=`${appPaths.getLogsDir()}/plan-${plan.id}.log`;try{await access(logFilePath,constants.F_OK);return createReadStream(logFilePath)}catch(error){if("ENOENT"===error.code)throw new NotFoundError("Log file not found");throw new AppError(403,error?.message||"Failed to access the log file")}}async getStorageDetails(storageId){const storage=await this.storageStore.getById(storageId);if(!storage)throw new NotFoundError("Storage not found");return{name:"local"===storage.id?"local":storage.name,type:storage.type,authType:storage.authType,settings:storage.settings,credentials:storage.credentials,defaultPath:storage.defaultPath}}async resolveReplicationStorages(plan){if(!plan.settings.replication?.enabled||!plan.settings.replication.storages?.length)return[];const storageIds=plan.settings.replication.storages.map(s=>s.storageId),storageRecords=await this.storageStore.getByIds(storageIds);return storageRecords?plan.settings.replication.storages.map(rs=>{const record=storageRecords.find(s=>s.id===rs.storageId),name=record?.name||"";return{storageName:"Local"===name||"Local Storage"===name?"local":name,storagePath:rs.storagePath}}).filter(s=>s.storageName&&s.storagePath):[]}}
|
|
1
|
+
import{createReadStream}from"fs";import{access,constants,readFile}from"fs/promises";import{planInsertSchema,planUpdateSchema}from"../db/schema/plans";import{planLogger}from"../utils/logger";import{generateUID}from"../utils/helpers";import{intervalToCron}from"../utils/intervalToCron";import{LocalStrategy as LocalBackupStrategy}from"../strategies/backup/LocalStrategy";import{RemoteStrategy as RemoteBackupStrategy}from"../strategies/backup/RemoteStrategy";import{appPaths}from"../utils/AppPaths";import{AppError,NotFoundError}from"../utils/AppError";import{sanitizeStoragePath}from"../utils/sanitizeStoragePath";export class PlanService{localAgent;planStore;backupStore;storageStore;deviceStore;restoreStore;constructor(localAgent,planStore,backupStore,storageStore,deviceStore,restoreStore){this.localAgent=localAgent,this.planStore=planStore,this.backupStore=backupStore,this.storageStore=storageStore,this.deviceStore=deviceStore,this.restoreStore=restoreStore}getStrategy(plan){return"main"!==plan.sourceId?new RemoteBackupStrategy(plan.sourceId):new LocalBackupStrategy(this.localAgent)}async getPlan(planId,history=!0){const result=await this.planStore.getById(planId,history);if(!result)throw new NotFoundError("Plan not found");return result}async getAllPlans(history=!0){return await this.planStore.getAll(history)}async checkActiveBackupsOrRestore(planId,type){return"restore"===type?await this.planStore.hasActiveRestore(planId):await this.planStore.hasActiveBackups(planId)}async createPlan(planData){const planId=generateUID(),{title:title,description:description,storage:storage,storagePath:storagePath,sourceConfig:sourceConfig,sourceId:sourceId,sourceType:sourceType,method:method,settings:settings,tags:tags=[]}=planData,planStorage=await this.getStorageDetails(planData.storage.id);if(!planStorage.name||!planStorage.type)throw new NotFoundError("Storage not found.");const device=await this.deviceStore.getById(sourceId);if(!device)throw new NotFoundError("Source device not found");const targetOS="main"!==sourceId?device.os??void 0:void 0,theStoragePath=sanitizeStoragePath(storagePath,planStorage.type,targetOS);let newPlanData={id:planId,title:title.trim(),description:description?.trim()||"",storageId:storage.id,storagePath:theStoragePath,method:method,sourceConfig:sourceConfig,sourceId:sourceId,sourceType:sourceType,settings:settings,tags:tags};try{const parsedPlanData=planInsertSchema.parse(newPlanData);newPlanData={...parsedPlanData,sourceType:parsedPlanData.sourceType}}catch(error){throw error}const cronExpression=intervalToCron(planData.settings.interval),backupScheduleOptions={...newPlanData,isActive:!0,storage:planStorage,cronExpression:cronExpression};try{const strategy=this.getStrategy(newPlanData),creationRes=await strategy.createBackup(planId,backupScheduleOptions);if(!creationRes.success)throw new AppError(500,creationRes.result)}catch(error){if(error instanceof AppError)throw error;throw new AppError(500,error?.message||"Error creating backup schedule")}const createdPlan=await this.planStore.create(newPlanData);if(!createdPlan)throw new AppError(500,"Failed to save the new plan to the database.");return planLogger("create",planId).info("Backup Plan created."),createdPlan}async updatePlan(planId,planData){const currentPlan=await this.planStore.getById(planId);if(!currentPlan)throw new NotFoundError("Plan not found.");let parsedPlanData;try{const parsedData=planUpdateSchema.parse(planData);parsedPlanData={...parsedData,sourceType:parsedData.sourceType||currentPlan.sourceType}}catch(error){throw error}const updatedPlan=await this.planStore.update(planId,parsedPlanData);if(!updatedPlan)throw new AppError(500,"Failed to update plan in the database.");const planStorage=await this.getStorageDetails(currentPlan.storageId);if(!planStorage.name||!planStorage.type)throw new NotFoundError("Storage not found.");const planSettings=parsedPlanData.settings||currentPlan.settings,cronExpression=intervalToCron(planSettings.interval),backupScheduleOptions={...updatedPlan,storage:planStorage,cronExpression:cronExpression};try{const strategy=this.getStrategy(updatedPlan),updateRes=await strategy.updateBackup(planId,backupScheduleOptions);if(!updateRes.success)throw"main"!==updatedPlan.sourceId&&await this.planStore.update(planId,currentPlan),new AppError(500,updateRes.result);return planLogger("update",planId).info("Backup Plan updated by User."),updatedPlan}catch(error){if(error instanceof AppError)throw error;throw new AppError(500,error?.message||"Failed to update plan")}}async deletePlan(planId,removeRemoteData){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError("Plan not found.");const storageName=plan.storage?.name||"",replicationStorages=removeRemoteData?await this.resolveReplicationStorages(plan):[],options={storageName:"Local"===storageName||"Local Storage"===storageName?"local":storageName,storagePath:plan.storagePath||"",encryption:plan.settings.encryption||!0,removeRemoteData:removeRemoteData,replicationStorages:replicationStorages},strategy=this.getStrategy(plan),deleteResult=await strategy.removeBackup(planId,options);if(!deleteResult.success)throw new AppError(500,deleteResult.result);await this.restoreStore.deleteByPlanId(planId),await this.backupStore.deleteByPlanId(planId);const deleteRes=await this.planStore.delete(planId);if(!deleteRes)throw new AppError(500,"Failed to delete plan from the database.");return planLogger("delete",planId).info("Plan and associated data successfully deleted."),deleteRes}async performBackup(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);if(await this.planStore.hasActiveBackups(planId))throw new AppError(500,"A backup is already in progress for this plan.");const strategy=this.getStrategy(plan),performResult=await strategy.performBackup(planId);if(!performResult.success)throw new AppError(500,performResult.result)}async pruneBackups(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const replicationStorages=await this.resolveReplicationStorages(plan),strategy=this.getStrategy(plan),pruneResult=await strategy.pruneBackups(planId,replicationStorages);if(!pruneResult.success)throw new AppError(500,"string"==typeof pruneResult.result?pruneResult.result:"Error Pruning Backup");return planLogger("prune",planId).info("Backup Plan prune successfully performed."),pruneResult.result}async pauseBackup(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const strategy=this.getStrategy(plan),pauseResult=await strategy.pauseBackup(planId);if(!pauseResult.success)throw new AppError(500,pauseResult.result);await this.planStore.setActive(planId,!1),planLogger("update",planId).info("Plan paused.")}async resumeBackup(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const strategy=this.getStrategy(plan),resumeResult=await strategy.resumeBackup(planId);if(!resumeResult.success)throw new AppError(500,resumeResult.result);await this.planStore.setActive(planId,!0),planLogger("update",planId).info("Plan resumed.")}async checkIntegrity(planId){try{const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError("Plan not found");try{const planID=plan.id,strategy=this.getStrategy(plan);return await strategy.checkIntegrity(planID)}catch(error){throw new AppError(500,error?.message||"Internal Server Error")}}catch(error){throw new AppError(500,error?.message||"Internal Server Error")}}async deleteReplicationStorage(planId,storageID,storagePath,removeData,replicationId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError("Plan not found.");const replication=plan.settings?.replication;if(!replication?.storages?.length)throw new AppError(400,"Plan has no replication storages configured.");const storageIndex=replicationId?replication.storages.findIndex(s=>s.replicationId===replicationId):replication.storages.findIndex(s=>s.storageId===storageID&&s.storagePath===storagePath);if(-1===storageIndex)return{success:!0,message:"Replication storage removed successfully."};let storageName="Unknown";const storageRecords=await this.storageStore.getByIds([storageID]);if(storageRecords?.length){const name=storageRecords[0].name;storageName="Local"===name||"Local Storage"===name?"local":name}if(removeData){const strategy=this.getStrategy(plan),purgeResult=await strategy.removeReplicationStorage(planId,{storageName:storageName,storagePath:storagePath,removeData:removeData});if(!purgeResult.success)throw new AppError(500,`Failed to purge replication data: ${purgeResult.result}`)}const updatedStorages=replication.storages.filter((_,i)=>i!==storageIndex),updatedReplication={...replication,storages:updatedStorages,...0===updatedStorages.length&&{enabled:!1}},updatedSettings={...plan.settings,replication:updatedReplication};await this.planStore.update(planId,{settings:updatedSettings});try{const planStorage=await this.getStorageDetails(plan.storageId),cronExpression=intervalToCron(updatedSettings.interval),updatedPlan=await this.planStore.getById(planId);if(updatedPlan&&planStorage.name){const backupScheduleOptions={...updatedPlan,storage:planStorage,cronExpression:cronExpression},strategy=this.getStrategy(updatedPlan);await strategy.updateBackup(planId,backupScheduleOptions)}}catch(error){planLogger("replication",planId).warn(`Failed to sync CronManager schedule after removing replication storage: ${error?.message||"Unknown error"}`)}return planLogger("replication",planId).info(`Replication storage "${storageName}" (${storagePath}) removed from plan.${removeData?" Replicated data was purged.":""}`),{success:!0,message:`Replication storage "${storageName}" removed successfully.`}}async unlockRepo(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const replicationStorages=await this.resolveReplicationStorages(plan),strategy=this.getStrategy(plan);if(!strategy.unlockRepo)throw new AppError(501,'The "unlockRepo" feature is not implemented for this strategy.');const unlockResult=await strategy.unlockRepo(planId,replicationStorages);return unlockResult.success?planLogger("unlock",planId).info("Repository unlocked successfully by user request."):planLogger("unlock",planId).error(`Failed to unlock repository: ${unlockResult.result}`),unlockResult}async getPlanLogs(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);if(plan){const logFilePath=`${appPaths.getLogsDir()}/plan-${plan.id}.log`;try{const rawLogs=await readFile(logFilePath,"utf-8");if(!rawLogs)throw new NotFoundError(`No logs found for plan with ID ${planId}`);return rawLogs.split(/\r?\n/).filter(line=>""!==line.trim()).map(line=>{try{const entry=JSON.parse(line);if(entry.time){const date=new Date(entry.time);entry.formattedTime=date.toLocaleString()}return entry}catch(e){return{raw:line}}})}catch(error){if("ENOENT"===error.code)throw new NotFoundError(`No logs found for plan with ID ${planId}`);throw error}}}async downloadPlanLogs(planId){const plan=await this.planStore.getById(planId);if(!plan)throw new NotFoundError(`Plan with ID ${planId} not found.`);const logFilePath=`${appPaths.getLogsDir()}/plan-${plan.id}.log`;try{await access(logFilePath,constants.F_OK);return createReadStream(logFilePath)}catch(error){if("ENOENT"===error.code)throw new NotFoundError("Log file not found");throw new AppError(403,error?.message||"Failed to access the log file")}}async getStorageDetails(storageId){const storage=await this.storageStore.getById(storageId);if(!storage)throw new NotFoundError("Storage not found");return{name:"local"===storage.id?"local":storage.name,type:storage.type,authType:storage.authType,settings:storage.settings,credentials:storage.credentials,defaultPath:storage.defaultPath}}async resolveReplicationStorages(plan){if(!plan.settings.replication?.enabled||!plan.settings.replication.storages?.length)return[];const storageIds=plan.settings.replication.storages.map(s=>s.storageId),storageRecords=await this.storageStore.getByIds(storageIds);return storageRecords?plan.settings.replication.storages.map(rs=>{const record=storageRecords.find(s=>s.id===rs.storageId),name=record?.name||"";return{storageName:"Local"===name||"Local Storage"===name?"local":name,storagePath:rs.storagePath}}).filter(s=>s.storageName&&s.storagePath):[]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanService.js","sourceRoot":"","sources":["../../src/services/PlanService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PlanService.js","sourceRoot":"","sources":["../../src/services/PlanService.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,5 +18,14 @@ export declare class SettingsService {
|
|
|
18
18
|
}, settings: AppSettings): Promise<boolean>;
|
|
19
19
|
getAppLogs(id: number): Promise<Record<string, any>[]>;
|
|
20
20
|
getAppLogsFile(): Promise<ReadStream>;
|
|
21
|
+
setupTwoFactorAuth(): Promise<{
|
|
22
|
+
qrCodeDataUrl: string;
|
|
23
|
+
setupKey: string;
|
|
24
|
+
tempSecret: string;
|
|
25
|
+
}>;
|
|
26
|
+
finalizeTwoFactorSetup(tempSecret: string, userCode: string, settingsId: number): Promise<{
|
|
27
|
+
recoveryCodes: string[];
|
|
28
|
+
}>;
|
|
29
|
+
checkLatestVersion(): Promise<any>;
|
|
21
30
|
}
|
|
22
31
|
//# sourceMappingURL=SettingsService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsService.d.ts","sourceRoot":"","sources":["../../src/services/SettingsService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SettingsService.d.ts","sourceRoot":"","sources":["../../src/services/SettingsService.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+B,UAAU,EAAE,MAAM,IAAI,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAwB,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAQtE;;GAEG;AACH,qBAAa,eAAe;IAEf,SAAS,CAAC,aAAa,EAAE,aAAa;IADlD,SAAS,CAAC,2BAA2B,EAAE,4BAA4B,CAA+B;gBAC5E,aAAa,EAAE,aAAa;IAE5C,eAAe,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAI3C,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAIjD,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgC3E,mBAAmB,CACxB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACvB,QAAQ,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC;IAiDb,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAwCtD,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;IAmBrC,kBAAkB;;;;;IA2BX,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;;;IA+CtF,kBAAkB;CAcxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createReadStream,constants}from"fs";import{readFile,access}from"fs/promises";import{settingsUpdateSchema}from"../db/schema/settings";import{TestEmailNotification}from"../notifications/templates/email/test-email/TestEmailNotification";import{NotificationChannelResolver}from"../notifications/channels/NotificationChannelResolver";import{appPaths}from"../utils/AppPaths";import{AppError,NotFoundError}from"../utils/AppError";export class SettingsService{settingsStore;notificationChannelResolver=NotificationChannelResolver;constructor(settingsStore){this.settingsStore=settingsStore}async getMainSettings(){return await this.settingsStore.getFirst()}async getSettings(id){return await this.settingsStore.getById(id)}async updateSettings(id,settings){try{let parsedSettings={...settings};try{parsedSettings=settingsUpdateSchema.partial().parse({settings:parsedSettings}).settings}catch(error){throw new AppError(400,"Invalid settings data provided")}const updatedSettings=await this.settingsStore.update(id,parsedSettings);if(!updatedSettings)throw new AppError(500,"Failed to update settings");return updatedSettings}catch(error){if(error instanceof AppError)throw error;throw new AppError(500,error?.message||"An unexpected error occurred while updating settings.")}}async validateIntegration(id,type,test,settings){const appSettings=settings,integrationType=type;appSettings.integration=this.notificationChannelResolver.encryptSecrets(appSettings.integration);try{const updatedSettings=await this.settingsStore.update(id,appSettings);if(!updatedSettings)throw new AppError(500,"Failed to update settings");const theAppSettings=updatedSettings.settings,notificationClass=new TestEmailNotification({integrationType:integrationType,appTitle:theAppSettings?.title||"Pluton"}),senderChannel=await this.notificationChannelResolver.getChannel(integrationType),sendRes=await senderChannel.send(notificationClass,{emails:test.email});if(sendRes.success)return theAppSettings?.integration?.[integrationType]&&(theAppSettings.integration[integrationType].connected=!0),await this.settingsStore.update(id,theAppSettings),!0;throw new AppError(500,`Failed to send test email using ${integrationType}. Reason: ${sendRes.result}`)}catch(error){throw new AppError(500,error instanceof Error?error.message:`Failed to send test email using ${integrationType}.`)}}async getAppLogs(id){const logFilePath=`${appPaths.getLogsDir()}/app.log`;try{const rawLogs=await readFile(logFilePath,"utf-8");if(!rawLogs)throw new NotFoundError("No logs found");return rawLogs.split(/\r?\n/).filter(line=>""!==line.trim()).map(line=>{try{const entry=JSON.parse(line);if(entry.time){const date=new Date(entry.time);entry.formattedTime=date.toLocaleString()}return entry}catch(e){return{raw:line}}})}catch(error){if("ENOENT"===error.code)throw new NotFoundError("No logs found for this plan");throw new AppError(500,"Failed to read logs: "+error.message)}}async getAppLogsFile(){const logFilePath=`${appPaths.getLogsDir()}/app.log`;try{await access(logFilePath,constants.F_OK);return createReadStream(logFilePath)}catch(error){if("ENOENT"===error.code)throw new NotFoundError("Log file not found");throw new AppError(500,`Failed to download logs: ${error.message}`)}}}
|
|
1
|
+
import*as otpauth from"otpauth";import qrcode from"qrcode";import{createReadStream,constants}from"fs";import{readFile,access}from"fs/promises";import{settingsUpdateSchema}from"../db/schema/settings";import{TestEmailNotification}from"../notifications/templates/email/test-email/TestEmailNotification";import{NotificationChannelResolver}from"../notifications/channels/NotificationChannelResolver";import{appPaths}from"../utils/AppPaths";import{AppError,NotFoundError}from"../utils/AppError";import Cryptr from"cryptr";import{configService}from"./ConfigService";import{createHash,randomBytes}from"crypto";export class SettingsService{settingsStore;notificationChannelResolver=NotificationChannelResolver;constructor(settingsStore){this.settingsStore=settingsStore}async getMainSettings(){return await this.settingsStore.getFirst()}async getSettings(id){return await this.settingsStore.getById(id)}async updateSettings(id,settings){try{let parsedSettings={...settings};try{parsedSettings=settingsUpdateSchema.partial().parse({settings:parsedSettings}).settings}catch(error){throw new AppError(400,"Invalid settings data provided")}const updatedSettings=await this.settingsStore.update(id,parsedSettings);if(!updatedSettings)throw new AppError(500,"Failed to update settings");return updatedSettings}catch(error){if(error instanceof AppError)throw error;throw new AppError(500,error?.message||"An unexpected error occurred while updating settings.")}}async validateIntegration(id,type,test,settings){const appSettings=settings,integrationType=type;appSettings.integration=this.notificationChannelResolver.encryptSecrets(appSettings.integration);try{const updatedSettings=await this.settingsStore.update(id,appSettings);if(!updatedSettings)throw new AppError(500,"Failed to update settings");const theAppSettings=updatedSettings.settings,notificationClass=new TestEmailNotification({integrationType:integrationType,appTitle:theAppSettings?.title||"Pluton"}),senderChannel=await this.notificationChannelResolver.getChannel(integrationType),sendRes=await senderChannel.send(notificationClass,{emails:test.email});if(sendRes.success)return theAppSettings?.integration?.[integrationType]&&(theAppSettings.integration[integrationType].connected=!0),await this.settingsStore.update(id,theAppSettings),!0;throw new AppError(500,`Failed to send test email using ${integrationType}. Reason: ${sendRes.result}`)}catch(error){throw new AppError(500,error instanceof Error?error.message:`Failed to send test email using ${integrationType}.`)}}async getAppLogs(id){const logFilePath=`${appPaths.getLogsDir()}/app.log`;try{const rawLogs=await readFile(logFilePath,"utf-8");if(!rawLogs)throw new NotFoundError("No logs found");return rawLogs.split(/\r?\n/).filter(line=>""!==line.trim()).map(line=>{try{const entry=JSON.parse(line);if(entry.time){const date=new Date(entry.time);entry.formattedTime=date.toLocaleString()}return entry}catch(e){return{raw:line}}})}catch(error){if("ENOENT"===error.code)throw new NotFoundError("No logs found for this plan");throw new AppError(500,"Failed to read logs: "+error.message)}}async getAppLogsFile(){const logFilePath=`${appPaths.getLogsDir()}/app.log`;try{await access(logFilePath,constants.F_OK);return createReadStream(logFilePath)}catch(error){if("ENOENT"===error.code)throw new NotFoundError("Log file not found");throw new AppError(500,`Failed to download logs: ${error.message}`)}}async setupTwoFactorAuth(){const appSettings=await this.getMainSettings();if(!appSettings||!appSettings.settings)throw new Error("Application settings not found.");const appName=appSettings.settings.title||"Pluton",totp=new otpauth.TOTP({issuer:appName,label:"admin",algorithm:"SHA1",digits:6,period:30}),secret=totp.secret.base32,uri=totp.toString();return{qrCodeDataUrl:await qrcode.toDataURL(uri),setupKey:secret,tempSecret:secret}}async finalizeTwoFactorSetup(tempSecret,userCode,settingsId){if(null===new otpauth.TOTP({secret:otpauth.Secret.fromBase32(tempSecret),algorithm:"SHA1",digits:6,period:30}).validate({token:userCode,window:1}))throw new AppError(400,"Invalid verification code. Please try again.");const appSettings=await this.settingsStore.getById(settingsId);if(!appSettings||!appSettings.settings)throw new AppError(500,"Could not retrieve settings to finalize setup.");const encryptedSecret=new Cryptr(configService.config.SECRET).encrypt(tempSecret),recoveryCodes=Array.from({length:10},()=>randomBytes(5).toString("hex").toUpperCase()),hashedRecoveryCodes=recoveryCodes.map(code=>createHash("sha256").update(code).digest("hex")),updatedSettings={...appSettings.settings,totp:{enabled:!0,secret:encryptedSecret,recoveryCodes:hashedRecoveryCodes}};return await this.settingsStore.update(settingsId,updatedSettings),{recoveryCodes:recoveryCodes}}async checkLatestVersion(){try{const response=await fetch("https://api.github.com/repos/plutonhq/pluton/releases/latest");if(!response.ok)throw new AppError(500,"Failed to fetch latest version info");const data=await response.json();return data.tag_name?data.tag_name.replace(/^pluton-v/,""):"Unknown"}catch(error){throw new AppError(500,error?.message||"Failed to check latest version")}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsService.js","sourceRoot":"","sources":["../../src/services/SettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAc,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAY,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mEAAmE,CAAC;AAI1G,OAAO,EAAE,2BAA2B,EAAE,MAAM,uDAAuD,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingsService.js","sourceRoot":"","sources":["../../src/services/SettingsService.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,5 +39,16 @@ export declare class BackupEventService {
|
|
|
39
39
|
snapshots: string[];
|
|
40
40
|
}[];
|
|
41
41
|
}): Promise<void>;
|
|
42
|
+
onIntegrityStart(data: {
|
|
43
|
+
planId: string;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
onIntegrityEnd(data: {
|
|
46
|
+
planId: string;
|
|
47
|
+
result: Record<string, string | null>;
|
|
48
|
+
}): Promise<void>;
|
|
49
|
+
onIntegrityFailed(data: {
|
|
50
|
+
planId: string;
|
|
51
|
+
error: string;
|
|
52
|
+
}): Promise<void>;
|
|
42
53
|
}
|
|
43
54
|
//# sourceMappingURL=BackupEventService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackupEventService.d.ts","sourceRoot":"","sources":["../../../src/services/events/BackupEventService.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAK5E,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EAEb,qBAAqB,EACrB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"BackupEventService.d.ts","sourceRoot":"","sources":["../../../src/services/events/BackupEventService.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAK5E,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EAEb,qBAAqB,EACrB,MAAM,oBAAoB,CAAC;AAK5B,qBAAa,kBAAkB;IAK7B,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,WAAW,EAAE,WAAW;IAClC,SAAS,CAAC,UAAU,CAAC,EAAE,iBAAiB;IANzC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACjD,SAAS,CAAC,WAAW,SAA6B;gBAGvC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,UAAU,CAAC,EAAE,iBAAiB,YAAA;IAKnC,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoHpD,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsF1D,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBpD,eAAe,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CzF,mBAAmB,CAAC,IAAI,EAAE,qBAAqB;IAgC/C,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBpD;;;;;;OAMG;IACG,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrF,wBAAwB,CAAC,IAAI,EAAE;QACpC,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE;YACR,aAAa,EAAE,MAAM,CAAC;YACtB,SAAS,EAAE,MAAM,CAAC;YAClB,WAAW,EAAE,MAAM,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,EAAE,CAAC;SACpB,EAAE,CAAC;KACJ,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBX,gBAAgB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAsBzC,cAAc,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;KAAE;IA2D9E,iBAAiB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CAS/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{existsSync}from"fs";import{readFile}from"fs/promises";import{sql}from"drizzle-orm";import{planLogger}from"../../utils/logger";import{BackupNotification}from"../../notifications/BackupNotification";import{appPaths}from"../../utils/AppPaths";import{backupInsertSchema}from"../../db/schema/backups";export class BackupEventService{planStore;backupStore;localAgent;backupNotification;progressDir=appPaths.getProgressDir();constructor(planStore,backupStore,localAgent){this.planStore=planStore,this.backupStore=backupStore,this.localAgent=localAgent,this.backupNotification=new BackupNotification}async onBackupStart(data){const{planId:planId,backupId:backupId,summary:summary}=data;if(!planId)return;const existingBackup=await this.backupStore.getById(backupId);if(existingBackup&&"main"===existingBackup.sourceId&&this.localAgent)return await this.backupStore.update(backupId,{inProgress:!0,status:"retrying",ended:null}),void this.localAgent.emit("backup_created",{planId:planId,backupId:backupId});if(await this.planStore.hasActiveBackups(planId))planLogger("backup",planId).error("Failed to Start Backup as a backup is already running for this plan.");else{const thePlan=await this.planStore.getById(planId);if(!thePlan)return;try{const{storageId:storageId,sourceId:sourceId,sourceType:sourceType,storagePath:storagePath,sourceConfig:sourceConfig,settings:{encryption:encryption,compression:compression}}=thePlan,newBackupData={id:backupId,status:"started",inProgress:!0,planId:planId,storageId:storageId,sourceId:sourceId,sourceType:sourceType,storagePath:storagePath,encryption:encryption,compression:compression,sourceConfig:sourceConfig,taskStats:summary,method:"backup"};let parsedBackupData={...newBackupData};try{const parsedBackupDataRaw=backupInsertSchema.parse(newBackupData);parsedBackupData={...parsedBackupDataRaw,sourceType:parsedBackupDataRaw.sourceType}}catch(error){return void planLogger("backup",planId).error(`Error parsing Backup Data provided by the source. ${error?.message||"Unknown Error"}`)}const backup=await this.backupStore.create(parsedBackupData);if(!backup)return void planLogger("backup",planId).error("Failed to Create Backup entry in Database.");"main"===sourceId&&this.localAgent&&this.localAgent.emit("backup_created",{planId:planId,backupId:backup.id});const plan=await this.planStore.getById(planId);plan&&plan.settings.notification&&await this.backupNotification.send(plan,"start",{id:backup.id,startTime:backup.started||new Date,stats:summary}),planLogger("backup",planId,backup.id).info(`Started Backing Up "${plan?.title||"Unknown Plan"}"`)}catch(error){planLogger("backup",planId).error(`Error Starting Backup for Plan ${planId} : ${error?.message.toString()||"Unknown Error"}`)}}}async onBackupComplete(data){const{planId:planId,success:success,backupId:backupId,summary:summary}=data,progressFile=`${this.progressDir}/backup-${backupId}.json`;let summaryData=null,totalDuration=0;try{if(summary&&"summary"===summary.message_type)summaryData=summary,totalDuration=summary.total_duration||0;else try{if(existsSync(progressFile)){const backupProgressData=JSON.parse(await readFile(progressFile,"utf8"));if(backupProgressData.events&&backupProgressData.events.length>0){const eventsWithSummary=backupProgressData.events.filter(event=>event.resticData&&"summary"===event.resticData.message_type);if(eventsWithSummary.length>0){const lastEvent=eventsWithSummary[eventsWithSummary.length-1];summaryData=lastEvent.resticData,totalDuration=lastEvent.resticData.total_duration||0}}}}catch(error){planLogger("backup",planId,backupId).warn(`Could not read progress file to fetch the completion summary: ${error.message}`)}const backup=await this.backupStore.update(backupId,{inProgress:!1,status:success?"completed":"failed",success:!!success,ended:sql`(unixepoch())`,completionStats:summaryData||null});if(!backup)throw new Error("Failed to update Backup entry in Database.");const plan=await this.planStore.getById(data.planId);if(plan&&plan.settings.notification){const replicationFailures=(backup.mirrors||[]).filter(m=>"failed"===m.status).map(m=>({replicationId:m.replicationId,storageId:m.storageId,storageName:m.storageName,storageType:m.storageType,error:m.error}));await this.backupNotification.send(plan,"success",{id:data.backupId,startTime:backup.started||new Date,stats:backup.completionStats||void 0,...replicationFailures.length>0?{replicationFailures:replicationFailures}:{}})}success?planLogger("backup",planId,backupId).info(`Backup Completed for Backup Plan. Total Duration: ${totalDuration} seconds.`):planLogger("backup",planId,backupId).error("Backup Failed for Backup Plan. Reason: Unknown.")}catch(error){planLogger("backup",data.planId,data.backupId).error(`Error processing backup completion for Backup. Reason : ${error?.message.toString()||"Unknown Error"}`)}}async onBackupError(data){try{if(!await this.backupStore.update(data.backupId,{status:"retrying",errorMsg:data.error}))throw new Error("Failed to update Backup entry in Database.");planLogger("backup",data.planId,data.backupId).info(`Backup Failed for Plan. Reason: ${data.error||"Unknown Error"}`)}catch(error){planLogger("backup",data.planId,data.backupId).error(`Error processing backup failure for Backup. Reason : ${error?.message.toString()||"Unknown Error"}`)}}async onBackupFailure(data){const{planId:planId,backupId:backupId,error:error}=data;try{const backup=await this.backupStore.update(backupId,{status:"failed",errorMsg:error,success:!1,inProgress:!1,ended:sql`(unixepoch())`});if(!backup)throw new Error("Failed to update Backup entry in Database.");await this.afterPermanentFailure(planId,backupId,error);const plan=await this.planStore.getById(planId);plan&&plan.settings.notification&&await this.backupNotification.send(plan,"failure",{id:backupId,startTime:backup.started||new Date,stats:backup.taskStats||void 0,error:error}),planLogger("backup",planId,backupId).info(`Backup Failed for Plan. Reason: ${error||"Unknown Error"}`)}catch(err){planLogger("backup",planId,backupId).error(`Error processing backup failure for Backup. Reason : ${err?.message.toString()||"Unknown Error"}`)}}async onBackupStatsUpdate(data){const{total_size:total_size,snapshots:snapshots=[],backupId:backupId,planId:planId,error:error="",mirrors:mirrors}=data;if(planId&&total_size&&!Number.isNaN(total_size)&&snapshots.length>0)try{await this.planStore.update(data.planId,{stats:{size:total_size,snapshots:snapshots,...mirrors?{mirrors:mirrors}:{}},lastBackupTime:sql`(unixepoch())`}),planLogger("update",planId,backupId).info(`Updated plan stats for Backup Plan. Total Size: ${total_size} bytes, Total Snapshots: ${snapshots.length||0} `)}catch(error){planLogger("update",planId,backupId).error(`Error updating plan stats for Backup Plan. Reason : ${error?.message.toString()||"Unknown Error"}`)}else planId&&planLogger("update",planId,backupId).error(`Failed to Update plan stats for Backup Plan. Reason: ${error||"Unknown Error"} `)}async onPruneEnd(data){if(data.success){planLogger("prune",data.planId).info("Successfully pruned Backups.");const{planId:planId,stats:stats}=data,{total_size:total_size,snapshots:snapshots=[]}=stats||{};if(planId&&total_size&&!Number.isNaN(total_size)&&snapshots.length>0)try{await this.planStore.update(data.planId,{stats:{size:total_size,snapshots:snapshots},lastBackupTime:sql`(unixepoch())`}),planLogger("update",planId).info(`Updated plan stats for Backup Plan. Total Size: ${total_size} bytes, Total Snapshots: ${snapshots.length||0} `)}catch(error){}}else planLogger("prune",data.planId).error(`Failed to prune Backups. Reason: ${data.error}`)}async afterPermanentFailure(planId,backupId,error){this.localAgent&&this.localAgent.emit(`backup_failed_processed_${backupId}`,{planId:planId,backupId:backupId,error:error})}async onReplicationStatsUpdate(data){const{planId:planId,backupId:backupId,mirrors:mirrors}=data;if(planId&&mirrors&&0!==mirrors.length)try{const plan=await this.planStore.getById(planId);plan&&plan.stats&&(await this.planStore.update(planId,{stats:{...plan.stats,mirrors:mirrors}}),planLogger("update",planId,backupId).info(`Updated plan mirror stats. ${mirrors.length} mirror(s) tracked.`))}catch(error){planLogger("update",planId,backupId).error(`Error updating plan mirror stats: ${error?.message||"Unknown Error"}`)}}}
|
|
1
|
+
import{existsSync}from"fs";import{readFile}from"fs/promises";import{sql}from"drizzle-orm";import{planLogger}from"../../utils/logger";import{BackupNotification}from"../../notifications/BackupNotification";import{appPaths}from"../../utils/AppPaths";import{backupInsertSchema}from"../../db/schema/backups";import{generateResticRepoPath}from"../../utils/restic/helpers";import{handleResticCheckResult}from"../../utils/restic/restic";export class BackupEventService{planStore;backupStore;localAgent;backupNotification;progressDir=appPaths.getProgressDir();constructor(planStore,backupStore,localAgent){this.planStore=planStore,this.backupStore=backupStore,this.localAgent=localAgent,this.backupNotification=new BackupNotification}async onBackupStart(data){const{planId:planId,backupId:backupId,summary:summary}=data;if(!planId)return;const existingBackup=await this.backupStore.getById(backupId);if(existingBackup&&"main"===existingBackup.sourceId&&this.localAgent)return await this.backupStore.update(backupId,{inProgress:!0,status:"retrying",ended:null}),void this.localAgent.emit("backup_created",{planId:planId,backupId:backupId});if(await this.planStore.hasActiveBackups(planId))planLogger("backup",planId).error("Failed to Start Backup as a backup is already running for this plan.");else{const thePlan=await this.planStore.getById(planId);if(!thePlan)return;try{const{storageId:storageId,sourceId:sourceId,sourceType:sourceType,storagePath:storagePath,sourceConfig:sourceConfig,settings:{encryption:encryption,compression:compression}}=thePlan,newBackupData={id:backupId,status:"started",inProgress:!0,planId:planId,storageId:storageId,sourceId:sourceId,sourceType:sourceType,storagePath:storagePath,encryption:encryption,compression:compression,sourceConfig:sourceConfig,taskStats:summary,method:"backup"};let parsedBackupData={...newBackupData};try{const parsedBackupDataRaw=backupInsertSchema.parse(newBackupData);parsedBackupData={...parsedBackupDataRaw,sourceType:parsedBackupDataRaw.sourceType}}catch(error){return void planLogger("backup",planId).error(`Error parsing Backup Data provided by the source. ${error?.message||"Unknown Error"}`)}const backup=await this.backupStore.create(parsedBackupData);if(!backup)return void planLogger("backup",planId).error("Failed to Create Backup entry in Database.");"main"===sourceId&&this.localAgent&&this.localAgent.emit("backup_created",{planId:planId,backupId:backup.id});const plan=await this.planStore.getById(planId);plan&&plan.settings.notification&&await this.backupNotification.send(plan,"start",{id:backup.id,startTime:backup.started||new Date,stats:summary}),planLogger("backup",planId,backup.id).info(`Started Backing Up "${plan?.title||"Unknown Plan"}"`)}catch(error){planLogger("backup",planId).error(`Error Starting Backup for Plan ${planId} : ${error?.message.toString()||"Unknown Error"}`)}}}async onBackupComplete(data){const{planId:planId,success:success,backupId:backupId,summary:summary}=data,progressFile=`${this.progressDir}/backup-${backupId}.json`;let summaryData=null,totalDuration=0;try{if(summary&&"summary"===summary.message_type)summaryData=summary,totalDuration=summary.total_duration||0;else try{if(existsSync(progressFile)){const backupProgressData=JSON.parse(await readFile(progressFile,"utf8"));if(backupProgressData.events&&backupProgressData.events.length>0){const eventsWithSummary=backupProgressData.events.filter(event=>event.resticData&&"summary"===event.resticData.message_type);if(eventsWithSummary.length>0){const lastEvent=eventsWithSummary[eventsWithSummary.length-1];summaryData=lastEvent.resticData,totalDuration=lastEvent.resticData.total_duration||0}}}}catch(error){planLogger("backup",planId,backupId).warn(`Could not read progress file to fetch the completion summary: ${error.message}`)}const backup=await this.backupStore.update(backupId,{inProgress:!1,status:success?"completed":"failed",success:!!success,ended:sql`(unixepoch())`,completionStats:summaryData||null});if(!backup)throw new Error("Failed to update Backup entry in Database.");const plan=await this.planStore.getById(data.planId);if(plan&&plan.settings.notification){const replicationFailures=(backup.mirrors||[]).filter(m=>"failed"===m.status).map(m=>({replicationId:m.replicationId,storageId:m.storageId,storageName:m.storageName,storageType:m.storageType,error:m.error}));await this.backupNotification.send(plan,"success",{id:data.backupId,startTime:backup.started||new Date,stats:backup.completionStats||void 0,...replicationFailures.length>0?{replicationFailures:replicationFailures}:{}})}success?planLogger("backup",planId,backupId).info(`Backup Completed for Backup Plan. Total Duration: ${totalDuration} seconds.`):planLogger("backup",planId,backupId).error("Backup Failed for Backup Plan. Reason: Unknown.")}catch(error){planLogger("backup",data.planId,data.backupId).error(`Error processing backup completion for Backup. Reason : ${error?.message.toString()||"Unknown Error"}`)}}async onBackupError(data){try{if(!await this.backupStore.update(data.backupId,{status:"retrying",errorMsg:data.error}))throw new Error("Failed to update Backup entry in Database.");planLogger("backup",data.planId,data.backupId).info(`Backup Failed for Plan. Reason: ${data.error||"Unknown Error"}`)}catch(error){planLogger("backup",data.planId,data.backupId).error(`Error processing backup failure for Backup. Reason : ${error?.message.toString()||"Unknown Error"}`)}}async onBackupFailure(data){const{planId:planId,backupId:backupId,error:error}=data;try{const backup=await this.backupStore.update(backupId,{status:"failed",errorMsg:error,success:!1,inProgress:!1,ended:sql`(unixepoch())`});if(!backup)throw new Error("Failed to update Backup entry in Database.");await this.afterPermanentFailure(planId,backupId,error);const plan=await this.planStore.getById(planId);plan&&plan.settings.notification&&await this.backupNotification.send(plan,"failure",{id:backupId,startTime:backup.started||new Date,stats:backup.taskStats||void 0,error:error}),planLogger("backup",planId,backupId).info(`Backup Failed for Plan. Reason: ${error||"Unknown Error"}`)}catch(err){planLogger("backup",planId,backupId).error(`Error processing backup failure for Backup. Reason : ${err?.message.toString()||"Unknown Error"}`)}}async onBackupStatsUpdate(data){const{total_size:total_size,snapshots:snapshots=[],backupId:backupId,planId:planId,error:error="",mirrors:mirrors}=data;if(planId&&total_size&&!Number.isNaN(total_size)&&snapshots.length>0)try{await this.planStore.update(data.planId,{stats:{size:total_size,snapshots:snapshots,...mirrors?{mirrors:mirrors}:{}},lastBackupTime:sql`(unixepoch())`}),planLogger("update",planId,backupId).info(`Updated plan stats for Backup Plan. Total Size: ${total_size} bytes, Total Snapshots: ${snapshots.length||0} `)}catch(error){planLogger("update",planId,backupId).error(`Error updating plan stats for Backup Plan. Reason : ${error?.message.toString()||"Unknown Error"}`)}else planId&&planLogger("update",planId,backupId).error(`Failed to Update plan stats for Backup Plan. Reason: ${error||"Unknown Error"} `)}async onPruneEnd(data){if(data.success){planLogger("prune",data.planId).info("Successfully pruned Backups.");const{planId:planId,stats:stats}=data,{total_size:total_size,snapshots:snapshots=[]}=stats||{};if(planId&&total_size&&!Number.isNaN(total_size)&&snapshots.length>0)try{await this.planStore.update(data.planId,{stats:{size:total_size,snapshots:snapshots},lastBackupTime:sql`(unixepoch())`}),planLogger("update",planId).info(`Updated plan stats for Backup Plan. Total Size: ${total_size} bytes, Total Snapshots: ${snapshots.length||0} `)}catch(error){}}else planLogger("prune",data.planId).error(`Failed to prune Backups. Reason: ${data.error}`)}async afterPermanentFailure(planId,backupId,error){this.localAgent&&this.localAgent.emit(`backup_failed_processed_${backupId}`,{planId:planId,backupId:backupId,error:error})}async onReplicationStatsUpdate(data){const{planId:planId,backupId:backupId,mirrors:mirrors}=data;if(planId&&mirrors&&0!==mirrors.length)try{const plan=await this.planStore.getById(planId);plan&&plan.stats&&(await this.planStore.update(planId,{stats:{...plan.stats,mirrors:mirrors}}),planLogger("update",planId,backupId).info(`Updated plan mirror stats. ${mirrors.length} mirror(s) tracked.`))}catch(error){planLogger("update",planId,backupId).error(`Error updating plan mirror stats: ${error?.message||"Unknown Error"}`)}}async onIntegrityStart(data){const startedAt=(new Date).getTime();try{await this.planStore.update(data.planId,{verified:{status:"running",startedAt:startedAt,endedAt:null,hasError:!1}}),planLogger("integrity_check",data.planId).info("Started Integrity Check for Backup Plan.")}catch(error){planLogger("integrity_check",data.planId).error(`Error starting Integrity Check for Backup Plan. Reason : ${error?.message.toString()||"Unknown Error"}`)}}async onIntegrityEnd(data){const endedAt=(new Date).getTime();try{const thePlan=await this.planStore.getById(data.planId);if(thePlan&&thePlan.storage?.name&&thePlan.device?.id){const parsedResult={};let hasIntegrityIssue=!1;Object.keys(data.result).forEach(async key=>{const theStorage="primary"===key?thePlan.storage:thePlan.settings.replication?.storages?.find(m=>m.storageId===key.replace("mirror_","")),storageName="primary"===key?theStorage?.name:theStorage?.storageName||key,storagePath="primary"===key?thePlan.storagePath:theStorage?.storagePath||"",repoPath=generateResticRepoPath(storageName,storagePath||""),checkResult=handleResticCheckResult(data.result[key]||"",{repo:repoPath,device:`${thePlan.device?.name}${"main"!==thePlan.device?.id&&thePlan.device?.hostname?` (${thePlan.device.hostname})`:""}`});parsedResult[key]=checkResult,checkResult.hasError&&(hasIntegrityIssue=!0)}),await this.planStore.update(data.planId,{verified:{status:"completed",startedAt:thePlan.verified?.startedAt||endedAt,result:parsedResult,hasError:hasIntegrityIssue,endedAt:endedAt}}),planLogger("integrity_check",data.planId).info("Completed Integrity Check for Backup Plan.")}else planLogger("integrity_check",data.planId).error("Backup Plan not found.")}catch(error){planLogger("integrity_check",data.planId).error(`Error completing Integrity Check for Backup Plan. Reason : ${error?.message||"Unknown Error"}`)}}async onIntegrityFailed(data){const thePlan=await this.planStore.getById(data.planId);thePlan&&thePlan.storage?.name&&thePlan.device?.id?planLogger("integrity_check",data.planId).error("Failed Integrity Check for Backup Plan."):planLogger("integrity_check",data.planId).error("Backup Plan not found.")}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackupEventService.js","sourceRoot":"","sources":["../../../src/services/events/BackupEventService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BackupEventService.js","sourceRoot":"","sources":["../../../src/services/events/BackupEventService.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,14 +30,16 @@ export declare class BackupEventListener {
|
|
|
30
30
|
protected onReplicationStatsUpdate(data: BackupReplicationStatUpdateEvent): Promise<void>;
|
|
31
31
|
protected onMirrorSizesUpdate(data: BackupReplicationMirrorSizeUpdateEvent): Promise<void>;
|
|
32
32
|
protected onPruneEnd(data: PruneEndEvent): Promise<void>;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
33
|
+
onIntegrityStart(data: {
|
|
34
|
+
planId: string;
|
|
35
|
+
}): Promise<void>;
|
|
36
|
+
onIntegrityEnd(data: {
|
|
37
|
+
planId: string;
|
|
38
|
+
result: Record<string, string | null>;
|
|
39
|
+
}): Promise<void>;
|
|
40
|
+
onIntegrityCheckFailure(data: {
|
|
41
|
+
planId: string;
|
|
42
|
+
error: string;
|
|
43
|
+
}): Promise<void>;
|
|
42
44
|
}
|
|
43
45
|
//# sourceMappingURL=BackupEventListener.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackupEventListener.d.ts","sourceRoot":"","sources":["../../../src/services/listeners/BackupEventListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,gCAAgC,EAChC,sCAAsC,EACtC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;GAGG;AACH,qBAAa,mBAAmB;IAK9B,SAAS,CAAC,UAAU,EAAE,iBAAiB;IACvC,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,WAAW,EAAE,WAAW;IANnC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACjD,SAAS,CAAC,WAAW,SAA6B;gBAGvC,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW;IAMnC;;OAEG;IACH,SAAS,CAAC,sBAAsB,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"BackupEventListener.d.ts","sourceRoot":"","sources":["../../../src/services/listeners/BackupEventListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,gCAAgC,EAChC,sCAAsC,EACtC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;GAGG;AACH,qBAAa,mBAAmB;IAK9B,SAAS,CAAC,UAAU,EAAE,iBAAiB;IACvC,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,WAAW,EAAE,WAAW;IANnC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACjD,SAAS,CAAC,WAAW,SAA6B;gBAGvC,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW;IAMnC;;OAEG;IACH,SAAS,CAAC,sBAAsB,IAAI,IAAI;cAyCxB,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;cAIpD,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;cAI1D,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;cAIpD,eAAe,CAAC,IAAI,EAAE;QACrC,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,IAAI,CAAC;cAYD,mBAAmB,CAAC,IAAI,EAAE,qBAAqB;cAK/C,wBAAwB,CAAC,IAAI,EAAE,gCAAgC,GAAG,OAAO,CAAC,IAAI,CAAC;cAI/E,mBAAmB,CAAC,IAAI,EAAE,sCAAsC,GAAG,OAAO,CAAC,IAAI,CAAC;cAUhF,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,gBAAgB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAKzC,cAAc,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;KAAE;IAK9E,uBAAuB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CAIrE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{appPaths}from"../../utils/AppPaths";import{jobProcessor}from"../../jobs/JobProcessor";import{BackupEventService}from"../events/BackupEventService";export class BackupEventListener{localAgent;planStore;backupStore;backupEventService;progressDir=appPaths.getProgressDir();constructor(localAgent,planStore,backupStore){this.localAgent=localAgent,this.planStore=planStore,this.backupStore=backupStore,this.backupEventService=new BackupEventService(planStore,backupStore,localAgent),this.registerEventListeners()}registerEventListeners(){this.localAgent.on("backup_start",event=>this.onBackupStart(event)),this.localAgent.on("backup_complete",event=>this.onBackupComplete(event)),this.localAgent.on("backup_error",event=>this.onBackupError(event)),jobProcessor.on("backup_failed",event=>{this.onBackupFailure(event)}),this.localAgent.on("backup_stats_update",event=>this.onBackupStatsUpdate(event)),this.localAgent.on("backup_replication_stats_update",event=>this.onReplicationStatsUpdate(event)),this.localAgent.on("backup_mirror_sizes_update",event=>this.onMirrorSizesUpdate(event)),this.localAgent.on("pruneEnd",event=>this.onPruneEnd(event))}async onBackupStart(data){await this.backupEventService.onBackupStart(data)}async onBackupComplete(data){await this.backupEventService.onBackupComplete(data)}async onBackupError(data){await this.backupEventService.onBackupError(data)}async onBackupFailure(data){await this.backupEventService.onBackupFailure(data)}async onBackupStatsUpdate(data){await this.backupEventService.onBackupStatsUpdate(data)}async onReplicationStatsUpdate(data){await this.backupEventService.onReplicationStatsUpdate(data)}async onMirrorSizesUpdate(data){try{for(const{replicationId:replicationId,size:size}of data.mirrorSizes)await this.backupStore.updateMirrorStatus(data.backupId,replicationId,{size:size})}catch(error){}}async onPruneEnd(data){await this.backupEventService.onPruneEnd(data)}async
|
|
1
|
+
import{appPaths}from"../../utils/AppPaths";import{jobProcessor}from"../../jobs/JobProcessor";import{BackupEventService}from"../events/BackupEventService";export class BackupEventListener{localAgent;planStore;backupStore;backupEventService;progressDir=appPaths.getProgressDir();constructor(localAgent,planStore,backupStore){this.localAgent=localAgent,this.planStore=planStore,this.backupStore=backupStore,this.backupEventService=new BackupEventService(planStore,backupStore,localAgent),this.registerEventListeners()}registerEventListeners(){this.localAgent.on("backup_start",event=>this.onBackupStart(event)),this.localAgent.on("backup_complete",event=>this.onBackupComplete(event)),this.localAgent.on("backup_error",event=>this.onBackupError(event)),jobProcessor.on("backup_failed",event=>{this.onBackupFailure(event)}),this.localAgent.on("backup_stats_update",event=>this.onBackupStatsUpdate(event)),this.localAgent.on("backup_replication_stats_update",event=>this.onReplicationStatsUpdate(event)),this.localAgent.on("backup_mirror_sizes_update",event=>this.onMirrorSizesUpdate(event)),this.localAgent.on("pruneEnd",event=>this.onPruneEnd(event)),this.localAgent.on("integrity_start",event=>this.onIntegrityStart(event)),this.localAgent.on("integrity_end",event=>this.onIntegrityEnd(event)),jobProcessor.on("integrity_failed",event=>{this.onIntegrityCheckFailure(event)})}async onBackupStart(data){await this.backupEventService.onBackupStart(data)}async onBackupComplete(data){await this.backupEventService.onBackupComplete(data)}async onBackupError(data){await this.backupEventService.onBackupError(data)}async onBackupFailure(data){await this.backupEventService.onBackupFailure(data)}async onBackupStatsUpdate(data){await this.backupEventService.onBackupStatsUpdate(data)}async onReplicationStatsUpdate(data){await this.backupEventService.onReplicationStatsUpdate(data)}async onMirrorSizesUpdate(data){try{for(const{replicationId:replicationId,size:size}of data.mirrorSizes)await this.backupStore.updateMirrorStatus(data.backupId,replicationId,{size:size})}catch(error){}}async onPruneEnd(data){await this.backupEventService.onPruneEnd(data)}async onIntegrityStart(data){await this.backupEventService.onIntegrityStart(data)}async onIntegrityEnd(data){await this.backupEventService.onIntegrityEnd(data)}async onIntegrityCheckFailure(data){await this.backupEventService.onIntegrityFailed(data)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackupEventListener.js","sourceRoot":"","sources":["../../../src/services/listeners/BackupEventListener.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAUvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAKpB;IACA;IACA;IAND,kBAAkB,CAAqB;IACvC,WAAW,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;IAElD,YACW,UAA6B,EAC7B,SAAoB,EACpB,WAAwB;QAFxB,eAAU,GAAV,UAAU,CAAmB;QAC7B,cAAS,GAAT,SAAS,CAAW;QACpB,gBAAW,GAAX,WAAW,CAAa;QAElC,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACrF,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACO,sBAAsB;QAC/B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAA0B,EAAE,EAAE,CACpE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAC5B,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3F,wEAAwE;QACxE,gCAAgC;QAChC,KAAK;QACL,YAAY,CAAC,EAAE,CACd,eAAe,EACf,CAAC,KAA0D,EAAE,EAAE;YAC9D,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CACD,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAA4B,EAAE,EAAE,CAC1E,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAC/B,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,EAAE,CACjB,iCAAiC,EACjC,CAAC,KAAuC,EAAE,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CACjF,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,EAAE,CACjB,4BAA4B,EAC5B,CAAC,KAA6C,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAClF,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"BackupEventListener.js","sourceRoot":"","sources":["../../../src/services/listeners/BackupEventListener.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,6 +68,10 @@ export interface BackupStrategy {
|
|
|
68
68
|
success: boolean;
|
|
69
69
|
result: string;
|
|
70
70
|
}>;
|
|
71
|
+
checkIntegrity(planId: string): Promise<{
|
|
72
|
+
success: boolean;
|
|
73
|
+
result: any;
|
|
74
|
+
}>;
|
|
71
75
|
}
|
|
72
76
|
export type BackupStrategyTypes = StrategyMethodTypes<BackupStrategy>;
|
|
73
77
|
//# sourceMappingURL=BackupStrategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackupStrategy.d.ts","sourceRoot":"","sources":["../../../src/strategies/backup/BackupStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC9B,YAAY,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,YAAY,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,YAAY,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,UAAU,EAAE,OAAO,CAAC;QACpB,mBAAmB,CAAC,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KACrE,GACC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,wBAAwB,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;KACpB,GACC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3E,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,YAAY,CACX,MAAM,EAAE,MAAM,EACd,mBAAmB,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,GAClE,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,iBAAiB,CAAC,CACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,UAAU,CAAC,CACV,MAAM,EAAE,MAAM,EACd,mBAAmB,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,GAClE,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEjD,qBAAqB,CAAC,CACrB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACpB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"BackupStrategy.d.ts","sourceRoot":"","sources":["../../../src/strategies/backup/BackupStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,6 +67,10 @@ export declare class LocalStrategy implements BackupStrategy {
|
|
|
67
67
|
success: boolean;
|
|
68
68
|
result: string;
|
|
69
69
|
}>;
|
|
70
|
+
checkIntegrity(planId: string): Promise<{
|
|
71
|
+
success: boolean;
|
|
72
|
+
result: any;
|
|
73
|
+
}>;
|
|
70
74
|
getBackupProgress(planId: string, backupId: string): Promise<{
|
|
71
75
|
success: boolean;
|
|
72
76
|
result: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalStrategy.d.ts","sourceRoot":"","sources":["../../../src/strategies/backup/LocalStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAIrE,qBAAa,aAAc,YAAW,cAAc;IACvC,SAAS,CAAC,UAAU,EAAE,iBAAiB;gBAA7B,UAAU,EAAE,iBAAiB;IAE7C,aAAa,CAAC,QAAQ,EAAE,MAAM;;;;IAI9B,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc;;;;IAKtD,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc;;;;IAItD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;IAI7C,YAAY,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,mBAAmB,CAAC,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KACrE;;;;IAYI,wBAAwB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;KACpB;;;;IAKI,WAAW,CAAC,QAAQ,EAAE,MAAM;;;;IAG5B,YAAY,CAAC,QAAQ,EAAE,MAAM;;;;IAG7B,YAAY,CACjB,QAAQ,EAAE,MAAM,EAChB,mBAAmB,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE;;;;IAK/D,UAAU,CACf,MAAM,EAAE,MAAM,EACd,mBAAmB,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE;;;;IAK/D,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;IAI/D,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;CAWxD"}
|
|
1
|
+
{"version":3,"file":"LocalStrategy.d.ts","sourceRoot":"","sources":["../../../src/strategies/backup/LocalStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAIrE,qBAAa,aAAc,YAAW,cAAc;IACvC,SAAS,CAAC,UAAU,EAAE,iBAAiB;gBAA7B,UAAU,EAAE,iBAAiB;IAE7C,aAAa,CAAC,QAAQ,EAAE,MAAM;;;;IAI9B,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc;;;;IAKtD,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc;;;;IAItD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;IAI7C,YAAY,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,mBAAmB,CAAC,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KACrE;;;;IAYI,wBAAwB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;KACpB;;;;IAKI,WAAW,CAAC,QAAQ,EAAE,MAAM;;;;IAG5B,YAAY,CAAC,QAAQ,EAAE,MAAM;;;;IAG7B,YAAY,CACjB,QAAQ,EAAE,MAAM,EAChB,mBAAmB,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE;;;;IAK/D,UAAU,CACf,MAAM,EAAE,MAAM,EACd,mBAAmB,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE;;;;IAK/D,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;;;;IAI/D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE,CAAC;IAI1E,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;CAWxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{readFile}from"fs/promises";import{appPaths}from"../../utils/AppPaths";export class LocalStrategy{localAgent;constructor(localAgent){this.localAgent=localAgent}async performBackup(backupId){return await this.localAgent.performBackup(backupId)}async createBackup(backupId,options){return await this.localAgent.createBackup(backupId,options)}async updateBackup(backupId,options){return await this.localAgent.updateBackup(backupId,options)}async cancelBackup(planId,backupId){return await this.localAgent.cancelBackup(planId,backupId)}async removeBackup(planId,options){const{storageName:storageName,storagePath:storagePath,removeRemoteData:removeRemoteData,encryption:encryption,replicationStorages:replicationStorages}=options;return await this.localAgent.removeBackup(planId,{storageName:storageName,storagePath:storagePath,removeRemoteData:removeRemoteData,encryption:encryption,replicationStorages:replicationStorages})}async removeReplicationStorage(planId,options){return await this.localAgent.removeReplicationStorage(planId,options)}async pauseBackup(backupId){return await this.localAgent.pauseBackup(backupId)}async resumeBackup(backupId){return await this.localAgent.resumeBackup(backupId)}async pruneBackups(backupId,replicationStorages){return await this.localAgent.pruneBackups(backupId,replicationStorages)}async unlockRepo(planId,replicationStorages){return await this.localAgent.unlockRepo(planId,replicationStorages)}async updatePlanStorageName(storageId,newStorageName){return await this.localAgent.updatePlanStorageName(storageId,newStorageName)}async getBackupProgress(planId,backupId){try{const filename=`backup-${backupId}.json`,progressFile=`${appPaths.getProgressDir()}/${filename}`,progressData=await readFile(progressFile,"utf8");return{success:!0,result:JSON.parse(progressData)}}catch(error){return{success:!1,result:error?.message}}}}
|
|
1
|
+
import{readFile}from"fs/promises";import{appPaths}from"../../utils/AppPaths";export class LocalStrategy{localAgent;constructor(localAgent){this.localAgent=localAgent}async performBackup(backupId){return await this.localAgent.performBackup(backupId)}async createBackup(backupId,options){return await this.localAgent.createBackup(backupId,options)}async updateBackup(backupId,options){return await this.localAgent.updateBackup(backupId,options)}async cancelBackup(planId,backupId){return await this.localAgent.cancelBackup(planId,backupId)}async removeBackup(planId,options){const{storageName:storageName,storagePath:storagePath,removeRemoteData:removeRemoteData,encryption:encryption,replicationStorages:replicationStorages}=options;return await this.localAgent.removeBackup(planId,{storageName:storageName,storagePath:storagePath,removeRemoteData:removeRemoteData,encryption:encryption,replicationStorages:replicationStorages})}async removeReplicationStorage(planId,options){return await this.localAgent.removeReplicationStorage(planId,options)}async pauseBackup(backupId){return await this.localAgent.pauseBackup(backupId)}async resumeBackup(backupId){return await this.localAgent.resumeBackup(backupId)}async pruneBackups(backupId,replicationStorages){return await this.localAgent.pruneBackups(backupId,replicationStorages)}async unlockRepo(planId,replicationStorages){return await this.localAgent.unlockRepo(planId,replicationStorages)}async updatePlanStorageName(storageId,newStorageName){return await this.localAgent.updatePlanStorageName(storageId,newStorageName)}async checkIntegrity(planId){return await this.localAgent.checkIntegrity(planId)}async getBackupProgress(planId,backupId){try{const filename=`backup-${backupId}.json`,progressFile=`${appPaths.getProgressDir()}/${filename}`,progressData=await readFile(progressFile,"utf8");return{success:!0,result:JSON.parse(progressData)}}catch(error){return{success:!1,result:error?.message}}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalStrategy.js","sourceRoot":"","sources":["../../../src/strategies/backup/LocalStrategy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LocalStrategy.js","sourceRoot":"","sources":["../../../src/strategies/backup/LocalStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,10 @@ export declare class RemoteStrategy implements BackupStrategy {
|
|
|
58
58
|
success: boolean;
|
|
59
59
|
result: any;
|
|
60
60
|
}>;
|
|
61
|
+
checkIntegrity(planId: string): Promise<{
|
|
62
|
+
success: boolean;
|
|
63
|
+
result: any;
|
|
64
|
+
}>;
|
|
61
65
|
publishCommand(action: string, payload: any): Promise<{
|
|
62
66
|
success: boolean;
|
|
63
67
|
result: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteStrategy.d.ts","sourceRoot":"","sources":["../../../src/strategies/backup/RemoteStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,qBAAa,cAAe,YAAW,cAAc;IACpD,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEf,QAAQ,EAAE,MAAM;IAItB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;IAIzD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;;;;IAIzC,YAAY,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;KACpB;
|
|
1
|
+
{"version":3,"file":"RemoteStrategy.d.ts","sourceRoot":"","sources":["../../../src/strategies/backup/RemoteStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,qBAAa,cAAe,YAAW,cAAc;IACpD,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEf,QAAQ,EAAE,MAAM;IAItB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;IAIzD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;;;;IAIzC,YAAY,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;KACpB;iBAmD+D,OAAO;gBAAU,GAAG;;IA9C/E,wBAAwB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;KACpB;iBAwC+D,OAAO;gBAAU,GAAG;;IAnC/E,aAAa,CAAC,MAAM,EAAE,MAAM;iBAmC+B,OAAO;gBAAU,GAAG;;IA/B/E,WAAW,CAAC,MAAM,EAAE,MAAM;iBA+BiC,OAAO;gBAAU,GAAG;;IA3B/E,YAAY,CAAC,MAAM,EAAE,MAAM;iBA2BgC,OAAO;gBAAU,GAAG;;IAxB/E,YAAY,CAAC,MAAM,EAAE,MAAM;iBAwBgC,OAAO;gBAAU,GAAG;;IApB/E,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;iBAoBS,OAAO;gBAAU,GAAG;;IAhB/E,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;iBAgBc,OAAO;gBAAU,GAAG;;IAZ/E,UAAU,CAAC,MAAM,EAAE,MAAM;iBAYkC,OAAO;gBAAU,GAAG;;IAR/E,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;iBAQJ,OAAO;gBAAU,GAAG;;IAJ/E,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE,CAAC;IAIhF,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE,CAAC;CAKxF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export class RemoteStrategy{deviceId;constructor(deviceId){this.deviceId=deviceId}async createBackup(planId,options){return{success:!0,result:"Backup created successfully"}}async updateBackup(planId,options){return{success:!0,result:"Backup updated successfully"}}async removeBackup(planId,options){return await this.publishCommand("REMOVE_SNAPSHOT",{planId:planId,options:options})}async removeReplicationStorage(planId,options){return await this.publishCommand("REMOVE_REPLICATION_STORAGE",{planId:planId,options:options})}async performBackup(planId){return await this.publishCommand("PERFORM_BACKUP",{planId:planId})}async pauseBackup(planId){return await this.publishCommand("PAUSE_BACKUP",{planId:planId})}async resumeBackup(planId){return await this.publishCommand("RESUME_BACKUP",{planId:planId})}async pruneBackups(planId){return await this.publishCommand("PRUNE_BACKUPS",{planId:planId})}async getBackupProgress(planId,backupId){return await this.publishCommand("GET_BACKUP_PROGRESS",{planId:planId,backupId:backupId})}async cancelBackup(planId,backupId){return await this.publishCommand("CANCEL_BACKUP",{planId:planId})}async unlockRepo(planId){return await this.publishCommand("UNLOCK_REPO",{planId:planId})}async updatePlanStorageName(storageId,newStorageName){return await this.publishCommand("UPDATE_PLAN_STORAGE_NAME",{storageId:storageId,newStorageName:newStorageName})}publishCommand(action,payload){return new Promise((resolve,reject)=>{resolve({success:!0,result:null})})}}
|
|
1
|
+
export class RemoteStrategy{deviceId;constructor(deviceId){this.deviceId=deviceId}async createBackup(planId,options){return{success:!0,result:"Backup created successfully"}}async updateBackup(planId,options){return{success:!0,result:"Backup updated successfully"}}async removeBackup(planId,options){return await this.publishCommand("REMOVE_SNAPSHOT",{planId:planId,options:options})}async removeReplicationStorage(planId,options){return await this.publishCommand("REMOVE_REPLICATION_STORAGE",{planId:planId,options:options})}async performBackup(planId){return await this.publishCommand("PERFORM_BACKUP",{planId:planId})}async pauseBackup(planId){return await this.publishCommand("PAUSE_BACKUP",{planId:planId})}async resumeBackup(planId){return await this.publishCommand("RESUME_BACKUP",{planId:planId})}async pruneBackups(planId){return await this.publishCommand("PRUNE_BACKUPS",{planId:planId})}async getBackupProgress(planId,backupId){return await this.publishCommand("GET_BACKUP_PROGRESS",{planId:planId,backupId:backupId})}async cancelBackup(planId,backupId){return await this.publishCommand("CANCEL_BACKUP",{planId:planId})}async unlockRepo(planId){return await this.publishCommand("UNLOCK_REPO",{planId:planId})}async updatePlanStorageName(storageId,newStorageName){return await this.publishCommand("UPDATE_PLAN_STORAGE_NAME",{storageId:storageId,newStorageName:newStorageName})}async checkIntegrity(planId){return await this.publishCommand("CHECK_INTEGRITY",{planId:planId})}publishCommand(action,payload){return new Promise((resolve,reject)=>{resolve({success:!0,result:null})})}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteStrategy.js","sourceRoot":"","sources":["../../../src/strategies/backup/RemoteStrategy.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAc;IAChB,QAAQ,CAAS;IAE3B,YAAY,QAAgB;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,OAA4B;QAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,OAAY;QAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,YAAY,CACjB,MAAc,EACd,OAIC;QAED,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC7B,MAAc,EACd,OAIC;QAED,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QACjC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc;QAC/B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAChC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,MAAc;QAChC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,QAAgB;QACvD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,QAAgB;QAClD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC9B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,SAAiB,EAAE,cAAsB;QACpE,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,cAAc,CAAC,MAAc,EAAE,OAAY;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"RemoteStrategy.js","sourceRoot":"","sources":["../../../src/strategies/backup/RemoteStrategy.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAc;IAChB,QAAQ,CAAS;IAE3B,YAAY,QAAgB;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,OAA4B;QAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,OAAY;QAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,YAAY,CACjB,MAAc,EACd,OAIC;QAED,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC7B,MAAc,EACd,OAIC;QAED,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QACjC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc;QAC/B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAChC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,MAAc;QAChC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,QAAgB;QACvD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,QAAgB;QAClD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC9B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,SAAiB,EAAE,cAAsB;QACpE,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc;QAClC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,cAAc,CAAC,MAAc,EAAE,OAAY;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
|