Michael Mayer
01da5bdec7
CRC32: Move checksum generation to a dedicated package
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-20 14:56:07 +01:00
Michael Mayer
2df0b6e4b1
Server: Exclude .mp4 and .zip from compression and refactor vary #4018
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-20 12:48:42 +01:00
Michael Mayer
58bb52022f
Server: Refactor middleware registration #4018
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-20 11:47:39 +01:00
Michael Mayer
d98a1cb2ab
GZIP: Enable compression before API routes are registered #4018
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-19 22:46:31 +01:00
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
Michael Mayer
7e7ba69982
Auth: Add client_uid and client_name to auth_sessions table #808 #3943
...
This also adds the ability to change the client role if needed and
improves the usage information and output of the CLI commands.
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-18 16:53:05 +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
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
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
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
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
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
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
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
91cc358fc5
Clean: Shorten error log sanitization function name #439 #3588
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-08-15 17:05:55 +02:00
Michael Mayer
7f13218229
Logs: Add LogError() func to sanitize error messages #439 #3588
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-08-15 08:12:52 +02:00
Michael Mayer
c82a4b2287
HTTP: Refactor Unix socket support #2337 #3595
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-08-14 10:43:05 +02:00
Silver Bullet
2bf50082f5
Backend: Support listening on Unix Socket #2337 #3595
...
When HTTP listening address starts with unix: and contains /, listen
at given path instead of a TCP socket.
TLS or AutoTLS will not work since there is no TLS layer when using
the unix domain socket.
2023-08-14 10:00:35 +02:00
Michael Mayer
36bac7ab48
Faces: Add POST REST endpoint to manually create new file markers #1548
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-07-27 19:13:00 +02:00
Michael Mayer
a45f8d40cf
Server: Add "Access-Control-Allow-Origin" to header/security.go
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-06-06 14:49:28 +02:00
Michael Mayer
7a7ffbced2
CLI: Reduce logging output in production environments #3370
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-05-05 09:55:00 +02:00
Michael Mayer
3e4121cc78
Server: Add "restart required" flag and button to restart the server
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-03-27 19:27:19 +02:00
Michael Mayer
9ad86ac017
Edit: Change image orientation through the user interface #464
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-03-20 16:18:27 +01:00
Michael Mayer
addc5e8251
Auth: Refactor users path configuration and base path default
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-03-14 21:47:14 +01:00
Michael Mayer
60162b3fc5
Auth: Refactor user management API and CLI commands #98
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-03-08 23:30:39 +01:00
Michael Mayer
826addb4c1
PWA: Create manifest.json in code without using a template #3181
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-02-10 15:53:01 +01:00
Michael Mayer
a7b1c1b11e
WebDAV: Allow read access in read-only mode and improve logs #3177 #3183
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-02-09 13:14:56 +01:00
Michael Mayer
ce830ea6b0
Server: Handle HEAD requests #2965
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-02-09 10:16:25 +01:00
Michael Mayer
a5a538a67e
Links: Change https://photoprism.app/ to https://www.photoprism.app/
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-02-08 09:07:42 +01:00