[kforge-dev] moving to project first rather than plugin first file layout

Rufus Pollock rufus.pollock at okfn.org
Wed Oct 19 09:01:33 UTC 2005


Currently we store service data on disk in following structure:

$KFORGE_HOME/var/plugin_data/<plugin_name>/<service_id>

I propose to change to:

Service Data:

$KFORGE_HOME/var/project_data/<project_name>/<plugin_name>/<service_id>

Plugin Data:

I.e. data that is for plugin only (i.e. common across all services of a 
given plugin).

$KFORGE_HOME/var/project_data/plugin_data/<plugin_name>

Note that currently I do not know of anythinng that would require plugin 
data space.

Why Have This Change
====================

Projects are /more/ first-order than plugins on our system. Access is 
generally by project not by plugin. This should be reflected in the file 
structure because:
   * A file system is tree based and thus for access control related to 
the file system it is useful to have all project services under the 
project root.
   * For example when giving dav or ssh access to a project it is useful 
for this to give access to relevant project stuff. Particularly in case 
of ssh this is very important as it allows user to control a lot of 
stuff themselves.

The one cost of this change is that it will be harder to remove a given 
plugin as we have to go through each project deleting relevant services. 
However the reverse is true in the current situation for deletion of 
projects (a more common event) and in any case either approach is 
trivial to run because of how system is designed (services delete 
themselves).

Direct cost of this change: very low because all path layout is 
centralized in the UrlBuilder class.

Cost to users: this change will be costly to those having an installed 
kforge system if they wish to upgrade. However there are currently no 
installed systems other than testing ones.

Regards,

Rufus




More information about the kforge-dev mailing list