Commit graph libervia-backend/sat/plugins
Author SHA1 Message Date
Goffi
a345f4f38e plugin XEP-0167: Jingle RTP Sessions implementation:
rel 420
2023-05-29 13:38:10 +02:00
Goffi
43a0621182 plugin XEP-0353: update according to XEP changes + <description> fix:
- `XEP-0166_initiate_elt_built` trigger is now used to have the `<description>` element
  built, so they can be used with there correct arguments in the jingle initiation message
- add message processing hint as it is now specified in the XEP
2023-05-29 13:32:40 +02:00
Goffi
391112a059 plugin XEP-0176: fix candidates data format when calling Bridge's ice_candidates_new 2023-05-29 13:32:32 +02:00
Goffi
e485a64198 plugin XEP-0166: set jingle_elt, desc_elt and transport_elt:
those values are set to corresponding domish.Element in session for session
init/confirmation/accept workflow.
2023-05-29 13:32:28 +02:00
Goffi
5c6578a1f6 plugin XEP-0166, 0176, 0234: minor renaming + type hints 2023-05-29 13:32:19 +02:00
Goffi
1781694141 core: renamed messageReceived trigger to message_received 2023-05-29 13:32:08 +02:00
Goffi
6dd3348cc2 plugin XEP-0320: Use of DTLS-SRTP in Jingle Sessions:
rel 421
2023-05-15 17:02:40 +02:00
Goffi
5e6ca719ec plugin XEP-0176: Jingle ICE-UDP Transport Method implementation:
rel 419
2023-05-15 16:23:36 +02:00
Goffi
9141922d57 plugin XEP-0166: refactoring, and various improvments:
- add models for transport and applications handlers and linked data
- split models into separate file
- some type hints
- some documentation comments
- add actions to prepare confirmation, useful to do initial parsing of all contents
- application arg/kwargs and some transport data can be initialised during Jingle
  `initiate` call, this is notably useful when a call is made with transport data (this is
  the call for A/V calls where codecs and ICE candidate can be specified when starting a
  call)
- session data can be specified during Jingle `initiate` call
- new `store_in_session` argument in `_parse_elements`, which can be used to avoid
  race-condition when a context element (<decription> or <transport>) is being parsed for
  an action while an other action happens (like `transport-info`)
- don't sed `sid` in `transport_elt` during a `transport-info` action anymore in
  `build_action`: this is specific to Jingle File Transfer and has been moved there

rel 419
2023-05-15 16:23:11 +02:00
Goffi
5ba4239fcc core: don't use meta_ prefix anymore for action_extra in action_new signal. 2023-05-15 16:20:50 +02:00
Goffi
6a6f15707a massive refactoring to switch from camelCase to snake_case:
historically, Libervia (SàT before) was using camelCase as allowed by PEP8 when using a
pre-PEP8 code, to use the same coding style as in Twisted.

However, snake_case is more readable and it's better to follow PEP8 best practices, so it
has been decided to move on full snake_case. Because Libervia has a huge codebase, this
ended with a ugly mix of camelCase and snake_case.

To fix that, this patch does a big refactoring by renaming every function and method
(including bridge) that are not coming from Twisted or Wokkel, to use fully snake_case.

This is a massive change, and may result in some bugs.
2023-04-08 13:54:42 +02:00
Goffi
9b47e8c890 core (plugins): implementation of XEP-0215 "External Service Discovery":
rel 418
2023-04-07 15:16:39 +02:00
Goffi
6981f0e7c6 plugin XEP-0471: renamed "events" plugin to XEP-0471 now that there is a XEP 2023-03-30 16:47:41 +02:00
Goffi
9a09f33d72 component AP gateway: revert forgotten verbose mode 2023-03-23 17:08:41 +01:00
Goffi
c3f97ec712 component AP gateway: handle attachments 2023-03-23 15:42:21 +01:00
Goffi
072f0cc723 plugin lang detect: don't detect the language if the body is empty 2023-03-23 15:39:48 +01:00
Goffi
cb2144bdf4 core (xmpp), component file sharing, plugin XEP-0363: enabled_features + HTTP Upload:
add a mechanism to explicitely enable some features in components, and use it to enable
HTTP Upload only if it's explicitely enabled.
2023-03-23 15:38:07 +01:00
Goffi
6a5de4440e plugin XEP-0277: handle "related" and "enclosure" links:
those links are used for attachments, "enclosure" for files, "related" when it's other
kind of data, such as an external website (in this case the `external` key is set in the
attchment).
2023-03-23 15:32:10 +01:00
Goffi
f11243bcee plugin XEP-0277: ensure that max-items is set to max when creating a node 2023-03-20 12:01:13 +01:00
Goffi
182fef1134 component AP gateway: add mention to direct messages:
when a direct (not public) message is sent to AP peer, a mention should be present
otherwise the peer won't receive a notification in most AP implementation (notably
Mastodon).
2023-03-20 11:47:13 +01:00
Goffi
7787676e4e component AP gateway (http): fix missing pformat module in verbose mode 2023-03-18 23:11:28 +01:00
Goffi
23514e8b37 component AP gateway (http): add verbose log when signature verification fails on POST request 2023-03-18 20:12:38 +01:00
Goffi
8e09c143e7 component AP gateway (http): handle properly NotFound error:
When an `exceptions.NotFound` is received, log a warning message and return the
appropriate HTTP code instead of raising the default `exceptions.InternalError`.
2023-03-18 16:53:21 +01:00
Goffi
614ccc3a6f component AP gateway: fix bad use of parseAPURL return data:
`parent_item_id` was not retrieved correctly, probably due to a missed update after code
change.
2023-03-18 16:20:30 +01:00
Goffi
f8387a7291 plugin AP gateway: fix exception on HEAD requests 2023-03-18 15:01:55 +01:00
Goffi
b6b2189433 plugin XEP-0277: when publisher is not found, check ancestor in both client and component namespaces 2023-03-16 16:43:47 +01:00
Goffi
3994b8d40a component AP gateway (http/outbox): return data when no RSM is available 2023-03-16 15:56:11 +01:00
Goffi
3f6ef10bac plugin XEP-0465: log a warning and return empty list/dict when forbidden error is received:
this error probably means that the service doesn't support PPS.
2023-03-16 12:33:33 +01:00
Goffi
199f18366c plugin XEP-0384: skip MessageReceived trigger when in a component:
OMEMO is not used in components so far, but the trigger is trying to request OMEMO PEP
nodes, which causes an error with virtual pubsub service of AP component.
2023-03-16 12:31:24 +01:00
Goffi
619fcca7da plugin XEP-0060: fix namespace on node subscriptions request 2023-03-16 12:29:34 +01:00
Goffi
4454753049 component AP gateway: reset stream position after getting payload:
the stream position needs to be reset, as the body may be read again to compute signature
hash.
2023-03-16 12:28:52 +01:00
Goffi
00894ec73f plugin XEP-0384: run profileConnected workflow in background:
XEP-0384 connection workflow can be very long when connecting after a while (due to
OLDMEMO migration notably), which can lead to bad UX.

It is not necessary to `await` it as `encrypt` and `decrypt` already wait for the plugin
to be initialized correctly, so the workflow is now run in background.
2023-03-10 17:22:45 +01:00
Goffi
2f954ccbf7 plugin XEP-0313: don't wait for MAM to be retrieved in connection workflow:
MAM retrieval can be long, and can be done after connection, message just need to be
sorted when being inserted (i.e. frontends must do insort).
To avoid blocking connection for too long and result in bad UX and timeout risk, one2one
MAM message are not retrieved in background.
2023-03-10 17:22:45 +01:00
Goffi
1008801fe7 plugin XEP-0045: dot not wait for MAM retrieval to be completed:
in `_join_MAM`, `room.fully_joined` is called before retrieving the MAM archive, as the
process can be very long, and is not necessary to have the room working (message can be
received after being in the room, and added out of order). This avoid blocking the `join`
workflow for an extended time.

Some renaming and coroutine integrations.
2023-03-10 17:22:41 +01:00
Goffi
6ad9431678 plugin app manager: start doesn't wait anymore for actual app start:
Application may be long to start (e.g. a Docker app may have to download images first,
and even without the downloading, the starting could be long), which may lead to UI
blocking or bridge time out.

To prevent that, `start` is now returning immediately, and 2 new signals are used to
indicate when the application is started, of if something wrong happened.

`start` now returns initial app data, including exposed data without the computed exposed
data. The computed data must be retrieved after the app has been started.
2023-03-04 18:30:47 +01:00
Goffi
187369d1ca component AP gateway (http_server): use log.exception instead of log.error 2023-03-02 12:39:16 +01:00
Goffi
efb13e64b2 component AP gateway: fix missing argument when calling APOutboxPageRequest 2023-02-10 17:37:37 +01:00
Goffi
52f7a2b11f component AP gateway: don't percent-encode @:
Mastodon doesn't like when "@" is percent-encoded (because it doesn't do it, and it checks
that the URL matches the ID without taking care of percent-encoding).
2023-02-10 17:20:02 +01:00
Goffi
895ddd36be plugin XEP-0470: create a default configuration if node config can't be accessed 2022-12-05 11:54:47 +01:00
Goffi
6459ef59bc component AP gateway: fix bad condition 2022-11-25 16:34:09 +01:00
Goffi
9560a23f78 component AP gateway: fix header checking for redirection 2022-11-25 16:14:10 +01:00
Goffi
faf5e43527 component AP gateway: ignore actor delection notifications:
When a `Delete` activity was received and the object was the emitting actor itself, the
signature checking was failing if the actor was unknown (due to the impossibility to
retrieve the actor public key, as it is no more accessible).

To avoid that, those notifications are ignored for now. In the future they should clean
the cache linked to this actor.
2022-11-15 18:15:16 +01:00
Goffi
b30a558f13 component AP gateway: properly close the HTTP connection on checkSignature exception:
if something is going wrong during `checkSignature` (other than signature verification
failing), a `500 Internal Server Error` code is returned, and the connection is properly
closed.
2022-11-15 18:10:33 +01:00
Goffi
4d14a623fc component AP gateway: parse body immediately on POST request:
the body is parsed immediately during a `POST` request: this avoids duplication of code,
and allows to check the body data before continuing (will be used to filter some requests
in a future patch).
2022-11-15 18:07:34 +01:00
Goffi
d6f710bd0b component AP gateway: fix pubsub attachment plugin call following renaming. 2022-11-15 18:03:07 +01:00
Goffi
c8326e24d2 component AP gateway: log at debug level instead of warning when no client is set 2022-11-15 18:02:16 +01:00
Goffi
020da52ddd component AP gateway: HTML redirection:
when a request is done on AP endpoint and `Accept` header is not set to
`application/json`, the request can now be redirected to a configurable URL.
2022-11-11 13:51:20 +01:00
Goffi
1ebe54a024 plugin XEP-0384: log import_error when import is failing 2022-11-10 15:16:43 +01:00
Goffi
e08d8207d6 plugin pte: Pubsub Target Encryption implementation:
This plugin lets encrypt a few items for a specific set of entities.

rel 382
2022-10-31 13:46:51 +01:00
Goffi
5623d2c4ad cli (file/send): add --encrypt argument to request encryption:
rel 378
2022-10-31 04:09:38 +01:00