libervia-backend/libervia/backend/plugins/plugin_comp_ap_gateway
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
..
__init__.py plugin XEP-053, component AP gateway: use the new trigger.add_with_check method 2023-12-09 19:20:13 +01:00
ad_hoc.py refactoring: renamed sat package to libervia.backend 2023-06-02 11:49:51 +02:00
constants.py component AP gateway: fix AP media type in GET and POST requests headers 2023-07-06 11:34:52 +02:00
events.py refactoring: renamed sat package to libervia.backend 2023-06-02 11:49:51 +02:00
http_server.py core: get rid of pickle: 2024-02-23 13:31:04 +01:00
pubsub_service.py component AP gateway: be sure to have a string for error message. 2023-12-11 18:07:58 +01:00
regex.py refactoring: renamed sat package to libervia.backend 2023-06-02 11:49:51 +02:00