feat: add secure multi-user list sharing and OIDC support (resolves #81) - #137
Open
vk2amv wants to merge 1 commit into
Open
feat: add secure multi-user list sharing and OIDC support (resolves #81)#137vk2amv wants to merge 1 commit into
vk2amv wants to merge 1 commit into
Conversation
- add local and OIDC users, groups, roles, and administration - add per-user, group, manager, and ownership-based list permissions - support list ownership transfers and duplicate names across owners - add item attribution and list activity history - scope exports, imports, templates, history, ordering, and offline data - secure WebSocket events, sessions, offline caches, and API access - add administrator recovery and environment-file configuration - add database migrations and comprehensive authorization tests - update dependencies and require Go 1.25.12 - expand documentation and translations
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds comprehensive multi-user support to Koffan while preserving local authentication and adding optional OIDC integration.
Major changes
Users and authentication
--admin-recoverymode..envand--env-fileconfiguration support.APP_PASSWORDin favour of database-backed accounts.Groups and OIDC
List permissions
Lists can be shared directly with users or groups using:
Managers can modify sharing but cannot transfer ownership.
Administrators retain access to every list. Owners and administrators can transfer list ownership, with automatic renaming when the destination owner has a conflicting list name.
Different users can own lists with the same name without leaking the existence of private lists.
Attribution and activity
Data isolation
The following are now scoped by user ownership or list permissions:
Offline caches are isolated per authenticated user and cleared during logout.
Security improvements
Database migration
Migration from pre-multi-user databases is automatic.
APP_PASSWORDcan bootstrap an administrator namedadminduring the first upgraded startup.A database backup is recommended before upgrading.
Compatibility notes
GET /lists/:id/activatewas removed; clients must usePOST.created_byandupdated_byfields.APP_PASSWORDremains available only as a deprecated migration fallback.Verification
go test ./...go test -race ./...go vet ./...govulncheck: zero reachable vulnerabilities