1.1 --- a/docs/wiki/Configuration Fri Mar 11 18:34:56 2016 +0100
1.2 +++ b/docs/wiki/Configuration Fri Mar 11 19:08:12 2016 +0100
1.3 @@ -16,10 +16,15 @@
1.4
1.5 == System-Level and Tool Configuration ==
1.6
1.7 -Given a choice of [[../SystemUsers|system users and groups]], the
1.8 -resulting configuration must be indicated in the `config.sh` file. Since
1.9 -the `tools/install.sh` script depends on this configuration, changes must
1.10 -be made to the file in the `tools/config.sh` location before installation
1.11 +The `config.sh` file must indicate choices in the following areas:
1.12 +
1.13 + * The [[../DataStore|data store]] type to be employed
1.14 +
1.15 + * The [[../SystemUsers|system users and groups]] involved with running the
1.16 + software and storing data
1.17 +
1.18 +Since the `tools/install.sh` script depends on this configuration, changes
1.19 +must be made to the file in the `tools/config.sh` location before installation
1.20 can occur.
1.21
1.22 == Software Configuration ==
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/docs/wiki/DataStore Fri Mar 11 19:08:12 2016 +0100
2.3 @@ -0,0 +1,17 @@
2.4 += Data Store =
2.5 +
2.6 +The data store for imip-agent holds calendar data and free/busy information.
2.7 +The following data store types exist:
2.8 +
2.9 + * A [[../FileStore|file store]] employing textual files in the filesystem
2.10 +
2.11 + * A [[../DatabaseStore|database store]] employing database tables managed
2.12 + by a database management system
2.13 +
2.14 +For simplicity, the file store is the default storage mechanism for imip-agent,
2.15 +but the database store is provided as an alternative where different operating
2.16 +characteristics are desired.
2.17 +
2.18 +The [[../Configuration|configuration]] files (`config.sh` and `config.py`) need
2.19 +updating to reflect the choice of data store, with the directory parameters
2.20 +set to appropriate values for the chosen store type.
3.1 --- a/docs/wiki/DatabaseStore Fri Mar 11 18:34:56 2016 +0100
3.2 +++ b/docs/wiki/DatabaseStore Fri Mar 11 19:08:12 2016 +0100
3.3 @@ -13,3 +13,110 @@
3.4 The [[../FileStore|file store]] offers a more convenient method of managing calendar
3.5 data, albeit offering arguably less scalability and less convenience when data volumes
3.6 become significantly large.
3.7 +
3.8 +== Configuration Settings ==
3.9 +
3.10 +The [[../Configuration|configuration]] files (`config.sh` and `config.py`) need to be
3.11 +updated when choosing a database store.
3.12 +
3.13 +{{{#!table
3.14 +'''File''' || '''Setting''' || '''Value''' || '''Description'''
3.15 +==
3.16 +`config.sh`
3.17 +||<rowspan="2"> `STORE_TYPE`
3.18 +||<rowspan="2"> `postgresql`
3.19 +||<rowspan="2"> Selects a specific database store type; currently, only `postgresql`
3.20 + .. is supported
3.21 +==
3.22 +`config.py`
3.23 +==
3.24 +<rowspan="2"> `config.py`
3.25 +|| `STORE_DIR`
3.26 +|| `dbname=imip_agent`
3.27 +|| Indicates a connection string for the store database
3.28 +==
3.29 +`JOURNAL_DIR`
3.30 +|| `dbname=imip_agent`
3.31 +|| Indicates a connection string for the journal database
3.32 +}}}
3.33 +
3.34 +== Journal Structure ==
3.35 +
3.36 +The journal information is retained in a collection of tables. Unlike the structure of
3.37 +the [[../FileStore|file store]] in the [[../FilesystemUsage|filesystem]], each table
3.38 +contains details for all quota groups, with each query indicating the group to select
3.39 +the appropriate information.
3.40 +
3.41 +{{{#!table
3.42 +'''Table''' || '''Purpose'''
3.43 +==
3.44 +`quota_freebusy`
3.45 +|| Period descriptions describing reservations for resources sharing a quota (`quota`)
3.46 +.. made by users or groups (`user_group`), structured similarly to the `freebusy` table
3.47 +.. in the data store
3.48 +==
3.49 +`quota_limits`
3.50 +|| A mapping from user identities or group identifiers to quota limits
3.51 +==
3.52 +`user_freebusy`
3.53 +|| Period descriptions for reservations made in the context of a quota (`quota`) by a
3.54 +.. specific user (`store_user`), structured similarly to the `freebusy` table in the
3.55 +.. data store
3.56 +==
3.57 +`user_groups`
3.58 +|| A mapping from user identities to group identifiers indicating the sharing of a quota
3.59 +.. across a number of users
3.60 +}}}
3.61 +
3.62 +== Store Structure ==
3.63 +
3.64 +The store information is retained in a collection of tables. Unlike the structure of
3.65 +the [[../FileStore|file store]] in the [[../FilesystemUsage|filesystem]], each table
3.66 +contains details for all users, with each query indicating the user to select
3.67 +the appropriate information.
3.68 +
3.69 +{{{#!table
3.70 +'''Table''' || '''Purpose'''
3.71 +==
3.72 +`countered_objects`
3.73 +|| Retains counter-proposals corresponding to events held in the `objects` table
3.74 +.. received by each user (`store_user`) from another user (`other`)
3.75 +==
3.76 +`countered_recurrences`
3.77 +|| Retains counter-proposals corresponding to events held in the `recurrences` table
3.78 +.. received by each user (`store_user`) from another user (`other`)
3.79 +==
3.80 +`freebusy`
3.81 +|| Period descriptions indicating start and end datetimes (in UTC), unique identifier
3.82 +.. (`object_uid`), transparency, recurrence identifier (`object_recurrenceid`),
3.83 +.. summary and organiser, reflecting the schedule of each user (`store_user`)
3.84 +==
3.85 +`freebusy_offers`
3.86 +|| Period descriptions for scheduling offers made by counter-proposals sent by each
3.87 +.. user (`store_user`)
3.88 +==
3.89 +`freebusy_other`
3.90 +|| Period descriptions received or deduced for a user (`store_user`) structured
3.91 +.. similarly to the user's own `freebusy` records
3.92 +==
3.93 +`freebusy_providers`
3.94 +|| Details of [[../EventRecurrences|recurring events]] for which new free/busy records
3.95 +.. must be [[../CronIntegration|periodically generated]] because these events recur
3.96 +.. indefinitely, selectable for each user (`store_user`)
3.97 +==
3.98 +`freebusy_provider_datetimes`
3.99 +|| Date/time details associated with the `freebusy_providers` information
3.100 +==
3.101 +`objects`
3.102 +|| Records for each user (`store_data`) containing received event data (`object_text`)
3.103 +==
3.104 +`requests`
3.105 +|| A collections of records, each belonging to a specific user (`store_user`)
3.106 +.. consisting of a unique identifier (`object_uid`), normalised recurrence identifier
3.107 +.. (`object_recurrenceid`) if appropriate, and (optionally) a scheduling method,
3.108 +.. indicating the availability of an incoming scheduling request for handling by a user
3.109 +==
3.110 +`recurrences`
3.111 +|| Records for each user (`store_data`) containing received recurrence event data
3.112 +.. (`object_text`)
3.113 +}}}
4.1 --- a/docs/wiki/FileStore Fri Mar 11 18:34:56 2016 +0100
4.2 +++ b/docs/wiki/FileStore Fri Mar 11 19:08:12 2016 +0100
4.3 @@ -13,3 +13,28 @@
4.4
4.5 Thus, the [[../DatabaseStore|database store]] exists as an alternative, offering
4.6 different characteristics to those of the file store.
4.7 +
4.8 +== Configuration Settings ==
4.9 +
4.10 +The [[../Configuration|configuration]] files (`config.sh` and `config.py`) need to be
4.11 +updated when choosing a file store.
4.12 +
4.13 +{{{#!table
4.14 +'''File''' || '''Setting''' || '''Value''' || '''Description'''
4.15 +==
4.16 +`config.sh`
4.17 +||<rowspan="2"> `STORE_TYPE`
4.18 +||<rowspan="2"> `file`
4.19 +||<rowspan="2"> Selects the default file storage type
4.20 +==
4.21 +`config.py`
4.22 +==
4.23 +<rowspan="2"> `config.py`
4.24 +|| `STORE_DIR`
4.25 +|| `/var/lib/imip-agent/store`
4.26 +|| Indicates the filesystem location of the data store
4.27 +==
4.28 +`JOURNAL_DIR`
4.29 +|| `/var/lib/imip-agent/journal`
4.30 +|| Indicates the filesystem location of the journal
4.31 +}}}
5.1 --- a/docs/wiki/FrontPage Fri Mar 11 18:34:56 2016 +0100
5.2 +++ b/docs/wiki/FrontPage Fri Mar 11 19:08:12 2016 +0100
5.3 @@ -165,6 +165,7 @@
5.4 * [[/CalendaringSupport|Calendaring Support]]
5.5 * [[/CounterProposals|Counter-Proposals and Offers]]
5.6 * [[/CronIntegration|Cron Task Scheduler Integration]]
5.7 + * [[/DataStore|Data Store]]
5.8 * [[/EventRecurrences|Event Recurrences]]
5.9 * [[/FilesystemUsage|Filesystem Usage]]
5.10 * [[/IncomingMessages|Incoming Messages]]