Release Notes for ActivityPub Application 1.1

Last modified by Vincent Massol on 2020/03/31

This is the release notes for ActivityPub Application 1.1.

This release mainly focused on bringing persistency to allow a long term usage of the application, but also improved the capabilities to interact with other systems. We mainly focused on starting the interaction with Nextcloud and Mastodon which are already partially supported. Then we improved the UI of the application and integrated the messaging capability.

New and Noteworthy (since ActivityPub Application 1.0)

For Users

Create a dedicated ActivityPub dashboard for users

 
We introduced a new tab in the user profile to display the ActivityPub Dashboard. If you're looking on your own profile, you will get the same information and actions as those available from the ActivityPub Application panel. Now if you look on this tab for another user profile, either from another XWiki instance, or on the same instance, you'll be able to get the information to reach that user from ActivityPub.

More details

Allow to send message to followers

 
It is now possible to send message to your followers or to specific users. For doing so, go in the "Messaging" tab in your ActivityPub Application. You can insert multiple target users to your message, by inserting their identifiers, and/or you can select your followers.

Allow to find a user by an identifier and a domain

 
When following or messaging users, multiple solution exist to identify the users.

If the user is an XWiki account, the address of her user page can be used, for instance http://xwiki_domain/xwiki/bin/view/XWiki/UserName.

If the user is an XWiki account of the current instance, his user name can be used directly, for instance UserName.

Finally, if the user is an account of a server supporting Webfinger, his webfinger identifier can be used, for instance @UserName@nextcloud_domain.com.

Follow users between XWiki and NextCloud

 
In the user dashboard, the follow user field can be used for following users of the current instance, but also for following users of external instances supporting the ActivityPub and Webfinger protocols.

To do so, the input must be in the form @username@servername.

Once a follow request sent, the user will eventually appear in the list of followed users of the user dashboard.

The followed user will only appear in the following list if the following request is accepted. This is usually done automatically but can be subject to manual user validation according to the settings of the external instance.

Similarly, external user that support Webfinger can follow users of an XWiki instance by using their Webfinger identifiers.
Finally, external users can send messages to XWiki users. The received message appears in the notifications of the user.

For Admins

Add an ActivityPub Administration page

 
It is now possible to configure how to handle the Follow request globally for the whole server.

Using accept means that all request will be automatically accepted and reject that they will be all automatically rejected. Ask aims at asking the user if he wants to be followed or not. This functionality has bot been entirely implemented yet though. The default value is Accept.

Miscellaneous

  • Support WebFinger: We implemented as part of ActivityPub Application the support to the WebFinger draft protocol. This protocol allows to request a user on a domain based on common identifier (such as @foo@domain) and to use the provided information to connect services. In the case of ActivityPub it is generally used to retrieve the ActivityPub endpoint of a user.

    In order to allow your users to benefit from WebFinger, you need to configure the server to comply on the request scheme. You can use for example the following nginx configuration to redirect webfinger URLs to the ActivityPub Application WebFinger resolution:

     location ~* ^/.well-known/webfinger(.*)$ {
      access_log off;
      rewrite ^/.well-known/webfinger(.*) /xwiki/webfinger$1 permanent;
      expires 0m;
    }

For Developers

  • Implement storage persistency: We implemented a first version of ActivityPub persistency with a Solr Core which is initialized at the first XWiki restart after the installation of the extension. That is why we need the administrator to restart XWiki once ActivityPub is installed. This will be fixed in the future to avoid this step.

    Note that this storage currently only store the local objects that are created in the current instance: actors and activities related to the current instance, and the associated objects. We might change that in the future to handle more properly the case of unreachable instances.

    In the same way for now the schema of our data is really simple and only contains a unique id, a type (related to the type field of the ActivityPub object) and the serialized content. This will certainly evolve to allow to perform scalable request in the database.

Full list of issues

 
Full list of issues fixed for 1.1.

Installation instructions

Persistency Preparation

For XWiki 12.2, and in order to use ActivityPub properly, you need to restart your wiki after the install of the extension. This will allow initializing the database.

Webfinger Installation

This step is optional but heavily recommended since it will allow your user to have the best experience with ActivityPub.

Webfinger is a protocol that allows discovering users' information automatically. An implementation is provided with ActivityPub Application, but the protocol requires that the requests are made on a specific endpoint. Webfinger specifications require the /.well-known/webfinger endpoint to be placed at the root of the server to be discoverable.

The configuration of the reverse-proxy must be configured accordingly.
The example below shows how to adapt the Nginx configuration of XWiki for Webfinger.

The block below must be added before the location / { ... } block of the Nginx configuration.

location ~* ^/.well-known/webfinger(.*)$ {
  access_log off;
  rewrite ^/.well-known/webfinger(.*) /xwiki/webfinger$1 permanent;
  expires 0m;
}

ActivityPub Notifications

ActivityPub Application relies a lot on XWiki Notifications, so don't forget to enable the notifications for ActivityPub after installing it.

Known issues

Tags:
   

Get Connected