imip-agent

docs/wiki/FilesystemUsage

1065:2175787d1896
2016-03-04 Paul Boddie Merged changes from the default branch. freebusy-collections
     1 = Filesystem Usage =     2      3 The behaviour and operation of imip-agent is controlled by resources stored     4 in the filesystem on the host on which the software is running. These resources     5 are organised as follows:     6      7 {{{#!table     8 '''Resource''' || '''Default Location''' || '''Purpose'''     9 ==    10 Free/busy || `/var/www/imip-agent/static`    11 || Per-user directories containing [[../FreeBusyPublishing|free/busy resources]]    12 .. for publication over the Web    13 ==    14 Journal || `/var/lib/imip-agent/journal`    15 || Per-quota directories containing journal information recording    16 .. [[../Resources|resource]] usage    17 ==    18 Preferences || `/var/lib/imip-agent/preferences`    19 || Per-user directories containing [[../Preferences|preferences]] controlling    20 .. each user's experience of the software    21 ==    22 Store || `/var/lib/imip-agent/store`    23 || Per-user directories containing calendar objects and scheduling information    24 }}}    25     26 Note that the free/busy resources are located in `/var/www` as opposed to    27 `/var/lib` since they are intended to be published on the Web.    28     29 == Journal Structure ==    30     31 Within the journal directory are a collection of subdirectories, each of which    32 represent a distinct quota group for one or more resources. When a user attempts    33 to reserve a resource in such a group, their ability to schedule that resource    34 will depend on how much they are using the other resources in that group.    35     36 The directory for each quota group contains the following entries:    37     38 {{{{#!table    39 '''Entry''' || '''Purpose'''    40 ==    41 `freebusy`    42 || A directory containing files, one per user, each containing period descriptions    43 .. for reservations made by that user, in chronological order, structured    44 .. similarly to the `freebusy` file found in each user's own store; the record is    45 .. consolidated for all resources in a quota group, but it is not consolidated for    46 .. groups of users    47 {{{    48 freebusy/USER    49 }}}    50 ==    51 `groups`    52 || A mapping from user identities to group identifiers indicating the sharing    53 .. of a quota across a number of users    54 ==    55 `journal`    56 || A directory containing consolidated schedules, one per user or user group,    57 .. describing reservations for resources sharing a quota made by the indicated    58 .. user or group, structured similarly to the `freebusy` file found in each    59 .. resource's own store    60 {{{    61 journal/GROUP    62 journal/USER    63 }}}    64 ==    65 `limits`    66 || A mapping from user identities or group identifiers to quota limits    67 }}}}    68     69 == Store Structure ==    70     71 Within the store directory are a collection of user-specific subdirectories    72 acting as each user's own store directory containing various files and further    73 subdirectories.    74     75 The store directory for each user is considered in isolation from all other    76 users' directories: imip-agent ''does not'' go looking for information belonging    77 to other users when processing information on behalf of a particular user.    78     79 The following entries are defined within a user's own store directory:    80     81 {{{{#!table    82 '''Entry''' || '''Purpose'''    83 ==    84 `cancellations`    85 || Retains cancelled event details in `objects` and `recurrences` structures    86 .. corresponding to those at the top level of the store from which the    87 .. cancelled events originate:    88 {{{    89 cancellations/objects/UID    90 cancellations/recurrences/UID/RECURRENCE-ID    91 }}}    92 ==    93 `counters`    94 || Retains counter-proposals for events in `objects` and `recurrences`    95 .. structures corresponding to those at the top level of the store for which    96 .. the counter-proposals are received, with a counter-proposal for each    97 .. respondent being held for each object or recurrence involved:    98 {{{    99 counters/objects/UID/ATTENDEE   100 counters/recurrences/UID/RECURRENCE-ID/ATTENDEE   101 }}}   102 ==   103 `freebusy`   104 || A file containing period descriptions in chronological order, one per line,   105 .. indicating start and end datetimes (in UTC), unique identifier (`UID`),   106 .. transparency, summary and organiser   107 ==   108 `freebusy-offers`   109 || A file containing period descriptions in chronological order for   110 .. scheduling offers made by counter-proposals sent by the user   111 ==   112 `freebusy-other`   113 || A collection of files, one per user, each containing period descriptions   114 .. received or deduced for that user in chronological order, structured similarly   115 .. to the store user's own `freebusy` file   116 {{{   117 freebusy-other/USER   118 }}}   119 ==   120 `freebusy-providers`   121 || A file containing details of [[../EventRecurrences|recurring events]] for which   122 .. new free/busy records must be [[../CronIntegration|periodically generated]]   123 .. because these events recur indefinitely   124 ==   125 `objects`   126 || A collection of files, one per event, each bearing as its name the unique   127 .. identifier (`UID`) of the event, with each file containing the event data:   128 {{{   129 objects/UID   130 }}}   131 ==   132 `recurrences`   133 || A collection of directories, one per "parent" event, each bearing as its name   134 .. the unique identifier (`UID`) of the event, with each directory containing a   135 .. collection of files, one per event recurrence, each bearing as its name the   136 .. normalised recurrence identifier (`RECURRENCE-ID`) of the recurrence, with each   137 .. file containing the data of the event recurrence:   138 {{{   139 recurrences/UID/RECURRENCE-ID   140 }}}   141 ==   142 `requests`   143 || A list of records, one per line, each consisting of a unique identifier (`UID`),   144 .. normalised recurrence identifier (`RECURRENCE-ID`) if appropriate, and   145 .. (optionally) a scheduling method, indicating the availability of an incoming   146 .. scheduling request for handling by a user   147 }}}}