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 Meanwhile, the journal and store resources are only present in the filesystem 30 if the [[../FileStore|file store]] is in use. Where a 31 [[../DatabaseStore|database store]] is being used instead, such resources are 32 located in a database system. 33 34 == Journal Structure == 35 36 Within the journal directory are a collection of subdirectories, each of which 37 represent a distinct quota group for one or more [[../Resources|resources]]. 38 When a user attempts to reserve a resource in such a group, their ability to 39 schedule that resource will depend on how much they are using the other 40 resources in that group. 41 42 The directory for each quota group contains the following entries: 43 44 {{{{#!table 45 '''Entry''' || '''Purpose''' 46 == 47 `delegates` 48 || A file containing details of the identities employing this quota to consolidate 49 .. their schedules, between which delegation may take place if their schedules 50 .. permit it 51 == 52 `freebusy-other` 53 || A directory containing files, one per user (each containing period descriptions 54 .. for reservations made by that user, in chronological order, structured 55 .. similarly to the `freebusy` file found in each user's own store) or one per 56 .. group (for reservations made by users belonging to the groups defined for the 57 .. quota); the record in each file is consolidated for all resources in a quota 58 .. group 59 {{{ 60 freebusy-other/GROUP 61 freebusy-other/USER 62 }}} 63 == 64 `freebusy-providers` 65 || A file containing details of [[../EventRecurrences|recurring events]] for which 66 .. new free/busy records must be [[../CronIntegration|periodically generated]] 67 .. because these events recur indefinitely 68 == 69 `groups` 70 || A mapping from user identities to group identifiers indicating the sharing 71 .. of a quota across a number of users 72 == 73 `limits` 74 || A mapping from user identities or group identifiers to quota limits 75 }}}} 76 77 == Store Structure == 78 79 Within the store directory are a collection of user-specific subdirectories 80 acting as each user's own store directory containing various files and further 81 subdirectories. 82 83 The store directory for each user is considered in isolation from all other 84 users' directories: imip-agent ''does not'' go looking for information belonging 85 to other users when processing information on behalf of a particular user. 86 87 The following entries are defined within a user's own store directory: 88 89 {{{{#!table 90 '''Entry''' || '''Purpose''' 91 == 92 `cancellations` 93 || Retains cancelled event details in `objects` and `recurrences` structures 94 .. corresponding to those at the top level of the store from which the 95 .. cancelled events originate: 96 {{{ 97 cancellations/objects/UID 98 cancellations/recurrences/UID/RECURRENCE-ID 99 }}} 100 == 101 `counters` 102 || Retains counter-proposals for events in `objects` and `recurrences` 103 .. structures corresponding to those at the top level of the store for which 104 .. the counter-proposals are received, with a counter-proposal for each 105 .. respondent being held for each object or recurrence involved: 106 {{{ 107 counters/objects/UID/ATTENDEE 108 counters/recurrences/UID/RECURRENCE-ID/ATTENDEE 109 }}} 110 == 111 `freebusy` 112 || A file containing period descriptions in chronological order, one per line, 113 .. indicating start and end datetimes (in UTC), unique identifier (`UID`), 114 .. transparency, summary and organiser 115 == 116 `freebusy-offers` 117 || A file containing period descriptions in chronological order for 118 .. scheduling offers made by counter-proposals sent by the user 119 == 120 `freebusy-other` 121 || A collection of files, one per user, each containing period descriptions 122 .. received or deduced for that user in chronological order, structured similarly 123 .. to the store user's own `freebusy` file 124 {{{ 125 freebusy-other/USER 126 }}} 127 == 128 `freebusy-providers` 129 || A file containing details of [[../EventRecurrences|recurring events]] for which 130 .. new free/busy records must be [[../CronIntegration|periodically generated]] 131 .. because these events recur indefinitely 132 == 133 `objects` 134 || A collection of files, one per event, each bearing as its name the unique 135 .. identifier (`UID`) of the event, with each file containing the event data: 136 {{{ 137 objects/UID 138 }}} 139 == 140 `recurrences` 141 || A collection of directories, one per "parent" event, each bearing as its name 142 .. the unique identifier (`UID`) of the event, with each directory containing a 143 .. collection of files, one per event recurrence, each bearing as its name the 144 .. normalised recurrence identifier (`RECURRENCE-ID`) of the recurrence, with each 145 .. file containing the data of the event recurrence: 146 {{{ 147 recurrences/UID/RECURRENCE-ID 148 }}} 149 == 150 `requests` 151 || A list of records, one per line, each consisting of a unique identifier (`UID`), 152 .. normalised recurrence identifier (`RECURRENCE-ID`) if appropriate, and 153 .. (optionally) a scheduling method, indicating the availability of an incoming 154 .. scheduling request for handling by a user 155 }}}}