source: trunk/LATMOS-Accounts/man/man8/latmos-accounts-base-sql.pod @ 2260

Last change on this file since 2260 was 2260, checked in by nanardon, 5 years ago

Allow to set in config monitored attributes

File size: 9.2 KB
Line 
1# $Id$
2
3=head1 DESCRIPTION
4
5=head1 SPECIFIC SETUP PARAMTERS
6
7=head2 db_conn
8
9The C<libpq> connection parameters, eg a semin colon separated paramaters
10containing the server, the database name, user and password, etc...
11
12=head2 no_pg_utf8
13
14If set disable utf8 flags from postgresql. You can try this parameter if you
15have issue with non ascii value from database
16
17=head2 remove_old_dpmt
18
19By default when the department is changed on a user account it remains in the
20department group as a secondary department.
21
22Setting C<remove_old_dpmt> to true in the config will force user removal from
23the group when department is changed.
24The user can still be added back later.
25
26=head2 ASyncDynData
27
28Don't compute dynamic attribute at commit but let syncManager do it
29asynchronously.
30
31=head2 monitored
32
33Allow to specify monitored attributes. Monitored attributes will have their
34value logued when changed.
35
36Can be specified multiple times:
37
38    monitored=user.loginShell
39    monitored=nethost.ip
40
41=head1 FEATURES
42
43=head2 Object Aliases
44
45It is possible to create object being simple alias to another, like symbolic on
46UNIX filesystem or mail alias.
47
48Thoses aliases objects are always resolved when propagating into other base.
49The referenced object can be easilly change and all the data related will be
50propagated.
51
52Only alias for object type C<User> are supported at time.
53
54=head3 Usage Example:
55
56The typical exemple is for attribute C<manager> or attribute C<managedBy>.
57Instead setting them to C<John> you can create an alias C<Director> and when
58C<John> leave just change alias reference to C<Bill>.
59
60=head2 Network managment
61
62Link::Accounts can build automatically some part of your DNS or DHCP
63configuration.
64
65To do this you have to create a C<netzone> object. Such object need a type:
66
67=over 4
68
69=item dns: to build a DNS zone for classic domain
70
71=item reverse: for reverse IP address (168.192.in-addr.arpa)
72
73=item dhcp: ISC dscpd configuration for fixed address
74
75=item puppet: puppet configuration
76
77=back
78
79The way it works is quite simple, each zone will make the code to write a file
80you can include in your server configuration. The match is done by looking the
81zone IP address masks and the host IPs.
82
83For example someone having a zone named C<private.mydomain.com> having masks
84C<192.168.5.0/24>, and having an host named C<foo> with IP C<192.168.5.3> and
85another host C<bar> with IP C<192.168.13.78>. The zone built will look likes:
86
87    foo IN A 192.168.5.3
88
89As you can see this DNS zone is not valid: the goal of such feature is to make
90the repetive work for us, not to manage the full zone (even such feature could
91be possible). The repetitive work is declaring the hundred computers our users
92have.
93
94The output will be happend to a template have the name of the zone suffixed by
95C<.in>. You can put in this template evering about the zone declaration (SOA,
96NS, TXT...).
97
98=head2 User endcircuit
99
100The C<endcircuit> attribute contain the deadline for people to make
101admnistrative task when starting to work.
102If set this attribute take precedence to C<expire> attribute for computed
103attributes (C<accountExpires> for Active Directory).
104
105Setting C<endCircuitdontExpire> option to the database disable this behavior and
106C<endcircuit> attribute become informationnal only.
107
108=head2 User Employment
109
110The employment object allow you to set time when you're user have a status. This
111allow through 'Employment' module for la-sync-manager to automate changes.
112
113The synchronized attributes are:
114
115=over 4
116
117=item C<company>
118
119=item C<employer>
120
121=item C<department>
122
123=item C<contratType>
124
125=item C<managerContact>
126
127=item C<expire>
128
129=item C<endcircuit>
130
131=back
132
133To avoid error when modifying user direclty when you're using employment those
134attribute become on user's side become read-only once an employment exists.
135
136You can change this beaviour using C<employment_lock_user> parameter:
137
138By default it is impossible to modify or create past employment. This behavior
139can be changed by settings C<allow_pasted_employment> parameter in base
140configuration.
141
142=over 4
143
144=item any (default)
145
146Any existing employment lock those attribute, you must
147create another employment to change user status or delete all employements for
148this user.
149
150=item always
151
152The user's attribute are always locked
153
154=item never
155
156The user's attribute are always locked
157
158=item active
159
160Thoses attributes are locked is any employment are still active (ie unfinished
161or coming later).
162
163=item attribute=value
164
165Thoses attributes are read-only if the C<attribute> given contains C<value>,
166C<*> allow to match any value.
167
168=back
169
170When active users become out of any employment all managed attribute are unset
171(except the expire attribute).
172
173A default value for each of this attribute can be set in configuration using
174parameter in form C<unemployment.ATTRIBUTE>. For example
175C<unemployment.contratType=external> will set any C<contratType> to C<external>
176when no employment apply to user anymore.
177
178Only active accounts are modified in this way.
179
180=head3 User endEmployment
181
182This attribute compute the next day the user will leave the company according
183the employment object registered.
184
185The parameter C<employment_delay> give the number of days to ignore when a hole
186exists between two employment.
187
188If no employment are found, if set the date given in C<unemployed_expire>
189database parameter is returned.
190
191=head3 User endStrictEmployment
192
193This attribute compute the next day the user will leave the company according
194the employment object registered.
195
196It does not take C<employment_delay> parameter into account.
197
198If no employment are found, if set the date given in C<unemployed_expire>
199database parameter is returned.
200
201=head3 User endLastEmployment
202
203This attribute return the very last end of all registered employment fr this
204user.
205
206=head3 User endCurrentEmployment
207
208The end of the employment matching current date.
209
210=head3 Account Expiration
211
212When using employment, account expiration are set to match employment. By
213default the expiration is set to C<endEmployment> value.
214
215This behaviour can be changed by setting C<expireOn> parameter into base
216definition:
217
218=over 4
219
220=item any of endCurrentEmployment, endEmployment, endStrictEmployment, endLastEmployment
221
222=item never
223
224The expire date is left unchanged and must managed manually.
225
226=back
227
228=head2 Group AutoMemberFilter
229
230Group objects contains users members by setting either C<members> or
231C<memberUID> attributes.
232
233Sometimes it can be usefull to have group automatically populated by arbitrary
234rules.
235
236This is possible by setting a filter in the C<autoMemberFilter> attribute,
237The filter format is the same the one used by L<la-search>, the attribute is
238multivaluable.
239
240So for example one can create an account automatically a group containing people
241having "Olivier" as first name:
242
243    autoMemberFilter: givenBame=Olivier
244
245A probably more usefull example is a group containing people from two others
246groups:
247
248    autoMemberFilter: memberOf=group1
249    autoMemberFilter: memberOf=group2
250
251The  C<members> or C<memberUID> attribute becomes read-only attribute once
252C<autoMemberFilter> attribute is set.
253
254=head2 Aliases AutoMemberFilter
255
256This attribute allow to create automatics dynamics aliases according filter
257rules exactly like L<Group AutoMemberFilter> works.
258
259The C<forward> attributes is automatically set with email address of selected
260user, user w/o email address are ignored.
261
262=head2 Group AutoFromSutype
263
264Group object can be tagged with the C<sutype> attribute.
265
266When C<autoFromSutype> is set the group member will be computed from member of
267all groups having C<sutype> set this value.
268
269The goal of this attribute is to setup magic group like with the
270C<autoMemberFilter> but working even a new group is created.
271
272=head2 Aliases AutoFromSutype
273
274This attribute allow to create automatics dynamics aliases according filter
275rules exactly like L<Group AutoFromSutype> works.
276
277The C<forward> attributes is automatically set with email address of selected
278user, user w/o email address are ignored.
279
280=head2 Statistics
281
282The application provide some statitics tools but they are only based on the
283current data inside the database and are unable to track delete data.
284
285To keep some mesurement you must use C<stat> objects to describe the data you
286want to track, and enable in L<la-sync-manager.ini> the C<Stats> module.
287
288Each attribute of C<Stat> object describe how data must but compute before being
289stored.
290
291=head3 Stat object Attributes
292
293=head4 description
294
295A label about this statistics object
296
297=head4 display
298
299IF set the statistic appear in the menu of the web interface
300
301=head4 otype
302
303The object type this stat is tracking, must be a supported object type
304
305=head4 filter
306
307One or multiple filter to limit the objects taking into account
308
309=head4 attribute
310
311The attribute fetch to compute data
312
313=head4 refFilter
314
315When the attribute reference another type of object this setting allow to
316filter to the matching referenced object.
317
318=head4 refAll
319
320When the attribute reference another type of object non exiting objects in
321the results appear as 0, otherwise they are ignored.
322
323=head4 aggregateFunction
324
325An optionnal operation to do on the data:
326
327=over 4
328
329=item sum
330
331Make the sum of the result per item
332
333=item avg
334
335Make the average of the result per item
336
337=item count
338
339Count the number of item return
340
341=back
342
343=head4 delay
344
345The number of day between two run
346
347=head4 retention
348
349If set, the duration in days after which stats value must deleted
Note: See TracBrowser for help on using the repository browser.