Ostatus is a protocol for federation of public content among sites. It comprises other four protocols, activitystreams, pshb, webfinger and salmon.
We've been working on adding support for these protocols to elgg 1.7.1 since some time, and now we have something like a workable implementation. On this page I will keep information up to date on supported features.
I'd like to hear feedback from people about the progress. Also, the ostatus people have expressed interest on talking about this with the elgg team.
Note this implementations are still untested with external services, for the moment all has been tested just among elgg instances.
Plugins
Ostatus support is developed as a number of elgg plugins. Ideally they could plug and play on elgg, but due to a couple details right now some modifications to elgg are needed to make it work.
The plugins are:
Features
Implementation details
The implementation goes like this: activitystreams can serialize an atom view with activitystreams extra information. Then, atom updates (the entries inside a feed) can arrive either through pshb, or salmon. Pshb goes through a special hub that handles the subscription, while salmon updates go directly s2s.
Foreign objects get marked with foreign=true, and also get a number of extra metadata, like atom_id, which is the global identifier for objects.
Url and icon hooks provided, so the non-native remote objects can show appropriate icon and link.
For salmon, every site has an rsa key to sign updates.
Hacks
At the moment the system works by hacking the add_to_river function, to add a plugin hook. (actually two, one for foreign and one for non-foreign objects). Salmon and pshb register to this hook to make the notifications when applicable.
To provide the remote icon, we hook into tools/entity, which doesnt exist in vanilla elgg.
Obscure bug in elgg_get_entities_from_metadata when entities have no metadata at all (affects some searches on threaded forums). This has been locally fixed (or maybe just worked around?) and i dont know if it happens on elgg 1.8.
Links
examples:
unofficial lorea (production) elgg with ostatus supported:
plugins:
info@elgg.org
Security issues should be reported to security@elgg.org!
©2014 the Elgg Foundation
Elgg is a registered trademark of Thematic Networks.
Cover image by RaĆ¼l Utrera is used under Creative Commons license.
Icons by Flaticon and FontAwesome.