@futo-org/backups-orchestrator-api 0.44.0 → 0.46.0
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/auth.controller.js +1 -1
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/controllers/backend.controller.js +1 -1
- package/dist/controllers/backend.controller.js.map +1 -1
- package/dist/controllers/config.controller.d.ts +8 -0
- package/dist/controllers/config.controller.js +52 -0
- package/dist/controllers/config.controller.js.map +1 -0
- package/dist/controllers/integrations.controller.d.ts +3 -1
- package/dist/controllers/integrations.controller.js +20 -1
- package/dist/controllers/integrations.controller.js.map +1 -1
- package/dist/controllers/repository.controller.js +6 -6
- package/dist/controllers/repository.controller.js.map +1 -1
- package/dist/controllers/runHistory.controller.d.ts +5 -1
- package/dist/controllers/runHistory.controller.js +32 -2
- package/dist/controllers/runHistory.controller.js.map +1 -1
- package/dist/controllers/schedule.controller.js +1 -1
- package/dist/controllers/schedule.controller.js.map +1 -1
- package/dist/dto/config.dto.d.ts +24 -0
- package/dist/dto/config.dto.js +26 -0
- package/dist/dto/config.dto.js.map +1 -0
- package/dist/dto/integrations.dto.d.ts +18 -0
- package/dist/dto/integrations.dto.js +18 -1
- package/dist/dto/integrations.dto.js.map +1 -1
- package/dist/dto/repository.dto.d.ts +9 -0
- package/dist/dto/repository.dto.js +1 -1
- package/dist/dto/repository.dto.js.map +1 -1
- package/dist/enum.d.ts +6 -2
- package/dist/enum.js +4 -0
- package/dist/enum.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js.map +1 -1
- package/dist/moduleConfig.d.ts +11 -1
- package/dist/moduleConfig.js.map +1 -1
- package/dist/orchestrationApi.module.d.ts +4 -2
- package/dist/orchestrationApi.module.js +4 -0
- package/dist/orchestrationApi.module.js.map +1 -1
- package/dist/proxy/resticProxy.d.ts +8 -1
- package/dist/proxy/resticProxy.js +13 -4
- package/dist/proxy/resticProxy.js.map +1 -1
- package/dist/proxy/resticProxyPool.d.ts +11 -3
- package/dist/proxy/resticProxyPool.js +35 -4
- package/dist/proxy/resticProxyPool.js.map +1 -1
- package/dist/repositories/config.repository.d.ts +6 -0
- package/dist/repositories/config.repository.js +26 -6
- package/dist/repositories/config.repository.js.map +1 -1
- package/dist/repositories/restic.repository.js +2 -3
- package/dist/repositories/restic.repository.js.map +1 -1
- package/dist/repositories/runHistory.repository.js +1 -1
- package/dist/repositories/runHistory.repository.js.map +1 -1
- package/dist/repositories/runningTasks.repository.js +10 -2
- package/dist/repositories/runningTasks.repository.js.map +1 -1
- package/dist/schema/migrations/20260917120000-AllowCancelledStatus.d.ts +3 -0
- package/dist/schema/migrations/20260917120000-AllowCancelledStatus.js +63 -0
- package/dist/schema/migrations/20260917120000-AllowCancelledStatus.js.map +1 -0
- package/dist/services/bootstrap.service.d.ts +5 -1
- package/dist/services/bootstrap.service.js +15 -2
- package/dist/services/bootstrap.service.js.map +1 -1
- package/dist/services/config.service.d.ts +11 -0
- package/dist/services/config.service.js +46 -0
- package/dist/services/config.service.js.map +1 -0
- package/dist/services/integrations.service.d.ts +6 -2
- package/dist/services/integrations.service.js +22 -3
- package/dist/services/integrations.service.js.map +1 -1
- package/dist/services/repository.service.js +22 -9
- package/dist/services/repository.service.js.map +1 -1
- package/dist/services/schedule.service.js +2 -3
- package/dist/services/schedule.service.js.map +1 -1
- package/dist/utils/cache.d.ts +3 -0
- package/dist/utils/cache.js +21 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/errors.d.ts +5 -0
- package/dist/utils/errors.js +22 -0
- package/dist/utils/errors.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restic.repository.js","sourceRoot":"","sources":["../../src/repositories/restic.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAAuH;AACvH,2CAA4C;
|
|
1
|
+
{"version":3,"file":"restic.repository.js","sourceRoot":"","sources":["../../src/repositories/restic.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -134,7 +134,7 @@ let RunHistoryRepository = RunHistoryRepository_1 = class RunHistoryRepository {
|
|
|
134
134
|
callback(error);
|
|
135
135
|
(0, errors_1.writeError)(log, error);
|
|
136
136
|
log.close();
|
|
137
|
-
await finalize(
|
|
137
|
+
await finalize((0, errors_1.getTaskStatus)(error));
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
140
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runHistory.repository.js","sourceRoot":"","sources":["../../src/repositories/runHistory.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,oEAA2C;AAC3C,mCAAgC;AAChC,iDAA6C;AAC7C,6CAAyC;AAEzC,yCAA6C;AAC7C,+BAA4B;AAC5B,+BAA4B;AAC5B,kCAAqC;AACrC,6DAAyD;AAGzD,
|
|
1
|
+
{"version":3,"file":"runHistory.repository.js","sourceRoot":"","sources":["../../src/repositories/runHistory.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,oEAA2C;AAC3C,mCAAgC;AAChC,iDAA6C;AAC7C,6CAAyC;AAEzC,yCAA6C;AAC7C,+BAA4B;AAC5B,+BAA4B;AAC5B,kCAAqC;AACrC,6DAAyD;AAGzD,4CAA4D;AAC5D,6DAAyD;AACzD,uEAAmE;AACnE,6DAAyD;AAGlD,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAES;IACrB;IACA;IACA;IACA;IALnB,YACwC,EAAc,EACnC,YAAoC,EACpC,OAA0B,EAC1B,MAAqB,EACrB,MAAyB;QAJJ,OAAE,GAAF,EAAE,CAAY;QACnC,iBAAY,GAAZ,YAAY,CAAwB;QACpC,YAAO,GAAP,OAAO,CAAmB;QAC1B,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAmB;QAE1C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAgD;QACpE,MAAM,KAAK,GAAG,IAAA,wBAAU,GAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAA,mBAAO,EACzB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,EACjC,MAAM,EACN,MAAM,EAAE,YAAY,IAAI,WAAW,EACnC,SAAS,CAAC,WAAW,EAAE,GAAG,QAAQ,CACnC,CAAC;QAEF,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAA,mBAAO,EAAC,WAAW,CAAC,EAAE;YAC7C,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAE9D,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;iBACtB,UAAU,CAAC,YAAY,CAAC;iBACxB,MAAM,CAAC;gBACN,EAAE,EAAE,KAAK;gBACT,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,IAAI,EAAE,MAAM,CAAC,IAAI;gBAEjB,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE;gBAC9B,WAAW;gBAEX,MAAM,EAAE,iBAAU,CAAC,UAAU;aAC9B,CAAC;iBACD,YAAY,EAAE;iBACd,uBAAuB,EAAE,CAAC;YAE7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAkB,EAAE,KAAW,EAAE,EAAE;YACzD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAErC,IAAI,KAAK,EAAE,CAAC;gBACV,IAAA,mBAAU,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;YAED,SAAS,CAAC,KAAK,EAAE,CAAC;YAElB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBAEhH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBAClB,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,KAAK;oBACZ,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;iBACrB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,OAAO;YACL,SAAS;YACT,KAAK;YACL,QAAQ;YACR,SAAS;SACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,YAAoB,EACpB,IAAa,EACb,EAAsD,EACtD,QAAsC;QAEtC,MAAM,KAAK,GAAG,IAAA,wBAAU,GAAE,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;YAEvG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAA,mBAAO,EAAC,WAAW,CAAC,EAAE;gBAC7C,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAExD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;iBACtB,UAAU,CAAC,YAAY,CAAC;iBACxB,MAAM,CAAC;gBACN,EAAE,EAAE,KAAK;gBACT,YAAY;gBACZ,IAAI;gBAEJ,KAAK;gBACL,WAAW;gBAEX,MAAM,EAAE,iBAAU,CAAC,UAAU;aAC9B,CAAC;iBACD,YAAY,EAAE;iBACd,uBAAuB,EAAE,CAAC;YAE7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;YAEhD,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAkB,EAAE,EAAE;gBAC5C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBAEhH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBAClB,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,KAAK;oBACZ,YAAY;oBACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;iBACrB,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;iBACX,IAAI,CAAC,KAAK,IAAI,EAAE;gBACf,QAAQ,EAAE,CAAC;gBACX,GAAG,CAAC,KAAK,EAAE,CAAC;gBAEZ,MAAM,QAAQ,CAAC,iBAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACrB,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAEhB,IAAA,mBAAU,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvB,GAAG,CAAC,KAAK,EAAE,CAAC;gBAEZ,MAAM,QAAQ,CAAC,IAAA,sBAAa,EAAC,KAAK,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,EAAsD,EACtD,QAAmC;QAEnC,MAAM,KAAK,GAAG,IAAA,wBAAU,GAAE,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;YAEtG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAA,mBAAO,EAAC,WAAW,CAAC,EAAE;gBAC7C,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAExD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAE3C,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;iBACX,IAAI,CAAC,GAAG,EAAE;gBACT,QAAQ,EAAE,CAAC;gBACX,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChB,IAAA,mBAAU,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvB,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAEO,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAElD,cAAc,CAAC,YAAoB,EAAE,IAAa,EAAE,EAAsD;QACxG,OAAO,IAAI,OAAO,CAChB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAClB,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;YACpD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CACL,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC1G,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,YAAoB;QAC/B,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;IACrH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,YAAoB,EAAE,IAAa;QACjD,OAAO,IAAI,CAAC,EAAE;aACX,UAAU,CAAC,YAAY,CAAC;aACxB,SAAS,CAAC,YAAY,CAAC;aACvB,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC;aACxC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;aACxB,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;aACxB,KAAK,CAAC,CAAC,CAAC;aACR,gBAAgB,EAAE,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,EAAU;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEjD,OAAO,IAAA,WAAI,EACT,IAAI,wBAAa,CAAe,CAAC,KAAK,EAAE,EAAE;YACxC,IAAI,IAAsB,CAAC;YAE3B,MAAM,SAAS,GAAG,CAAC,WAAmB,EAAE,EAAE;gBACxC,IAAI,GAAG,IAAI,WAAI,CAAC,WAAW,EAAE;oBAC3B,aAAa,EAAE,IAAI;oBACnB,MAAM,EAAE,EAAE;iBACX,CAAC,CAAC;gBAEH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAkB,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,WAAW,WAAW,EAAE,KAAK,CAAC,CAAC;oBACxD,IAAI,EAAE,OAAO,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,aAAa,EAAE,CAAC;gBAClB,SAAS,CAAC,aAAa,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;qBACxB,MAAM,CAAC,aAAa,CAAC;qBACrB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;qBACpB,uBAAuB,EAAE;qBACzB,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;qBACjD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YAED,OAAO,GAAG,EAAE;gBACV,IAAI,EAAE,OAAO,EAAE,CAAC;YAClB,CAAC,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,OAAO,IAAI,CAAC,EAAE;aACX,WAAW,CAAC,YAAY,CAAC;aACzB,GAAG,CAAC,QAAQ,EAAE,iBAAU,CAAC,MAAM,CAAC;aAChC,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACpC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,iBAAU,CAAC,UAAU,CAAC;aAC3C,YAAY,EAAE;aACd,OAAO,EAAE,CAAC;IACf,CAAC;CACF,CAAA;AAtQY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,4BAAY,EAAC,cAAc,CAAC,CAAA;qCAAa,eAAM;QACjB,gDAAsB;QAC3B,sCAAiB;QAClB,8BAAa;QACb,sCAAiB;GANjC,oBAAoB,CAsQhC"}
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.RunningTasksRepository = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const events_gateway_1 = require("../events/events.gateway");
|
|
15
|
+
const errors_1 = require("../utils/errors");
|
|
15
16
|
let RunningTasksRepository = class RunningTasksRepository {
|
|
16
17
|
events;
|
|
17
18
|
activeTasks = new Map();
|
|
@@ -29,7 +30,14 @@ let RunningTasksRepository = class RunningTasksRepository {
|
|
|
29
30
|
logId,
|
|
30
31
|
};
|
|
31
32
|
const controller = new AbortController();
|
|
32
|
-
|
|
33
|
+
if (signal) {
|
|
34
|
+
if (signal.aborted) {
|
|
35
|
+
controller.abort(signal.reason);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
signal.addEventListener('abort', () => controller.abort(signal.reason), { once: true });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
33
41
|
this.activeTasks.set(parentId, task);
|
|
34
42
|
this.controllers.set(parentId, controller);
|
|
35
43
|
this.events.publish({
|
|
@@ -66,7 +74,7 @@ let RunningTasksRepository = class RunningTasksRepository {
|
|
|
66
74
|
if (!controller) {
|
|
67
75
|
throw new common_1.NotFoundException(`No running task for parent ${parentId}`);
|
|
68
76
|
}
|
|
69
|
-
controller.abort();
|
|
77
|
+
controller.abort(new errors_1.TaskCancelledError());
|
|
70
78
|
}
|
|
71
79
|
};
|
|
72
80
|
exports.RunningTasksRepository = RunningTasksRepository;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runningTasks.repository.js","sourceRoot":"","sources":["../../src/repositories/runningTasks.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA+D;AAG/D,6DAAyD;
|
|
1
|
+
{"version":3,"file":"runningTasks.repository.js","sourceRoot":"","sources":["../../src/repositories/runningTasks.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA+D;AAG/D,6DAAyD;AACzD,4CAAqD;AAG9C,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAIJ;IAH7B,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;IACxC,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEzD,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,QAAQ,CAAC,QAAgB;QACvB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,CAAC,QAAgB,EAAE,IAAc,EAAE,KAAc,EAAE,MAAoB;QAC9E,MAAM,IAAI,GAAmB;YAC3B,QAAQ;YACR,IAAI;YACJ,KAAK;SACN,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QAEzC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAE3C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,WAAW;YACjB,IAAI;SACL,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,QAAgB,EAAE,IAA6B;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,kBAAkB,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE;YAC7B,GAAG,IAAI;YACP,GAAG,IAAI;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,YAAY;YAClB,QAAQ;YACR,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,QAAgB;QACtB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,SAAS;YACf,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,QAAgB;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,0BAAiB,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,UAAU,CAAC,KAAK,CAAC,IAAI,2BAAkB,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AAzEY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAK0B,8BAAa;GAJvC,sBAAsB,CAyElC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.up = up;
|
|
4
|
+
exports.down = down;
|
|
5
|
+
const kysely_1 = require("kysely");
|
|
6
|
+
const rebuildRunHistory = async (db, statuses) => {
|
|
7
|
+
await (0, kysely_1.sql) `PRAGMA foreign_keys = OFF`.execute(db);
|
|
8
|
+
await db.schema
|
|
9
|
+
.createTable('runHistory_new')
|
|
10
|
+
.addColumn('id', 'text', (col) => col.primaryKey())
|
|
11
|
+
.addColumn('repositoryId', 'text', (col) => col.references('repositories.id'))
|
|
12
|
+
.addColumn('start', 'datetime')
|
|
13
|
+
.addColumn('end', 'datetime')
|
|
14
|
+
.addColumn('logFilePath', 'text')
|
|
15
|
+
.addColumn('status', 'text', (col) => col.check((0, kysely_1.sql) `status IN (${kysely_1.sql.raw(statuses)})`))
|
|
16
|
+
.addColumn('type', 'text', (col) => col
|
|
17
|
+
.notNull()
|
|
18
|
+
.defaultTo('backup')
|
|
19
|
+
.check((0, kysely_1.sql) `type IN ('backup', 'restore', 'forget')`))
|
|
20
|
+
.execute();
|
|
21
|
+
await (0, kysely_1.sql) `
|
|
22
|
+
INSERT INTO "runHistory_new" ("id", "repositoryId", "start", "end", "logFilePath", "status", "type")
|
|
23
|
+
SELECT "id", "repositoryId", "start", "end", "logFilePath", "status", "type" FROM "runHistory"
|
|
24
|
+
`.execute(db);
|
|
25
|
+
await db.schema.dropTable('runHistory').execute();
|
|
26
|
+
await (0, kysely_1.sql) `ALTER TABLE "runHistory_new" RENAME TO "runHistory"`.execute(db);
|
|
27
|
+
await (0, kysely_1.sql) `PRAGMA foreign_keys = ON`.execute(db);
|
|
28
|
+
};
|
|
29
|
+
const rebuildRepositoryLocalMetrics = async (db, statuses) => {
|
|
30
|
+
await (0, kysely_1.sql) `PRAGMA foreign_keys = OFF`.execute(db);
|
|
31
|
+
await db.schema
|
|
32
|
+
.createTable('repositoryLocalMetrics_new')
|
|
33
|
+
.addColumn('id', 'text', (col) => col.primaryKey().references('repositories.id'))
|
|
34
|
+
.addColumn('sizeBytes', 'integer')
|
|
35
|
+
.addColumn('lastBackup', 'datetime')
|
|
36
|
+
.addColumn('lastBackupDuration', 'integer')
|
|
37
|
+
.addColumn('lastBackupStatus', 'text', (col) => col.check((0, kysely_1.sql) `"lastBackupStatus" IS NULL OR "lastBackupStatus" IN (${kysely_1.sql.raw(statuses)})`))
|
|
38
|
+
.execute();
|
|
39
|
+
await (0, kysely_1.sql) `
|
|
40
|
+
INSERT INTO "repositoryLocalMetrics_new" ("id", "sizeBytes", "lastBackup", "lastBackupDuration", "lastBackupStatus")
|
|
41
|
+
SELECT "id", "sizeBytes", "lastBackup", "lastBackupDuration", "lastBackupStatus"
|
|
42
|
+
FROM "repositoryLocalMetrics"
|
|
43
|
+
WHERE "rowid" IN (SELECT MAX("rowid") FROM "repositoryLocalMetrics" GROUP BY "id")
|
|
44
|
+
`.execute(db);
|
|
45
|
+
await db.schema.dropTable('repositoryLocalMetrics').execute();
|
|
46
|
+
await (0, kysely_1.sql) `ALTER TABLE "repositoryLocalMetrics_new" RENAME TO "repositoryLocalMetrics"`.execute(db);
|
|
47
|
+
await (0, kysely_1.sql) `PRAGMA foreign_keys = ON`.execute(db);
|
|
48
|
+
};
|
|
49
|
+
async function up(db) {
|
|
50
|
+
await rebuildRunHistory(db, `'incomplete', 'complete', 'warn', 'failed', 'cancelled'`);
|
|
51
|
+
await rebuildRepositoryLocalMetrics(db, `'complete', 'warn', 'failed', 'cancelled'`);
|
|
52
|
+
}
|
|
53
|
+
async function down(db) {
|
|
54
|
+
await db.updateTable('runHistory').set('status', 'failed').where('status', '=', 'cancelled').execute();
|
|
55
|
+
await db
|
|
56
|
+
.updateTable('repositoryLocalMetrics')
|
|
57
|
+
.set('lastBackupStatus', 'failed')
|
|
58
|
+
.where('lastBackupStatus', '=', 'cancelled')
|
|
59
|
+
.execute();
|
|
60
|
+
await rebuildRunHistory(db, `'incomplete', 'complete', 'warn', 'failed'`);
|
|
61
|
+
await rebuildRepositoryLocalMetrics(db, `'complete', 'warn', 'failed'`);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=20260917120000-AllowCancelledStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260917120000-AllowCancelledStatus.js","sourceRoot":"","sources":["../../../src/schema/migrations/20260917120000-AllowCancelledStatus.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,15 +3,19 @@ import { BootstrapRepository } from '../repositories/bootstrap.repository';
|
|
|
3
3
|
import { ConfigRepository } from '../repositories/config.repository';
|
|
4
4
|
import { DatabaseRepository } from '../repositories/database.repository';
|
|
5
5
|
import { LoggingRepository } from '../repositories/logging.repository';
|
|
6
|
+
import { ModuleConfigRepository } from '../repositories/moduleConfig.repository';
|
|
7
|
+
import { ConfigService } from './config.service';
|
|
6
8
|
import { RunHistoryService } from './runHistory.service';
|
|
7
9
|
import { ScheduleService } from './schedule.service';
|
|
8
10
|
export declare class BootstrapService implements OnApplicationBootstrap {
|
|
9
11
|
private readonly logger;
|
|
10
12
|
private readonly database;
|
|
11
13
|
private readonly config;
|
|
14
|
+
private readonly configService;
|
|
12
15
|
private readonly schedule;
|
|
13
16
|
private readonly bootstrap;
|
|
14
17
|
private readonly runHistory;
|
|
15
|
-
|
|
18
|
+
private readonly moduleConfig;
|
|
19
|
+
constructor(logger: LoggingRepository, database: DatabaseRepository, config: ConfigRepository, configService: ConfigService, schedule: ScheduleService, bootstrap: BootstrapRepository, runHistory: RunHistoryService, moduleConfig: ModuleConfigRepository);
|
|
16
20
|
onApplicationBootstrap(): Promise<void>;
|
|
17
21
|
}
|
|
@@ -16,28 +16,39 @@ const bootstrap_repository_1 = require("../repositories/bootstrap.repository");
|
|
|
16
16
|
const config_repository_1 = require("../repositories/config.repository");
|
|
17
17
|
const database_repository_1 = require("../repositories/database.repository");
|
|
18
18
|
const logging_repository_1 = require("../repositories/logging.repository");
|
|
19
|
+
const moduleConfig_repository_1 = require("../repositories/moduleConfig.repository");
|
|
20
|
+
const cache_1 = require("../utils/cache");
|
|
21
|
+
const config_service_1 = require("./config.service");
|
|
19
22
|
const runHistory_service_1 = require("./runHistory.service");
|
|
20
23
|
const schedule_service_1 = require("./schedule.service");
|
|
21
24
|
let BootstrapService = BootstrapService_1 = class BootstrapService {
|
|
22
25
|
logger;
|
|
23
26
|
database;
|
|
24
27
|
config;
|
|
28
|
+
configService;
|
|
25
29
|
schedule;
|
|
26
30
|
bootstrap;
|
|
27
31
|
runHistory;
|
|
28
|
-
|
|
32
|
+
moduleConfig;
|
|
33
|
+
constructor(logger, database, config, configService, schedule, bootstrap, runHistory, moduleConfig) {
|
|
29
34
|
this.logger = logger;
|
|
30
35
|
this.database = database;
|
|
31
36
|
this.config = config;
|
|
37
|
+
this.configService = configService;
|
|
32
38
|
this.schedule = schedule;
|
|
33
39
|
this.bootstrap = bootstrap;
|
|
34
40
|
this.runHistory = runHistory;
|
|
41
|
+
this.moduleConfig = moduleConfig;
|
|
35
42
|
this.logger.setContext(BootstrapService_1.name);
|
|
36
43
|
}
|
|
37
44
|
async onApplicationBootstrap() {
|
|
38
45
|
try {
|
|
46
|
+
if (this.moduleConfig.hasLock()) {
|
|
47
|
+
await (0, cache_1.discardStateCacheDirectory)(this.moduleConfig.get());
|
|
48
|
+
}
|
|
39
49
|
await this.database.runMigrations();
|
|
40
50
|
await this.config.bootstrap();
|
|
51
|
+
await this.configService.bootstrap();
|
|
41
52
|
await this.schedule.bootstrap();
|
|
42
53
|
await this.runHistory.reconcileInterruptedRuns();
|
|
43
54
|
const { backends, repositories, activeSchedules } = await this.config.getStateSummary();
|
|
@@ -57,8 +68,10 @@ exports.BootstrapService = BootstrapService = BootstrapService_1 = __decorate([
|
|
|
57
68
|
__metadata("design:paramtypes", [logging_repository_1.LoggingRepository,
|
|
58
69
|
database_repository_1.DatabaseRepository,
|
|
59
70
|
config_repository_1.ConfigRepository,
|
|
71
|
+
config_service_1.ConfigService,
|
|
60
72
|
schedule_service_1.ScheduleService,
|
|
61
73
|
bootstrap_repository_1.BootstrapRepository,
|
|
62
|
-
runHistory_service_1.RunHistoryService
|
|
74
|
+
runHistory_service_1.RunHistoryService,
|
|
75
|
+
moduleConfig_repository_1.ModuleConfigRepository])
|
|
63
76
|
], BootstrapService);
|
|
64
77
|
//# sourceMappingURL=bootstrap.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.service.js","sourceRoot":"","sources":["../../src/services/bootstrap.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoE;AACpE,+EAA2E;AAC3E,yEAAqE;AACrE,6EAAyE;AACzE,2EAAuE;AACvE,6DAAyD;AACzD,yDAAqD;AAG9C,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAER;IACA;IACA;IACA;IACA;IACA;
|
|
1
|
+
{"version":3,"file":"bootstrap.service.js","sourceRoot":"","sources":["../../src/services/bootstrap.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoE;AACpE,+EAA2E;AAC3E,yEAAqE;AACrE,6EAAyE;AACzE,2EAAuE;AACvE,qFAAiF;AACjF,0CAA4D;AAC5D,qDAAiD;AACjD,6DAAyD;AACzD,yDAAqD;AAG9C,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAER;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IARnB,YACmB,MAAyB,EACzB,QAA4B,EAC5B,MAAwB,EACxB,aAA4B,EAC5B,QAAyB,EACzB,SAA8B,EAC9B,UAA6B,EAC7B,YAAoC;QAPpC,WAAM,GAAN,MAAM,CAAmB;QACzB,aAAQ,GAAR,QAAQ,CAAoB;QAC5B,WAAM,GAAN,MAAM,CAAkB;QACxB,kBAAa,GAAb,aAAa,CAAe;QAC5B,aAAQ,GAAR,QAAQ,CAAiB;QACzB,cAAS,GAAT,SAAS,CAAqB;QAC9B,eAAU,GAAV,UAAU,CAAmB;QAC7B,iBAAY,GAAZ,YAAY,CAAwB;QAErD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChC,MAAM,IAAA,kCAA0B,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC;YAEjD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACxF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,SAAS,QAAQ,IAAI,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,KAAK,YAAY,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,SAAS,eAAe,WAAW,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,GAAG,CAC1N,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;YAC1E,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF,CAAA;AAtCY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAGgB,sCAAiB;QACf,wCAAkB;QACpB,oCAAgB;QACT,8BAAa;QAClB,kCAAe;QACd,0CAAmB;QAClB,sCAAiB;QACf,gDAAsB;GAT5C,gBAAgB,CAsC5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ConfigResponseDto, ConfigUpdateRequestDto } from '../dto/config.dto';
|
|
2
|
+
import { ConfigRepository } from '../repositories/config.repository';
|
|
3
|
+
import { ModuleConfigRepository } from '../repositories/moduleConfig.repository';
|
|
4
|
+
export declare class ConfigService {
|
|
5
|
+
private readonly config;
|
|
6
|
+
private readonly moduleConfig;
|
|
7
|
+
constructor(config: ConfigRepository, moduleConfig: ModuleConfigRepository);
|
|
8
|
+
bootstrap(): Promise<void>;
|
|
9
|
+
getConfig(): ConfigResponseDto;
|
|
10
|
+
updateConfig({ bandwidth }: ConfigUpdateRequestDto): Promise<ConfigResponseDto>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ConfigService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const resticProxy_1 = require("../proxy/resticProxy");
|
|
15
|
+
const config_repository_1 = require("../repositories/config.repository");
|
|
16
|
+
const moduleConfig_repository_1 = require("../repositories/moduleConfig.repository");
|
|
17
|
+
let ConfigService = class ConfigService {
|
|
18
|
+
config;
|
|
19
|
+
moduleConfig;
|
|
20
|
+
constructor(config, moduleConfig) {
|
|
21
|
+
this.config = config;
|
|
22
|
+
this.moduleConfig = moduleConfig;
|
|
23
|
+
}
|
|
24
|
+
async bootstrap() {
|
|
25
|
+
const stored = await this.config.getThrottle();
|
|
26
|
+
if (!stored) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.moduleConfig.update({ throttle: stored });
|
|
30
|
+
}
|
|
31
|
+
getConfig() {
|
|
32
|
+
return { bandwidth: this.moduleConfig.get().throttle ?? resticProxy_1.UNTHROTTLED };
|
|
33
|
+
}
|
|
34
|
+
async updateConfig({ bandwidth }) {
|
|
35
|
+
await this.config.setThrottle(bandwidth);
|
|
36
|
+
this.moduleConfig.update({ throttle: bandwidth });
|
|
37
|
+
return { bandwidth };
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
exports.ConfigService = ConfigService;
|
|
41
|
+
exports.ConfigService = ConfigService = __decorate([
|
|
42
|
+
(0, common_1.Injectable)(),
|
|
43
|
+
__metadata("design:paramtypes", [config_repository_1.ConfigRepository,
|
|
44
|
+
moduleConfig_repository_1.ModuleConfigRepository])
|
|
45
|
+
], ConfigService);
|
|
46
|
+
//# sourceMappingURL=config.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../src/services/config.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,sDAAmD;AACnD,yEAAqE;AACrE,qFAAiF;AAG1E,IAAM,aAAa,GAAnB,MAAM,aAAa;IAEL;IACA;IAFnB,YACmB,MAAwB,EACxB,YAAoC;QADpC,WAAM,GAAN,MAAM,CAAkB;QACxB,iBAAY,GAAZ,YAAY,CAAwB;IACpD,CAAC;IAEJ,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,SAAS;QACP,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,IAAI,yBAAW,EAAE,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAE,SAAS,EAA0B;QACtD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QAElD,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;CACF,CAAA;AAzBY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;qCAGgB,oCAAgB;QACV,gDAAsB;GAH5C,aAAa,CAyBzB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ConfigureImmichIntegrationRequestDto, ImmichBackupStatusDto, ImmichRollbackRequestDto, IntegrationsResponseDto } from '../dto/integrations.dto';
|
|
1
|
+
import { ConfigureImmichDatabaseDumpRequestDto, ConfigureImmichIntegrationRequestDto, ImmichBackupStatusDto, ImmichRollbackRequestDto, IntegrationsResponseDto } from '../dto/integrations.dto';
|
|
2
2
|
import { EventsGateway } from '../events/events.gateway';
|
|
3
3
|
import type { ModuleConfig } from '../moduleConfig';
|
|
4
|
+
import { ConfigRepository } from '../repositories/config.repository';
|
|
4
5
|
import { LockRepository } from '../repositories/lock.repository';
|
|
5
6
|
import { ModuleConfigRepository } from '../repositories/moduleConfig.repository';
|
|
6
7
|
import { RepositoryRepository } from '../repositories/repository.repository';
|
|
@@ -16,6 +17,7 @@ export declare class IntegrationsService {
|
|
|
16
17
|
private readonly backendService;
|
|
17
18
|
private readonly events;
|
|
18
19
|
private readonly moduleConfig;
|
|
20
|
+
private readonly config;
|
|
19
21
|
private readonly repositoryIntegrationImmich;
|
|
20
22
|
private readonly repositoryPath;
|
|
21
23
|
private readonly repositoryService;
|
|
@@ -25,7 +27,7 @@ export declare class IntegrationsService {
|
|
|
25
27
|
private readonly scheduleService;
|
|
26
28
|
private readonly telemetry;
|
|
27
29
|
private readonly lock;
|
|
28
|
-
constructor(backendService: BackendService, events: EventsGateway, moduleConfig: ModuleConfigRepository, repositoryIntegrationImmich: RepositoryIntegrationImmichRepository, repositoryPath: RepositoryPathRepository, repositoryService: RepositoryService, repository: RepositoryRepository, runHistory: RunHistoryRepository, schedule: ScheduleRepository, scheduleService: ScheduleService, telemetry: TelemetryService, lock: LockRepository);
|
|
30
|
+
constructor(backendService: BackendService, events: EventsGateway, moduleConfig: ModuleConfigRepository, config: ConfigRepository, repositoryIntegrationImmich: RepositoryIntegrationImmichRepository, repositoryPath: RepositoryPathRepository, repositoryService: RepositoryService, repository: RepositoryRepository, runHistory: RunHistoryRepository, schedule: ScheduleRepository, scheduleService: ScheduleService, telemetry: TelemetryService, lock: LockRepository);
|
|
29
31
|
onModuleConfigUpdate(moduleConfig: ModuleConfig): Promise<void>;
|
|
30
32
|
getIntegrationsConfig(): Promise<IntegrationsResponseDto>;
|
|
31
33
|
getImmichBackupStatus(): Promise<ImmichBackupStatusDto>;
|
|
@@ -33,6 +35,8 @@ export declare class IntegrationsService {
|
|
|
33
35
|
configureImmichIntegration(dto: ConfigureImmichIntegrationRequestDto): Promise<{
|
|
34
36
|
repositoryId: string;
|
|
35
37
|
}>;
|
|
38
|
+
ignoreImmichDatabaseDumpWarning(): Promise<void>;
|
|
39
|
+
configureImmichDatabaseDump(dto: ConfigureImmichDatabaseDumpRequestDto): Promise<void>;
|
|
36
40
|
enterImmichMaintenanceRollback(dto: ImmichRollbackRequestDto): Promise<{
|
|
37
41
|
jwt: string;
|
|
38
42
|
}>;
|
|
@@ -16,6 +16,7 @@ const event_emitter_1 = require("@nestjs/event-emitter");
|
|
|
16
16
|
const node_path_1 = require("node:path");
|
|
17
17
|
const enum_1 = require("../enum");
|
|
18
18
|
const events_gateway_1 = require("../events/events.gateway");
|
|
19
|
+
const config_repository_1 = require("../repositories/config.repository");
|
|
19
20
|
const lock_repository_1 = require("../repositories/lock.repository");
|
|
20
21
|
const moduleConfig_repository_1 = require("../repositories/moduleConfig.repository");
|
|
21
22
|
const repository_repository_1 = require("../repositories/repository.repository");
|
|
@@ -32,6 +33,7 @@ let IntegrationsService = class IntegrationsService {
|
|
|
32
33
|
backendService;
|
|
33
34
|
events;
|
|
34
35
|
moduleConfig;
|
|
36
|
+
config;
|
|
35
37
|
repositoryIntegrationImmich;
|
|
36
38
|
repositoryPath;
|
|
37
39
|
repositoryService;
|
|
@@ -41,10 +43,11 @@ let IntegrationsService = class IntegrationsService {
|
|
|
41
43
|
scheduleService;
|
|
42
44
|
telemetry;
|
|
43
45
|
lock;
|
|
44
|
-
constructor(backendService, events, moduleConfig, repositoryIntegrationImmich, repositoryPath, repositoryService, repository, runHistory, schedule, scheduleService, telemetry, lock) {
|
|
46
|
+
constructor(backendService, events, moduleConfig, config, repositoryIntegrationImmich, repositoryPath, repositoryService, repository, runHistory, schedule, scheduleService, telemetry, lock) {
|
|
45
47
|
this.backendService = backendService;
|
|
46
48
|
this.events = events;
|
|
47
49
|
this.moduleConfig = moduleConfig;
|
|
50
|
+
this.config = config;
|
|
48
51
|
this.repositoryIntegrationImmich = repositoryIntegrationImmich;
|
|
49
52
|
this.repositoryPath = repositoryPath;
|
|
50
53
|
this.repositoryService = repositoryService;
|
|
@@ -73,15 +76,18 @@ let IntegrationsService = class IntegrationsService {
|
|
|
73
76
|
};
|
|
74
77
|
}
|
|
75
78
|
async getImmichBackupStatus() {
|
|
79
|
+
const { immichIntegration } = this.moduleConfig.get();
|
|
76
80
|
const integration = await this.repositoryIntegrationImmich.get();
|
|
77
|
-
if (!integration) {
|
|
81
|
+
if (!integration || !immichIntegration) {
|
|
78
82
|
return {};
|
|
79
83
|
}
|
|
80
|
-
const [{ repositories }, { backends }, schedule, latestBackupRun] = await Promise.all([
|
|
84
|
+
const [{ repositories }, { backends }, schedule, latestBackupRun, databaseDump, databaseDumpWarningIgnored] = await Promise.all([
|
|
81
85
|
this.repositoryService.getRepositories(),
|
|
82
86
|
this.backendService.getBackends(),
|
|
83
87
|
this.schedule.get(integration.scheduleId),
|
|
84
88
|
this.runHistory.getLatest(integration.id, enum_1.TaskType.Backup),
|
|
89
|
+
immichIntegration.hooks.getImmichDatabaseDumpConfig(),
|
|
90
|
+
this.config.hasIgnoredImmichDatabaseDumpWarning(),
|
|
85
91
|
]);
|
|
86
92
|
const repository = repositories.find((entry) => entry.id === integration.id);
|
|
87
93
|
return {
|
|
@@ -90,6 +96,8 @@ let IntegrationsService = class IntegrationsService {
|
|
|
90
96
|
backend: backends.find((entry) => entry.id === repository?.backends?.primary.id),
|
|
91
97
|
schedule,
|
|
92
98
|
latestBackupRun,
|
|
99
|
+
databaseDump,
|
|
100
|
+
databaseDumpWarningIgnored,
|
|
93
101
|
};
|
|
94
102
|
}
|
|
95
103
|
static ImmichIntegrationConfig = Symbol('ImmichIntegrationConfig');
|
|
@@ -161,6 +169,16 @@ let IntegrationsService = class IntegrationsService {
|
|
|
161
169
|
};
|
|
162
170
|
});
|
|
163
171
|
}
|
|
172
|
+
async ignoreImmichDatabaseDumpWarning() {
|
|
173
|
+
await this.config.ignoreImmichDatabaseDumpWarning();
|
|
174
|
+
}
|
|
175
|
+
async configureImmichDatabaseDump(dto) {
|
|
176
|
+
const { immichIntegration } = this.moduleConfig.get();
|
|
177
|
+
if (!immichIntegration) {
|
|
178
|
+
throw new common_1.BadRequestException('Immich integration is not enabled.');
|
|
179
|
+
}
|
|
180
|
+
await immichIntegration.hooks.configureImmichDatabaseDump(dto);
|
|
181
|
+
}
|
|
164
182
|
async enterImmichMaintenanceRollback(dto) {
|
|
165
183
|
const { immichIntegration } = this.moduleConfig.get();
|
|
166
184
|
if (!immichIntegration) {
|
|
@@ -218,6 +236,7 @@ exports.IntegrationsService = IntegrationsService = IntegrationsService_1 = __de
|
|
|
218
236
|
__metadata("design:paramtypes", [backend_service_1.BackendService,
|
|
219
237
|
events_gateway_1.EventsGateway,
|
|
220
238
|
moduleConfig_repository_1.ModuleConfigRepository,
|
|
239
|
+
config_repository_1.ConfigRepository,
|
|
221
240
|
repositoryIntegrationImmich_repository_1.RepositoryIntegrationImmichRepository,
|
|
222
241
|
repositoryPath_repository_1.RepositoryPathRepository,
|
|
223
242
|
repository_service_1.RepositoryService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrations.service.js","sourceRoot":"","sources":["../../src/services/integrations.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoF;AACpF,yDAAgD;AAChD,yCAAiC;
|
|
1
|
+
{"version":3,"file":"integrations.service.js","sourceRoot":"","sources":["../../src/services/integrations.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,6 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
var RepositoryService_1;
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.RepositoryService = void 0;
|
|
17
|
-
const restic_wrapper_1 = require("@futo-org/restic-wrapper");
|
|
18
17
|
const common_1 = require("@nestjs/common");
|
|
19
18
|
const node_crypto_1 = require("node:crypto");
|
|
20
19
|
const node_path_1 = require("node:path");
|
|
@@ -33,6 +32,7 @@ const restic_repository_1 = require("../repositories/restic.repository");
|
|
|
33
32
|
const runHistory_repository_1 = require("../repositories/runHistory.repository");
|
|
34
33
|
const runningTasks_repository_1 = require("../repositories/runningTasks.repository");
|
|
35
34
|
const storage_repository_1 = require("../repositories/storage.repository");
|
|
35
|
+
const errors_1 = require("../utils/errors");
|
|
36
36
|
const restic_1 = require("../utils/restic");
|
|
37
37
|
const bootstrap_service_1 = require("./bootstrap.service");
|
|
38
38
|
const telemetry_service_1 = require("./telemetry.service");
|
|
@@ -447,21 +447,21 @@ let RepositoryService = RepositoryService_1 = class RepositoryService {
|
|
|
447
447
|
});
|
|
448
448
|
const finish = async (error) => {
|
|
449
449
|
try {
|
|
450
|
-
const lastBackupStatus = error
|
|
451
|
-
? error instanceof restic_wrapper_1.ResticBackupCommandCouldNotReadSourceDataError
|
|
452
|
-
? enum_1.TaskStatus.Warn
|
|
453
|
-
: enum_1.TaskStatus.Failed
|
|
454
|
-
: enum_1.TaskStatus.Complete;
|
|
450
|
+
const lastBackupStatus = (0, errors_1.getTaskStatus)(error);
|
|
455
451
|
const lastBackup = new Date().toISOString();
|
|
456
452
|
const lastBackupDuration = Date.now() - +startTime;
|
|
457
|
-
|
|
458
|
-
resticParameters: { endpoint, key, placement },
|
|
453
|
+
await this.updateLocalMetrics(id, {
|
|
459
454
|
additionalMetrics: {
|
|
460
455
|
lastBackup,
|
|
461
456
|
lastBackupStatus,
|
|
462
457
|
lastBackupDuration,
|
|
463
458
|
},
|
|
464
459
|
});
|
|
460
|
+
if (lastBackupStatus !== enum_1.TaskStatus.Cancelled) {
|
|
461
|
+
void this.updateLocalMetrics(id, {
|
|
462
|
+
resticParameters: { endpoint, key, placement },
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
465
|
this.telemetry.submitStructuredLog('Backup finished', {
|
|
466
466
|
repositoryId: id,
|
|
467
467
|
lastBackupStatus,
|
|
@@ -486,15 +486,17 @@ let RepositoryService = RepositoryService_1 = class RepositoryService {
|
|
|
486
486
|
try {
|
|
487
487
|
const taskSignal = this.tasks.startTask(id, enum_1.TaskType.Backup, logId, signal);
|
|
488
488
|
const tags = [];
|
|
489
|
+
let immichHooks;
|
|
489
490
|
const config = this.moduleConfig.get();
|
|
490
491
|
if (config.immichIntegration) {
|
|
491
492
|
const immichIntegration = await this.repositoryIntegrationImmich.get();
|
|
492
493
|
if (id === immichIntegration?.id) {
|
|
494
|
+
immichHooks = config.immichIntegration.hooks;
|
|
493
495
|
this.telemetry.submitStructuredLog('Creating Immich database backup', {
|
|
494
496
|
repositoryId: id,
|
|
495
497
|
});
|
|
496
498
|
try {
|
|
497
|
-
const backupFileName = await
|
|
499
|
+
const backupFileName = await immichHooks.createDatabaseBackup(taskSignal);
|
|
498
500
|
tags.push(`${enum_1.ResticTagPrefix.ImmichBackupFileName}=${backupFileName}`);
|
|
499
501
|
this.telemetry.submitStructuredLog('Created Immich database backup', {
|
|
500
502
|
repositoryId: id,
|
|
@@ -514,6 +516,17 @@ let RepositoryService = RepositoryService_1 = class RepositoryService {
|
|
|
514
516
|
repositoryId: id,
|
|
515
517
|
summary,
|
|
516
518
|
});
|
|
519
|
+
if (immichHooks) {
|
|
520
|
+
try {
|
|
521
|
+
await immichHooks.cleanupDatabaseBackups();
|
|
522
|
+
}
|
|
523
|
+
catch (error) {
|
|
524
|
+
this.telemetry.submitStructuredLog('Failed to clean up Immich database backups', {
|
|
525
|
+
repositoryId: id,
|
|
526
|
+
error,
|
|
527
|
+
});
|
|
528
|
+
}
|
|
529
|
+
}
|
|
517
530
|
if (retentionPolicy) {
|
|
518
531
|
await this.runForgetAndPrune(endpoint, key, placement, retentionPolicy, logWriter, taskSignal);
|
|
519
532
|
this.telemetry.submitStructuredLog('Finished prune on primary backend', {
|