[dev] Functional & Design Specification: VFS with Version control and Life-cycle management

Chuck Hagenbuch chuck at horde.org
Thu May 8 12:48:54 PDT 2003


Quoting Chris Carter <chris.carter at ebunda.com>:

> I am not aware of any audit trail features in Horde, but it would make
> sense that any activities (adding new document, version, revision,
> changing life cycle stage, etc.) should also be recorded with the
> document information through VFS.

There is a bunch of logging; it might be possible to make use of that and to
 write some tools which interpreted the logging data (for certain backends,
anyways) to provide an audit trail. Or you may want something more
specialized.

> Some modifications need to be carried out to VFS.php in order to support
> some of the new features and a new version of sql_file.php renamed
> dms.php would implement the rest. The following functions need to be
> written:

That sounds okay; it might be better to have a VFS_DMS api, though, and
allow multiple backend implementations of that?

> Documents:
> 1. Check-in/Add new document (this involves version and revision
> control, and triggers content info procedure).
> 2. Check-out document (leaves document locked exclusive to check-out
> user).
> 3. Download document (does not lock document).
> 4. Unlock document (admin function).
> 5. Content info procedure (either auto or manual depending on doc type).
> 6. Change life-cycle stage (new docs or versions always get the first
> life-cycle stage by default).
> 7. Change document access control.
> 8. Get document details and attributes.
> 9. Get Current Document.
> 10. Enumerate Document versions/revisions.

All sounds good.

> Repositories:
> 1. New repository
> 2. Change repository (name, ACL, Life-Cycle).
> 3. Change repository hierarchy level.
> 4. Enumerate repositories.
> 5. Enumerate documents in a given repository (filters by life-cycle
> stage).

Sounds good; I'm not entirely sure how/where you're going to define/store
repositories at this point, but I'm sure it's doable.

> Life Cycles:
> 1. Create new life-cycle.
> 2. Define life cycle stages.
> 3. Enumerate Life-cycles
> 4. Enumerate stages of a life-cycle.

These should probably be stored/managed by the DMS app itself, not by the
VFS api...

> I don't know if I have left anything out, but I believe the gist of it
> is all here. Anyway, the purpose of this mail is to make sure my
> analysis is complete and hear your comments; so let me have it.

It sounds like a lot of work to me, but also very cool and worthwhile!

-chuck

--
Charles Hagenbuch, <chuck at horde.org>
The alligators were there, too, in a bathtub inside the house.


More information about the dev mailing list