@plutonhq/core-backend 0.1.0 → 0.1.1
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/createApp.js +1 -1
- package/dist/createApp.js.map +1 -1
- package/dist/notifications/BackupNotification.d.ts +2 -0
- package/dist/notifications/BackupNotification.d.ts.map +1 -1
- package/dist/notifications/BackupNotification.js +1 -1
- package/dist/notifications/BackupNotification.js.map +1 -1
- package/dist/notifications/BaseNotification.d.ts.map +1 -1
- package/dist/notifications/BaseNotification.js +1 -1
- package/dist/notifications/BaseNotification.js.map +1 -1
- package/dist/notifications/channels/NotificationChannelResolver.d.ts +2 -2
- package/dist/notifications/channels/NotificationChannelResolver.d.ts.map +1 -1
- package/dist/notifications/channels/NotificationChannelResolver.js +1 -1
- package/dist/notifications/channels/NotificationChannelResolver.js.map +1 -1
- package/dist/notifications/channels/SMTPChannel.js.map +1 -1
- package/dist/notifications/templateLoader.d.ts +15 -0
- package/dist/notifications/templateLoader.d.ts.map +1 -0
- package/dist/notifications/templateLoader.js +1 -0
- package/dist/notifications/templateLoader.js.map +1 -0
- package/dist/notifications/templates/email/backup/BackupFailedNotification.d.ts.map +1 -1
- package/dist/notifications/templates/email/backup/BackupFailedNotification.ejs +109 -0
- package/dist/notifications/templates/email/backup/BackupFailedNotification.js +1 -1
- package/dist/notifications/templates/email/backup/BackupFailedNotification.js.map +1 -1
- package/dist/notifications/templates/email/backup/BackupFailedNotification.ts +110 -0
- package/dist/notifications/templates/email/backup/BackupStartedNotification.d.ts.map +1 -1
- package/dist/notifications/templates/email/backup/BackupStartedNotification.ejs +159 -0
- package/dist/notifications/templates/email/backup/BackupStartedNotification.js +1 -1
- package/dist/notifications/templates/email/backup/BackupStartedNotification.js.map +1 -1
- package/dist/notifications/templates/email/backup/BackupStartedNotification.ts +87 -0
- package/dist/notifications/templates/email/backup/BackupSuccessNotification.d.ts.map +1 -1
- package/dist/notifications/templates/email/backup/BackupSuccessNotification.ejs +163 -0
- package/dist/notifications/templates/email/backup/BackupSuccessNotification.js +1 -1
- package/dist/notifications/templates/email/backup/BackupSuccessNotification.js.map +1 -1
- package/dist/notifications/templates/email/backup/BackupSuccessNotification.ts +97 -0
- package/dist/notifications/templates/email/email.html +801 -0
- package/dist/notifications/templates/email/test-email/TestEmailNotification.ts +27 -0
- package/dist/services/SettingsService.d.ts +2 -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/stores/PlanStore.d.ts.map +1 -1
- package/dist/stores/PlanStore.js +1 -1
- package/dist/stores/PlanStore.js.map +1 -1
- package/dist/stores/SettingsStore.d.ts +3 -1
- package/dist/stores/SettingsStore.d.ts.map +1 -1
- package/dist/stores/SettingsStore.js +1 -1
- package/dist/stores/SettingsStore.js.map +1 -1
- package/dist/types/notifications.d.ts +11 -0
- package/dist/types/notifications.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { configService } from '../../../../services/ConfigService';
|
|
2
|
+
import { INTEGRATIONS_AVAILABLE, IntegrationTypes } from '../../../../types/settings';
|
|
3
|
+
import { BaseNotification } from '../../../BaseNotification';
|
|
4
|
+
|
|
5
|
+
export class TestEmailNotification extends BaseNotification {
|
|
6
|
+
integrationName = '';
|
|
7
|
+
constructor(data: { integrationType: IntegrationTypes; appTitle: string }) {
|
|
8
|
+
super();
|
|
9
|
+
const integrationType = data.integrationType;
|
|
10
|
+
this.integrationName = INTEGRATIONS_AVAILABLE[integrationType].name;
|
|
11
|
+
this.subject = `${this.integrationName} Integration Successful`;
|
|
12
|
+
this.content = this.buildContent(data);
|
|
13
|
+
}
|
|
14
|
+
protected buildContent(data: { integrationType: IntegrationTypes; appTitle: string }): string {
|
|
15
|
+
// Generate the Email Body
|
|
16
|
+
const content = `
|
|
17
|
+
<div class="center">
|
|
18
|
+
<h2>${this.integrationName} Integration Successful</h2>
|
|
19
|
+
<p>${configService.config.APP_TITLE || 'Pluton'} can successfully send notifications using ${this.integrationName}</p>
|
|
20
|
+
</div>
|
|
21
|
+
`;
|
|
22
|
+
return this.applyEmailTemplate(content, {
|
|
23
|
+
appTitle: data.appTitle,
|
|
24
|
+
preHeader: `${configService.config.APP_TITLE || 'Pluton'} can successfully send notifications using ${this.integrationName}`,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -2,11 +2,13 @@ import { ReadStream } from 'fs';
|
|
|
2
2
|
import { Settings } from '../db/schema/settings';
|
|
3
3
|
import { SettingsStore } from '../stores/SettingsStore';
|
|
4
4
|
import { AppSettings, IntegrationTypes } from '../types/settings';
|
|
5
|
+
import { INotificationChannelResolver } from '../types/notifications';
|
|
5
6
|
/**
|
|
6
7
|
* A class for managing settings operations.
|
|
7
8
|
*/
|
|
8
9
|
export declare class SettingsService {
|
|
9
10
|
protected settingsStore: SettingsStore;
|
|
11
|
+
protected notificationChannelResolver: INotificationChannelResolver;
|
|
10
12
|
constructor(settingsStore: SettingsStore);
|
|
11
13
|
getMainSettings(): Promise<Settings | null>;
|
|
12
14
|
getSettings(id: number): Promise<Settings | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsService.d.ts","sourceRoot":"","sources":["../../src/services/SettingsService.ts"],"names":[],"mappings":"AAAA,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;
|
|
1
|
+
{"version":3,"file":"SettingsService.d.ts","sourceRoot":"","sources":["../../src/services/SettingsService.ts"],"names":[],"mappings":"AAAA,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;AAKtE;;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;CAkB3C"}
|
|
@@ -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;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=
|
|
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 +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;
|
|
1
|
+
{"version":3,"file":"SettingsService.js","sourceRoot":"","sources":["../../src/services/SettingsService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanStore.d.ts","sourceRoot":"","sources":["../../src/stores/PlanStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAS,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAsB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI9D;;GAEG;AACH,qBAAa,SAAS;IACT,SAAS,CAAC,EAAE,EAAE,YAAY;gBAAhB,EAAE,EAAE,YAAY;IAEhC,MAAM,CAAC,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;IAoE3D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgE3E,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAO1D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAO9D,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;IAqBlF,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAa/C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"PlanStore.d.ts","sourceRoot":"","sources":["../../src/stores/PlanStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAS,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAsB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI9D;;GAEG;AACH,qBAAa,SAAS;IACT,SAAS,CAAC,EAAE,EAAE,YAAY;gBAAhB,EAAE,EAAE,YAAY;IAEhC,MAAM,CAAC,OAAO,GAAE,OAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;IAoE3D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgE3E,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAO1D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAO9D,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;IAqBlF,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAa/C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IA6C3E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMpC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlD,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAI9D,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;IAuB1F,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;CAsBhG"}
|
package/dist/stores/PlanStore.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{eq}from"drizzle-orm";import{and,sql}from"drizzle-orm/sql";import{plans}from"../db/schema/plans";import{backups}from"../db/schema/backups";import Cryptr from"cryptr";import{configService}from"../services/ConfigService";export class PlanStore{db;constructor(db){this.db=db}async getAll(history=!0){const result=await this.db.query.plans.findMany({with:{device:{columns:{id:!0,name:!0,hostname:!0}},storage:{columns:{id:!0,name:!0,type:!0}},backups:{limit:history?90:10,orderBy:(backups,{desc:desc})=>[desc(backups.ended)],columns:{id:!0,title:!0,description:!0,status:!0,errorMsg:!0,download:!0,started:!0,ended:!0,completionStats:!0,taskStats:!0,inProgress:!0}},restores:{limit:history?90:0,orderBy:(restores,{desc:desc})=>[desc(restores.ended)],columns:{id:!0,backupId:!0,started:!0,ended:!0,config:!0,status:!0,completionStats:!0,taskStats:!0,errorMsg:!0}}}});if(result){const plans=result.map(async plan=>(plan?.settings?.scripts&&(plan.settings.scripts=await this.decryptScripts(plan.settings.scripts)),{...plan,backups:this.handleBackupStats(plan.method,plan.backups,plan.stats)}));return Promise.all(plans)}return null}async getById(planId,history=!1){const thePlan=await this.db.query.plans.findFirst({where:eq(plans.id,planId),with:{device:{columns:{id:!0,name:!0,hostname:!0}},storage:{columns:{id:!0,name:!0,type:!0}},backups:{limit:history?90:10,orderBy:(backups,{desc:desc})=>[desc(backups.ended)],columns:{id:!0,title:!0,description:!0,status:!0,errorMsg:!0,download:!0,started:!0,ended:!0,inProgress:!0,completionStats:!0,taskStats:!0}},restores:{limit:history?90:0,orderBy:(restores,{desc:desc})=>[desc(restores.ended)],columns:{id:!0,backupId:!0,started:!0,ended:!0,config:!0,status:!0,inProgress:!0,completionStats:!0,taskStats:!0,errorMsg:!0}}}});return thePlan&&thePlan.backups&&(thePlan.backups=this.handleBackupStats(thePlan.method,thePlan.backups,thePlan.stats)),thePlan?.settings?.scripts&&(thePlan.settings.scripts=await this.decryptScripts(thePlan.settings.scripts)),thePlan||null}async getStoragePlans(storageId){return await this.db.query.plans.findMany({where:eq(plans.storageId,storageId)})}async getDevicePlans(deviceId){return await this.db.query.plans.findMany({where:eq(plans.sourceId,deviceId)})}handleBackupStats(method,backups,stats){return backups.map(backup=>{const{completionStats:backupCompStats,taskStats:backupTaskStats}=backup,backupStarted=backup.started?new Date(backup.started).getTime():0,backupEnded=backup.ended?new Date(backup.ended).getTime():0,taskStats=backupCompStats||backupTaskStats;return{...backup,totalFiles:backupTaskStats?.total_files_processed||0,totalSize:backupTaskStats?.total_bytes_processed||0,duration:Math.floor((backupEnded-backupStarted)/1e3),active:stats?.snapshots?.includes(backup.id)||!1,changes:{new:(taskStats?.files_new||0)+(taskStats?.dirs_new||0),modified:(taskStats?.files_changed||0)+(taskStats?.dirs_changed||0),removed:0}}})}async create(planData){return(await this.db.insert(plans).values({...planData,createdAt:sql`(unixepoch())`,isActive:!0,stats:{size:0,snapshots:[]}}).returning())[0]||null}async update(id,updates){const allowedFields=["title","isActive","inProgress","storagePath","sourceConfig","verified","lastBackupTime","tags","stats","settings"],updatedPlan=Object.fromEntries(Object.entries(updates).filter(([key])=>allowedFields.includes(key)));if(0===Object.keys(updatedPlan).length)return null;updatedPlan.settings?.scripts&&(updatedPlan.settings.scripts=await this.encryptScripts(updatedPlan.settings.scripts));return(await this.db.update(plans).set({...updatedPlan,updatedAt:sql`(unixepoch())`}).where(eq(plans.id,id)).returning())[0]||null}async delete(id){return(await this.db.delete(plans).where(eq(plans.id,id))).changes>0}async hasActiveBackups(planId){return(await this.db.select().from(backups).where(and(eq(backups.planId,planId),eq(backups.inProgress,!0))).limit(1)).length>0}async setActive(id,isActive){return this.update(id,{isActive:isActive})}async encryptScripts(scripts){try{const planScripts={...scripts},cryptr=new Cryptr(configService.config.SECRET);for(const[scriptType,scriptArray]of Object.entries(planScripts))scriptArray&&Array.isArray(scriptArray)&&(planScripts[scriptType]=scriptArray.map(script=>{const encryptedCommand=cryptr.encrypt(script.command);return{...script,command:encryptedCommand}}));return planScripts}catch(error){throw new Error("Failed to encrypt Plan scripts")}}async decryptScripts(scripts){try{const planScripts={...scripts},cryptr=new Cryptr(configService.config.SECRET);for(const[scriptType,scriptArray]of Object.entries(planScripts))scriptArray&&Array.isArray(scriptArray)&&(planScripts[scriptType]=scriptArray.map(script=>{const decryptedCommand=cryptr.decrypt(script.command);return{...script,command:decryptedCommand}}));return planScripts}catch(error){throw new Error("Failed to decrypt Plan scripts")}}}
|
|
1
|
+
import{eq}from"drizzle-orm";import{and,sql}from"drizzle-orm/sql";import{plans}from"../db/schema/plans";import{backups}from"../db/schema/backups";import Cryptr from"cryptr";import{configService}from"../services/ConfigService";export class PlanStore{db;constructor(db){this.db=db}async getAll(history=!0){const result=await this.db.query.plans.findMany({with:{device:{columns:{id:!0,name:!0,hostname:!0}},storage:{columns:{id:!0,name:!0,type:!0}},backups:{limit:history?90:10,orderBy:(backups,{desc:desc})=>[desc(backups.ended)],columns:{id:!0,title:!0,description:!0,status:!0,errorMsg:!0,download:!0,started:!0,ended:!0,completionStats:!0,taskStats:!0,inProgress:!0}},restores:{limit:history?90:0,orderBy:(restores,{desc:desc})=>[desc(restores.ended)],columns:{id:!0,backupId:!0,started:!0,ended:!0,config:!0,status:!0,completionStats:!0,taskStats:!0,errorMsg:!0}}}});if(result){const plans=result.map(async plan=>(plan?.settings?.scripts&&(plan.settings.scripts=await this.decryptScripts(plan.settings.scripts)),{...plan,backups:this.handleBackupStats(plan.method,plan.backups,plan.stats)}));return Promise.all(plans)}return null}async getById(planId,history=!1){const thePlan=await this.db.query.plans.findFirst({where:eq(plans.id,planId),with:{device:{columns:{id:!0,name:!0,hostname:!0}},storage:{columns:{id:!0,name:!0,type:!0}},backups:{limit:history?90:10,orderBy:(backups,{desc:desc})=>[desc(backups.ended)],columns:{id:!0,title:!0,description:!0,status:!0,errorMsg:!0,download:!0,started:!0,ended:!0,inProgress:!0,completionStats:!0,taskStats:!0}},restores:{limit:history?90:0,orderBy:(restores,{desc:desc})=>[desc(restores.ended)],columns:{id:!0,backupId:!0,started:!0,ended:!0,config:!0,status:!0,inProgress:!0,completionStats:!0,taskStats:!0,errorMsg:!0}}}});return thePlan&&thePlan.backups&&(thePlan.backups=this.handleBackupStats(thePlan.method,thePlan.backups,thePlan.stats)),thePlan?.settings?.scripts&&(thePlan.settings.scripts=await this.decryptScripts(thePlan.settings.scripts)),thePlan||null}async getStoragePlans(storageId){return await this.db.query.plans.findMany({where:eq(plans.storageId,storageId)})}async getDevicePlans(deviceId){return await this.db.query.plans.findMany({where:eq(plans.sourceId,deviceId)})}handleBackupStats(method,backups,stats){return backups.map(backup=>{const{completionStats:backupCompStats,taskStats:backupTaskStats}=backup,backupStarted=backup.started?new Date(backup.started).getTime():0,backupEnded=backup.ended?new Date(backup.ended).getTime():0,taskStats=backupCompStats||backupTaskStats;return{...backup,totalFiles:backupTaskStats?.total_files_processed||0,totalSize:backupTaskStats?.total_bytes_processed||0,duration:Math.floor((backupEnded-backupStarted)/1e3),active:stats?.snapshots?.includes(backup.id)||!1,changes:{new:(taskStats?.files_new||0)+(taskStats?.dirs_new||0),modified:(taskStats?.files_changed||0)+(taskStats?.dirs_changed||0),removed:0}}})}async create(planData){return(await this.db.insert(plans).values({...planData,createdAt:sql`(unixepoch())`,isActive:!0,stats:{size:0,snapshots:[]}}).returning())[0]||null}async update(id,updates){const allowedFields=["title","description","isActive","inProgress","storagePath","sourceConfig","verified","lastBackupTime","tags","stats","settings"],updatedPlan=Object.fromEntries(Object.entries(updates).filter(([key])=>allowedFields.includes(key)));if(0===Object.keys(updatedPlan).length)return null;updatedPlan.settings?.scripts&&(updatedPlan.settings.scripts=await this.encryptScripts(updatedPlan.settings.scripts));return(await this.db.update(plans).set({...updatedPlan,updatedAt:sql`(unixepoch())`}).where(eq(plans.id,id)).returning())[0]||null}async delete(id){return(await this.db.delete(plans).where(eq(plans.id,id))).changes>0}async hasActiveBackups(planId){return(await this.db.select().from(backups).where(and(eq(backups.planId,planId),eq(backups.inProgress,!0))).limit(1)).length>0}async setActive(id,isActive){return this.update(id,{isActive:isActive})}async encryptScripts(scripts){try{const planScripts={...scripts},cryptr=new Cryptr(configService.config.SECRET);for(const[scriptType,scriptArray]of Object.entries(planScripts))scriptArray&&Array.isArray(scriptArray)&&(planScripts[scriptType]=scriptArray.map(script=>{const encryptedCommand=cryptr.encrypt(script.command);return{...script,command:encryptedCommand}}));return planScripts}catch(error){throw new Error("Failed to encrypt Plan scripts")}}async decryptScripts(scripts){try{const planScripts={...scripts},cryptr=new Cryptr(configService.config.SECRET);for(const[scriptType,scriptArray]of Object.entries(planScripts))scriptArray&&Array.isArray(scriptArray)&&(planScripts[scriptType]=scriptArray.map(script=>{const decryptedCommand=cryptr.decrypt(script.command);return{...script,command:decryptedCommand}}));return planScripts}catch(error){throw new Error("Failed to decrypt Plan scripts")}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanStore.js","sourceRoot":"","sources":["../../src/stores/PlanStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PlanStore.js","sourceRoot":"","sources":["../../src/stores/PlanStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { DatabaseType } from '../db';
|
|
2
2
|
import { Settings, NewSettings } from '../db/schema/settings';
|
|
3
3
|
import { AppSettings, IntegrationTypes } from '../types/settings';
|
|
4
|
+
import { INotificationChannelResolver } from '../types/notifications';
|
|
4
5
|
/**
|
|
5
6
|
* SettingsStore is a class for managing application settings records in the database.
|
|
6
7
|
*/
|
|
7
8
|
export declare class SettingsStore {
|
|
8
|
-
|
|
9
|
+
protected db: DatabaseType;
|
|
10
|
+
protected resolver: INotificationChannelResolver;
|
|
9
11
|
constructor(db: DatabaseType);
|
|
10
12
|
getFirst(): Promise<Settings | null>;
|
|
11
13
|
getById(settingsId: number): Promise<Settings | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsStore.d.ts","sourceRoot":"","sources":["../../src/stores/SettingsStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAY,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,WAAW,EAA0B,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingsStore.d.ts","sourceRoot":"","sources":["../../src/stores/SettingsStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAY,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,WAAW,EAA0B,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1F,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAEtE;;GAEG;AACH,qBAAa,aAAa;IAGb,SAAS,CAAC,EAAE,EAAE,YAAY;IAFtC,SAAS,CAAC,QAAQ,EAAE,4BAA4B,CAA+B;gBAEzD,EAAE,EAAE,YAAY;IAEhC,QAAQ,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAWpC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAerD,MAAM,CAAC,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAK3D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAiBlE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMpC,yBAAyB,CAAC,WAAW,EAAE,WAAW;;;;;;gBA1CvD,CAAF;oBAA4B,CAAA;mBAA8B,CAAC;iBACrC,CAAC;kBAGrB,CAAD;kBAA4B,CAAA;gBACP,CAAC;;;;;;;;;;oBAMrB,CAAF;;;;;;;;;;;;IA+CO,yBAAyB,CAAC,WAAW,EAAE,WAAW;;;;;;gBA1DvD,CAAF;oBAA4B,CAAA;mBAA8B,CAAC;iBACrC,CAAC;kBAGrB,CAAD;kBAA4B,CAAA;gBACP,CAAC;;;;;;;;;;oBAMrB,CAAF;;;;;;;;;;;;IAgEC,OAAO,CAAC,6BAA6B;CA0CrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{eq}from"drizzle-orm";import{sql}from"drizzle-orm/sql";import{settings}from"../db/schema/settings";import{INTEGRATIONS_AVAILABLE}from"../types/settings";import{NotificationChannelResolver}from"../notifications/channels/NotificationChannelResolver";export class SettingsStore{db;constructor(db){this.db=db}async getFirst(){const appSettings=await this.db.query.settings.findFirst();if(appSettings?.settings){const processedSettings=await this.decryptIntegrationSecrets(appSettings.settings);if(processedSettings)return{...appSettings,settings:processedSettings}}return null}async getById(settingsId){const appSettings=await this.db.query.settings.findFirst({where:eq(settings.id,settingsId)});if(appSettings?.settings){const processedSettings=await this.decryptIntegrationSecrets(appSettings.settings);if(processedSettings)return{...appSettings,settings:processedSettings}}return null}async create(settingsData){return(await this.db.insert(settings).values(settingsData).returning())[0]||null}async update(id,updates){if(updates?.integration){const processedSettings=await this.encryptIntegrationSecrets(updates);processedSettings?.integration&&(updates.integration=processedSettings.integration),updates.integration=this.setIntegrationConnectedStatus(updates.integration)}return(await this.db.update(settings).set({settings:updates,updatedAt:sql`(unixepoch())`}).where(eq(settings.id,id)).returning())[0]||null}async delete(id){return(await this.db.delete(settings).where(eq(settings.id,id))).changes>0}async decryptIntegrationSecrets(appSettings){const theSettings={...appSettings};if(theSettings?.integration)try{return theSettings.integration=
|
|
1
|
+
import{eq}from"drizzle-orm";import{sql}from"drizzle-orm/sql";import{settings}from"../db/schema/settings";import{INTEGRATIONS_AVAILABLE}from"../types/settings";import{NotificationChannelResolver}from"../notifications/channels/NotificationChannelResolver";export class SettingsStore{db;resolver=NotificationChannelResolver;constructor(db){this.db=db}async getFirst(){const appSettings=await this.db.query.settings.findFirst();if(appSettings?.settings){const processedSettings=await this.decryptIntegrationSecrets(appSettings.settings);if(processedSettings)return{...appSettings,settings:processedSettings}}return null}async getById(settingsId){const appSettings=await this.db.query.settings.findFirst({where:eq(settings.id,settingsId)});if(appSettings?.settings){const processedSettings=await this.decryptIntegrationSecrets(appSettings.settings);if(processedSettings)return{...appSettings,settings:processedSettings}}return null}async create(settingsData){return(await this.db.insert(settings).values(settingsData).returning())[0]||null}async update(id,updates){if(updates?.integration){const processedSettings=await this.encryptIntegrationSecrets(updates);processedSettings?.integration&&(updates.integration=processedSettings.integration),updates.integration=this.setIntegrationConnectedStatus(updates.integration)}return(await this.db.update(settings).set({settings:updates,updatedAt:sql`(unixepoch())`}).where(eq(settings.id,id)).returning())[0]||null}async delete(id){return(await this.db.delete(settings).where(eq(settings.id,id))).changes>0}async decryptIntegrationSecrets(appSettings){const theSettings={...appSettings};if(theSettings?.integration)try{return theSettings.integration=this.resolver.decryptSecrets(theSettings.integration),theSettings}catch(error){}}async encryptIntegrationSecrets(appSettings){const theSettings={...appSettings};if(theSettings?.integration)try{return theSettings.integration=this.resolver.encryptSecrets(theSettings.integration),theSettings}catch(error){}}setIntegrationConnectedStatus(integration){const validatedIntegration={...integration};return Object.keys(validatedIntegration).forEach(integrationType=>{const type=integrationType,integrationConfig=validatedIntegration[type];if(integrationConfig){const requiredFields=INTEGRATIONS_AVAILABLE[type].required,hasAllRequiredFields=(INTEGRATIONS_AVAILABLE[type].name,requiredFields.every(field=>{const value=integrationConfig[field];return null!=value&&""!==value}));hasAllRequiredFields||(validatedIntegration[type]={...integrationConfig,connected:!1}),"ntfy"===type&&hasAllRequiredFields&&(validatedIntegration[type]={...integrationConfig,connected:!0})}}),validatedIntegration}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsStore.js","sourceRoot":"","sources":["../../src/stores/SettingsStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAyB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAe,sBAAsB,EAAoB,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingsStore.js","sourceRoot":"","sources":["../../src/stores/SettingsStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
import { BackupTaskStats } from './backups';
|
|
2
|
+
import { NotificationChannel } from '../notifications/NotificationChannel';
|
|
3
|
+
import { AppSettings, IntegrationTypes } from './settings';
|
|
4
|
+
/**
|
|
5
|
+
* Interface for NotificationChannelResolver to allow extension in pro
|
|
6
|
+
*/
|
|
7
|
+
export interface INotificationChannelResolver {
|
|
8
|
+
secretFields: string[];
|
|
9
|
+
getChannel(channelType?: IntegrationTypes): Promise<NotificationChannel>;
|
|
10
|
+
encryptSecrets(integration: AppSettings['integration']): AppSettings['integration'];
|
|
11
|
+
decryptSecrets(integration: AppSettings['integration']): AppSettings['integration'];
|
|
12
|
+
}
|
|
2
13
|
export interface BackupNotificationData {
|
|
3
14
|
planId: string;
|
|
4
15
|
planName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/types/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/types/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzE,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IACpF,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;CACpF;AAED,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC5B"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plutonhq/core-backend",
|
|
3
3
|
"description": "Pluton Core Backend Library",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.1",
|
|
5
5
|
"author": "plutonhq",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"publishConfig": {
|
|
@@ -98,14 +98,15 @@
|
|
|
98
98
|
"public/**/*",
|
|
99
99
|
"node_modules/**/*",
|
|
100
100
|
"!node_modules/better-sqlite3/**/*",
|
|
101
|
-
"drizzle/**/*"
|
|
101
|
+
"drizzle/**/*",
|
|
102
|
+
"src/notifications/templates/**/*"
|
|
102
103
|
]
|
|
103
104
|
},
|
|
104
105
|
"scripts": {
|
|
105
106
|
"checkUpdates": "npx npm-check -u",
|
|
106
107
|
"db:studio": "npx drizzle-kit studio --port 4983",
|
|
107
108
|
"dev": "cross-env NODE_ENV=development tsx watch -r dotenv/config src/index.ts",
|
|
108
|
-
"generate-migration": "drizzle-kit generate
|
|
109
|
+
"generate-migration": "npx drizzle-kit generate",
|
|
109
110
|
"lint": "eslint src/**/*.ts",
|
|
110
111
|
"migrate-db": "tsx -r dotenv/config src/db/migrate.ts",
|
|
111
112
|
"start": "node dist/index.js",
|