Version 3 (modified by Fran Boon, 10 years ago) ( diff )


BluePrint: Plugins


Plugins allow people to extend Sahana Eden without their code needing to be added to Trunk & yet keeping their Trunk install conmpletely clean.

This helps prevent merge conflicts between different deployment branches & hence reduces the risk of forking.



The End-User wishes to be able to browse a repository of plugins, viewing their names, descriptions & who maintains them. They wish to be able to click on a plugin to easily install them into their running instance of Eden.


The Developer wishes to be able to develop new functionality which extends a base Eden install without needing to have anything added to Trunk.

This functionality may include:


  • A plugin is a Web2Py application which acts as a co-app to the main Eden instance.
  • The plugin will have standard files to identify itself to Eden:
    • Metadata (Name, Description, Maintainer)
    • Menu entries
    • List of Modules/Functions to be added to Auth UI
  • The Eden instance can be configured with a list of plugins using settings.plugins = ["plugin1", "plugin2"]
    • This could be done in either models/ or a Template
    • Q: How can we download these from a URL if not found?
  • S3Menu to be extended to read the settings & add additional menu entries found in those folders
    • Templates which don't use S3Menu will not support these, but that's seen as a bug in these templates

Future extensions


Once implemented the design will move here:


Note: See TracWiki for help on using the wiki.