[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