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 }}}}