Synchronisation of wikifabs
Contents
Context
The wikifab source code is available to anyone for free.
Many organizations have installed their own wikifab-based-site on their own server and they would like to publish some of their tutorials (created on their wikifab) to www.wikifab.org (or to another wikifab instance).
State of the art
Mediawiki comes with a bunch of API that can be use to synchronize content among wikifab instances Those APIs enable to create, view and edit pages.
You can find the API documentation here: https://www.mediawiki.org/wiki/API:Main_page
Installation guide
The guide to install a wikifab instance is here : https://github.com/Wikifab/wikifab-main
Features
login
APIs call need to log in on the target wiki. We imagine two different ways :
1st way : either each user on the source wiki must specified an access key on their preference, to link their account on the source wiki to an account on the target wiki. As the result, every tutorials synchronised to the source wiki will appear to be done by the user who do the sync action.
2nd way : an access key is configured globaly on the source wiki, and linked to one unique account on the target wiki. As the result, every tutorials synchronised to the source wiki will appear to be done by an user corresponding to the source wiki (which can be a specific type of user).
configure remote wiki
Admin of the source wiki must be able to configure a remote wiki to be a target wiki for sync tutorials.
It means :
- add name of the target wiki
- add url of the target wiki
- if needed, add login keys
Additionally, it may require some additional configuration : if categories has been changed, we must set a matching table to match a category from the source wiki, to a category on the target wiki. It may require more configuration if form template is changed. It may also be required on the target wiki to check that the tutorial content match actual forms fields.
This could be done in the configuration file LocalSettings.php
Push a tutorial to wikifab
Once a remote wiki is configured, a button "sync tutorial to <remote wiki name>" should appear an each tutorial.
Click on this button will send the tutorial content, with images to the target wiki.
Dealing with conflicts
When modification was made on parent
When modification was made on child