Commit graph

30 commits

Author SHA1 Message Date
Cathie Integra
3f096a592b Links: Use canonical trailing-slash form for website URLs 2026-06-24 17:20:30 +02:00
Michael Mayer
a2e708e7ab Meta: Update go-mp4, regenerate NOTICE, fix XMP doc spelling #2260 #5563
Bump abema/go-mp4 to v1.7.1 (only outdated direct dependency) and tidy
go.sum, pruning stale checksums left by the XMP sidecar merge. Regenerate
the license NOTICE for the updated dependency.

Use US-English spelling in the new XMP sidecar comments and tests, and
drop a specs/ reference from internal/meta/README.md so the public package
doc has no link into the private subrepo. Regenerate dialect_mysql.go from
SQL.
2026-06-17 00:14:33 +00:00
Ömer Duran
86efc1c982
Index: Improve support for metadata in XMP sidecar files #2260 #2828 #5563
* Meta: Add XMP sidecar fixture corpus for reader rewrite #2260
* Meta: Replace XMP sidecar reader with antchfx/xmlquery #2260
* Meta: Add XMP sidecar reader test suite #2260
* Meta: Assert XMP GPS extraction on Apple/Adobe sidecars #2828
* Meta: Apply XMP sidecar metadata to photo and primary file #2260
* Meta: Resolve XMP sidecar time zone via shared helper #2260
* Meta: Derive panorama & caption keywords on XMP sidecar reads #2260
* Meta: Assert XMP sidecar GPS override and malformed-file handling #2260
* Meta: Tidy XMP sidecar reader comments and reuse logName local #2260
* Meta: Fix XMP sidecar capture-time priority OffsetTime handling #2260
* Meta: Address XMP sidecar review feedback #2260
2026-06-17 01:53:28 +02:00
Michael Mayer
d091958a60 Cluster: Collect OIDC groups at login for group-based admission 2026-06-12 16:08:38 +00:00
Michael Mayer
186a11b007 Entity: Document VARBINARY index-prefix limit and byte-exact paths #5614 #5615
Record that album_path is now a byte-exact VARBINARY column (alongside
album_slug, album_filter, photo_path) and that folder albums dedupe by
album_filter, in internal/entity/README.md. Add an Index Prefix Limits
note to the migrate README and AGENTS: InnoDB caps key prefixes at 767
bytes on COMPACT/REDUNDANT row formats, so VARBINARY prefix indexes use
512 by convention.
2026-06-01 11:42:59 +00:00
Michael Mayer
128bd2d8be Albums: Store album_path as VARBINARY for byte-exact paths #5614 #5615
album_path mirrors photos.photo_path (already VARBINARY(1024)) and is
compared against it directly, but was VARCHAR with the utf8mb4_unicode_ci
collation, which collapses case and most emoji. That made album_path = ?
lookups collation-fuzzy and forced byte-exact re-checks in Go.

Store it as VARBINARY(1024) so folder album path comparisons are
byte-exact at the database, consistent with album_slug, album_filter,
and photo_path. The MySQL migration preserves the existing 768-byte
prefix index. SQLite compares TEXT byte-exact by default, so no SQLite
migration is needed.
2026-06-01 11:34:41 +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
d0b896564d Migrations: Add internal/entity/migrate package documentation #47 #4831
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-05-25 11:34:29 +02:00
Michael Mayer
f7085cfb1d Develop: Honor MARIADB_PORT and POSTGRES_PORT overrides #5590 2026-05-20 09:44:12 +00:00
Michael Mayer
c8390a2e8d Config: Centralize SQL driver identifiers in pkg/dsn #5588 2026-05-17 14:47:43 +00:00
Michael Mayer
b0fda99e2c Lint: Resolve gosec findings and add embedding dist benchmark
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-03-03 17:17:49 +01:00
Keith Martin
019d3e18d3
OIDC: Add handling to AuthID so that SQLite doesn't corrupt on save #4951 #5309
* OIDC: Add handling to AuthID so that SQLite doesn't corrupt on save with long numbers
* Entity: Ensure that AuthID wrap/unwrap is used for auth_user and auth_sessions, and that auth_sessions wrap/unwrap on create/save/find as required
* Entity: hard code toggle off wrap/unwrap, implement dbms migration change to pre-create/alter tables with auth_id in SQLite and pre-create for MariaDB
* Entity: revert wrap/unwrap for AuthID
* Migrate: Comment out MySQL statements required for GormV2
* Entity: revert authID to authId as per review
* Migrate: wrap authid changes in transaction (rollback if any errors), and drop migration tables
* migrate: correct tx.Error use, impove commit/rollback so no silent failures, remove excess err variable.
2026-03-01 13:58:02 +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
Ömer Duran
1e00d1f52e
UX: Add batch edit dialog and API endpoints #271 #5324
Signed-off-by: Michael Mayer <michael@photoprism.app>
Co-authored-by: Michael Mayer <michael@photoprism.app>
Co-authored-by: graciousgrey <theresagresch@gmail.com>
2025-11-19 11:20:34 +01: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
3b3a01317b AI: Add IndexedAt time to indicate when a photo was fully indexed #5167
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-07 13:57:01 +02:00
Michael Mayer
e5dc335bcf AI: Include NSFW flag & score when generating labels with Ollama #5232
Related issues: #5233 (reset command), #5234 (schedule for models)

Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-05 04:23:36 +02:00
Michael Mayer
7dd3218493 Entity: Fix Map type alias in internal/entity/migrate/migrate.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-01 09:58:18 +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
5f32d75700 Metadata: Use "Local" as identifier for the local time zone #4946
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-16 17:12:37 +02:00
Michael Mayer
0350e5d572 UX: Add UI settings for selecting start page and time zone #577
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-15 14:51:44 +01:00
Michael Mayer
6a89519e63 Videos: Refactor codec, content and file type specifications #4770
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-05 00:30:45 +01:00
Michael Mayer
ebeaaf568b Metadata: Set labels based on matching keywords in the caption #4603
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-17 06:24:29 +01:00
Michael Mayer
01f15fa406 Backend: Update copyright notices
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-09 10:28:17 +01:00
Michael Mayer
9eb2418955 Frontend: Refactor user account settings page and dialogs #3168
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-12-02 11:50:21 +01:00
Michael Mayer
7e31b17e68 Migrations: Use "mariadb" binary instead of "mysql" to run commands
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-10-31 15:10:24 +01:00
Michael Mayer
3d220227bb Countries: Rename "USA" to "United States" for consistency
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-10-10 16:21:06 +02:00
Michael Mayer
735a3a2d13 Places: Use float64 for all coordinates to avoid rounding errors #3953
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-09-15 13:52:31 +02:00
Michael Mayer
fe9caaa83b OIDC: Improve CLI commands and add AuthIssuer to users and sessions #782
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-07-09 11:01:59 +02:00
Michael Mayer
6944566b7b Backend: Move migrate package to /internal/entity/migrate
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-07-02 06:40:03 +02:00