Cathie Integra
3f096a592b
Links: Use canonical trailing-slash form for website URLs
2026-06-24 17:20:30 +02:00
Michael Mayer
74a95fc748
ACL: Generate CLI role & auth-provider help from role tables #5667
...
Add pkg/txt.JoinOr plus acl.RolesCliUsageString and UserRoleUsageFor so the users/clients --role and --auth help derive from the role tables instead of hand-maintained literals, filtering the app/uploader aliases and visitor. Each edition lists its own roles; federatable contexts (LDAP, OIDC group-role, cluster grants) use ClusterInstanceRoles.
2026-06-16 11:57:44 +02:00
Cathie Integra
f1d5ae2ba2
ACL: Add ClusterInstanceRoles source of truth for group-role help
2026-06-16 09:32:15 +02:00
Michael Mayer
bc327016ad
Metadata: Add Camera Make and Model updates via CLI & API #5663 #5656
...
Mirror the lens make/model editing surface for cameras: entity UpdateMakeModel/SaveForm, form validation, query, search, the GET/PUT /api/v1/cameras endpoints, and the cameras CLI command, plus a cameras ACL resource and scope.
Also tidy the lens surface for parity: self-validating SaveForm, empty make/model guard, X-Count search header, service-role grant, the empty-id/slug docs, and order cameras before lenses everywhere.
2026-06-15 09:25:44 +00:00
Keith Martin
c3eda657fd
Metadata: Add Lens Make and Model updates via CLI & API #5644 #5656
...
Adds the ability to override a lens's Make/Model (e.g. fixing Pentax lenses that ExifTool decodes as `4 38`) via a new photoprism lenses update CLI command and a `PUT /api/v1/lenses/:id endpoint`, plus a `GET /api/v1/lenses` search endpoint, a new lenses ACL resource, and an lenses ls list command.
2026-06-15 09:37:32 +02:00
Michael Mayer
e1bf7096c8
Cluster: Accept all instance roles in group config, tolerate spaces
2026-06-13 12:54:54 +00:00
Ömer Duran
fddab77506
Auth: Apply Portal-granted role on OIDC instance login
...
Honor the pp_role claim (gated by pp_issuer_kind) over the group mapping so an instance login reflects the role the Portal granted, restricted to federatable roles.
2026-06-05 21:03:36 +02:00
Michael Mayer
fbe8a6889b
Auth: Add cluster_admin role with admin-tier and federation helpers
...
Adds the Portal-only cluster_admin operator role (declared in CE, registered
only on Portal builds), the acl.AdminRoles/IsAdminRole admin-tier set, and the
acl.IsFederatedRole/FederatedRoleUpdate helpers that keep cluster_admin and
visitor out of externally mapped account roles. SuperAdmin resolves to
cluster_admin on registered builds, SaveForm keeps an admin-level role on a
self-save, and UpdateUser rejects self-role changes. RoleStrings.Strings hides
visitor and none from the CLI role help.
2026-06-03 17:12:59 +02:00
Michael Mayer
570a563748
Docs: Bump copyright year to 2026 in Go package headers
2026-05-25 14:39:38 +00:00
Michael Mayer
44429bdbbb
MCP: Gate stdio on DisableMCP and add scope regression test #5024
2026-05-10 11:54:34 +00:00
Michael Mayer
df13ea9e02
MCP: Refine auth flow, JWT scope, and find_search_filters #5024 #5519
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-04-10 13:40:22 +02:00
Ömer Duran
e2f8474309
MCP: Add read-only Model Context Protocol prototype #5024 #5519
...
* MCP: Add internal read-only prototype #5024
* MCP: Fix edition detection, section assignment, and input validation #5024
* MCP: Add authenticated HTTP endpoint with ACL and experimental gate #5024
* MCP: Document client compatibility and config examples #502
* MCP: Refine ACL grants and finalize prototype polish #5024 #5519
Signed-off-by: Michael Mayer <michael@photoprism.app>
* MCP: Update go.sum #5024 #5519
Signed-off-by: Michael Mayer <michael@photoprism.app>
* MCP: Update license NOTICE files #5024 #5519
Signed-off-by: Michael Mayer <michael@photoprism.app>
---------
Signed-off-by: Michael Mayer <michael@photoprism.app>
Co-authored-by: Michael Mayer <michael@photoprism.app>
2026-04-10 12:51:11 +02:00
Michael Mayer
532ddbd270
ACL: Add "audit" permission for audit API endpoints
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-03-01 17:24:49 +01:00
Michael Mayer
c1467cb3f5
Cluster: Rename the "tenant" node role to "instance" for accuracy
...
This more accurately reflects the multi-instance architecture.
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-23 04:27:43 +01:00
Michael Mayer
5f50802384
Cluster: Rename the "app" node role to "tenant"
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-02-23 03:27:11 +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
Michael Mayer
22e3c6d6d8
Metrics: Adjust ACL rules for endpoint access #5355
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-30 11:05:32 +01:00
Michael Mayer
6c50a87632
Auth: Apply "golangci-lint" recommendations #5330
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-21 16:22:42 +01:00
Michael Mayer
755ebe0aee
Cluster: Rename RoleInstance to RoleApp in service/cluster/roles.go #98
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-31 16:46:42 +01:00
Michael Mayer
42edf100ee
Vision: Allow use of configured service key for API authentication #5299
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-30 10:02:16 +01:00
Michael Mayer
6e43f14476
Auth: Adjust JWT default scope and ACL, add tests #5230
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-29 14:28:26 +01:00
Michael Mayer
0858a2b65f
Auth: Add "photoprism show scopes" command to list all supported scopes
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-23 09:25:08 +02:00
Michael Mayer
2227aa57b2
Portal: Add cluster admin UI #98
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-16 16:21:56 +02:00
Keith Martin
b1822229ca
Backend: Improve Yes/No capabilities #5191
...
* Backend: improve Yes/No capabilities
* Backend: constants package with Yes/No maps and True/False strings
* Backend: rename constants to enum
* Backend: correct case on russian Yes, more tests
* Enum: utilise enum package
2025-10-10 13:15:15 +02:00
Michael Mayer
4bbba226b7
Security: Add a system log for publishing internal warnings and errors
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-07 21:08:04 +02:00
Michael Mayer
94b6631b3d
Test: Use PascalCase names for all Go subtests in /internal
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-02 14:50:02 +02:00
Michael Mayer
bd66110c18
Auth: Improve code comments in internal/auth/acl/scopes.go #98 #5230
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-26 05:53:28 +02:00
Michael Mayer
48a965a7cc
API: Refactor JWT-based request authorization #98 #5230
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-26 05:32:30 +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
1315df8c1f
Auth: Reformat internal/auth/acl/roles_test.go #98
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-18 17:39:50 +02:00
Michael Mayer
c9e6b7c22b
Auth: Add tests to internal/auth/acl/roles_test.go #98
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-18 17:35:11 +02:00
Michael Mayer
1c3009d9b5
Auth: Add alias for RoleNone and improve unit tests coverage #98
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-18 17:10:39 +02:00
Michael Mayer
2818a9e6a8
Auth: Add "instance" and "service" roles, fix entity/auth_client.go #98
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-18 15:23:06 +02:00
Michael Mayer
b40e4c5597
CLI: Improve usage descriptions of client/user management commands #98
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-18 14:30:19 +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
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
1b437c38f4
Auth: Add portal resource grants #98
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-08-28 12:14:50 +02:00
Michael Mayer
55b8042c98
Auth: Update ACL grants and actions
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-06-19 20:04:33 +02:00
Michael Mayer
a64e2ea445
Sharing: Allow authenticated clients to share albums #4973
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-29 08:54:16 +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
0304ed37c3
AI: Set default vision API client timeout to one minute #127 #1090
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-10 21:07:57 +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
graciousgrey
f4af470894
Tests: Add unit tests
2025-03-18 15:20:51 +01: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
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
0b6dbe4e3e
Services: Fix upload dialog and permission checks #3168
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-22 15:40:05 +01:00
Michael Mayer
e7c48492b8
Auth: Refactor ACL event and rule registration
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-03 21:02:41 +01:00
Michael Mayer
be13714991
ACL: Update test assertions in /internal/auth/acl/acl_test.go
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-29 09:32:55 +01:00
Michael Mayer
dc2167dbe0
ACL: Update checks and presets #3168
...
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-29 02:49:28 +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