fix(server): only allow absolute import paths #25999
Annotations
7 errors
Run small tests & coverage:
server/src/services/library.service.spec.ts#L910
AssertionError: promise rejected "BadRequestException: Invalid import path:… { …(3) }" instead of resolving
❯ src/services/library.service.spec.ts:910:72
Caused by: Caused by: BadRequestException: Invalid import path: Import path must be absolute, try /home/runner/work/immich/immich/server/foo/bar
❯ LibraryService.update src/services/library.service.ts:317:19
❯ src/services/library.service.spec.ts:910:7
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { response: { message: 'Invalid import path: Import path must be absolute, try /home/runner/work/immich/immich/server/foo/bar', error: 'Bad Request', statusCode: 400 }, status: 400, options: {}, initCause: 'Function<initCause>', initMessage: 'Function<initMessage>', initName: 'Function<initName>', getResponse: 'Function<getResponse>', getStatus: 'Function<getStatus>' }
|
Run small tests & coverage:
server/src/services/library.service.spec.ts#L1225
AssertionError: expected { importPaths: [ …(1) ] } to deeply equal { importPaths: [ { …(3) } ] }
- Expected
+ Received
Object {
"importPaths": Array [
- Object {
+ ValidateLibraryImportPathResponseDto {
"importPath": "/data/user1/",
- "isValid": true,
- "message": undefined,
+ "isValid": false,
+ "message": "Import path must be absolute, try /data/user1",
},
],
}
❯ src/services/library.service.spec.ts:1225:7
|
Run small tests & coverage:
server/src/services/library.service.spec.ts#L1242
AssertionError: expected { importPaths: [ …(1) ] } to deeply equal { importPaths: [ { …(3) } ] }
- Expected
+ Received
Object {
"importPaths": Array [
- Object {
+ ValidateLibraryImportPathResponseDto {
"importPath": "/data/user1/",
"isValid": false,
- "message": "Path does not exist (ENOENT)",
+ "message": "Import path must be absolute, try /data/user1",
},
],
}
❯ src/services/library.service.spec.ts:1242:7
|
Run small tests & coverage:
server/src/services/library.service.spec.ts#L1274
AssertionError: expected { importPaths: [ …(1) ] } to deeply equal { importPaths: [ { …(3) } ] }
- Expected
+ Received
Object {
"importPaths": Array [
- Object {
+ ValidateLibraryImportPathResponseDto {
"importPath": "/data/user1/",
"isValid": false,
- "message": "Error: Unknown error",
+ "message": "Import path must be absolute, try /data/user1",
},
],
}
❯ src/services/library.service.spec.ts:1274:7
|
Run small tests & coverage:
server/src/services/library.service.spec.ts#L1292
AssertionError: expected { importPaths: [ …(1) ] } to deeply equal { importPaths: [ { …(3) } ] }
- Expected
+ Received
Object {
"importPaths": Array [
- Object {
+ ValidateLibraryImportPathResponseDto {
"importPath": "/data/user1/",
"isValid": false,
- "message": "Lacking read permission for folder",
+ "message": "Import path must be absolute, try /data/user1",
},
],
}
❯ src/services/library.service.spec.ts:1292:7
|
Run small tests & coverage:
server/src/services/library.service.spec.ts#L1308
AssertionError: expected { importPaths: [ …(3) ] } to deeply equal { importPaths: [ { …(3) }, …(2) ] }
- Expected
+ Received
Object {
"importPaths": Array [
- Object {
+ ValidateLibraryImportPathResponseDto {
"importPath": "upload/thumbs",
"isValid": false,
- "message": "Cannot use media upload folder for external libraries",
+ "message": "Import path must be absolute, try /home/runner/work/immich/immich/server/upload/thumbs",
},
- Object {
+ ValidateLibraryImportPathResponseDto {
"importPath": "/xyz",
"isValid": true,
+ "message": undefined,
},
- Object {
+ ValidateLibraryImportPathResponseDto {
"importPath": "upload/library",
"isValid": false,
- "message": "Cannot use media upload folder for external libraries",
+ "message": "Import path must be absolute, try /home/runner/work/immich/immich/server/upload/library",
},
],
}
❯ src/services/library.service.spec.ts:1308:7
|
Run small tests & coverage
Process completed with exit code 1.
|
Loading