@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":"repository.dto.js","sourceRoot":"","sources":["../../src/dto/repository.dto.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAC1C,6BAAwB;AACxB,kCAA+C;AAC/C,+CAAkD;AAElD,MAAM,kBAAkB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"repository.dto.js","sourceRoot":"","sources":["../../src/dto/repository.dto.ts"],"names":[],"mappings":"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"}
|
package/dist/enum.d.ts
CHANGED
|
@@ -19,9 +19,12 @@ export declare enum ConfigurationKey {
|
|
|
19
19
|
OnboardedKey = "onboarded-key",
|
|
20
20
|
Telemetry = "telemetry",
|
|
21
21
|
SkippedOnboardingExtraConfig = "skipped-onboarding-extra-config",
|
|
22
|
+
IgnoredImmichDatabaseDumpWarning = "ignored-immich-database-dump-warning",
|
|
22
23
|
ResticOptionRestConnections = "restic-o-rest-connections",
|
|
23
24
|
SessionSecret = "session-secret",
|
|
24
|
-
StatePath = "state-path"
|
|
25
|
+
StatePath = "state-path",
|
|
26
|
+
ThrottleBytesPerSec = "throttle-bytes-per-sec",
|
|
27
|
+
ThrottleQuietHours = "throttle-quiet-hours"
|
|
25
28
|
}
|
|
26
29
|
export declare enum MetadataKey {
|
|
27
30
|
PublicRoute = "public-route"
|
|
@@ -35,7 +38,8 @@ export declare enum TaskStatus {
|
|
|
35
38
|
Incomplete = "incomplete",
|
|
36
39
|
Complete = "complete",
|
|
37
40
|
Warn = "warn",
|
|
38
|
-
Failed = "failed"
|
|
41
|
+
Failed = "failed",
|
|
42
|
+
Cancelled = "cancelled"
|
|
39
43
|
}
|
|
40
44
|
export declare enum TaskType {
|
|
41
45
|
Schedule = "schedule",
|
package/dist/enum.js
CHANGED
|
@@ -26,9 +26,12 @@ var ConfigurationKey;
|
|
|
26
26
|
ConfigurationKey["OnboardedKey"] = "onboarded-key";
|
|
27
27
|
ConfigurationKey["Telemetry"] = "telemetry";
|
|
28
28
|
ConfigurationKey["SkippedOnboardingExtraConfig"] = "skipped-onboarding-extra-config";
|
|
29
|
+
ConfigurationKey["IgnoredImmichDatabaseDumpWarning"] = "ignored-immich-database-dump-warning";
|
|
29
30
|
ConfigurationKey["ResticOptionRestConnections"] = "restic-o-rest-connections";
|
|
30
31
|
ConfigurationKey["SessionSecret"] = "session-secret";
|
|
31
32
|
ConfigurationKey["StatePath"] = "state-path";
|
|
33
|
+
ConfigurationKey["ThrottleBytesPerSec"] = "throttle-bytes-per-sec";
|
|
34
|
+
ConfigurationKey["ThrottleQuietHours"] = "throttle-quiet-hours";
|
|
32
35
|
})(ConfigurationKey || (exports.ConfigurationKey = ConfigurationKey = {}));
|
|
33
36
|
var MetadataKey;
|
|
34
37
|
(function (MetadataKey) {
|
|
@@ -46,6 +49,7 @@ var TaskStatus;
|
|
|
46
49
|
TaskStatus["Complete"] = "complete";
|
|
47
50
|
TaskStatus["Warn"] = "warn";
|
|
48
51
|
TaskStatus["Failed"] = "failed";
|
|
52
|
+
TaskStatus["Cancelled"] = "cancelled";
|
|
49
53
|
})(TaskStatus || (exports.TaskStatus = TaskStatus = {}));
|
|
50
54
|
var TaskType;
|
|
51
55
|
(function (TaskType) {
|
package/dist/enum.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.js","sourceRoot":"","sources":["../src/enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,kCAAoB,CAAA;IACpB,0CAA4B,CAAA;IAC5B,yDAA2C,CAAA;IAC3C,0CAA4B,CAAA;IAC5B,qDAAuC,CAAA;IACvC,iDAAmC,CAAA;IACnC,gEAAkD,CAAA;AACpD,CAAC,EARW,UAAU,0BAAV,UAAU,QAQrB;AAED,IAAY,YAEX;AAFD,WAAY,YAAY;IACtB,6DAA6C,CAAA;AAC/C,CAAC,EAFW,YAAY,4BAAZ,YAAY,QAEvB;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,sDAAsC,CAAA;IACtC,uDAAuC,CAAA;AACzC,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"enum.js","sourceRoot":"","sources":["../src/enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,kCAAoB,CAAA;IACpB,0CAA4B,CAAA;IAC5B,yDAA2C,CAAA;IAC3C,0CAA4B,CAAA;IAC5B,qDAAuC,CAAA;IACvC,iDAAmC,CAAA;IACnC,gEAAkD,CAAA;AACpD,CAAC,EARW,UAAU,0BAAV,UAAU,QAQrB;AAED,IAAY,YAEX;AAFD,WAAY,YAAY;IACtB,6DAA6C,CAAA;AAC/C,CAAC,EAFW,YAAY,4BAAZ,YAAY,QAEvB;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,sDAAsC,CAAA;IACtC,uDAAuC,CAAA;AACzC,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAED,IAAY,gBAWX;AAXD,WAAY,gBAAgB;IAC1B,oDAAgC,CAAA;IAChC,kDAA8B,CAAA;IAC9B,2CAAuB,CAAA;IACvB,oFAAgE,CAAA;IAChE,6FAAyE,CAAA;IACzE,6EAAyD,CAAA;IACzD,oDAAgC,CAAA;IAChC,4CAAwB,CAAA;IACxB,kEAA8C,CAAA;IAC9C,+DAA2C,CAAA;AAC7C,CAAC,EAXW,gBAAgB,gCAAhB,gBAAgB,QAW3B;AAED,IAAY,WAEX;AAFD,WAAY,WAAW;IACrB,2CAA4B,CAAA;AAC9B,CAAC,EAFW,WAAW,2BAAX,WAAW,QAEtB;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,wBAAS,CAAA;AACX,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,uCAAyB,CAAA;IACzB,mCAAqB,CAAA;IACrB,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,qCAAuB,CAAA;AACzB,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB;AAED,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;AACnB,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB;AAED,IAAY,aAEX;AAFD,WAAY,aAAa;IACvB,mEAAkD,CAAA;AACpD,CAAC,EAFW,aAAa,6BAAb,aAAa,QAExB;AAED,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,sCAAe,CAAA;IACf,0CAAmB,CAAA;IACnB,0CAAmB,CAAA;AACrB,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B;AAED,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,yDAA8B,CAAA;IAC9B,kEAAuC,CAAA;IACvC,yDAA8B,CAAA;IAC9B,8CAAmB,CAAA;AACrB,CAAC,EALW,uBAAuB,uCAAvB,uBAAuB,QAKlC;AAED,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,yCAAsB,CAAA;IACtB,kCAAe,CAAA;IACf,kCAAe,CAAA;AACjB,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,+BAAa,CAAA;AACf,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,IAAY,eAEX;AAFD,WAAY,eAAe;IACzB,yEAAsD,CAAA;AACxD,CAAC,EAFW,eAAe,+BAAf,eAAe,QAE1B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './const';
|
|
2
2
|
export { EventsGateway, type GatewayEvent } from './events/events.gateway';
|
|
3
|
+
export type { ImmichDatabaseDumpConfig } from './moduleConfig';
|
|
3
4
|
export * from './orchestrationApi.module';
|
|
4
5
|
export { LoggingRepository } from './repositories/logging.repository';
|
|
5
6
|
export { ModuleConfigRepository } from './repositories/moduleConfig.repository';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0DAA2E;AAAlE,+GAAA,aAAa,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0DAA2E;AAAlE,+GAAA,aAAa,OAAA;AAEtB,4DAA0C;AAC1C,wEAAsE;AAA7D,uHAAA,iBAAiB,OAAA;AAC1B,kFAAgF;AAAvE,iIAAA,sBAAsB,OAAA;AAC/B,0DAAwD;AAA/C,6GAAA,YAAY,OAAA;AACrB,yCAAwF;AAA/E,2GAAA,cAAc,OAAA"}
|
package/dist/moduleConfig.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Socket } from 'socket.io';
|
|
2
2
|
import { GatewayEvent } from './events/events.gateway';
|
|
3
|
+
import type { ResticProxyThrottle } from './proxy/resticProxy';
|
|
3
4
|
export declare const ModuleConfigProvider: unique symbol;
|
|
4
5
|
export type AuthenticatedUser = {
|
|
5
6
|
user: {
|
|
@@ -7,6 +8,10 @@ export type AuthenticatedUser = {
|
|
|
7
8
|
};
|
|
8
9
|
};
|
|
9
10
|
export type AuthenticateFn = (client: Socket) => Promise<AuthenticatedUser>;
|
|
11
|
+
export type ImmichDatabaseDumpConfig = {
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
keepLastAmount: number;
|
|
14
|
+
};
|
|
10
15
|
export type ImmichIntegration = {
|
|
11
16
|
dataPath: string;
|
|
12
17
|
dataFolders: string[];
|
|
@@ -17,7 +22,10 @@ export type ImmichIntegration = {
|
|
|
17
22
|
exclusionPatterns: string[];
|
|
18
23
|
}[];
|
|
19
24
|
hooks: {
|
|
20
|
-
createDatabaseBackup(): Promise<string>;
|
|
25
|
+
createDatabaseBackup(signal: AbortSignal): Promise<string>;
|
|
26
|
+
cleanupDatabaseBackups(): Promise<void>;
|
|
27
|
+
getImmichDatabaseDumpConfig(): Promise<ImmichDatabaseDumpConfig>;
|
|
28
|
+
configureImmichDatabaseDump(config: Partial<ImmichDatabaseDumpConfig>): Promise<void>;
|
|
21
29
|
enterMaintenanceRollback(repositoryId: string, snapshotId: string, backupFileName?: string): Promise<{
|
|
22
30
|
jwt: string;
|
|
23
31
|
}>;
|
|
@@ -25,12 +33,14 @@ export type ImmichIntegration = {
|
|
|
25
33
|
};
|
|
26
34
|
export type ModuleConfig = {
|
|
27
35
|
statePath: string;
|
|
36
|
+
cachePath?: string;
|
|
28
37
|
wellKnownUrl?: string;
|
|
29
38
|
externalBaseUrl?: string;
|
|
30
39
|
requireWsAuth?: boolean;
|
|
31
40
|
requireSession?: boolean;
|
|
32
41
|
requireLock?: boolean;
|
|
33
42
|
developmentMode?: boolean;
|
|
43
|
+
throttle?: ResticProxyThrottle;
|
|
34
44
|
authenticate?: AuthenticateFn;
|
|
35
45
|
onInternalEvent?: (event: GatewayEvent) => void;
|
|
36
46
|
immichIntegration?: ImmichIntegration;
|
package/dist/moduleConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moduleConfig.js","sourceRoot":"","sources":["../src/moduleConfig.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"moduleConfig.js","sourceRoot":"","sources":["../src/moduleConfig.ts"],"names":[],"mappings":";;;AAIa,QAAA,oBAAoB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { DynamicModule, FactoryProvider, ModuleMetadata } from '@nestjs/common';
|
|
|
2
2
|
import { type SqliteDatabase } from 'kysely';
|
|
3
3
|
import { AuthController } from './controllers/auth.controller';
|
|
4
4
|
import { BackendController } from './controllers/backend.controller';
|
|
5
|
+
import { ConfigController } from './controllers/config.controller';
|
|
5
6
|
import { DevelopmentController } from './controllers/development.controller';
|
|
6
7
|
import { FilesystemController } from './controllers/filesystem.controller';
|
|
7
8
|
import { IntegrationsController } from './controllers/integrations.controller';
|
|
@@ -30,6 +31,7 @@ import { StorageRepository } from './repositories/storage.repository';
|
|
|
30
31
|
import { AuthService } from './services/auth.service';
|
|
31
32
|
import { BackendService } from './services/backend.service';
|
|
32
33
|
import { BootstrapService } from './services/bootstrap.service';
|
|
34
|
+
import { ConfigService } from './services/config.service';
|
|
33
35
|
import { DevelopmentService } from './services/development.service';
|
|
34
36
|
import { FilesystemService } from './services/filesystem.service';
|
|
35
37
|
import { IntegrationsService } from './services/integrations.service';
|
|
@@ -41,9 +43,9 @@ import { ScheduleService } from './services/schedule.service';
|
|
|
41
43
|
import { SessionService } from './services/session.service';
|
|
42
44
|
import { TelemetryService } from './services/telemetry.service';
|
|
43
45
|
import { YuccaService } from './services/yucca.service';
|
|
44
|
-
export declare const controllers: (typeof AuthController | typeof BackendController | typeof DevelopmentController | typeof FilesystemController | typeof IntegrationsController | typeof OnboardingController | typeof RepositoryController | typeof RunHistoryController | typeof RunningTasksController | typeof ScheduleController)[];
|
|
46
|
+
export declare const controllers: (typeof AuthController | typeof BackendController | typeof ConfigController | typeof DevelopmentController | typeof FilesystemController | typeof IntegrationsController | typeof OnboardingController | typeof RepositoryController | typeof RunHistoryController | typeof RunningTasksController | typeof ScheduleController)[];
|
|
45
47
|
export declare const repositories: (typeof ModuleConfigRepository | typeof LoggingRepository | typeof BackendRepository | typeof ConfigRepository | typeof RepositoryRepository | typeof BootstrapRepository | typeof StorageRepository | typeof DatabaseRepository | typeof RunHistoryRepository | typeof RepositoryIntegrationImmichRepository | typeof RunningTasksRepository | typeof ScheduleRepository | typeof RepositoryLocalMetricsRepository | typeof RepositoryPathRepository | typeof ResticRepository | typeof LockRepository)[];
|
|
46
|
-
export declare const services: (typeof SessionService | typeof TelemetryService | typeof AuthService | typeof BackendService | typeof RunHistoryService | typeof RepositoryService | typeof BootstrapService | typeof ScheduleService | typeof DevelopmentService | typeof FilesystemService | typeof IntegrationsService | typeof OnboardingService | typeof RunningTasksService | typeof YuccaService)[];
|
|
48
|
+
export declare const services: (typeof SessionService | typeof TelemetryService | typeof AuthService | typeof BackendService | typeof ConfigService | typeof RunHistoryService | typeof RepositoryService | typeof BootstrapService | typeof ScheduleService | typeof DevelopmentService | typeof FilesystemService | typeof IntegrationsService | typeof OnboardingService | typeof RunningTasksService | typeof YuccaService)[];
|
|
47
49
|
export declare function openStateDatabase(config: Pick<ModuleConfig, 'statePath'>, logger?: LoggingRepository): SqliteDatabase;
|
|
48
50
|
export interface OrchestrationApiModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
49
51
|
inject?: FactoryProvider['inject'];
|
|
@@ -25,6 +25,7 @@ const node_os_1 = require("node:os");
|
|
|
25
25
|
const node_path_1 = require("node:path");
|
|
26
26
|
const auth_controller_1 = require("./controllers/auth.controller");
|
|
27
27
|
const backend_controller_1 = require("./controllers/backend.controller");
|
|
28
|
+
const config_controller_1 = require("./controllers/config.controller");
|
|
28
29
|
const development_controller_1 = require("./controllers/development.controller");
|
|
29
30
|
const filesystem_controller_1 = require("./controllers/filesystem.controller");
|
|
30
31
|
const integrations_controller_1 = require("./controllers/integrations.controller");
|
|
@@ -57,6 +58,7 @@ const storage_repository_1 = require("./repositories/storage.repository");
|
|
|
57
58
|
const auth_service_1 = require("./services/auth.service");
|
|
58
59
|
const backend_service_1 = require("./services/backend.service");
|
|
59
60
|
const bootstrap_service_1 = require("./services/bootstrap.service");
|
|
61
|
+
const config_service_1 = require("./services/config.service");
|
|
60
62
|
const development_service_1 = require("./services/development.service");
|
|
61
63
|
const filesystem_service_1 = require("./services/filesystem.service");
|
|
62
64
|
const integrations_service_1 = require("./services/integrations.service");
|
|
@@ -72,6 +74,7 @@ const wellKnown_1 = require("./wellKnown");
|
|
|
72
74
|
exports.controllers = [
|
|
73
75
|
auth_controller_1.AuthController,
|
|
74
76
|
backend_controller_1.BackendController,
|
|
77
|
+
config_controller_1.ConfigController,
|
|
75
78
|
development_controller_1.DevelopmentController,
|
|
76
79
|
filesystem_controller_1.FilesystemController,
|
|
77
80
|
integrations_controller_1.IntegrationsController,
|
|
@@ -103,6 +106,7 @@ exports.services = [
|
|
|
103
106
|
auth_service_1.AuthService,
|
|
104
107
|
backend_service_1.BackendService,
|
|
105
108
|
bootstrap_service_1.BootstrapService,
|
|
109
|
+
config_service_1.ConfigService,
|
|
106
110
|
development_service_1.DevelopmentService,
|
|
107
111
|
filesystem_service_1.FilesystemService,
|
|
108
112
|
integrations_service_1.IntegrationsService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrationApi.module.js","sourceRoot":"","sources":["../src/orchestrationApi.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"orchestrationApi.module.js","sourceRoot":"","sources":["../src/orchestrationApi.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { ChildProcess } from 'node:child_process';
|
|
2
|
+
export type ResticProxyThrottle = {
|
|
3
|
+
bytesPerSec: number;
|
|
4
|
+
quietHours?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const UNTHROTTLED: ResticProxyThrottle;
|
|
2
7
|
export declare class ResticProxy {
|
|
3
8
|
readonly address: string;
|
|
4
9
|
readonly port: number;
|
|
5
10
|
readonly process: ChildProcess;
|
|
11
|
+
private readonly control;
|
|
6
12
|
private constructor();
|
|
7
13
|
static isAvailable(): Promise<boolean>;
|
|
8
|
-
static create(apiUrl: string): Promise<ResticProxy>;
|
|
14
|
+
static create(apiUrl: string, throttle: ResticProxyThrottle): Promise<ResticProxy>;
|
|
9
15
|
createUrl(repositoryId: string, accessToken: string): string;
|
|
16
|
+
throttle({ bytesPerSec, quietHours }: ResticProxyThrottle): void;
|
|
10
17
|
stop(): Promise<void>;
|
|
11
18
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ResticProxy = void 0;
|
|
3
|
+
exports.ResticProxy = exports.UNTHROTTLED = void 0;
|
|
4
4
|
const node_child_process_1 = require("node:child_process");
|
|
5
5
|
const node_events_1 = require("node:events");
|
|
6
6
|
const promises_1 = require("node:fs/promises");
|
|
@@ -9,14 +9,17 @@ const node_readline_1 = require("node:readline");
|
|
|
9
9
|
const RESTIC_PROXY_BIN = 'restic-proxy';
|
|
10
10
|
const RESTIC_PROXY_READY_FD = 3;
|
|
11
11
|
const RESTIC_PROXY_READY_TIMEOUT_MS = 10_000;
|
|
12
|
+
exports.UNTHROTTLED = { bytesPerSec: 0 };
|
|
12
13
|
class ResticProxy {
|
|
13
14
|
address;
|
|
14
15
|
port;
|
|
15
16
|
process;
|
|
16
|
-
|
|
17
|
+
control;
|
|
18
|
+
constructor(address, port, process, control) {
|
|
17
19
|
this.address = address;
|
|
18
20
|
this.port = port;
|
|
19
21
|
this.process = process;
|
|
22
|
+
this.control = control;
|
|
20
23
|
}
|
|
21
24
|
static async isAvailable() {
|
|
22
25
|
for (const directory of (process.env.PATH ?? '').split(node_path_1.delimiter)) {
|
|
@@ -30,19 +33,21 @@ class ResticProxy {
|
|
|
30
33
|
}
|
|
31
34
|
return false;
|
|
32
35
|
}
|
|
33
|
-
static async create(apiUrl) {
|
|
36
|
+
static async create(apiUrl, throttle) {
|
|
34
37
|
const child = (0, node_child_process_1.spawn)(RESTIC_PROXY_BIN, {
|
|
35
38
|
env: {
|
|
36
39
|
...process.env,
|
|
37
40
|
RESTIC_PROXY_API_URL: apiUrl,
|
|
38
41
|
RESTIC_PROXY_PORT: '0',
|
|
39
42
|
RESTIC_PROXY_READY_FD: String(RESTIC_PROXY_READY_FD),
|
|
43
|
+
RESTIC_PROXY_THROTTLE_BYTES_PER_SEC: String(throttle.bytesPerSec),
|
|
44
|
+
RESTIC_PROXY_THROTTLE_QUIET_HOURS: throttle.quietHours ?? '',
|
|
40
45
|
},
|
|
41
46
|
stdio: ['ignore', 'inherit', 'inherit', 'pipe'],
|
|
42
47
|
});
|
|
43
48
|
try {
|
|
44
49
|
const { address, port } = await readReady(child);
|
|
45
|
-
return new ResticProxy(address, port, child);
|
|
50
|
+
return new ResticProxy(address, port, child, child.stdio[RESTIC_PROXY_READY_FD]);
|
|
46
51
|
}
|
|
47
52
|
catch (error) {
|
|
48
53
|
child.kill();
|
|
@@ -52,6 +57,10 @@ class ResticProxy {
|
|
|
52
57
|
createUrl(repositoryId, accessToken) {
|
|
53
58
|
return `rest:http://${repositoryId}:${accessToken}@${this.address}`;
|
|
54
59
|
}
|
|
60
|
+
throttle({ bytesPerSec, quietHours }) {
|
|
61
|
+
const control = { type: 'throttle', throttle: { bytesPerSec, quietHours: quietHours ?? '' } };
|
|
62
|
+
this.control.write(`${JSON.stringify(control)}\n`);
|
|
63
|
+
}
|
|
55
64
|
async stop() {
|
|
56
65
|
if (this.process.exitCode !== null || this.process.signalCode !== null) {
|
|
57
66
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resticProxy.js","sourceRoot":"","sources":["../../src/proxy/resticProxy.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AACzD,6CAAmC;AACnC,+CAAqD;AACrD,yCAA4C;AAC5C,iDAA2D;AAG3D,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,6BAA6B,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"resticProxy.js","sourceRoot":"","sources":["../../src/proxy/resticProxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
import { OnApplicationShutdown } from '@nestjs/common';
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { OnApplicationBootstrap, OnApplicationShutdown } from '@nestjs/common';
|
|
2
|
+
import type { ModuleConfig } from '../moduleConfig';
|
|
3
|
+
import { ModuleConfigRepository } from '../repositories/moduleConfig.repository';
|
|
4
|
+
import { ResticProxy, ResticProxyThrottle } from './resticProxy';
|
|
5
|
+
export declare class ResticProxyPool implements OnApplicationBootstrap, OnApplicationShutdown {
|
|
6
|
+
private readonly moduleConfig?;
|
|
4
7
|
static pool: Map<string, Promise<ResticProxy>>;
|
|
5
8
|
static available: Promise<boolean> | undefined;
|
|
9
|
+
static throttle: ResticProxyThrottle;
|
|
10
|
+
constructor(moduleConfig?: ModuleConfigRepository | undefined);
|
|
11
|
+
onApplicationBootstrap(): void;
|
|
6
12
|
isAvailable(): Promise<boolean>;
|
|
7
13
|
getProxy(apiUrl: string): Promise<ResticProxy>;
|
|
14
|
+
onModuleConfigUpdate({ throttle }: ModuleConfig): Promise<void>;
|
|
8
15
|
onApplicationShutdown(): Promise<void>;
|
|
16
|
+
private running;
|
|
9
17
|
}
|
|
@@ -5,15 +5,29 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
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
|
+
};
|
|
8
11
|
var ResticProxyPool_1;
|
|
9
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
13
|
exports.ResticProxyPool = void 0;
|
|
11
14
|
const common_1 = require("@nestjs/common");
|
|
15
|
+
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
16
|
+
const enum_1 = require("../enum");
|
|
17
|
+
const moduleConfig_repository_1 = require("../repositories/moduleConfig.repository");
|
|
12
18
|
const resticProxy_1 = require("./resticProxy");
|
|
13
19
|
let ResticProxyPool = class ResticProxyPool {
|
|
14
20
|
static { ResticProxyPool_1 = this; }
|
|
21
|
+
moduleConfig;
|
|
15
22
|
static pool = new Map();
|
|
16
23
|
static available;
|
|
24
|
+
static throttle = resticProxy_1.UNTHROTTLED;
|
|
25
|
+
constructor(moduleConfig) {
|
|
26
|
+
this.moduleConfig = moduleConfig;
|
|
27
|
+
}
|
|
28
|
+
onApplicationBootstrap() {
|
|
29
|
+
ResticProxyPool_1.throttle = this.moduleConfig?.get().throttle ?? resticProxy_1.UNTHROTTLED;
|
|
30
|
+
}
|
|
17
31
|
isAvailable() {
|
|
18
32
|
ResticProxyPool_1.available ??= resticProxy_1.ResticProxy.isAvailable();
|
|
19
33
|
return ResticProxyPool_1.available;
|
|
@@ -23,7 +37,7 @@ let ResticProxyPool = class ResticProxyPool {
|
|
|
23
37
|
if (existing) {
|
|
24
38
|
return existing;
|
|
25
39
|
}
|
|
26
|
-
const pending = resticProxy_1.ResticProxy.create(apiUrl).then((proxy) => {
|
|
40
|
+
const pending = resticProxy_1.ResticProxy.create(apiUrl, ResticProxyPool_1.throttle).then((proxy) => {
|
|
27
41
|
proxy.process.once('exit', () => ResticProxyPool_1.pool.delete(apiUrl));
|
|
28
42
|
return proxy;
|
|
29
43
|
});
|
|
@@ -31,14 +45,31 @@ let ResticProxyPool = class ResticProxyPool {
|
|
|
31
45
|
ResticProxyPool_1.pool.set(apiUrl, pending);
|
|
32
46
|
return pending;
|
|
33
47
|
}
|
|
48
|
+
async onModuleConfigUpdate({ throttle }) {
|
|
49
|
+
ResticProxyPool_1.throttle = throttle ?? resticProxy_1.UNTHROTTLED;
|
|
50
|
+
const running = await this.running();
|
|
51
|
+
for (const proxy of running) {
|
|
52
|
+
proxy.throttle(ResticProxyPool_1.throttle);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
34
55
|
async onApplicationShutdown() {
|
|
35
|
-
const
|
|
36
|
-
const running = outcomes.filter((outcome) => outcome.status === 'fulfilled').map((outcome) => outcome.value);
|
|
56
|
+
const running = await this.running();
|
|
37
57
|
await Promise.all(running.map((proxy) => proxy.stop()));
|
|
38
58
|
}
|
|
59
|
+
async running() {
|
|
60
|
+
const outcomes = await Promise.allSettled(ResticProxyPool_1.pool.values());
|
|
61
|
+
return outcomes.filter((outcome) => outcome.status === 'fulfilled').map((outcome) => outcome.value);
|
|
62
|
+
}
|
|
39
63
|
};
|
|
40
64
|
exports.ResticProxyPool = ResticProxyPool;
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, event_emitter_1.OnEvent)(enum_1.InternalEvent.ModuleConfigUpdated),
|
|
67
|
+
__metadata("design:type", Function),
|
|
68
|
+
__metadata("design:paramtypes", [Object]),
|
|
69
|
+
__metadata("design:returntype", Promise)
|
|
70
|
+
], ResticProxyPool.prototype, "onModuleConfigUpdate", null);
|
|
41
71
|
exports.ResticProxyPool = ResticProxyPool = ResticProxyPool_1 = __decorate([
|
|
42
|
-
(0, common_1.Injectable)()
|
|
72
|
+
(0, common_1.Injectable)(),
|
|
73
|
+
__metadata("design:paramtypes", [moduleConfig_repository_1.ModuleConfigRepository])
|
|
43
74
|
], ResticProxyPool);
|
|
44
75
|
//# sourceMappingURL=resticProxyPool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resticProxyPool.js","sourceRoot":"","sources":["../../src/proxy/resticProxyPool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resticProxyPool.js","sourceRoot":"","sources":["../../src/proxy/resticProxyPool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA2F;AAC3F,yDAAgD;AAChD,kCAAwC;AAExC,qFAAiF;AACjF,+CAA8E;AAGvE,IAAM,eAAe,GAArB,MAAM,eAAe;;IAKG;IAJ7B,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,EAAgC,CAAC;IACtD,MAAM,CAAC,SAAS,CAA+B;IAC/C,MAAM,CAAC,QAAQ,GAAwB,yBAAW,CAAC;IAEnD,YAA6B,YAAqC;QAArC,iBAAY,GAAZ,YAAY,CAAyB;IAAG,CAAC;IAEtE,sBAAsB;QACpB,iBAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,yBAAW,CAAC;IAC9E,CAAC;IAED,WAAW;QACT,iBAAe,CAAC,SAAS,KAAK,yBAAW,CAAC,WAAW,EAAE,CAAC;QACxD,OAAO,iBAAe,CAAC,SAAS,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,MAAM,QAAQ,GAAG,iBAAe,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,yBAAW,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAClF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,iBAAe,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,iBAAe,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAEzD,iBAAe,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;IAGK,AAAN,KAAK,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAgB;QACnD,iBAAe,CAAC,QAAQ,GAAG,QAAQ,IAAI,yBAAW,CAAC;QAEnD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,KAAK,CAAC,QAAQ,CAAC,iBAAe,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,iBAAe,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtG,CAAC;;AAnDU,0CAAe;AAkCpB;IADL,IAAA,uBAAO,EAAC,oBAAa,CAAC,mBAAmB,CAAC;;;;2DAQ1C;0BAzCU,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAMiC,gDAAsB;GALvD,eAAe,CAoD3B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Kysely } from 'kysely';
|
|
2
2
|
import { type ModuleConfig } from '../moduleConfig';
|
|
3
|
+
import type { ResticProxyThrottle } from '../proxy/resticProxy';
|
|
3
4
|
import { DB } from '../schema';
|
|
4
5
|
import { LoggingRepository } from './logging.repository';
|
|
5
6
|
export type ResticPlacement = {
|
|
@@ -20,6 +21,7 @@ export declare class ConfigRepository {
|
|
|
20
21
|
private assertStateIsEmpty;
|
|
21
22
|
private recordStatePath;
|
|
22
23
|
private set;
|
|
24
|
+
private setAll;
|
|
23
25
|
private get;
|
|
24
26
|
private getOptional;
|
|
25
27
|
private has;
|
|
@@ -33,8 +35,12 @@ export declare class ConfigRepository {
|
|
|
33
35
|
enableTelemetry(): Promise<void>;
|
|
34
36
|
hasSkippedExtraConfig(): Promise<boolean>;
|
|
35
37
|
skipExtraConfig(): Promise<void>;
|
|
38
|
+
hasIgnoredImmichDatabaseDumpWarning(): Promise<boolean>;
|
|
39
|
+
ignoreImmichDatabaseDumpWarning(): Promise<void>;
|
|
36
40
|
hasSessionSecret(): Promise<boolean>;
|
|
37
41
|
getSessionSecret(): Promise<Buffer>;
|
|
42
|
+
getThrottle(): Promise<ResticProxyThrottle | undefined>;
|
|
43
|
+
setThrottle({ bytesPerSec, quietHours }: ResticProxyThrottle): Promise<void>;
|
|
38
44
|
getResticOptions(placement: ResticPlacement): Promise<{
|
|
39
45
|
connections: number;
|
|
40
46
|
packSizeMib: number | undefined;
|
|
@@ -82,14 +82,14 @@ let ConfigRepository = ConfigRepository_1 = class ConfigRepository {
|
|
|
82
82
|
await this.set(enum_1.ConfigurationKey.StatePath, statePath);
|
|
83
83
|
}
|
|
84
84
|
async set(key, value) {
|
|
85
|
+
await this.setAll({ [key]: value });
|
|
86
|
+
}
|
|
87
|
+
async setAll(values) {
|
|
85
88
|
await this.db
|
|
86
89
|
.insertInto('config')
|
|
87
|
-
.values({
|
|
88
|
-
key
|
|
89
|
-
|
|
90
|
-
})
|
|
91
|
-
.onConflict((oc) => oc.doUpdateSet({ value }))
|
|
92
|
-
.executeTakeFirstOrThrow();
|
|
90
|
+
.values(Object.entries(values).map(([key, value]) => ({ key, value })))
|
|
91
|
+
.onConflict((oc) => oc.column('key').doUpdateSet((eb) => ({ value: eb.ref('excluded.value') })))
|
|
92
|
+
.execute();
|
|
93
93
|
}
|
|
94
94
|
async get(key) {
|
|
95
95
|
const { value } = await this.db
|
|
@@ -149,12 +149,32 @@ let ConfigRepository = ConfigRepository_1 = class ConfigRepository {
|
|
|
149
149
|
async skipExtraConfig() {
|
|
150
150
|
return this.set(enum_1.ConfigurationKey.SkippedOnboardingExtraConfig, '1');
|
|
151
151
|
}
|
|
152
|
+
async hasIgnoredImmichDatabaseDumpWarning() {
|
|
153
|
+
return this.has(enum_1.ConfigurationKey.IgnoredImmichDatabaseDumpWarning);
|
|
154
|
+
}
|
|
155
|
+
async ignoreImmichDatabaseDumpWarning() {
|
|
156
|
+
return this.set(enum_1.ConfigurationKey.IgnoredImmichDatabaseDumpWarning, '1');
|
|
157
|
+
}
|
|
152
158
|
async hasSessionSecret() {
|
|
153
159
|
return this.has(enum_1.ConfigurationKey.SessionSecret);
|
|
154
160
|
}
|
|
155
161
|
async getSessionSecret() {
|
|
156
162
|
return Buffer.from(await this.get(enum_1.ConfigurationKey.SessionSecret), 'hex');
|
|
157
163
|
}
|
|
164
|
+
async getThrottle() {
|
|
165
|
+
const bytesPerSec = await this.getOptional(enum_1.ConfigurationKey.ThrottleBytesPerSec);
|
|
166
|
+
if (bytesPerSec === undefined) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
const quietHours = await this.getOptional(enum_1.ConfigurationKey.ThrottleQuietHours);
|
|
170
|
+
return { bytesPerSec: Number.parseInt(bytesPerSec), quietHours: quietHours || undefined };
|
|
171
|
+
}
|
|
172
|
+
async setThrottle({ bytesPerSec, quietHours }) {
|
|
173
|
+
await this.setAll({
|
|
174
|
+
[enum_1.ConfigurationKey.ThrottleBytesPerSec]: String(bytesPerSec),
|
|
175
|
+
[enum_1.ConfigurationKey.ThrottleQuietHours]: quietHours ?? '',
|
|
176
|
+
});
|
|
177
|
+
}
|
|
158
178
|
async getResticOptions(placement) {
|
|
159
179
|
const siteCode = placement.siteCode ?? undefined;
|
|
160
180
|
const clusterCode = placement.storageClusterCode ?? undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.repository.js","sourceRoot":"","sources":["../../src/repositories/config.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,mCAAgC;AAChC,iDAA6C;AAC7C,6CAA0C;AAC1C,qCAA+C;AAC/C,yCAAoC;AACpC,kCAA2C;AAC3C,kDAA0E;
|
|
1
|
+
{"version":3,"file":"config.repository.js","sourceRoot":"","sources":["../../src/repositories/config.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.ResticRepository = void 0;
|
|
13
13
|
const restic_wrapper_1 = require("@futo-org/restic-wrapper");
|
|
14
14
|
const common_1 = require("@nestjs/common");
|
|
15
|
-
const node_path_1 = require("node:path");
|
|
16
15
|
const restic_1 = require("../utils/restic");
|
|
17
16
|
const config_repository_1 = require("./config.repository");
|
|
18
17
|
const moduleConfig_repository_1 = require("./moduleConfig.repository");
|
|
@@ -24,7 +23,7 @@ let ResticRepository = class ResticRepository {
|
|
|
24
23
|
this.moduleConfig = moduleConfig;
|
|
25
24
|
}
|
|
26
25
|
get cacheDir() {
|
|
27
|
-
return
|
|
26
|
+
return this.moduleConfig.get().cachePath;
|
|
28
27
|
}
|
|
29
28
|
async init(repository, key, placement) {
|
|
30
29
|
const { connections } = await this.config.getResticOptions(placement);
|
|
@@ -46,7 +45,7 @@ let ResticRepository = class ResticRepository {
|
|
|
46
45
|
.password(Buffer.from(key).toString('hex'))
|
|
47
46
|
.tag(...tags)
|
|
48
47
|
.addFile(...paths)
|
|
49
|
-
.
|
|
48
|
+
.excludeCaches()
|
|
50
49
|
.signal(signal)
|
|
51
50
|
.on('event', write)
|
|
52
51
|
.run();
|