libervia-backend/libervia/backend/memory
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
..
migration core: get rid of pickle: 2024-02-23 13:31:04 +01:00
__init__.py refactoring: renamed sat package to libervia.backend 2023-06-02 11:49:51 +02:00
cache.py core: get rid of pickle: 2024-02-23 13:31:04 +01:00
crypto.py refactoring: renamed sat package to libervia.backend 2023-06-02 11:49:51 +02:00
disco.py refactoring: renamed sat package to libervia.backend 2023-06-02 11:49:51 +02:00
encryption.py refactoring: renamed sat package to libervia.backend 2023-06-02 11:49:51 +02:00
memory.py core: add new init_script_path option: 2023-12-13 22:00:22 +01:00
params.py refactoring: renamed sat package to libervia.backend 2023-06-02 11:49:51 +02:00
persistent.py refactoring: renamed sat package to libervia.backend 2023-06-02 11:49:51 +02:00
sqla.py core: get rid of pickle: 2024-02-23 13:31:04 +01:00
sqla_config.py refactoring: renamed sat package to libervia.backend 2023-06-02 11:49:51 +02:00
sqla_mapping.py core: get rid of pickle: 2024-02-23 13:31:04 +01:00