Commit Graph

392 Commits

Author SHA1 Message Date
Ivan Enderlin
a7cb094aaf feat(sqlite): Add a write-only connection in SqliteStateStore.
This patch introduces a write-only connection in `SqliteStateStore`
_à la_ `SqliteEventCacheStore`. The idea is to get many read-only
connections, and a single write-only connections behind a lock, so that
there is a single writer at a time.

This patch renames the `acquire` method to `read`, and it introduces a
new `write` connection.
2025-10-03 15:00:37 +02:00
Ivan Enderlin
764a8a4c77 doc(sqlite): Fix // to ///.
This patch transforms an inline comment into a doc comment.
2025-10-03 15:00:37 +02:00
Benjamin Bouvier
37ee5d5075 refactor(stores): get rid of the temporary compute_filter_strings now that Ruma has been updated
This was a local fix for a bug in Ruma, that has been fixed upstream since then, so we can get rid of the workaround now.
2025-10-01 16:50:23 +00:00
Ivan Enderlin
2ec33183c4 doc(sqlite): Fix formatting and typo. 2025-09-26 16:07:20 +02:00
multi prise
fa7fd5df42 Remove unusual import 2025-09-24 12:35:17 +02:00
multi prise
adc8276162 Add key opening logic to the media store 2025-09-24 12:35:17 +02:00
multi prise
abecb33e34 Lint code 2025-09-24 12:35:17 +02:00
multi prise
b26ce417f0 Add comments documenting the new structure 2025-09-24 12:35:17 +02:00
multi prise
5a1bd54bb1 Implement use of Zeroizing struct for string 2025-09-24 12:35:17 +02:00
multi prise
0d0e2aa472 Add ZeroiseOnDrop trait to secret and make the key a Box 2025-09-24 12:35:17 +02:00
multi prise
88ed0afcb3 Replace missing line 2025-09-24 12:35:17 +02:00
multi prise
9938ab8b1f Reimplement previous tests for the store and on top of the one testing the opening with a key 2025-09-24 12:35:17 +02:00
multi prise
eed7384934 Remove some superfluous change 2025-09-24 12:35:17 +02:00
multi prise
32255cd178 Update changelog 2025-09-24 12:35:17 +02:00
multi prise
c51536a054 reformat 2025-09-24 12:35:17 +02:00
multi prise
6099928b40 Remove conditional logic for running tests 2025-09-24 12:35:17 +02:00
multi prise
fac1f295b2 Correct wrong borrow 2025-09-24 12:35:17 +02:00
multi prise
24d02a72e3 implement zeroizing of secrets after use 2025-09-24 12:35:17 +02:00
multi prise
2a073043fd Revert "Use of lifetime in order to not clone/copy the data"
This reverts commit 009ee3a0e5fdff1332aaf0b1e62ab2577d728b82.
2025-09-24 12:35:17 +02:00
multi prise
8e759befd3 Refactorize tests config to correspond with the new api 2025-09-24 12:35:17 +02:00
multi prise
9faffa5b10 Temporary comment insecure function 2025-09-24 12:35:17 +02:00
multi prise
75b8c9fe93 Use of lifetime in order to not clone/copy the data 2025-09-24 12:35:17 +02:00
multi prise
004d98230c Uncomment the config directives and allows test to run faster by usinf an insecure export function 2025-09-24 12:35:17 +02:00
multi prise
eb37a0d2e1 Update some expect text to make sure they reflect the use of secret instead of a only a key to encrypt a store 2025-09-24 12:35:17 +02:00
multi prise
8a0e61e95b correct comment on the state store file 2025-09-24 12:35:17 +02:00
multi prise
a2e2765298 correct comment on the crypto store file 2025-09-24 12:35:17 +02:00
multi prise
6e1e0981b1 remove typo 2025-09-24 12:35:17 +02:00
multi prise
b2120a8f3d Update changelog to represent changes 2025-09-24 12:35:17 +02:00
multi prise
5d169ae765 Comment the use 2025-09-24 12:35:17 +02:00
multi prise
34dd7ea3cd Revert get_or_create_store_cypher to use 2025-09-24 12:35:17 +02:00
multi prise
4930c589a8 Refactorize SqliteStoreConfig::key and SqliteStoreConfig::passphrase method 2025-09-24 12:35:17 +02:00
multi prise
f6d2e73cab More reformarting of files 2025-09-24 12:35:17 +02:00
multi prise
2bd5ec30d1 Correct some tests 2025-09-24 12:35:17 +02:00
multi prise
425b502977 Format files 2025-09-24 12:35:17 +02:00
multi prise
0dfecd78d6 Updated the store encryption to use a enum Secret instead of passphrase 2025-09-24 12:35:17 +02:00
multi prise
4754ac2cbf Updated changelog 2025-09-24 12:35:17 +02:00
multi prise
72bb452b5b Remove all passphrase mention 2025-09-24 12:35:17 +02:00
multi prise
c17dbf9ebe Replace the passphrase logic with a key logic in the implementation of encrypted store 2025-09-24 12:35:17 +02:00
multi prise
5fd7c9e179 Add the key logic to the SqliteStoreConfig struct 2025-09-24 12:35:17 +02:00
Benjamin Bouvier
bf4a46e8de chore: rename a few badly named variables in the sql event cache store 2025-09-22 11:20:49 +02:00
Ivan Enderlin
5ccbc1c378 fix(sqlite): Empty the cache after the introduction of TimelineEvent::timestamp.
After the merge of
https://github.com/matrix-org/matrix-rust-sdk/pull/5648, we want
all events to get a `TimelineEvent::timestamp` value (extracted from
`origin_server_ts`).

To accomplish that, we are emptying the event cache. New synced events
will be built correctly, with a valid `TimelineEvent::timestamp`,
allowing a clear, stable situation.
2025-09-12 15:06:46 +02:00
Shrey Patel
c2bc465c06 feat(base): Add get_room_events to EventCacheStore trait and impls. 2025-09-12 12:59:22 +02:00
Kévin Commaille
90eb403c18 sqlite: Drop media table from event cache store
Since the media store was split into a separate database.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-09-11 11:43:04 +01:00
dragonfly1033
2afbdfae0b Split media store from event cache store. (#5568)
This PR is a start to the process of splitting the media store from the
event cache store. #5410

It contains:
* Split `MediaStore` trait from `EventCacheStore`. 
* Rename `EventCacheStoreMedia` to `MediaStoreInner`. 
* Move relevant tests into `MediaStoreIntegrationTests`.

This will be done over 3 PR's (reviewing 1, 2, 3 then merging 3 into 2
into 1).

A reminder comment for my own sanity:
This PR will not pass tests until after merging.

Current state of this PR:
- [x] Step 1 reviewed #5568
- [x] Step 2 reviewed #5569 
- [x] Step 3 reviewed #5571 
- [x] Step 3 merged into Step 2
- [x] Step 2 merged into Step 1
- [ ] Add changes to changelog.
- [ ] Ready to merge 🎉 

Note, may also want to: 
* Re-organize file structure
* Split/refactor benchmarks namely `benchmarks/benches/event_cache.rs`

<!-- description of the changes in this PR -->

- [ ] Public API changes documented in changelogs (optional)

<!-- Sign-off, if not part of the commits -->
<!-- See CONTRIBUTING.md if you don't know what this is -->
Signed-off-by: Shrey Patel shreyp@element.io

---------

Co-authored-by: Shrey Patel <shreyp@element.io>
2025-09-10 12:03:02 +02:00
Damir Jelić
4c1f80faf7 chore: Release matrix-sdk version 0.14.0 2025-09-04 16:05:48 +02:00
Benjamin Bouvier
4adbb4aa88 feat(sdk): add support for persisting the thread subscription catchup tokens 2025-09-02 14:57:49 +02:00
multisme
ea59bc8955 Implement querying inboundgroupsessions by room_id (#5534)
History sharing: improve efficiency of building key bundle

Signed-off-by: multi
[multiestunhappydev@gmail.com](mailto:multiestunhappydev@gmail.com)

Partially Implement
https://github.com/matrix-org/matrix-rust-sdk/issues/5513

---------

Signed-off-by: multisme <korokoko.toi@gmail.com>
Co-authored-by: Richard van der Hoff <richard@matrix.org>
2025-09-02 12:07:07 +01:00
Damir Jelić
20cd0bedfa chore: Fix a clippy warning about a useless conversion 2025-09-01 16:33:10 +02:00
Damir Jelić
1e30916754 chore: Bump most of our deps 2025-09-01 16:33:10 +02:00
Benjamin Bouvier
9f22f550bf refactor(sdk): avoid duplicating the comparison of bumpstamps 2025-09-01 10:38:34 +02:00