From 985b97cc043746b249dc5f73f4df1ec439186f8e Mon Sep 17 00:00:00 2001 From: Jason Robinson Date: Sun, 30 Sep 2018 20:47:52 +0300 Subject: [PATCH] Documentation updates regarding ActivityPub and other things --- README.md | 8 ++++---- docs/_static/generic_diagram.odg | Bin 12776 -> 12963 bytes docs/_static/generic_diagram.png | Bin 48563 -> 32095 bytes docs/development.rst | 4 +--- docs/example_projects.rst | 5 +++-- docs/introduction.rst | 6 +++--- docs/protocols.rst | 26 +++++++++++++++++++------- docs/usage.rst | 7 +++++-- 8 files changed, 35 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 242f722..081d477 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ # federation -Python library to abstract social web federation protocols like Diaspora. +Python library to abstract social web federation protocols like Diaspora and ActivityPub. ## Introduction -The aim of `federation` is to provide and abstract multiple social web protocols like Diaspora in one package. This way applications can be built to (almost) transparently support many protocols without the app builder having to know everything about those protocols. +The aim of `federation` is to provide and abstract multiple social web protocols like Diaspora and ActivityPub in one package. This way applications can be built to (almost) transparently support many protocols without the app builder having to know everything about those protocols. While the library does aim to provide an easy way to implement protocols like Diaspora into your application, it will not be a one to one mirror image of said protocols. The idea is to present one unified collection of entities and high level methods to the application to use. Since protocols can support different feature sets or have different ideas on even simple entities like status messages, it would be impossible to model the core entities according to a single protocol. @@ -18,7 +18,7 @@ While the library does aim to provide an easy way to implement protocols like Di ## Status -Currently the library supports a part of the Diaspora protocol with remaining parts being constantly added. See the [Diaspora](http://federation.readthedocs.io/en/latest/protocols.html#diaspora) protocol page for support status. +Currently two protocols are being focused on. Diaspora is considered in relatively stable status with most of the protocol implemented. ActivityPub support is work in progress. The code base is well tested and in use in several projects. Backward incompatible changes will however be made at this stage still, however those will be clearly documented in changelog entries. @@ -42,4 +42,4 @@ See [development and support documentation](http://federation.readthedocs.io/en/ ### Author -Jason Robinson / https://jasonrobinson.me / https://github.com/jaywink / https://git.feneas.org/jaywink +Jason Robinson / https://jasonrobinson.me / https://git.feneas.org/jaywink / https://github.com/jaywink diff --git a/docs/_static/generic_diagram.odg b/docs/_static/generic_diagram.odg index 70009c8508652a9b9d0f3693c66ce5246b1999be..471e82bd413ba5d20becc72b0f32636bf8fb670c 100644 GIT binary patch literal 12963 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�*i3yYaKO_$I1PPCus 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 literal 48563 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 diff --git a/docs/development.rst b/docs/development.rst index 40dabb1..a056a2f 100644 --- a/docs/development.rst +++ b/docs/development.rst @@ -34,8 +34,6 @@ Built documentation is available at ``docs/_build/html/index.html``. Contact for help ---------------- -Easiest via FreeNode IRC, channel ``#python-federation`` (`webchat here `_). - -There is also a `Gitter chat `_ available. +Easiest via Matrix on channel ``#socialhome:matrix.org``. You can also ask questions or give feedback via issues. diff --git a/docs/example_projects.rst b/docs/example_projects.rst index 9005d20..18f71d6 100644 --- a/docs/example_projects.rst +++ b/docs/example_projects.rst @@ -5,5 +5,6 @@ Projects using federation For examples on how to integrate this library into your project, check these examples: -* `Socialhome `_ - a federated home page builder slash personal social network server with high emphasis on card style content visualization. -* `Social-Relay `_ - a reference server for the public content relay system that uses the Diaspora protocol. +* `Socialhome `_ - a federated home page builder slash personal social network server with high emphasis on card style content visualization. +* `Social-Relay `_ - a reference server for the public content relay system that uses the Diaspora protocol. +* `The Federation info `_ - statistics and node list for the federated web. diff --git a/docs/introduction.rst b/docs/introduction.rst index f1bbfd3..a3437ef 100644 --- a/docs/introduction.rst +++ b/docs/introduction.rst @@ -1,7 +1,7 @@ Introduction ============ -The aim of *federation* is to provide and abstract multiple social web protocols like Diaspora in one package. This way applications can be built to (almost) transparently support many protocols without the app builder having to know everything about those protocols. +The aim of *federation* is to provide and abstract multiple social web protocols like Diaspora and ActivityPub in one package. This way applications can be built to (almost) transparently support many protocols without the app builder having to know everything about those protocols. While the library does aim to provide an easy way to implement protocols like Diaspora into your application, it will not be a one to one mirror image of said protocols. The idea is to present one unified collection of entities and high level methods to the application to use. Since protocols can support different feature sets or have different ideas on even simple entities like status messages, it would be impossible to model the core entities according to a single protocol. @@ -10,7 +10,7 @@ While the library does aim to provide an easy way to implement protocols like Di Status ------ -Currently the library supports a part of the Diaspora protocol with remaining parts being constantly added. See the `Diaspora `_ protocol page for support status. +Currently two protocols are being focused on. Diaspora is considered in relatively stable status with most of the protocol implemented. ActivityPub support is work in progress. The code base is well tested and in use in several projects. Backward incompatible changes will however be made at this stage still, however those will be clearly documented in changelog entries. @@ -40,5 +40,5 @@ License Author ...... -Jason Robinson / `jasonrobinson.me `_ / `GitHub `_ / `GitLab `_ +Jason Robinson / `jasonrobinson.me `_ / `GitLab `_ / `GitHub `_ diff --git a/docs/protocols.rst b/docs/protocols.rst index a12f202..9822c29 100644 --- a/docs/protocols.rst +++ b/docs/protocols.rst @@ -1,22 +1,25 @@ Protocols ========= +Currently two protocols are being focused on. Diaspora is considered in relatively stable status with most of the protocol implemented. ActivityPub support is work in progress. + +For example implementations in real life projects check :ref:`example-projects`. + .. _diaspora: Diaspora -------- -Currently the library supports a part of the protocol with remaining parts being constantly added. +This library only supports the `current renewed version `_ of the protocol. Compatibility for the legacy version was dropped in version 0.18.0. -Note! Diaspora project is currently rewriting parts of the protocol. This library aims to support the `new version `_. When possible, compatibility will be kept with the current and legacy versions but this is not the main objective. +The feature set supported is the following: -The feature set supported by this release is approximately the following: - -* WebFinger, hCard and other discovery documents +* Webfinger, hCard and other discovery documents * NodeInfo 1.0 documents * Social-Relay documents * Magic envelopes, signatures and other transport method related necessities * Entities as follows: + * Comment * Like * Photo @@ -26,6 +29,15 @@ The feature set supported by this release is approximately the following: * Contact * Reshare -Implementation unfortunately currently requires knowledge of how Diaspora discovery works as the implementer has to implement all the necessary views correctly (even though this library provides document generators). However, the magic envelope, signature and entity building is all abstracted inside the library. +.. _activitypub: -For example implementations in real life projects check :ref:`example-projects`. +ActivityPub +----------- + +Features currently supported: + +* Webfinger +* Entities as follows: + + * Profile + * Post diff --git a/docs/usage.rst b/docs/usage.rst index cc1594f..35eab46 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -98,6 +98,7 @@ Some ready provided views and URL configuration exist for Django. Note! Django is not part of the normal requirements for this library. It must be installed separately. +.. autofunction:: federation.entities.activitypub.django.views.activitypub_object_view .. autofunction:: federation.hostmeta.django.generators.rfc7033_webfinger_view .. autofunction:: federation.hostmeta.django.generators.nodeinfo2_view @@ -116,13 +117,15 @@ Some settings need to be set in Django settings. An example is below: FEDERATION = { "base_url": "https://myserver.domain.tld, + "get_object_function": "myproject.utils.get_object", "get_profile_function": "myproject.utils.get_profile", "nodeinfo2_function": "myproject.utils.get_nodeinfo2_data", "search_path": "/search/?q=", } * ``base_url`` is the base URL of the server, ie protocol://domain.tld. -* ``get_profile_function`` should be the full path to a function that will return a dictionary with profile information. The function should take the following parameters: ``handle``, ``guid`` and ``request``. It should look up a profile with one or more of the provided parameters. It should return a ``Profile`` entity. +* ``get_object_function`` should be the full path to a function that will return the object matching the ActivityPub ID that is passed to this function. Needed for the ``activitypub_object_view`` decorator. +* ``get_profile_function`` should be the full path to a function that should return a ``Profile`` entity. The function should take the following parameters: ``handle``, ``guid`` and ``request``. It should look up a profile with one or more of the provided parameters. * ``nodeinfo2_function`` (optional) function that returns data for generating a `NodeInfo2 document `_. Once configured the path ``/.well-known/x-nodeinfo2`` will automatically generate a NodeInfo2 document. The function should return a ``dict`` corresponding to the NodeInfo2 schema, with the following minimum items: :: @@ -140,7 +143,7 @@ Some settings need to be set in Django settings. An example is below: Protocols --------- -The code for opening and creating protocol messages lives under each protocol module in ``federation.protocols``. Currently Diaspora protocol is the only protocol supported. +The code for opening and creating protocol messages lives under each protocol module in ``federation.protocols``. Each protocol defines a ``protocol.Protocol`` class under it's own module. This is expected to contain certain methods that are used by the higher level functions that are called on incoming messages and when sending outbound messages. Everything that is needed to transform an entity into a message payload and vice versa should be here.