imip-agent

Annotated docs/wiki/FilesystemUsage

1024:48b37822d2a0
2016-01-29 Paul Boddie Moved common test initialisation into a separate script.
paul@988 1
= Filesystem Usage =
paul@988 2
paul@988 3
The behaviour and operation of imip-agent is controlled by resources stored
paul@988 4
in the filesystem on the host on which the software is running. These resources
paul@988 5
are organised as follows:
paul@988 6
paul@988 7
{{{#!table
paul@988 8
'''Resource''' || '''Default Location''' || '''Purpose'''
paul@988 9
==
paul@988 10
Store || `/var/lib/imip-agent/store`
paul@988 11
|| Per-user directories containing calendar objects and scheduling information
paul@988 12
==
paul@988 13
Preferences || `/var/lib/imip-agent/preferences`
paul@988 14
|| Per-user directories containing [[../Preferences|preferences]] controlling
paul@988 15
.. each user's experience of the software
paul@988 16
==
paul@988 17
Free/busy || `/var/www/imip-agent/static`
paul@988 18
|| Per-user directories containing [[../FreeBusyPublishing|free/busy resources]]
paul@988 19
.. for publication over the Web
paul@988 20
}}}
paul@988 21
paul@988 22
Note that the free/busy resources are located in `/var/www` as opposed to
paul@988 23
`/var/lib`.
paul@988 24
paul@988 25
== Store Structure ==
paul@988 26
paul@988 27
The store directory for each user is considered in isolation from all other
paul@988 28
users' directories: imip-agent does not go looking for information belonging to
paul@988 29
other users when processing information on behalf of a particular user.
paul@988 30
paul@988 31
The following subdirectories are defined within a user's store directory:
paul@988 32
paul@988 33
{{{{#!table
paul@988 34
'''Directory''' || '''Purpose'''
paul@988 35
==
paul@988 36
`cancellations`
paul@988 37
|| Retains cancelled event details in `objects` and `recurrences` structures
paul@988 38
.. corresponding to those at the top level of the store from which the
paul@988 39
.. cancelled events originate:
paul@988 40
{{{
paul@988 41
cancellations/objects/UID
paul@988 42
cancellations/recurrences/UID/RECURRENCE-ID
paul@988 43
}}}
paul@988 44
==
paul@988 45
`counters`
paul@988 46
|| Retains counter-proposals for events in `objects` and `recurrences`
paul@988 47
.. structures corresponding to those at the top level of the store for which
paul@988 48
.. the counter-proposals are received, with a counter-proposal for each
paul@988 49
.. respondent being held for each object or recurrence involved:
paul@988 50
{{{
paul@988 51
counters/objects/UID/ATTENDEE
paul@988 52
counters/recurrences/UID/RECURRENCE-ID/ATTENDEE
paul@988 53
}}}
paul@988 54
==
paul@988 55
`freebusy`
paul@988 56
|| A file containing period descriptions in chronological order, one per line,
paul@988 57
.. indicating start and end datetimes (in UTC), unique identifier (`UID`),
paul@988 58
.. transparency, summary and organiser
paul@988 59
==
paul@988 60
`freebusy-offers`
paul@988 61
|| A file containing period descriptions in chronological order for
paul@988 62
.. scheduling offers made by counter-proposals sent by the user
paul@988 63
==
paul@988 64
`freebusy-other`
paul@988 65
|| A collection of files, one per user, each containing period descriptions
paul@988 66
.. received or deduced for that user in chronological order, structured similarly
paul@988 67
.. to the store user's own `freebusy` file
paul@988 68
==
paul@988 69
`freebusy-providers`
paul@988 70
|| A file containing details of [[../EventRecurrences|recurring events]] for which
paul@988 71
.. new free/busy records must be [[../CronIntegration|periodically generated]]
paul@988 72
.. because these events recur indefinitely
paul@988 73
==
paul@988 74
`objects`
paul@988 75
|| A collection of files, one per event, each bearing as its name the unique
paul@988 76
.. identifier (`UID`) of the event, with each file containing the event data:
paul@988 77
{{{
paul@988 78
objects/UID
paul@988 79
}}}
paul@988 80
==
paul@988 81
`recurrences`
paul@988 82
|| A collection of directories, one per "parent" event, each bearing as its name
paul@988 83
.. the unique identifier (`UID`) of the event, with each directory containing a
paul@988 84
.. collection of files, one per event recurrence, each bearing as its name the
paul@988 85
.. normalised recurrence identifier (`RECURRENCE-ID`) of the recurrence, with each
paul@988 86
.. file containing the data of the event recurrence:
paul@988 87
{{{
paul@988 88
recurrences/UID/RECURRENCE-ID
paul@988 89
}}}
paul@988 90
==
paul@988 91
`requests`
paul@988 92
|| A list of records, one per line, each consisting of a unique identifier (`UID`),
paul@988 93
.. normalised recurrence identifier (`RECURRENCE-ID`) if appropriate, and
paul@988 94
.. (optionally) a scheduling method, indicating the availability of an incoming
paul@988 95
.. scheduling request for handling by a user
paul@988 96
}}}}