1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/docs/wiki/FilesystemUsage Mon Nov 02 00:06:26 2015 +0100
1.3 @@ -0,0 +1,96 @@
1.4 += Filesystem Usage =
1.5 +
1.6 +The behaviour and operation of imip-agent is controlled by resources stored
1.7 +in the filesystem on the host on which the software is running. These resources
1.8 +are organised as follows:
1.9 +
1.10 +{{{#!table
1.11 +'''Resource''' || '''Default Location''' || '''Purpose'''
1.12 +==
1.13 +Store || `/var/lib/imip-agent/store`
1.14 +|| Per-user directories containing calendar objects and scheduling information
1.15 +==
1.16 +Preferences || `/var/lib/imip-agent/preferences`
1.17 +|| Per-user directories containing [[../Preferences|preferences]] controlling
1.18 +.. each user's experience of the software
1.19 +==
1.20 +Free/busy || `/var/www/imip-agent/static`
1.21 +|| Per-user directories containing [[../FreeBusyPublishing|free/busy resources]]
1.22 +.. for publication over the Web
1.23 +}}}
1.24 +
1.25 +Note that the free/busy resources are located in `/var/www` as opposed to
1.26 +`/var/lib`.
1.27 +
1.28 +== Store Structure ==
1.29 +
1.30 +The store directory for each user is considered in isolation from all other
1.31 +users' directories: imip-agent does not go looking for information belonging to
1.32 +other users when processing information on behalf of a particular user.
1.33 +
1.34 +The following subdirectories are defined within a user's store directory:
1.35 +
1.36 +{{{{#!table
1.37 +'''Directory''' || '''Purpose'''
1.38 +==
1.39 +`cancellations`
1.40 +|| Retains cancelled event details in `objects` and `recurrences` structures
1.41 +.. corresponding to those at the top level of the store from which the
1.42 +.. cancelled events originate:
1.43 +{{{
1.44 +cancellations/objects/UID
1.45 +cancellations/recurrences/UID/RECURRENCE-ID
1.46 +}}}
1.47 +==
1.48 +`counters`
1.49 +|| Retains counter-proposals for events in `objects` and `recurrences`
1.50 +.. structures corresponding to those at the top level of the store for which
1.51 +.. the counter-proposals are received, with a counter-proposal for each
1.52 +.. respondent being held for each object or recurrence involved:
1.53 +{{{
1.54 +counters/objects/UID/ATTENDEE
1.55 +counters/recurrences/UID/RECURRENCE-ID/ATTENDEE
1.56 +}}}
1.57 +==
1.58 +`freebusy`
1.59 +|| A file containing period descriptions in chronological order, one per line,
1.60 +.. indicating start and end datetimes (in UTC), unique identifier (`UID`),
1.61 +.. transparency, summary and organiser
1.62 +==
1.63 +`freebusy-offers`
1.64 +|| A file containing period descriptions in chronological order for
1.65 +.. scheduling offers made by counter-proposals sent by the user
1.66 +==
1.67 +`freebusy-other`
1.68 +|| A collection of files, one per user, each containing period descriptions
1.69 +.. received or deduced for that user in chronological order, structured similarly
1.70 +.. to the store user's own `freebusy` file
1.71 +==
1.72 +`freebusy-providers`
1.73 +|| A file containing details of [[../EventRecurrences|recurring events]] for which
1.74 +.. new free/busy records must be [[../CronIntegration|periodically generated]]
1.75 +.. because these events recur indefinitely
1.76 +==
1.77 +`objects`
1.78 +|| A collection of files, one per event, each bearing as its name the unique
1.79 +.. identifier (`UID`) of the event, with each file containing the event data:
1.80 +{{{
1.81 +objects/UID
1.82 +}}}
1.83 +==
1.84 +`recurrences`
1.85 +|| A collection of directories, one per "parent" event, each bearing as its name
1.86 +.. the unique identifier (`UID`) of the event, with each directory containing a
1.87 +.. collection of files, one per event recurrence, each bearing as its name the
1.88 +.. normalised recurrence identifier (`RECURRENCE-ID`) of the recurrence, with each
1.89 +.. file containing the data of the event recurrence:
1.90 +{{{
1.91 +recurrences/UID/RECURRENCE-ID
1.92 +}}}
1.93 +==
1.94 +`requests`
1.95 +|| A list of records, one per line, each consisting of a unique identifier (`UID`),
1.96 +.. normalised recurrence identifier (`RECURRENCE-ID`) if appropriate, and
1.97 +.. (optionally) a scheduling method, indicating the availability of an incoming
1.98 +.. scheduling request for handling by a user
1.99 +}}}}