Research and design full-content E2EE with OIDC, recovery and trusted devices
Maintainers usually reply within 1 day
@PelikanFix16 is already working on this.
Since Oct 18, 2026.
Assessment
This issue has not been assessed yet.
Description
Outcome
Founder request from the current session (2026-10-18): provide an optional deployment mode with full end-to-end encryption of Flux content. A person signs in with an existing OIDC/Keycloak identity; their first trusted device creates encryption keys and an offline recovery kit. Conversations, tasks, mind maps, Wiki and files are decrypted only on authorized devices holding the necessary keys. Stealing the server database or backups must not expose that content. Trusted phones and computers should remain convenient without repeatedly entering recovery codes.
This issue delivers thorough research, a feasible architecture and a reviewed implementation contract, before production implementation. OIDC authentication, IdP recovery codes and Flux data-decryption keys are separate concerns. No algorithm, library, key hierarchy or recovery mechanism is selected by this issue.
Ownership and status
- Implementation owner for the research/design: @PelikanFix16. Independent evaluator: @Zamojski5 or an eligible independent peer.
- Milestone: Flux — complete application and release.
- Status: queued, not started; preserve the current WIP limit and finish existing work first.
- Founder outcome is accepted; the proposed security architecture requires independent assessment before implementation. One comprehensive review and at most one final check of fixes; minor P3 findings do not start another cycle.
Acceptance criteria
- AC1 — Threat model and complete data inventory. Document protected assets and attacker capabilities: stolen database/backups/blob storage, server/operator or IdP compromise, key substitution, malicious web delivery/XSS, lost/compromised devices and offline attacks on recovery material. Inventory content, titles, attachments, history, drafts, CRDT updates, exports, indexes, notifications, logs, queues and caches. State precisely which metadata remains visible, what the server can verify without plaintext, and the limits of revoking content already obtained by a device. Record gaps explicitly; do not describe partial coverage as full E2EE.
- AC2 — Evidence-based cryptographic architecture. Compare established protocols and maintained, reviewed libraries using dated primary sources and implementation observations. Design key generation, authenticated encryption, key hierarchy, device authenticity, group sharing, membership changes, rotation, forward-secrecy tradeoffs, replay/tamper protection and concurrent/offline collaboration. Separate observations, vendor claims and inferences. No custom cryptographic primitives or server-held decryption master key. Deliver a justified architecture decision, alternatives and unresolved risks.
- AC3 — OIDC onboarding, recovery and trusted devices. Design first login for existing/provisioned OIDC identities; generate high-entropy keys on the client and a clearly explained offline recovery code/kit. Compare safe pairing/new-device approval, recovery, code replacement, lost devices, loss of every key, account linking and IdP resets. IdP administrators, password resets and identity impersonation must not automatically decrypt data. Specify protected device storage and practical unlock/lock behavior across desktop and phone/PWA, logout, browser restart, storage clearing and reinstall; verify actual browser/platform support. Never retain an unprotected reusable decryption secret as a convenience shortcut.
- AC4 — Whole-product integration and migration. Map changes required for current server-side collaboration/validation, permissions, search, previews, notifications, background work, backup/restore, import/export, media and AI/MCP. Define the trust boundary for any explicitly authorized assistant and compatibility with workspace AI lock #614; identify features that require client execution or must be unavailable in E2EE mode. No silent server-decryption fallback. Specify installation configuration, existing-data migration, mixed-mode boundaries, failure handling and downgrade protection, including historical plaintext backups.
- AC5 — Feasibility evidence and reviewable delivery plan. Produce a reproducible bounded Docker proof of concept with Keycloak, two people and multiple devices, Chromium/WebKit and desktop/phone journeys. Test recovery, pairing/revocation, wrong keys, tampering/replay, membership changes, offline synchronization and restore; inspect stored data/backups/logs for plaintext. Measure meaningful performance/storage impacts, including #228. Commit research, diagrams, UX flows, compatibility matrix, prototype evidence and complete implementation acceptance criteria under
docs/. Obtain independent security-focused assessment; distinguish agent review from any external cryptographic audit and record what remains unverified.
Coordination and starting references
Use the current contracts in docs/product/mcp-identity.md, docs/product/mobile-pwa.md, docs/product/decisions.md and the live-editing architecture. Coordinate #614 and #228. Existing media-specific E2EE work (#59/#63) is related, not a substitute for full-content encryption.
Research starting points, checked 2026-10-18, not selected solutions: IETF MLS / RFC 9420, W3C Web Cryptography, Keycloak Server Administration. The owner must perform the deeper research and validate current library/platform capabilities.
- Dominant language
- TypeScript
- Stars
- 3
- Forks
- 0
- Avg merge
- 19h 9m
- Merged PRs (30d)
- 334
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ColdPhase/flux
-
Workspace AI lock: block every agent/assistant and hide all AI interactionPossibly taken @PelikanFix16 claimed this 3 days ago. Openagent:planning enhancement
ColdPhase/flux#614 · 1 assignee ·
Maintainers usually reply within 1 day
-
UI polish: fix project header more menu popover blowout, and reflect ChatGPT/Codex in Settings runtimePossibly taken @PelikanFix16 claimed this 3 days ago. Openagent:review bug enhancement
ColdPhase/flux#606 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Conversation: deduplicate 'Create task' in message menu with 'Add to map', and style cited quotesPossibly taken @PelikanFix16 claimed this 3 days ago. Openagent:review bug enhancement
ColdPhase/flux#605 · 3 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Light motion across the interface: dialogs, panel, views, state changes and press (final design §2)Possibly taken @Zamojski5 claimed this 3 days ago. Openenhancement
ColdPhase/flux#593 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Spokój: calm, consistent polish of Prostota (founder direction 2026-10-15)Possibly taken A pull request linked to this issue is open or already merged. Openenhancement
Difficulty 5/5 Over a week Newbie friendliness 8/100
ColdPhase/flux#500 · 2 comments ·
Maintainers usually reply within 1 day
Similar issues
-
Area/Cloud Needs Triage Type/Bug
Difficulty 1/5 1-3 hours Newbie friendliness 86/100
wso2/product-integrator#2847 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
bluesky-social/social-app#12118 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 1/5 Under an hour Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
heygen-com/hyperframes#6021 ·
Maintainers usually reply within 1 day
-
check:passed streams:edit
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day