element-hq / element-hq/element-meta
Encrypted-room search on Element Web (browser EventIndex, not Desktop/Seshat)
- Dominant language
- No language data
- Stars
- 112
- Forks
- 25
- Avg merge
- 6h 6m
- Merged PRs (30d)
- 4
Description
### Your use case
#### What would you like to do?
Search messages in **end-to-end encrypted rooms from Element Web in the browser**, using the same Search UI Desktop already has, without installing Element Desktop.
#### Why would you like to do it?
Every room on our deployment is E2EE. Hosted Element Web is the product client (SIWX/OIDC, no Desktop). Today Search says the feature is only available on desktop apps. That is upstream policy (`WebPlatform.getEventIndexingManager()` is null), not a config bug.
Real use: a colleague remembers a phrase from last week, hits Search, and needs to land on that encrypted message. Sending people to Desktop splits login, recovery, and support.
#### How would you like to achieve it?
Implement Element's existing `BaseEventIndexManager` / `EventIndexPeg` hook in the browser:
- Client-side index only (no server-side search, no plaintext to the homeserver)
- AES-GCM at rest in IndexedDB; wrapping key from the session pickle key (dies on logout)
- Not a Seshat WASM port (native I/O cannot run in the page)
- Labs first (`feature_web_event_index`, default off)
We have this running in production on a self-hosted Element Web and want to contribute it.
**I plan to contribute the implementation** (PR against `element-web` develop, labs-gated).
---
## Have you considered any alternatives?
- Seshat WASM: rejected. Seshat is SQLCipher + Tantivy 0.12 + native threads + Neon.
- Desktop-only: rejected for hosted-web deployments.
- Server-side / searchable-encryption MSC: out of E2EE scope.
---
## Additional context
- Branch: https://github.com/inblockio/element-web/tree/feat/web-event-index
- Open PR from: https://github.com/element-hq/element-web/compare/develop...inblockio:element-web:feat/web-event-index?expand=1
- CLA: https://cla-assistant.io/element-hq/element-web
- Chat: https://matrix.to/#/#element-dev:matrix.org
### Have you considered any alternatives?
_No response_
### Additional context
_No response_
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with WebPlatform.getEventIndexingManager(), BaseEventIndexManager, and EventIndexPeg, then review the proposed feat/web-event-index branch and linked pull request. Done means browser search works for encrypted-room messages behind feature_web_event_index, with client-side IndexedDB storage and the stated session-key lifecycle.
Written by the indexing model from the issue text.
Assessment
- Domain
- frontend, search, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 20/100