Commit graph

471 commits

Author SHA1 Message Date
Michael Mayer
a4e2bb33b9 2FA: Rename "Auth Secret" to "App Password" for more clarity #782 #808
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-19 18:10:01 +01:00
graciousgrey
62ddac3142 Tests: Add unit tests 2024-01-19 15:29:09 +01:00
Michael Mayer
06a18f5818 Auth: Add "access_token" authentication provider type #782 #808 #3943
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-19 14:41:08 +01:00
Michael Mayer
4ba32a7220 2FA: Add two-factor authentication key model and tests #782 #808 #3943
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-19 13:45:30 +01:00
graciousgrey
f08ef59245 Tests: Add unit tests 2024-01-17 14:56:08 +01:00
Michael Mayer
2912ac9464 Security: Refactor cache headers, auth token validation & UI #782 #808
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-17 14:16:02 +01:00
Michael Mayer
127b30dd31 Config: Allow CORS for additional file types when using a CDN #3931
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-16 21:25:29 +01:00
Michael Mayer
3946e2a16f API: Refactor "404 Not Found" response handler #3931
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-16 20:56:43 +01:00
Michael Mayer
abfea6354c Config: Allow CORS for fonts and CSS when using a CDN #3931
see https://www.w3.org/TR/css-fonts-3/#font-fetching-requirements

Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-16 20:04:36 +01:00
Michael Mayer
da10b30fdf API: Add auth token to vary header for caching proxies and CDNs #3931
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-16 16:42:21 +01:00
Michael Mayer
c3b9b73d1d API: Only allow CDNs to cache GET, HEAD, and OPTIONS requests #3931
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-16 16:17:16 +01:00
Michael Mayer
02a1b12edb Config: Update CORS header defaults and add /api/v1/echo endpoint #3931
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-16 14:36:08 +01:00
Michael Mayer
239708f00f Config: Add options to configure CORS origin, headers and methods #3931
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-16 12:14:06 +01:00
Michael Mayer
c5f6a28448 Config: Add PHOTOPRISM_HTTP_CORS option for CDN users #3931 #3940
In addition, the Access-Control-Allow-Origin header is set to the same
URL if an Origin header is found in the request (experimental).

Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-15 13:06: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
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
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
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
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
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
0fd3c1790c Search: Add inline documentation to sortby.RandomExpr()
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-01 16:22:09 +01:00
Michael Mayer
8e81f78c12 Metadata: Add "TV" to list of special terms in specialwords.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-12-14 16:11:32 +01:00
Michael Mayer
a29ac670f7 Metadata: Update list of special terms in specialwords.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-12-13 22:09:31 +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
Michael Mayer
e80b07795c Metadata: Update list of special terms in specialwords.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-12-11 17:55:22 +01:00
Michael Mayer
dbe525b99a Metadata: Update list of special terms in specialwords.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-12-11 09:25:16 +01:00
Michael Mayer
2dc680adc9 Metadata: Update list of special terms in specialwords.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-12-09 16:37:15 +01:00
Michael Mayer
99b3af1863 Metadata: Update list of special terms in specialwords.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-12-09 15:49:33 +01:00
graciousgrey
55d5e7a732 Videos: Add file info for .mxf files #3935 2023-12-06 12:02:13 +01:00
graciousgrey
3507f5ef55 Add support for .mxf files #3935 2023-12-06 11:59:53 +01:00
Michael Mayer
ab491c3032 2FA: Add generator for random 16-digit app passwords #808
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-11-27 19:43:53 +01:00
Michael Mayer
fe182d78f4 Metadata: Add tests to pkg/txt/file_title_test.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-11-01 12:04:37 +01:00
Michael Mayer
29be637d62 Metadata: Update pkg/txt/specialwords.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-31 14:06:52 +01:00
Michael Mayer
6123ddf4af Metadata: Update pkg/txt/specialwords.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-31 11:38:57 +01: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
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
8975c781c5 Live Photos: Default to MP4 for Google HVC1 Motion Photos Playback #3814
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-12 15:20:54 +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
Raymond
63515f84d7
Map VP09 to codec vp9 (#3792) 2023-10-06 04:09:07 +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
a0904c4008 Docs: Update pkg/live/README.md and pkg/video/README.md
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-05 09:37:25 +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