@futo-org/backups-orchestrator-api 0.1.72 → 0.3.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.
Files changed (40) hide show
  1. package/dist/backends/backend.d.ts +1 -1
  2. package/dist/controllers/repository.controller.d.ts +3 -2
  3. package/dist/controllers/repository.controller.js +17 -3
  4. package/dist/controllers/repository.controller.js.map +1 -1
  5. package/dist/dto/backend.dto.d.ts +1 -0
  6. package/dist/dto/backend.dto.js +5 -0
  7. package/dist/dto/backend.dto.js.map +1 -1
  8. package/dist/dto/repository.dto.d.ts +9 -0
  9. package/dist/dto/repository.dto.js +33 -1
  10. package/dist/dto/repository.dto.js.map +1 -1
  11. package/dist/orchestrationApi.module.d.ts +37 -0
  12. package/dist/orchestrationApi.module.js +6 -6
  13. package/dist/orchestrationApi.module.js.map +1 -1
  14. package/dist/repositories/repository.repository.d.ts +2 -1
  15. package/dist/repositories/repository.repository.js +9 -9
  16. package/dist/repositories/repository.repository.js.map +1 -1
  17. package/dist/repositories/runHistory.repository.d.ts +2 -2
  18. package/dist/repositories/schedule.repository.d.ts +2 -2
  19. package/dist/schema/migrations/20260603120000-AddRepositoryRemoteId.js +13 -0
  20. package/dist/schema/migrations/20260603120000-AddRepositoryRemoteId.js.map +1 -0
  21. package/dist/schema/tables/repository.table.d.ts +1 -0
  22. package/dist/schema/tables/repository.table.js +1 -0
  23. package/dist/schema/tables/repository.table.js.map +1 -1
  24. package/dist/services/auth.service.js +1 -0
  25. package/dist/services/auth.service.js.map +1 -1
  26. package/dist/services/backend.service.js +6 -0
  27. package/dist/services/backend.service.js.map +1 -1
  28. package/dist/services/repository.service.d.ts +3 -2
  29. package/dist/services/repository.service.js +99 -29
  30. package/dist/services/repository.service.js.map +1 -1
  31. package/dist/services/schedule.service.d.ts +1 -0
  32. package/dist/services/schedule.service.js +12 -0
  33. package/dist/services/schedule.service.js.map +1 -1
  34. package/package.json +5 -3
  35. package/dist/schema/migrations/20260512120000-AddRepositoryRetentionPreset.js +0 -18
  36. package/dist/schema/migrations/20260512120000-AddRepositoryRetentionPreset.js.map +0 -1
  37. package/dist/services/database.service.d.ts +0 -11
  38. package/dist/services/database.service.js +0 -39
  39. package/dist/services/database.service.js.map +0 -1
  40. /package/dist/schema/migrations/{20260512120000-AddRepositoryRetentionPreset.d.ts → 20260603120000-AddRepositoryRemoteId.d.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { FilesystemListingRequestDto, FilesystemListingResponseDto } from '../dto/filesystem.dto';
3
- import { ListSnapshotsResponseDto, RepositoryCheckImportResponseDto, RepositoryCreateRequestDto, RepositoryCreateResponseDto, RepositoryInspectResponseDto, RepositoryListResponseDto, RepositorySnapshotRestoreFromPointRequestDto, RepositorySnapshotRestoreRequestDto, RepositoryUpdateRequestDto, RepositoryUpdateResponseDto, RunHistoryResponseDto } from '../dto/repository.dto';
3
+ import { ListSnapshotsResponseDto, RepositoryCheckImportResponseDto, RepositoryCreateRequestDto, RepositoryCreateResponseDto, RepositoryInspectResponseDto, RepositoryListResponseDto, RepositoryPrimaryBackendReconfigureRequestDto, RepositorySnapshotRestoreFromPointRequestDto, RepositorySnapshotRestoreRequestDto, RepositoryUpdateRequestDto, RepositoryUpdateResponseDto, RunHistoryResponseDto } from '../dto/repository.dto';
4
4
  import { EventsGateway } from '../events/events.gateway';
5
5
  import { BackendRepository } from '../repositories/backend.repository';
6
6
  import { ConfigRepository } from '../repositories/config.repository';
@@ -32,7 +32,7 @@ export declare class RepositoryService {
32
32
  private getLocalRepository;
33
33
  createRepository(dto: RepositoryCreateRequestDto, backendId?: string): Promise<RepositoryCreateResponseDto>;
34
34
  getRepositories(): Promise<RepositoryListResponseDto>;
35
- inspectRepositories(): Promise<RepositoryInspectResponseDto>;
35
+ inspectRepositories(backendId?: string): Promise<RepositoryInspectResponseDto>;
36
36
  private mapSnapshot;
37
37
  updateRepository(id: string, dto: RepositoryUpdateRequestDto, backendId?: string): Promise<RepositoryUpdateResponseDto>;
38
38
  deleteRepository(id: string): Promise<void>;
@@ -49,6 +49,7 @@ export declare class RepositoryService {
49
49
  }>;
50
50
  checkImportRepository(id: string, backendId: string): Promise<RepositoryCheckImportResponseDto>;
51
51
  importRepository(id: string, backendId: string): Promise<RepositoryCreateResponseDto>;
52
+ reconfigureRepositoryPrimaryBackend(id: string, dto: RepositoryPrimaryBackendReconfigureRequestDto): Promise<RepositoryCreateResponseDto>;
52
53
  getSnapshots(id: string): Promise<ListSnapshotsResponseDto>;
53
54
  restoreSnapshot(id: string, snapshotId: string, dto: RepositorySnapshotRestoreRequestDto): Promise<{
54
55
  logId: string;
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.RepositoryService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
+ const node_crypto_1 = require("node:crypto");
17
18
  const node_path_1 = require("node:path");
18
19
  const backend_1 = require("../backends/backend");
19
20
  const enum_1 = require("../enum");
@@ -79,21 +80,24 @@ let RepositoryService = class RepositoryService {
79
80
  const { configuration } = await this.backend.getBackend(backendId);
80
81
  const backend = backend_1.Backend.from(configuration, this.moduleConfig.get());
81
82
  const { repository: remote } = await backend.createRepository(dto);
83
+ const id = (0, node_crypto_1.randomUUID)();
82
84
  const endpoint = await backend.getResticEndpoint(remote.id);
83
85
  const key = await this.config.deriveEncryptionKey(`repository-${remote.id}`);
84
86
  await this.restic.init(endpoint, key);
85
87
  await this.repository.create({
86
- id: remote.id,
88
+ id,
89
+ remoteId: remote.id,
87
90
  backendId,
88
91
  retentionPolicy: restic_1.DEFAULT_RETENTION_POLICY,
89
92
  });
90
93
  const paths = dto.paths ?? [];
91
94
  for (const path of paths) {
92
- await this.repositoryPath.create({ id: remote.id, path });
95
+ await this.repositoryPath.create({ id, path });
93
96
  }
94
97
  const repository = {
95
- ...(await this.getLocalRepository(remote.id, { paths, retentionPolicy: restic_1.DEFAULT_RETENTION_POLICY })),
98
+ ...(await this.getLocalRepository(id, { paths, retentionPolicy: restic_1.DEFAULT_RETENTION_POLICY })),
96
99
  ...remote,
100
+ id,
97
101
  backends: {
98
102
  primary: {
99
103
  id: backendId,
@@ -132,8 +136,8 @@ let RepositoryService = class RepositoryService {
132
136
  const localRepositories = await this.repository.getAll();
133
137
  const localPaths = await this.repositoryPath.getAll();
134
138
  const localMetrics = await this.repositoryLocalMetrics.getAll();
135
- for (const { id, backendId, retentionPolicy } of localRepositories) {
136
- const remoteRepository = remoteRepositories[backendId][id];
139
+ for (const { id, remoteId, backendId, retentionPolicy } of localRepositories) {
140
+ const remoteRepository = remoteRepositories[backendId][remoteId];
137
141
  const configuration = {
138
142
  paths: localPaths.filter((entry) => entry.id === id).map(({ path }) => path),
139
143
  retentionPolicy,
@@ -142,6 +146,7 @@ let RepositoryService = class RepositoryService {
142
146
  if (remoteRepository) {
143
147
  repositories.push({
144
148
  ...remoteRepository,
149
+ id,
145
150
  ...(await this.getLocalRepository(id, configuration, metrics)),
146
151
  backends: {
147
152
  primary: {
@@ -152,7 +157,7 @@ let RepositoryService = class RepositoryService {
152
157
  secondary: [],
153
158
  },
154
159
  });
155
- delete remoteRepositories[backendId][id];
160
+ delete remoteRepositories[backendId][remoteId];
156
161
  }
157
162
  else {
158
163
  repositories.push({
@@ -190,14 +195,20 @@ let RepositoryService = class RepositoryService {
190
195
  repositories,
191
196
  };
192
197
  }
193
- async inspectRepositories() {
198
+ async inspectRepositories(backendId) {
194
199
  const { repositories } = await this.getRepositories();
195
- const snapshots = await Promise.allSettled(repositories.map(async (repository) => {
196
- const { endpoint, key } = await this.getResticParameters(repository.id, repository.backends?.primary.id);
200
+ const list = repositories.filter((repository) => !repository.configuration &&
201
+ repository.backends &&
202
+ (!backendId || repository.backends.primary.id === backendId));
203
+ const snapshots = await Promise.allSettled(list.map(async (repository) => {
204
+ const { endpoint, key } = await this.getResticParameters({
205
+ backendId: repository.backends.primary.id,
206
+ remoteId: repository.id,
207
+ });
197
208
  return this.restic.snapshots(endpoint, key);
198
209
  }));
199
210
  return {
200
- repositories: repositories.map((repository, idx) => ({
211
+ repositories: list.map((repository, idx) => ({
201
212
  ...repository,
202
213
  snapshots: snapshots[idx].status === 'fulfilled'
203
214
  ? snapshots[idx].value.map((snapshot) => this.mapSnapshot(snapshot))
@@ -222,18 +233,23 @@ let RepositoryService = class RepositoryService {
222
233
  };
223
234
  }
224
235
  async updateRepository(id, dto, backendId) {
225
- if (!backendId) {
236
+ let remoteId;
237
+ if (backendId) {
238
+ remoteId = id;
239
+ }
240
+ else {
226
241
  const localRepository = await this.repository.get(id);
227
242
  backendId = localRepository.backendId;
243
+ remoteId = localRepository.remoteId;
228
244
  }
229
245
  const backend = await this.backend.getBackend(backendId);
230
246
  const backendInstance = backend_1.Backend.from(backend.configuration, this.moduleConfig.get());
231
247
  let remote;
232
248
  if (dto.name) {
233
- ({ repository: remote } = await backendInstance.updateRepository(id, dto));
249
+ ({ repository: remote } = await backendInstance.updateRepository(remoteId, dto));
234
250
  }
235
251
  else {
236
- ({ repository: remote } = await backendInstance.getRepository(id));
252
+ ({ repository: remote } = await backendInstance.getRepository(remoteId));
237
253
  }
238
254
  if (dto.paths) {
239
255
  const currentPaths = new Set(await this.repositoryPath.get(id));
@@ -256,6 +272,7 @@ let RepositoryService = class RepositoryService {
256
272
  const metrics = await this.repositoryLocalMetrics.get(id);
257
273
  const repository = {
258
274
  ...remote,
275
+ id,
259
276
  ...(await this.getLocalRepository(id, undefined, metrics)),
260
277
  backends: {
261
278
  primary: {
@@ -282,18 +299,24 @@ let RepositoryService = class RepositoryService {
282
299
  repositoryId: id,
283
300
  });
284
301
  }
285
- async getResticParameters(id, backendId) {
286
- if (!backendId) {
287
- const localRepository = await this.repository.get(id);
302
+ async getResticParameters(repository) {
303
+ let backendId;
304
+ let remoteId;
305
+ if (typeof repository === 'string') {
306
+ const localRepository = await this.repository.get(repository);
288
307
  if (!localRepository) {
289
308
  throw new common_1.BadRequestException('Repository not found locally');
290
309
  }
291
310
  backendId = localRepository.backendId;
311
+ remoteId = localRepository.remoteId;
312
+ }
313
+ else {
314
+ ({ backendId, remoteId } = repository);
292
315
  }
293
316
  const backend = await this.backend.getBackend(backendId);
294
317
  const backendInstance = backend_1.Backend.from(backend.configuration, this.moduleConfig.get());
295
- const endpoint = await backendInstance.getResticEndpoint(id);
296
- const key = await this.config.deriveEncryptionKey(`repository-${id}`);
318
+ const endpoint = await backendInstance.getResticEndpoint(remoteId);
319
+ const key = await this.config.deriveEncryptionKey(`repository-${remoteId}`);
297
320
  return { endpoint, key };
298
321
  }
299
322
  async updateLocalMetrics(id, options) {
@@ -315,11 +338,11 @@ let RepositoryService = class RepositoryService {
315
338
  },
316
339
  });
317
340
  if (metrics.sizeBytes) {
318
- const { backendId } = await this.repository.get(id);
341
+ const { backendId, remoteId } = await this.repository.get(id);
319
342
  const { configuration } = await this.backend.getBackend(backendId);
320
343
  const backend = backend_1.Backend.from(configuration, this.moduleConfig.get());
321
344
  if (backend.isMetricsCapable()) {
322
- await backend.submitMetricRepositorySize(id, metrics.sizeBytes);
345
+ await backend.submitMetricRepositorySize(remoteId, metrics.sizeBytes);
323
346
  }
324
347
  }
325
348
  }
@@ -330,7 +353,7 @@ let RepositoryService = class RepositoryService {
330
353
  if (!this.tasks.canStart(id)) {
331
354
  throw new common_1.BadRequestException('Task already running!');
332
355
  }
333
- const { backendId } = await this.repository.get(id);
356
+ const { backendId, remoteId } = await this.repository.get(id);
334
357
  const { configuration } = await this.backend.getBackend(backendId);
335
358
  const backend = backend_1.Backend.from(configuration, this.moduleConfig.get());
336
359
  const { endpoint, key } = await this.getResticParameters(id);
@@ -346,7 +369,7 @@ let RepositoryService = class RepositoryService {
346
369
  logId,
347
370
  });
348
371
  if (backend.isMetricsCapable()) {
349
- await backend.submitMetricBackupStart(id);
372
+ await backend.submitMetricBackupStart(remoteId);
350
373
  }
351
374
  try {
352
375
  const taskSignal = this.tasks.startTask(id, enum_1.TaskType.Backup, logId, signal);
@@ -379,7 +402,7 @@ let RepositoryService = class RepositoryService {
379
402
  complete();
380
403
  }
381
404
  if (backend.isMetricsCapable()) {
382
- await backend.submitMetricBackupEnd(id, !error, lastBackupDuration);
405
+ await backend.submitMetricBackupEnd(remoteId, !error, lastBackupDuration);
383
406
  }
384
407
  }));
385
408
  task.catch(() => { });
@@ -418,8 +441,14 @@ let RepositoryService = class RepositoryService {
418
441
  return new Promise((resolve) => {
419
442
  const task = new Promise((complete, fail) => void this.runHistory.createLog(id, enum_1.TaskType.Forget, async (log, logId) => {
420
443
  resolve({ task, logId });
421
- await this.restic.unlockAll(endpoint, key);
422
- await this.runForgetAndPrune(endpoint, key, policy, log, signal);
444
+ try {
445
+ const taskSignal = this.tasks.startTask(id, enum_1.TaskType.Forget, logId, signal);
446
+ await this.restic.unlockAll(endpoint, key);
447
+ await this.runForgetAndPrune(endpoint, key, policy, log, taskSignal);
448
+ }
449
+ finally {
450
+ this.tasks.endTask(id);
451
+ }
423
452
  }, (error) => {
424
453
  void this.updateLocalMetrics(id, {
425
454
  resticParameters: { endpoint, key },
@@ -435,7 +464,7 @@ let RepositoryService = class RepositoryService {
435
464
  });
436
465
  }
437
466
  async checkImportRepository(id, backendId) {
438
- const { endpoint, key } = await this.getResticParameters(id, backendId);
467
+ const { endpoint, key } = await this.getResticParameters({ backendId, remoteId: id });
439
468
  try {
440
469
  await this.restic.snapshots(endpoint, key);
441
470
  return {
@@ -452,6 +481,7 @@ let RepositoryService = class RepositoryService {
452
481
  const { configuration } = await this.backend.getBackend(backendId);
453
482
  const backend = backend_1.Backend.from(configuration, this.moduleConfig.get());
454
483
  const { repository: remote } = await backend.getRepository(id);
484
+ const localId = (0, node_crypto_1.randomUUID)();
455
485
  const endpoint = await backend.getResticEndpoint(remote.id);
456
486
  const key = await this.config.deriveEncryptionKey(`repository-${remote.id}`);
457
487
  await this.restic.keyList(endpoint, key);
@@ -464,13 +494,15 @@ let RepositoryService = class RepositoryService {
464
494
  catch {
465
495
  }
466
496
  await this.repository.create({
467
- id: remote.id,
497
+ id: localId,
498
+ remoteId: remote.id,
468
499
  backendId,
469
500
  retentionPolicy: restic_1.DEFAULT_RETENTION_POLICY,
470
501
  });
471
502
  const repository = {
472
- ...(await this.getLocalRepository(id, { paths, retentionPolicy: restic_1.DEFAULT_RETENTION_POLICY })),
503
+ ...(await this.getLocalRepository(localId, { paths, retentionPolicy: restic_1.DEFAULT_RETENTION_POLICY })),
473
504
  ...remote,
505
+ id: localId,
474
506
  backends: {
475
507
  primary: {
476
508
  id: backendId,
@@ -488,6 +520,44 @@ let RepositoryService = class RepositoryService {
488
520
  repository,
489
521
  };
490
522
  }
523
+ async reconfigureRepositoryPrimaryBackend(id, dto) {
524
+ const { configuration } = await this.backend.getBackend(dto.backendId);
525
+ const backend = backend_1.Backend.from(configuration, this.moduleConfig.get());
526
+ const { repository: remote } = await backend.createRepository({
527
+ name: 'Restored Repository',
528
+ worm: false,
529
+ });
530
+ const endpoint = await backend.getResticEndpoint(remote.id);
531
+ const key = await this.config.deriveEncryptionKey(`repository-${remote.id}`);
532
+ await this.restic.init(endpoint, key);
533
+ await this.repository.update(id, {
534
+ remoteId: remote.id,
535
+ backendId: dto.backendId,
536
+ });
537
+ const { id: _, ...repository } = {
538
+ ...(await this.getLocalRepository(id)),
539
+ ...remote,
540
+ backends: {
541
+ primary: {
542
+ id: dto.backendId,
543
+ online: true,
544
+ type: configuration.type,
545
+ },
546
+ secondary: [],
547
+ },
548
+ };
549
+ this.events.publish({
550
+ type: 'RepositoryUpdate',
551
+ repositoryId: id,
552
+ repository,
553
+ });
554
+ return {
555
+ repository: {
556
+ id,
557
+ ...repository,
558
+ },
559
+ };
560
+ }
491
561
  async getSnapshots(id) {
492
562
  const { endpoint, key } = await this.getResticParameters(id);
493
563
  const snapshots = await this.restic.snapshots(endpoint, key);
@@ -528,7 +598,7 @@ let RepositoryService = class RepositoryService {
528
598
  task,
529
599
  logId,
530
600
  });
531
- const { endpoint, key } = await this.getResticParameters(id, backendId);
601
+ const { endpoint, key } = await this.getResticParameters({ backendId, remoteId: id });
532
602
  try {
533
603
  const signal = this.tasks.startTask(id, enum_1.TaskType.Restore, logId);
534
604
  await this.restic.restore(endpoint, key, snapshotId, { include: dto.include }, log, signal);
@@ -1 +1 @@
1
- {"version":3,"file":"repository.service.js","sourceRoot":"","sources":["../../src/services/repository.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.service.js","sourceRoot":"","sources":["../../src/services/repository.service.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export declare class ScheduleService {
15
15
  private readonly moduleConfig;
16
16
  private readonly integrationImmich;
17
17
  constructor(repository: RepositoryService, events: EventsGateway, schedule: ScheduleRepository, schedulerRegistry: SchedulerRegistry, runningTasks: RunningTasksRepository, moduleConfig: ModuleConfigRepository, integrationImmich: RepositoryIntegrationImmichRepository);
18
+ private readonly cronJobs;
18
19
  bootstrap(): Promise<void>;
19
20
  private createCronJob;
20
21
  private updateCronJob;
@@ -8,6 +8,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.ScheduleService = void 0;
13
16
  const common_1 = require("@nestjs/common");
@@ -38,12 +41,18 @@ let ScheduleService = class ScheduleService {
38
41
  this.moduleConfig = moduleConfig;
39
42
  this.integrationImmich = integrationImmich;
40
43
  }
44
+ cronJobs = new Set();
41
45
  async bootstrap() {
46
+ for (const id of this.cronJobs) {
47
+ this.schedulerRegistry.deleteCronJob(id);
48
+ }
49
+ this.cronJobs.clear();
42
50
  for (const schedule of await this.schedule.getAll()) {
43
51
  this.createCronJob(schedule.id, schedule.cron, schedule.paused);
44
52
  }
45
53
  }
46
54
  createCronJob(id, cron, paused) {
55
+ this.cronJobs.add(id);
47
56
  this.schedulerRegistry.addCronJob(id, new cron_1.CronJob(cron, () => this.runSchedule(id), undefined, !paused, undefined, undefined, undefined, undefined, true));
48
57
  }
49
58
  updateCronJob(id, cron, paused) {
@@ -177,6 +186,8 @@ let ScheduleService = class ScheduleService {
177
186
  throw new common_1.BadRequestException('Schedule managed by Immich integration');
178
187
  }
179
188
  await this.schedule.removeSchedule(scheduleId);
189
+ this.schedulerRegistry.deleteCronJob(scheduleId);
190
+ this.cronJobs.delete(scheduleId);
180
191
  this.events.publish({
181
192
  type: 'ScheduleDelete',
182
193
  scheduleId,
@@ -186,6 +197,7 @@ let ScheduleService = class ScheduleService {
186
197
  exports.ScheduleService = ScheduleService;
187
198
  exports.ScheduleService = ScheduleService = __decorate([
188
199
  (0, common_1.Injectable)(),
200
+ __param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => repository_service_1.RepositoryService))),
189
201
  __metadata("design:paramtypes", [repository_service_1.RepositoryService,
190
202
  events_gateway_1.EventsGateway,
191
203
  schedule_repository_1.ScheduleRepository,
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.service.js","sourceRoot":"","sources":["../../src/services/schedule.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule.service.js","sourceRoot":"","sources":["../../src/services/schedule.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@futo-org/backups-orchestrator-api",
3
- "version": "0.1.72",
4
- "description": "",
3
+ "repository": "https://github.com/immich-app/yucca",
4
+ "version": "0.3.1",
5
+ "description": "Backups orchestrator (API)",
5
6
  "main": "index.js",
6
7
  "keywords": [],
7
8
  "author": "",
@@ -29,7 +30,7 @@
29
30
  "rxjs": "^7.8.2",
30
31
  "socket.io": "^4.8.3",
31
32
  "tail": "^2.2.6",
32
- "@futo-org/backups-api-client": "^0.1.72"
33
+ "@futo-org/backups-api-client": "^0.3.1"
33
34
  },
34
35
  "devDependencies": {
35
36
  "@nestjs/cli": "^11.0.14",
@@ -79,6 +80,7 @@
79
80
  "scripts": {
80
81
  "build": "nest build",
81
82
  "test": "jest",
83
+ "test:integration": "jest --config ./test/jest-integration.json --runInBand",
82
84
  "dev": "nodemon bin/server.ts",
83
85
  "start": "ts-node bin/server.ts",
84
86
  "sync:openapi": "ts-node bin/sync-openapi.ts"
@@ -1,18 +0,0 @@
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
- async function up(db) {
7
- await db.schema
8
- .alterTable('repositories')
9
- .addColumn('retentionPreset', 'text', (col) => col
10
- .notNull()
11
- .defaultTo('default')
12
- .check((0, kysely_1.sql) `retentionPreset IN ('default', 'off')`))
13
- .execute();
14
- }
15
- async function down(db) {
16
- await db.schema.alterTable('repositories').dropColumn('retentionPreset').execute();
17
- }
18
- //# sourceMappingURL=20260512120000-AddRepositoryRetentionPreset.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"20260512120000-AddRepositoryRetentionPreset.js","sourceRoot":"","sources":["../../../src/schema/migrations/20260512120000-AddRepositoryRetentionPreset.ts"],"names":[],"mappings":";;AAEA,gBAUC;AAED,oBAEC;AAhBD,mCAAqC;AAE9B,KAAK,UAAU,EAAE,CAAC,EAAe;IACtC,MAAM,EAAE,CAAC,MAAM;SACZ,UAAU,CAAC,cAAc,CAAC;SAC1B,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAC5C,GAAG;SACA,OAAO,EAAE;SACT,SAAS,CAAC,SAAS,CAAC;SACpB,KAAK,CAAC,IAAA,YAAG,EAAA,uCAAuC,CAAC,CACrD;SACA,OAAO,EAAE,CAAC;AACf,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,EAAe;IACxC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;AACrF,CAAC"}
@@ -1,11 +0,0 @@
1
- import { OnApplicationBootstrap } from '@nestjs/common';
2
- import { ConfigRepository } from '../repositories/config.repository';
3
- import { DatabaseRepository } from '../repositories/database.repository';
4
- import { ScheduleService } from './schedule.service';
5
- export declare class DatabaseService implements OnApplicationBootstrap {
6
- private readonly repository;
7
- private readonly config;
8
- private readonly schedule;
9
- constructor(repository: DatabaseRepository, config: ConfigRepository, schedule: ScheduleService);
10
- onApplicationBootstrap(): Promise<void>;
11
- }
@@ -1,39 +0,0 @@
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.DatabaseService = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const config_repository_1 = require("../repositories/config.repository");
15
- const database_repository_1 = require("../repositories/database.repository");
16
- const schedule_service_1 = require("./schedule.service");
17
- let DatabaseService = class DatabaseService {
18
- repository;
19
- config;
20
- schedule;
21
- constructor(repository, config, schedule) {
22
- this.repository = repository;
23
- this.config = config;
24
- this.schedule = schedule;
25
- }
26
- async onApplicationBootstrap() {
27
- await this.repository.runMigrations();
28
- await this.config.bootstrap();
29
- await this.schedule.bootstrap();
30
- }
31
- };
32
- exports.DatabaseService = DatabaseService;
33
- exports.DatabaseService = DatabaseService = __decorate([
34
- (0, common_1.Injectable)(),
35
- __metadata("design:paramtypes", [database_repository_1.DatabaseRepository,
36
- config_repository_1.ConfigRepository,
37
- schedule_service_1.ScheduleService])
38
- ], DatabaseService);
39
- //# sourceMappingURL=database.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.service.js","sourceRoot":"","sources":["../../src/services/database.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAoE;AACpE,yEAAqE;AACrE,6EAAyE;AACzE,yDAAqD;AAG9C,IAAM,eAAe,GAArB,MAAM,eAAe;IAEP;IACA;IACA;IAHnB,YACmB,UAA8B,EAC9B,MAAwB,EACxB,QAAyB;QAFzB,eAAU,GAAV,UAAU,CAAoB;QAC9B,WAAM,GAAN,MAAM,CAAkB;QACxB,aAAQ,GAAR,QAAQ,CAAiB;IACzC,CAAC;IAEJ,KAAK,CAAC,sBAAsB;QAC1B,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACtC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;CACF,CAAA;AAZY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAGoB,wCAAkB;QACtB,oCAAgB;QACd,kCAAe;GAJjC,eAAe,CAY3B"}