Michael Mayer
e44262d4ea
Config: Ignore configured CDN URL if the same as the Site URL #3931
...
see https://docs.photoprism.app/getting-started/using-a-cdn/#cloudflare
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-15 10:54:03 +01:00
Michael Mayer
c38962e469
API: Deny client access if the scope is not authorized #782 #808
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-14 19:27:38 +01:00
Michael Mayer
5dedc8a7c0
Auth: Apply same scope when session is created from auth token #782 #808
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-14 18:53:27 +01:00
Michael Mayer
fed1d8ad95
Auth: Accept access token as passwd with fail rate limit #782 #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-14 18:28:17 +01:00
Michael Mayer
9586a9ec69
Auth: Refactor API to allow auth secrets to be used as tokens #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-14 12:01:26 +01:00
Michael Mayer
d7710adce0
Auth: Improve "auth add" and "client add" CLI commands #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-14 09:51:49 +01:00
Michael Mayer
e21e462f00
Auth: Improve "auth add" and "client add" CLI commands #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-13 16:27:05 +01:00
Michael Mayer
91eadbc21f
Auth: Reset existing user/browser sessions when upgrading #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-12 12:50:52 +01:00
Michael Mayer
34b41cf606
Config: Update default wallpaper image
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-12 12:46:18 +01:00
Michael Mayer
93bc8996bc
Entities: Update schema/mariadb.mmd
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-12 12:02:38 +01:00
Michael Mayer
c86764fa4b
Entities: Update database schema SQL and mariadb.mmd
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-12 10:30:11 +01:00
Michael Mayer
cf71582e3f
WebDAV: Require username when authenticating with basic auth #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-11 18:51:38 +01:00
Michael Mayer
e8ca9b8db2
WebDAV: Check if basic auth user matches the token, if set #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-11 12:49:31 +01:00
Michael Mayer
d481bc3d34
WebDAV: Add token authentication tests #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-11 12:08:39 +01:00
Michael Mayer
eff130cf90
WebDAV: Allow authentication with auth token and any username #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-11 11:37:36 +01:00
Michael Mayer
cc356abe03
WebDAV: Allow authentication with auth token and no username #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-10 18:03:38 +01:00
Michael Mayer
7d78ee803a
Use human-friendly secrets & names for personal access tokens #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-10 17:23:08 +01:00
Michael Mayer
94e361a8fd
WebDAV: Add authorization check based on auth tokens #782 #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-10 16:54:13 +01:00
Michael Mayer
7ef544fa53
Docs: Improve inline comments of the internal/server package #782 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-10 12:46:00 +01:00
Michael Mayer
7a05c5553b
OAuth2: Add "POST /api/v1/oauth/revoke" API endpoint #782 #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-10 12:21:43 +01:00
Michael Mayer
481c207897
Cache: Refactor internal/ttl package
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-10 10:26:38 +01:00
Michael Mayer
63ad161b96
WebDAV: Refactor authentication and HTTP request handlers #3942 #3959
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-10 09:56:46 +01:00
Michael Mayer
e03dbe5d16
OAuth2: Refactor limit for number of access tokens / sessions #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-09 13:46:55 +01:00
Michael Mayer
3e924b70c7
API: Move handling of HTTP auth headers to pkg/header #808 #3943 #3959
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-09 10:58:47 +01:00
Michael Mayer
8db853109e
WebDAV: Set file mod time based on the "X-OC-MTime" header #3942 #3959
...
Note that this is still experimental and the implementation needs to be
tested with a WebDAV client that sends a valid "X-OC-MTime" header.
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-08 18:46:42 +01:00
Michael Mayer
64b8ed572d
API: Add .well-known/openid-configuration route handler #808 #3943
...
This adds an initial "/.well-known/openid-configuration" service
discovery endpoint for use by OpenID Connect clients.
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-08 17:25:07 +01:00
Michael Mayer
ec13ccb6d5
OAuth2: Enforce limit for number of access tokens / sessions #808 #3943
...
These changes ensure that OAuth2 clients cannot create an unlimited
number of access tokens (sessions) with their client credentials.
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-08 16:57:07 +01:00
Michael Mayer
42fbf70dcf
API: Update markers.go handler docs
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-08 14:56:07 +01:00
Michael Mayer
0e4d81853c
API: Add .well-known/oauth-authorization-server route handler #808 #3943
...
This commit also adds an /api/v1/oauth/logout endpoint that allows
clients to delete their sessions (access tokens) as needed.
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-08 14:53:39 +01:00
Michael Mayer
f8e0615cc8
Auth: Ensure backwards compatibility for existing API clients #808 #3943
...
These changes ensure that the new (SHA256) session ID is returned in the
"session_id" field, so that developers have time to update their client
implementations to use the new "access_token" field.
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-07 12:25:56 +01:00
Michael Mayer
0d2f8be522
Auth: Use hashed auth tokens for enhanced security #3943 #808 #782
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-06 17:35:19 +01:00
Michael Mayer
0ca37b2c92
Docs: Update year in backend and frontend package file headers
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-05 16:38:36 +01:00
Michael Mayer
713593da4e
Auth: Add CLI command to create access tokens for apps #782 #808 #3943
...
You can now run "photoprism auth add" to create new client access tokens
that allow external applications to use the built-in REST API.
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-05 16:31:07 +01:00
Michael Mayer
910e3becbb
Auth: Refactor existing CLI sub-commands #808 #3943
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-02 17:06:57 +01:00
graciousgrey
04e8dfe6cb
Tests: Add unit tests #3943
2023-12-21 16:00:28 +01:00
graciousgrey
0f8d5073dd
Tests: Add unit tests #3943
2023-12-21 11:17:33 +01:00
graciousgrey
b6cb478cfb
Tests: Add unit tests
2023-12-19 17:03:50 +01:00
Michael Mayer
cc179e9ecf
Metadata: Stack media files with the same "ContentIdentifier" #3960
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-12-19 16:55:08 +01:00
Michael Mayer
3dec8f4f48
Run "make fmt"
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-12-19 15:43:29 +01:00
graciousgrey
ee8de5e39f
Tests: Add unit tests #3943
2023-12-15 13:16:32 +01:00
graciousgrey
0c4c3215f4
Tests: Add unit tests #3943
2023-12-14 14:19:43 +01:00
graciousgrey
759dbe540a
Auth: Refactor resources.go
2023-12-13 15:36:39 +01:00
Michael Mayer
467f7b1585
OAuth2: Add Client Credentials Authentication #213 #782 #808 #3730 #3943
...
This adds standard OAuth2 client credentials and bearer token support as
well as scope-based authorization checks for REST API clients. Note that
this initial implementation should not be used in production and that
the access token limit has not been implemented yet.
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-12-12 18:42:50 +01:00
Brandon Richardson
3d962e2382
Backend: Expose prometheus-style metrics endpoint
...
Expose a new API which can be scraped by prometheus to gather useful
metrics from an instance. The new endpoint exposes photoprism build
version information, golang version, edition and various count metrics.
2023-12-06 08:13:24 +01:00
graciousgrey
59456c57be
Tests: Add unit test #3885
2023-11-21 17:47:29 +01:00
graciousgrey
292eaf6ee0
Tests: Add unit tests #3896
2023-11-21 17:08:18 +01:00
graciousgrey
5d06770ab6
Tests: Update photo fixtures
2023-11-21 17:07:39 +01:00
Michael Mayer
eb19a4a893
Search: Add filter to find pictures by resolution range in MP #3896
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-11-20 11:47:23 +01:00
Michael Mayer
717e616700
Vectors: Use RSVG instead of imagemagick to convert SVG to PNG #3885
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-11-20 11:43:54 +01:00
Alex Spurling
d32bc4cc6c
FFmpeg: Seek input not output video ( #3893 )
...
This improves performance when converting video to images as we no longer
have to decode and then discard the first x seconds of video.
2023-11-19 15:55:33 +01:00
Michael Mayer
d06a182ac0
JPEG: Reduce log level for reporting invalid color metadata #3843
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-11-09 10:38:05 +01:00
Michael Mayer
d0ea838b37
Thumbnails: Add panic handler for unexpected image encoding errors #3858
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-31 14:37:47 +01:00
Michael Mayer
86f16790ea
JPEG: Read files with invalid color data from the beginning #3843
...
Using a ReadSeeker is necessary to read images with invalid color
metadata from the beginning in order to avoid decoding errors.
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-31 14:24:31 +01:00
Michael Mayer
78e6dd88d8
JPEG: Fix regression when handling files with EOF error #3855
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-31 13:13:18 +01:00
Michael Mayer
b07609c213
HEIC: Add iPhone 15 Pro file samples and update related tests #3852
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-31 12:39:36 +01:00
graciousgrey
46642b3ac0
Tests: Add unit tests for search
2023-10-26 12:52:39 +02:00
graciousgrey
313948b103
Tests: Add altitude to photo fixtures
2023-10-26 12:28:41 +02:00
Michael Mayer
19efee9b6d
Config: Change position of "http-cache-public" command flag
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-26 09:04:34 +02:00
Carlos Abraham Pérez Marrero
50d6d6d44e
PWA: Fix app manifest logo icon sizes ( #3838 )
...
Logo icon 77.png does not exists so a warning is shown on Chrome Dev Tools when inspecting the PWA manifest
2023-10-23 11:29:39 +02:00
Michael Mayer
9abea5b55f
Metadata: Ignore "SubSecModifyDate" in Exiftool JSON files #3780
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-21 17:32:42 +02:00
Michael Mayer
c2b56346b6
Search: Remove obsolete "fmin" and "fmax" filters #3818
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-21 16:33:00 +02:00
Michael Mayer
09f8a58404
Library: Stack sidecar files with vendor specific naming schemes #2983
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-21 15:02:16 +02:00
Michael Mayer
15377b1e98
Metadata: Update json_motion_test.go after upgrading photoprism/go-tz.v2
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-21 11:54:08 +02:00
Michael Mayer
67bd054f7b
Metadata: Improve handling of local time values #3780
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-21 02:31:27 +02:00
Michael Mayer
60efc86649
Metadata: Use UTC offset if actual time zone is unknown #3780
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-21 00:11:11 +02:00
Michael Mayer
54f281a425
FS: Improve matching of related media files #2983
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-20 16:02:52 +02:00
Michael Mayer
cca124e093
Search: Refactor GPS altitude range filter #3800
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-20 12:54:55 +02:00
Gilbert32
132237e47b
Search: Add altitude range filter ( #3800 )
...
* Add Altitude filters using IntRange
* Rename Altitude test
2023-10-20 12:23:20 +02:00
Lukas
8524fcc149
Adds Galaxy S10 to cameraModels ( #3828 )
2023-10-17 13:28:44 +02:00
Michael Mayer
2fed4b549c
Index: Refactor optimization worker logs and queries #3124 #3742
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-15 11:02:15 +02:00
Michael Mayer
05e29170bf
Backend: Refactor SQL batch size limit #3124 #3742
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-15 09:46:04 +02:00
Michael Mayer
b67043955d
Config: Add trace log for performance measurement #3810
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-15 09:31:57 +02:00
Michael Mayer
c8287e462f
Backend: Refactor queries for compatibility with SQLite #3124 #3742
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-15 09:31:10 +02:00
Michael Mayer
0a03071982
SQL: Refactor client config count queries #3742 #3810
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-15 08:42:24 +02:00
graciousgrey
17b473d867
Tests: Add unit tests #3818
2023-10-13 14:02:20 +02:00
graciousgrey
170c6bb3dc
Tests: Update fixtures
2023-10-13 14:00:08 +02:00
Michael Mayer
b7bbc59fca
Upgrade: Improve error handling and messages #3813
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-13 12:43:20 +02:00
Michael Mayer
09ad17d10a
Cards View: Improve camera and lens information #2040 #3077 #3816
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-13 11:35:43 +02:00
Michael Mayer
6a452bcf43
Search: Add Filters for ISO, FNumber and Focal Length Range #3818
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-12 14:53:40 +02:00
Michael Mayer
bac10302da
Cards View: Add ISO, FNumber, Exposure and Focal Length #3816
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-12 11:46:03 +02:00
Michael Mayer
f087658ed0
Docs: Fix section header starts in options.yml #3812
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-11 10:10:30 +02:00
Michael Mayer
2f9792e541
PWA: Set orientation to any in generated manifest.json #3413
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-10 20:43:44 +02:00
Michael Mayer
0470899016
Metadata: Add additional camera make and model mappings #3802
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-10 16:52:00 +02:00
Michael Mayer
3d1f93f94e
Albums: Redirect to matching collection if access was denied
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-10 15:16:35 +02:00
Michael Mayer
4d8bf12c0b
Commands: Remove unstable assertion from index_test.go
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-10 14:39:04 +02:00
Michael Mayer
3c0f1f37ad
Share: Ensure that shares are always loaded in the user entity model
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-10 14:32:04 +02:00
Michael Mayer
e6b1a28bcf
Metadata: Hide irrelevant values from supported data fields report
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-10 13:38:09 +02:00
Michael Mayer
fb419e26b7
Settings: Enable delete feature by default #3801
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-08 15:42:23 +02:00
Michael Mayer
80dd926f2d
Share: Improve query validation in the search and albums API
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-07 17:33:04 +02:00
Michael Mayer
0f321b10bc
Logs: Update log levels and messages
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-07 16:00:23 +02:00
Michael Mayer
ede4b3b897
Config: Refactor authentication settings #782
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-07 11:09:27 +02:00
Michael Mayer
10a58f2097
Metadata: Improve camera make and model string normalization #2040
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-06 09:51:40 +02:00
Michael Mayer
61e7de69a4
Metadata: Improve camera make and model string normalization #2040
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-06 09:24:12 +02:00
Michael Mayer
b0ef310b96
Metadata: Improve camera make string normalization #2040
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-06 03:33:03 +02:00
Michael Mayer
c78d12b56d
Search: Limit result file types when sorting by similarity #2040
...
This also attempts to improve the (undocumented) randomly sorted
search results.
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-06 02:57:07 +02:00
Michael Mayer
9b3efe6872
Search: Update number of expected results in filter tests #2040
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-06 02:34:21 +02:00
Michael Mayer
604849e92c
Search: Include RAW files in results by default #2040
...
With these changes the size and type of the RAW file as well as other
details can be displayed in the Cards View. This also improves the
indexing of camera and lens metadata.
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-06 02:22:48 +02:00
Michael Mayer
cfe1ff3299
Config: Change "web server" to "Web server" in the docs for consistency
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-09-24 18:05:49 +02:00
Michael Mayer
26ca084699
Videos: Cache embedded media to allow streaming and transcoding #3764
...
This is a follow-up improvement for the following feature requests that
have already shipped with our stable release:
- Live Photos: Add support for Samsung Motion Photos #439
- Live Photos: Add support for Google Camera Motion Photos #1739
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-09-24 17:13:06 +02:00
Michael Mayer
20407452f0
UX: Prefer original media files for cards view details #2040
...
This also adds camera lens information to the cards view details.
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-09-24 14:11:52 +02:00