feat: system integrity check in restore flow

This commit is contained in:
izzy
2025-11-21 16:37:28 +00:00
parent d2a4dd67d8
commit cbf3a2c3cb
14 changed files with 510 additions and 25 deletions

View File

@@ -3,6 +3,7 @@ import { FileInterceptor } from '@nestjs/platform-express';
import { Request, Response } from 'express';
import {
MaintenanceAuthDto,
MaintenanceIntegrityResponseDto,
MaintenanceListBackupsResponseDto,
MaintenanceLoginDto,
MaintenanceStatusResponseDto,
@@ -13,13 +14,18 @@ import { ImmichCookie } from 'src/enum';
import { MaintenanceRoute } from 'src/maintenance/maintenance-auth.guard';
import { MaintenanceWorkerService } from 'src/maintenance/maintenance-worker.service';
import { GetLoginDetails } from 'src/middleware/auth.guard';
import { StorageRepository } from 'src/repositories/storage.repository';
import { LoginDetails } from 'src/services/auth.service';
import { integrityCheck } from 'src/utils/maintenance';
import { respondWithCookie } from 'src/utils/response';
import { FilenameParamDto } from 'src/validation';
@Controller()
export class MaintenanceWorkerController {
constructor(private service: MaintenanceWorkerService) {}
constructor(
private service: MaintenanceWorkerService,
private storageRepository: StorageRepository,
) {}
@Get('server/config')
getServerConfig(): ServerConfigDto {
@@ -31,6 +37,11 @@ export class MaintenanceWorkerController {
return this.service.status(request.cookies[ImmichCookie.MaintenanceToken]);
}
@Get('admin/maintenance/integrity')
integrityCheck(): Promise<MaintenanceIntegrityResponseDto> {
return integrityCheck(this.storageRepository);
}
@Post('admin/maintenance/login')
async maintenanceLogin(
@Req() request: Request,