@futo-org/backups-orchestrator-api 0.12.0 → 0.13.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/enum.d.ts +2 -1
- package/dist/enum.js +1 -0
- package/dist/enum.js.map +1 -1
- package/dist/repositories/config.repository.d.ts +2 -0
- package/dist/repositories/config.repository.js +13 -0
- package/dist/repositories/config.repository.js.map +1 -1
- package/dist/repositories/restic.repository.d.ts +3 -0
- package/dist/repositories/restic.repository.js +49 -8
- package/dist/repositories/restic.repository.js.map +1 -1
- package/package.json +2 -2
package/dist/enum.d.ts
CHANGED
|
@@ -10,7 +10,8 @@ export declare enum ConfigurationKey {
|
|
|
10
10
|
EncryptionKey = "encryption-key",
|
|
11
11
|
OnboardedKey = "onboarded-key",
|
|
12
12
|
Telemetry = "telemetry",
|
|
13
|
-
SkippedOnboardingExtraConfig = "skipped-onboarding-extra-config"
|
|
13
|
+
SkippedOnboardingExtraConfig = "skipped-onboarding-extra-config",
|
|
14
|
+
ResticOptionRestConnections = "restic-o-rest-connections"
|
|
14
15
|
}
|
|
15
16
|
export declare enum BackendType {
|
|
16
17
|
Yucca = "yucca",
|
package/dist/enum.js
CHANGED
|
@@ -16,6 +16,7 @@ var ConfigurationKey;
|
|
|
16
16
|
ConfigurationKey["OnboardedKey"] = "onboarded-key";
|
|
17
17
|
ConfigurationKey["Telemetry"] = "telemetry";
|
|
18
18
|
ConfigurationKey["SkippedOnboardingExtraConfig"] = "skipped-onboarding-extra-config";
|
|
19
|
+
ConfigurationKey["ResticOptionRestConnections"] = "restic-o-rest-connections";
|
|
19
20
|
})(ConfigurationKey || (exports.ConfigurationKey = ConfigurationKey = {}));
|
|
20
21
|
var BackendType;
|
|
21
22
|
(function (BackendType) {
|
package/dist/enum.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.js","sourceRoot":"","sources":["../src/enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,kCAAoB,CAAA;IACpB,0CAA4B,CAAA;IAC5B,yDAA2C,CAAA;IAC3C,qDAAuC,CAAA;IACvC,iDAAmC,CAAA;IACnC,gEAAkD,CAAA;AACpD,CAAC,EAPW,UAAU,0BAAV,UAAU,QAOrB;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"enum.js","sourceRoot":"","sources":["../src/enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,kCAAoB,CAAA;IACpB,0CAA4B,CAAA;IAC5B,yDAA2C,CAAA;IAC3C,qDAAuC,CAAA;IACvC,iDAAmC,CAAA;IACnC,gEAAkD,CAAA;AACpD,CAAC,EAPW,UAAU,0BAAV,UAAU,QAOrB;AAED,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,oDAAgC,CAAA;IAChC,kDAA8B,CAAA;IAC9B,2CAAuB,CAAA;IACvB,oFAAgE,CAAA;IAChE,6EAAyD,CAAA;AAC3D,CAAC,EANW,gBAAgB,gCAAhB,gBAAgB,QAM3B;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,wBAAS,CAAA;AACX,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,uCAAyB,CAAA;IACzB,mCAAqB,CAAA;IACrB,+BAAiB,CAAA;AACnB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;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,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"}
|
|
@@ -6,6 +6,7 @@ export declare class ConfigRepository {
|
|
|
6
6
|
bootstrap(): Promise<void>;
|
|
7
7
|
private set;
|
|
8
8
|
private get;
|
|
9
|
+
private getOptional;
|
|
9
10
|
private has;
|
|
10
11
|
hasEncryptionKey(): Promise<boolean>;
|
|
11
12
|
getMasterEncryptionKey(): Promise<string>;
|
|
@@ -17,4 +18,5 @@ export declare class ConfigRepository {
|
|
|
17
18
|
enableTelemetry(): Promise<void>;
|
|
18
19
|
hasSkippedExtraConfig(): Promise<boolean>;
|
|
19
20
|
skipExtraConfig(): Promise<void>;
|
|
21
|
+
getResticOptionRestConnections(): Promise<number>;
|
|
20
22
|
}
|
|
@@ -17,6 +17,7 @@ const common_1 = require("@nestjs/common");
|
|
|
17
17
|
const kysely_1 = require("kysely");
|
|
18
18
|
const nestjs_kysely_1 = require("nestjs-kysely");
|
|
19
19
|
const node_crypto_1 = require("node:crypto");
|
|
20
|
+
const node_os_1 = require("node:os");
|
|
20
21
|
const enum_1 = require("../enum");
|
|
21
22
|
let ConfigRepository = class ConfigRepository {
|
|
22
23
|
db;
|
|
@@ -47,6 +48,14 @@ let ConfigRepository = class ConfigRepository {
|
|
|
47
48
|
.executeTakeFirstOrThrow();
|
|
48
49
|
return value;
|
|
49
50
|
}
|
|
51
|
+
async getOptional(key) {
|
|
52
|
+
const row = await this.db
|
|
53
|
+
.selectFrom('config')
|
|
54
|
+
.where('config.key', '=', key)
|
|
55
|
+
.select('config.value')
|
|
56
|
+
.executeTakeFirst();
|
|
57
|
+
return row?.value;
|
|
58
|
+
}
|
|
50
59
|
async has(key) {
|
|
51
60
|
const results = await this.db.selectFrom('config').where('config.key', '=', key).selectAll().execute();
|
|
52
61
|
return results.length > 0;
|
|
@@ -89,6 +98,10 @@ let ConfigRepository = class ConfigRepository {
|
|
|
89
98
|
async skipExtraConfig() {
|
|
90
99
|
return this.set(enum_1.ConfigurationKey.SkippedOnboardingExtraConfig, '1');
|
|
91
100
|
}
|
|
101
|
+
async getResticOptionRestConnections() {
|
|
102
|
+
const concurrency = await this.getOptional(enum_1.ConfigurationKey.ResticOptionRestConnections);
|
|
103
|
+
return concurrency ? Number.parseInt(concurrency) : (0, node_os_1.availableParallelism)();
|
|
104
|
+
}
|
|
92
105
|
};
|
|
93
106
|
exports.ConfigRepository = ConfigRepository;
|
|
94
107
|
exports.ConfigRepository = ConfigRepository = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.repository.js","sourceRoot":"","sources":["../../src/repositories/config.repository.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.repository.js","sourceRoot":"","sources":["../../src/repositories/config.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { Writable } from 'node:stream';
|
|
2
2
|
import { RepositorySnapshotRestoreRequestDto } from '../dto/repository.dto';
|
|
3
3
|
import { RetentionPolicy } from '../utils/restic';
|
|
4
|
+
import { ConfigRepository } from './config.repository';
|
|
4
5
|
export declare class ResticRepository {
|
|
6
|
+
private readonly config;
|
|
7
|
+
constructor(config: ConfigRepository);
|
|
5
8
|
init(repository: string, key: Uint8Array): Promise<void>;
|
|
6
9
|
backup(repository: string, key: Uint8Array, paths: string[], logStream?: Writable, signal?: AbortSignal): Promise<{
|
|
7
10
|
message_type: "summary";
|
|
@@ -5,18 +5,31 @@ 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
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
12
|
exports.ResticRepository = void 0;
|
|
10
13
|
const restic_wrapper_1 = require("@futo-org/restic-wrapper");
|
|
11
14
|
const common_1 = require("@nestjs/common");
|
|
12
15
|
const restic_1 = require("../utils/restic");
|
|
16
|
+
const config_repository_1 = require("./config.repository");
|
|
13
17
|
let ResticRepository = class ResticRepository {
|
|
18
|
+
config;
|
|
19
|
+
constructor(config) {
|
|
20
|
+
this.config = config;
|
|
21
|
+
}
|
|
14
22
|
async init(repository, key) {
|
|
15
|
-
await (0, restic_wrapper_1.init)()
|
|
23
|
+
await (0, restic_wrapper_1.init)()
|
|
24
|
+
.option(`rest.connections=${await this.config.getResticOptionRestConnections()}`)
|
|
25
|
+
.repository(repository)
|
|
26
|
+
.password(Buffer.from(key).toString('hex'))
|
|
27
|
+
.run();
|
|
16
28
|
}
|
|
17
29
|
async backup(repository, key, paths, logStream, signal) {
|
|
18
30
|
const write = (0, restic_1.createSampledLogWriter)(logStream);
|
|
19
31
|
return await (0, restic_wrapper_1.backup)()
|
|
32
|
+
.option(`rest.connections=${await this.config.getResticOptionRestConnections()}`)
|
|
20
33
|
.repository(repository)
|
|
21
34
|
.password(Buffer.from(key).toString('hex'))
|
|
22
35
|
.addFile(...paths)
|
|
@@ -27,6 +40,7 @@ let ResticRepository = class ResticRepository {
|
|
|
27
40
|
async restore(repository, key, snapshotId, { include, target }, logStream, signal) {
|
|
28
41
|
const write = (0, restic_1.createSampledLogWriter)(logStream);
|
|
29
42
|
let command = (0, restic_wrapper_1.restore)()
|
|
43
|
+
.option(`rest.connections=${await this.config.getResticOptionRestConnections()}`)
|
|
30
44
|
.repository(repository)
|
|
31
45
|
.password(Buffer.from(key).toString('hex'))
|
|
32
46
|
.snapshot(snapshotId)
|
|
@@ -40,6 +54,7 @@ let ResticRepository = class ResticRepository {
|
|
|
40
54
|
}
|
|
41
55
|
async ls(repository, key, snapshotId, path) {
|
|
42
56
|
return await (0, restic_wrapper_1.ls)()
|
|
57
|
+
.option(`rest.connections=${await this.config.getResticOptionRestConnections()}`)
|
|
43
58
|
.repository(repository)
|
|
44
59
|
.password(Buffer.from(key).toString('hex'))
|
|
45
60
|
.snapshot(snapshotId)
|
|
@@ -47,13 +62,23 @@ let ResticRepository = class ResticRepository {
|
|
|
47
62
|
.run();
|
|
48
63
|
}
|
|
49
64
|
async stats(repository, key) {
|
|
50
|
-
return await (0, restic_wrapper_1.stats)()
|
|
65
|
+
return await (0, restic_wrapper_1.stats)()
|
|
66
|
+
.option(`rest.connections=${await this.config.getResticOptionRestConnections()}`)
|
|
67
|
+
.repository(repository)
|
|
68
|
+
.password(Buffer.from(key).toString('hex'))
|
|
69
|
+
.modeRawData()
|
|
70
|
+
.run();
|
|
51
71
|
}
|
|
52
72
|
async snapshots(repository, key) {
|
|
53
|
-
return await (0, restic_wrapper_1.snapshots)()
|
|
73
|
+
return await (0, restic_wrapper_1.snapshots)()
|
|
74
|
+
.option(`rest.connections=${await this.config.getResticOptionRestConnections()}`)
|
|
75
|
+
.repository(repository)
|
|
76
|
+
.password(Buffer.from(key).toString('hex'))
|
|
77
|
+
.run();
|
|
54
78
|
}
|
|
55
79
|
async forget(repository, key, snapshotId, prune = true, signal) {
|
|
56
80
|
return await (0, restic_wrapper_1.forget)()
|
|
81
|
+
.option(`rest.connections=${await this.config.getResticOptionRestConnections()}`)
|
|
57
82
|
.repository(repository)
|
|
58
83
|
.password(Buffer.from(key).toString('hex'))
|
|
59
84
|
.snapshot(snapshotId)
|
|
@@ -63,6 +88,7 @@ let ResticRepository = class ResticRepository {
|
|
|
63
88
|
}
|
|
64
89
|
async forgetByPolicy(repository, key, policy, signal) {
|
|
65
90
|
return await (0, restic_wrapper_1.forget)()
|
|
91
|
+
.option(`rest.connections=${await this.config.getResticOptionRestConnections()}`)
|
|
66
92
|
.repository(repository)
|
|
67
93
|
.password(Buffer.from(key).toString('hex'))
|
|
68
94
|
.signal(signal)
|
|
@@ -75,18 +101,33 @@ let ResticRepository = class ResticRepository {
|
|
|
75
101
|
.keepWithinYearly(policy.keepWithinYearly)
|
|
76
102
|
.run();
|
|
77
103
|
}
|
|
78
|
-
prune(repository, key, signal) {
|
|
79
|
-
return (0, restic_wrapper_1.prune)()
|
|
104
|
+
async prune(repository, key, signal) {
|
|
105
|
+
return await (0, restic_wrapper_1.prune)()
|
|
106
|
+
.option(`rest.connections=${await this.config.getResticOptionRestConnections()}`)
|
|
107
|
+
.repository(repository)
|
|
108
|
+
.password(Buffer.from(key).toString('hex'))
|
|
109
|
+
.signal(signal)
|
|
110
|
+
.run();
|
|
80
111
|
}
|
|
81
112
|
async keyList(repository, key) {
|
|
82
|
-
return await (0, restic_wrapper_1.keyList)()
|
|
113
|
+
return await (0, restic_wrapper_1.keyList)()
|
|
114
|
+
.option(`rest.connections=${await this.config.getResticOptionRestConnections()}`)
|
|
115
|
+
.repository(repository)
|
|
116
|
+
.password(Buffer.from(key).toString('hex'))
|
|
117
|
+
.run();
|
|
83
118
|
}
|
|
84
119
|
async unlockAll(repository, key) {
|
|
85
|
-
return await (0, restic_wrapper_1.unlock)()
|
|
120
|
+
return await (0, restic_wrapper_1.unlock)()
|
|
121
|
+
.option(`rest.connections=${await this.config.getResticOptionRestConnections()}`)
|
|
122
|
+
.removeAll()
|
|
123
|
+
.repository(repository)
|
|
124
|
+
.password(Buffer.from(key).toString('hex'))
|
|
125
|
+
.run();
|
|
86
126
|
}
|
|
87
127
|
};
|
|
88
128
|
exports.ResticRepository = ResticRepository;
|
|
89
129
|
exports.ResticRepository = ResticRepository = __decorate([
|
|
90
|
-
(0, common_1.Injectable)()
|
|
130
|
+
(0, common_1.Injectable)(),
|
|
131
|
+
__metadata("design:paramtypes", [config_repository_1.ConfigRepository])
|
|
91
132
|
], ResticRepository);
|
|
92
133
|
//# sourceMappingURL=restic.repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restic.repository.js","sourceRoot":"","sources":["../../src/repositories/restic.repository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"restic.repository.js","sourceRoot":"","sources":["../../src/repositories/restic.repository.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futo-org/backups-orchestrator-api",
|
|
3
3
|
"repository": "https://github.com/immich-app/yucca",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.13.1",
|
|
5
5
|
"description": "Backups orchestrator (API)",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"rxjs": "^7.8.2",
|
|
32
32
|
"socket.io": "^4.8.3",
|
|
33
33
|
"tail": "^2.2.6",
|
|
34
|
-
"@futo-org/backups-api-client": "^0.
|
|
34
|
+
"@futo-org/backups-api-client": "^0.13.1"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@nestjs/cli": "^11.0.14",
|