Mercurial > libervia-backend
comparison doc/components.rst @ 3786:cebfdfff3e99
doc (components): message delivery documentation:
fix 366
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 24 May 2022 17:57:41 +0200 |
parents | 98ba02637436 |
children | 24f70a29e382 |
comparison
equal
deleted
inserted
replaced
3785:0b54be42d0aa | 3786:cebfdfff3e99 |
---|---|
468 | 468 |
469 Because AP doesn't send any event when *following* or *followers* collections are | 469 Because AP doesn't send any event when *following* or *followers* collections are |
470 modified, those collections can't be cached, and thus the translation to public pubsub | 470 modified, those collections can't be cached, and thus the translation to public pubsub |
471 subscriptions is done as best as possible given the constraints. | 471 subscriptions is done as best as possible given the constraints. |
472 | 472 |
473 Messages Delivery | |
474 ~~~~~~~~~~~~~~~~~ | |
475 | |
476 The gateway can convert AP publications to either XMPP pubsub items (using `XEP-0277 | |
477 (Microblogging over XMPP)`_ when suitable) or to XMPP messages (`<message>` stanzas, i.e. | |
478 the ones used for instant messaging). Of course it also convert in a similar way in the | |
479 other direction (XMPP → ActivityPub). | |
480 | |
481 A received AP items will be converted to an XMPP pubsub item if any of the following | |
482 condition is fulfilled: | |
483 | |
484 - it is addressed to the special `*public* collection`_ | |
485 - it is addressed to a local *followers* collection | |
486 | |
487 A received AP item will be convert to an XMPP message if all the following condition are | |
488 fulfilled: | |
489 | |
490 - it is **not** addressed to the special *public* collection | |
491 - it is **not** addressed to a any local *followers* collection. | |
492 | |
493 In other words, if an AP items is addressed directly to one or more local users, is not | |
494 public and is not addressed to a *followers* collection, it will be converted to an XMPP | |
495 message, otherwise it will be converted to an XMPP pubsub item. | |
496 | |
497 The behaviour is symmetric, thus if you send an XMPP message it will be converted to an AP | |
498 item which will be only addressed to your recipient. If you write using XMPP pubsub, the | |
499 suitable followers collections of the target AP actor will be automatically added, and the | |
500 item will have the special *public* collection added. | |
501 | |
502 .. note:: | |
503 | |
504 ActivyPub doesn't do any kind of `end-to-end encryption`_, it is **not** the same level of | |
505 privacy as XMPP. | |
506 | |
507 Messages will be at minimum readable by the administrators of the AP gateway and of the | |
508 ActivyPub server of the destinee. Be sure to understand that before sending messages. | |
509 | |
510 If you need more privacy, you need to use either XMPP only (without the ActivityPub | |
511 gateway) with clients implementing correctly end-to-end encryption, or an other | |
512 software. Depending of the level of pricacy required, you may want to use | |
513 authentication by a separated channel, a client which has been audited, encryption by | |
514 default, etc. This is beyond the scope of this AP gateway documentation. | |
515 | |
516 In short, don't use ActivityPub if you need a high level of privacy. This is a current | |
517 protocol limitation, and there is nothing that this gateway can do about this until | |
518 ActivityPub and its implementations evolve. | |
519 | |
520 .. _XEP-0277 (Microblogging over XMPP): https://xmpp.org/extensions/xep-0277.html | |
521 .. _*public* collection: https://www.w3.org/TR/activitypub/#public-addressing | |
522 .. _end-to-end encryption: https://en.wikipedia.org/wiki/End-to-end_encryption | |
523 | |
473 Using the Component (for developers) | 524 Using the Component (for developers) |
474 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 525 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
475 | 526 |
476 Publication of AP items can be tested using the following method (with can be accessed | 527 Publication of AP items can be tested using the following method (with can be accessed |
477 through the ``APSend`` bridge method, client is then replaced by the ``profile`` name, as | 528 through the ``APSend`` bridge method, client is then replaced by the ``profile`` name, as |