libervia-backend/libervia
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Goffi a8348576ae core: get rid of pickle:
Use of `pickle` to serialise data was a technical legacy that was causing trouble to store
in database, to update (if a class was serialised, a change could break update), and to
security (pickle can lead to code execution).

This patch remove all use of Pickle in favour in JSON, notably:
- for caching data, a Pydantic model is now used instead
- for SQLAlchemy model, the LegacyPickle is replaced by JSON serialisation
- in XEP-0373 a class `PublicKeyMetadata` was serialised. New method `from_dict` and
  `to_dict` method have been implemented to do serialisation.
- new methods to (de)serialise data can now be specified with Identity data types. It is
  notably used to (de)serialise `path` of avatars.

A migration script has been created to convert data (for upgrade or downgrade), with
special care for XEP-0373 case. Depending of size of database, this migration script can
be long to run.

rel 443
2024-02-23 13:31:04 +01:00
..
backend core: get rid of pickle: 2024-02-23 13:31:04 +01:00
cli cli (call): tui output implementation: 2024-02-16 18:46:06 +01:00
frontends frontends (tools/webrtc): add a options to merge video for PiP and to specify size: 2024-02-16 18:46:02 +01:00
tui quick_frontend, tui: fix name conflict with show_resources 2023-12-01 18:23:04 +01:00