327 Commits

Author SHA1 Message Date
Michael Mayer
e693fd668f CI: Apply Go linter recommendations to "internal/server" package #5330
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-22 13:09:32 +01:00
Michael Mayer
264bc78d51 Backend: Remove legacy Go build tags #5330
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-22 09:24:28 +01:00
Michael Mayer
d023139c12 TestMain: Handle "defer" before os.Exit #5330
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-21 18:58:36 +01:00
Michael Mayer
5ad391068d API: Add missing Swagger annotations and update swagger.json
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-30 11:00:16 +01:00
Michael Mayer
3f16de1e97 Server: Improve stability of WebDAV write tests
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-23 13:33:15 +02:00
Michael Mayer
cd7fa6adca Logs: Add package pkg/log/status to provide generic outcome constants
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-21 14:42:05 +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
dacb5794f5 Server: Reformat routes_wellknown.go for better readability
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-19 19:00:38 +02:00
Michael Mayer
fd2a386c71 PWA: Improve handling of service worker requests #5274
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-19 07:25:50 +02:00
Michael Mayer
5cae6af468 PWA: Handle hashed Workbox runtime requests #5274
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-19 06:08:12 +02:00
Michael Mayer
5a95d972a8 PWA: Improve service worker server endpoint #5274
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-18 12:30:38 +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
5bfa9803f1 PWA: Add code comments to internal/server/routes_webapp.go #5274
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-18 09:16:33 +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
703f355c09 PWA: Include minimal no-op service worker for tests #5274
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-17 20:41:22 +02:00
Michael Mayer
cb9d8d236a Config: Move Portal flag to ClientConfig struct
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-15 23:32:54 +02:00
Michael Mayer
838adee3eb Backend: Refactor middleware naming and improve code comments #5235
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-30 23:25:53 +02:00
Michael Mayer
bb503a7322 WebDAV: Use isolated test environments for server/webdav_write_test.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-30 22:17:13 +02:00
Michael Mayer
bc6c34cb2b API: Add GET /api/v1/cluster/metrics endpoint #98 #5230
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-26 06:36:23 +02:00
Michael Mayer
660c0a89db Backend: Introduce optimized test config helpers to improve performance
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-25 23:09:52 +02:00
Michael Mayer
bae8ceb3a7 Auth: Support asymmetric JSON Web Tokens (JWT) and Key Sets (JWKS) #5230
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-25 17:52:44 +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
887a39e7d9 Auth: Add "node" and "portal" roles, refactor session entity #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-18 13:33:18 +02:00
Quentin BARON
d3775f02e6 API: Add cluster operations endpoints to manage and register nodes #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-15 06:43:43 +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
a7a41fe000 API: Add OPTIONS wildcard handler to serve CORS preflight requests #5133
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-08-13 15:59:38 +02:00
Michael Mayer
d47b38bc8b Server: Add standard liveness/readiness check endpoints
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-08-13 13:07:01 +02:00
Michael Mayer
98e9daf687 Server: Add "trusted-platform" config option
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-08-01 13:51:03 +02:00
Michael Mayer
31901ff2e3 Server: Add "proxy-ip-header" config option
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-07-29 13:16:14 +02:00
Michael Mayer
f7a6b0fa6c Config: Add an option to disable the web user interface #5111
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-07-14 19:30:24 +02:00
Michael Mayer
033cfc4922 Places: Refactor search and reverse API endpoints #465 #5043
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-06-25 00:43:31 +02:00
Ömer Duran
baa5f2d9a0 UX: Add a map for selecting locations in the Edit dialog #465 #5043
* Frontend: Map Dialog first version
* Frontend: Simplify street address handling and remove reset location control in map dialog
* Frontend: Enhance map undo functionality
* Frontend: Refactor location info handling to use backend API for reverse geocoding
* Frontend: Improve coordinate input handling
* Frontend: Adjust layout in photo details
* Frontend: Add feature to clear coordinates
* Frontend: Update button alignment
* Frontend: Implement place search feature in map dialog
2025-06-24 23:22:16 +02:00
Michael Mayer
dd6e17e97e API: Rename /batch/photos endpoint to /batch/photos/edit #271
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-05-04 14:09:23 +02:00
Michael Mayer
b423b1980b API: Add /batch/photos endpoint to get metadata of selected photos #271
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-05-03 12:43:01 +02:00
Michael Mayer
96dbb5ccbc Config: Refactor command flags, reports, and client options
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-15 15:42:03 +02:00
Michael Mayer
07e22b0c14 API: Remove unused Webhook endpoint due to architecture change
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-11 19:39:39 +02:00
Michael Mayer
f2ffb0fdce AI: Add Webhook endpoint and refactor ACL for Vision API #127 #1090
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-11 18:41:54 +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
Michael Mayer
bd634c828b AI: Shorten "face/embeddings" model type to just "face" #127 #1090
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-11 05:48:00 +02:00
Michael Mayer
caf3ae1ab5 AI: Refactor use of face embeddings, labels, and nsfw models #127 #1090
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-10 16:49:34 +02:00
Michael Mayer
35e9294d87 AI: Add vision package and vision API endpoints #127 #1090
These changes allow to configure the computer vision models through an
optional vision.yml configuration file. Note that the API endpoints
are not yet functional and require further work.

Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-06 23:39:37 +02:00
Michael Mayer
d0239ba209 UX: Improve quota calculation and checks in config and api #4266
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-17 16:12:47 +01:00
Michael Mayer
4a6d3a9bd8 UX: Redirect users accessing /library/ to the default route #577
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-15 15:44:20 +01:00
Michael Mayer
eb9371d089 WebDAV: Skip download sync if storage is full or quota is exceeded #4266
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-11 23:45:41 +01:00
Michael Mayer
a66d3278ab API: Prevent file imports/uploads if there is no free storage #4266
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-11 20:35:07 +01:00
Michael Mayer
9bf587ba45 Server: Remove IdleTimeout from default server configuration #4799
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-20 16:35:30 +01:00
Michael Mayer
3220834e92 Server: Ensure that there is no default read or write timeout #4799
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-19 10:37:59 +01:00