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