Commit graph

256 commits

Author SHA1 Message Date
Keith Martin
b6687b6c29
Tests: Improve isolation and add fixes #5263
* Tests: fix random selection of deleted record causing test failure
* Tests: fix test folders being left after test
* Tests: ensure that required records are available
* Tests: make each package execute against it's own testdata folder to ensure no interpackage test failures
* Tests: add unit tests of CleanupTestFolder
* Tests:  Allow defer in TestMain
* Tests: rename testMain to runTestMain
2026-07-12 05:47:21 +02:00
Cathie Integra
3f096a592b Links: Use canonical trailing-slash form for website URLs 2026-06-24 17:20:30 +02:00
Michael Mayer
49c6535c81 Storage: Fix duf path lookup to resolve the containing mount #5683
FindByPath now resolves a path's containing filesystem by longest-prefix match against the raw mount list, instead of the df-style display filter that hides overlay/pseudo roots. This fixes PathInfo/Free/StorageLow for paths like "/" whose mount is hidden (e.g. a container overlay root), which previously resolved to an arbitrary masked tmpfs.
2026-06-23 11:18:13 +00:00
Michael Mayer
b7d637d5dd Storage: Map out-of-space writes to the insufficient-storage error #5613 2026-05-30 22:23:14 +00:00
Michael Mayer
924c80f78c FS: Prefer relative over absolute paths in directory detection #5629 2026-05-30 16:10:46 +00:00
Michael Mayer
3b38a4a2a5 Config: Improve low storage detection #5613 2026-05-29 01:45:04 +02:00
Michael Mayer
dd2c9e3e88 Storage: Refine low-storage logging and extract walk-error sentinels #5613 2026-05-26 00:32:35 +00:00
Michael Mayer
570a563748 Docs: Bump copyright year to 2026 in Go package headers 2026-05-25 14:39:38 +00:00
Michael Mayer
0f01057dba Index: Abort early when storage is critically low #5613 #5612 2026-05-25 14:27:21 +00:00
Michael Mayer
f9ae856fd7 Backend: Compact verbose comments in thumb, AI face, and pkg/fs 2026-05-15 17:50:08 +00:00
Michael Mayer
812faccae6 Clean-up: Drop imaging and pigo library integrations #5353 #5508 #668
Also drops github.com/esimov/pigo since it requires the imaging lib.

Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-04-01 13:47:42 +02:00
Michael Mayer
e313f0e0bc Thumb: Bound TIFF image decodes to file size
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-03-31 15:16:23 +02:00
Michael Mayer
39ea7add37 Assets: Rename example fixtures directory to "samples"
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-03-06 18:47:33 +01:00
Michael Mayer
20fd49f2ac Media: Improve layered TIFF & PSD preview support #5383
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-03-06 18:14:48 +01:00
Michael Mayer
f2aabb9bcd Security: Add gosec fixes with shared URL and fs validation helpers
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-03-03 16:38:41 +01:00
Michael Mayer
bcb6d39332 Server: Add web overlay handler for unmatched routes #5459
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-24 20:02:58 +01:00
Michael Mayer
a2b7615c93 Go: Apply go fix modernizations across backend packages
Run `go fix ./...` and keep mechanical modernization updates.

- Replace `interface{}` with `any` in signatures and local types
- Apply formatter/style cleanups from go1.26 tooling
- Keep `omitempty` behavior-preserving simplifications suggested by fix
- No functional feature changes intended

Validation:
- go test ./... -run '^$' -count=1 (Go 1.26.0)
- GOTOOLCHAIN=go1.24.10 go test ./... -run '^$' -count=1

Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-20 03:54:33 +01:00
Michael Mayer
1a1ff63565 Library: Fix .ppignore inconsistently ignoring related media files #5447
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-10 16:53:18 +01:00
Michael Mayer
df5efb61a2 Backend: Clean up error handling and unit tests in pkg/...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-09 12:31:29 +01:00
Michael Mayer
733307c43f Frontend: Namespace local storage to run multiple nodes on a domain #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-08 18:35:05 +01:00
Michael Mayer
ebed7fa5b4 Go: Replace strings.Split() with strings.SplitSeq() #5337
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-25 14:26:29 +01:00
Michael Mayer
1631aecea6 Pkg: Add fs/README.md to document performance & security improvements
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-25 13:09:48 +01:00
Michael Mayer
149f5e5731 CI: Apply Go linter recommendations to remaining "pkg/..." code #5330
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-22 16:14:43 +01:00
Michael Mayer
90ab65a9b0 Zip: Harden fs.Unzip() implementation in pkg/fs #5330
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-22 14:32:23 +01:00
promalert
5d0aa1068c refactor: use b.Loop() to simplify the code and improve performance
Signed-off-by: promalert <promalert@outlook.com>
2025-11-13 08:54:42 +01:00
Michael Mayer
3874bc5422 Config: Enhance tests for configuration and database file names #5304
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-02 11:49:00 +01:00
Michael Mayer
d6f0e808eb Config: Support YAML filenames with alternative extensions #5304
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-02 11:33:40 +01:00
Michael Mayer
b91a7380ea Media: Associate ".mp.jpg" and ".mp.jpeg" files with ImageJpeg #5289
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-23 18:23:24 +02:00
Michael Mayer
f23069dd2c Security: Improve credential handling across the cluster tooling #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-20 00:06:17 +02:00
Michael Mayer
a921f82a17 Pkg: Move /service/http/... to /http/... and add package /http/dns
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-19 21:08:48 +02:00
Michael Mayer
50abe4ddaf Config: Automatically download, install and activate cluster theme #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-19 16:09:26 +02:00
Michael Mayer
1b85f84943 Cluster: Add AppName, AppVersion and Theme request/response fields #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-19 12:44:21 +02:00
Michael Mayer
627acaf64e PWA: Add fs constants for "assets.json" and "manifest.json" #5274
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-18 09:23:53 +02:00
Michael Mayer
bf6d7e4f94 Config: Add StaticBuildFile() and StaticImgFile() functions #5274
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-18 09:09:56 +02:00
Michael Mayer
b00dd133db Test: Use PascalCase names for all Go subtests in /pkg
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-02 15:03:47 +02:00
Michael Mayer
61ced7119c Auth: Refactor cluster configuration and provisioning API endpoints #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-24 08:28:38 +02:00
Michael Mayer
9ea5f0596c Backend: Add security-focused tests, harden WebDAV and use safe.Download
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-22 10:42:53 +02:00
Michael Mayer
91804b9652 Backend: Improve Copy()/Move() and increase pkg/internal test coverage
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-22 03:07:51 +02:00
Michael Mayer
458a320bb8 Pkg: Add fs.Exists() function to check for any existing file/dir/link
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-21 23:09:33 +02:00
Michael Mayer
023fbe3a1d Pkg: Add service/cluster package & rename media/http → service/http #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-13 12:58:28 +02:00
Michael Mayer
c36e66c847 Config: Add fs.ExtYml file extension const for transitioning to ".yaml"
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-13 02:09:22 +02:00
Michael Mayer
0d572032a9 API: Add GET /cluster/theme endpoint and refactor config package #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-11 06:47:45 +02:00
Michael Mayer
0bce60c046 Index: Improve logging when PDF documents cannot be indexed #5166
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-08-19 12:24:29 +02:00
Michael Mayer
ab0bd1c732 Config: Change default vision model assets path to assets/models/ #127
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-08-08 19:06:56 +02:00
Michael Mayer
a6d840056c Media: Log underlying error when MIME type detection fails #5149
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-08-06 09:59:38 +02:00
Michael Mayer
f80ac62e6b Live Photos: Only flag actual Live and Motion Photos as "Live" #5089
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-07-06 11:07:25 +02:00
Michael Mayer
86fe4404ef M2TS: Extract embedded metadata with ExifTool #4982 #4892 #5040
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-06-11 19:22:20 +02:00
Michael Mayer
2e2ebab433 Videos: Improve downloading, remuxing, and transcoding #4982 #4892 #5040
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-06-09 15:31:23 +02:00
hardlydearly
060924c19a
Backend: Use slices.Contains to simplify code (#4975)
Signed-off-by: hardlydearly <799511800@qq.com>
2025-04-30 15:25:05 +02:00
Michael Mayer
35bfe0694b API: Disable gzip compression for /api/v1/dl endpoint #127 #1090
Required for compatibility with the Python HTTP client. In addition,
this commit refactors function names and adds tests.

Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-11 14:13:25 +02:00