]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/examples/opensrf.xml.example
LP2045292 Color contrast for AngularJS patron bills
[Evergreen.git] / Open-ILS / examples / opensrf.xml.example
1 <?xml version='1.0'?>
2
3 <!-- 
4 Example opensrf config file for OpenILS
5 vim:et:ts=4:sw=4:
6 -->
7
8 <opensrf version='0.0.3'>
9
10     <default>
11
12         <!-- unless otherwise overidden, use this locale -->
13         <default_locale>en-US</default_locale>
14
15         <dirs>
16             <log>LOCALSTATEDIR/log</log> <!-- unix::server log files -->
17             <sock>LOCALSTATEDIR/lock</sock> <!-- unix::server sock files -->
18             <pid>LOCALSTATEDIR/run</pid>
19             <xsl>LOCALSTATEDIR/xsl</xsl>
20             <script>LOCALSTATEDIR</script>
21             <script_lib>LOCALSTATEDIR</script_lib>
22             <templates>LOCALSTATEDIR/templates</templates>
23         </dirs>
24
25         <!-- global data visibility settings -->
26         <share>
27             <user>
28                 <!-- Set to "true" to require patron opt-in for foreign (non-home_ou) transactions -->
29                 <opt_in>false</opt_in>
30             </user>
31         </share>
32
33         <IDL>SYSCONFDIR/fm_IDL.xml</IDL> <!-- top level IDL file -->
34         <IDL2js>fm_IDL2js.xsl</IDL2js> <!-- IDL JS XSLT -->
35
36
37         <server_type>prefork</server_type> <!-- net::server type -->
38
39         <ils_events>LOCALSTATEDIR/data/ils_events.xml</ils_events> <!-- ILS events description file -->
40
41         <email_notify> <!-- this will eventually move into the notifications section below... -->
42             <!-- global email notification settings -->
43             <template>LOCALSTATEDIR/data/hold_notification_template.example</template>
44             <smtp_server>localhost</smtp_server>
45
46             <!--
47             in most cases, this is overridden by location 
48             specific config settings.  this is just the default
49             -->
50             <sender_address>evergreen@localhost</sender_address>
51         </email_notify>
52
53
54       <notifications>
55         <!-- global mail server settings -->
56         <smtp_server>localhost</smtp_server>
57         <sender_address>evergreen@localhost</sender_address>
58
59         <!-- global telephony (asterisk) settings -->
60         <telephony>
61             <!-- replace all values below when telephony server is configured -->
62             <enabled>0</enabled>
63             <driver>SIP</driver>    <!-- SIP (default) or multi -->
64             <channels>              <!-- explicit list of channels used if multi -->
65                                     <!-- A channel specifies technology/resource -->
66                 <channel>Zap/1</channel>
67                 <channel>Zap/2</channel>
68                 <channel>IAX/user:secret@widgets.biz</channel>
69             </channels>
70             <host>localhost</host>
71             <port>10080</port>
72             <user>evergreen</user>
73             <pw>evergreen</pw>
74             <!--
75                 The overall composition of callfiles is determined by the
76                 relevant template, but this section can be invoked for callfile
77                 configs common to all outbound calls.
78                 callfile_lines will be inserted into ALL generated callfiles
79                 after the Channel line.  This content mat be overridden
80                 (in whole) by the org unit setting callfile_lines.
81                 Warning: Invalid syntax may break ALL outbound calls.
82             -->
83             <!-- <callfile_lines>
84                 MaxRetries: 3
85                 RetryTime: 60
86                 WaitTime: 30
87                 Archive: 1
88                 Extension: 10
89             </callfile_lines> -->
90         </telephony>
91
92         <!-- Overdue notices: DEPRECATED in 2.0 in favour of Action/Trigger Notifications -->
93         <overdue>
94
95             <!-- optionally, you can define a sender address per notice type -->
96             <sender_address>overdue@localhost</sender_address>
97
98             <!-- The system can generate an XML file of overdue notices.  This is the
99                 directory where they are stored.  Files are named overdue.YYYY-MM-DD.xml -->
100             <notice_dir>LOCALSTATEDIR/data/overdue</notice_dir>
101             <combined_template>LOCALSTATEDIR/data/templates/overdue_combined_xml.example</combined_template>
102
103             <notice>
104                 <!-- Notify at 7 days overdue -->
105                 <notify_interval>7 days</notify_interval>
106                 <!-- Options include always, noemail, and never.  'noemail' means a notice
107                      will be appended to the notice file only if the patron has no valid email address.  -->
108                 <file_append>noemail</file_append>
109                 <!-- do we attempt email notification? -->
110                 <email_notify>false</email_notify>
111                 <!-- notice template file -->
112                 <email_template>LOCALSTATEDIR/data/templates/overdue_7day.example</email_template>
113             </notice>
114         </overdue>
115
116         <!-- Courtesy notices: DEPRECATED in 2.0 in favour of Action/Trigger Notifications -->
117         <predue>
118             <notice>
119                 <!-- All circulations that circulate between 5 and 13 days -->
120                 <circ_duration_range>
121                     <from>5 days</from>
122                     <to>13 days</to>
123                 </circ_duration_range>
124                 <!-- notify at 1 day before the due date -->
125                 <notify_interval>1 day</notify_interval>
126                 <file_append>false</file_append>
127                 <email_notify>false</email_notify>
128                 <email_template>LOCALSTATEDIR/data/templates/predue_1day.example</email_template>
129             </notice>
130         </predue>
131       </notifications>
132
133         <!-- Settings for the hold targeter cron job -->
134         <hold_targeter>
135             <!-- number of parallel processes to use during hold targeting;
136                  increasing can speed up (re)targeting a large number of
137                  hold requests, but with diminishing returns after a point;
138                  if increasing this value, it is recommend to do so slowly
139             -->
140             <parallel>1</parallel>
141         </hold_targeter>
142
143         <!-- Settings for the fine generator cron job -->
144         <fine_generator>
145             <!-- number of parallel processes to use during fine generation -->
146             <parallel>1</parallel>
147         </fine_generator>
148         
149         <reporter>
150             <!--
151             Settings for the reporter daemon process 
152             -->
153             <setup>
154                 <base_uri>https://localhost/reporter/</base_uri>
155                 <database>
156                     <driver>Pg</driver>
157                     <host>localhost</host>
158                     <port>5432</port>
159                     <db>evergreen</db>
160                     <user>postgres</user>
161                     <pw>postgres</pw>
162                     <application_name>Clark Kent (reports)</application_name>
163                 </database>
164                 <state_store>
165                     <driver>Pg</driver>
166                     <host>localhost</host>
167                     <port>5432</port>
168                     <db>evergreen</db>
169                     <user>postgres</user>
170                     <pw>postgres</pw>
171                     <application_name>Clark Kent (state)</application_name>
172                 </state_store>
173                 <files>
174                     <!-- successful report outputs go here -->
175                     <output_base>LOCALSTATEDIR/web/reporter</output_base>
176                     <success_template>LOCALSTATEDIR/data/report-success</success_template>
177                     <fail_template>LOCALSTATEDIR/data/report-fail</fail_template>
178                 </files>
179                 <!-- Number of reports that can be processed simultaneously.  This
180                      value can overriden by the -c/-concurrency command-line switch
181                      of clark-kent.pl.
182                 -->
183                 <parallel>1</parallel>
184                 <!-- Maximum number of rows in the query results allowed before
185                      Clark will refuse to draw a pie, bar, or line chart.  This
186                      value can be overriden by the -max-rows-for-charts command-line
187                      switch of clark-kent.pl.
188                 -->
189                 <max_rows_for_charts>1000</max_rows_for_charts>
190                 <!-- Maximum amount of time (in minutes) that an SQL query initiated
191                      by Clark Kent will be allowed to run before it is terminated.
192                      This value can be overriden by the -statement-timeout
193                      command-line switch of clark-kent.pl.
194                 -->
195                 <statement_timeout>60</statement_timeout>
196                 <!-- Maximum number of results permitted.  If set to a numeric value,
197                      Clark will limit the number of rows returned by report queries
198                      to this value.  Note that it will not be apparent to a user
199                      running a report from the staff interface that their report
200                      has been limited in this fashion.  This setting can be
201                      overriden by the -resultset-limit command-line switch of
202                      clark-kent.pl.
203
204                      A value of 0 means that no limit should be set.
205                 -->
206                 <resultset_limit>1048575</resultset_limit>
207             </setup>
208         </reporter>
209
210
211
212         <xml-rpc>
213             <!-- XML-RPC gateway.  Do NOT publish unprotected services here -->
214             <allowed_services>
215                 <!-- list of published services -->
216                 <service>opensrf.math</service>
217                 <service>opensrf.dbmath</service>
218                 <service>open-ils.cat</service>
219                 <service>open-ils.search</service>
220                 <service>open-ils.circ</service>
221                 <service>open-ils.actor</service>
222                 <service>open-ils.auth</service>
223                 <service>open-ils.auth_proxy</service>
224                 <service>open-ils.collections</service>
225                 <service>open-ils.justintime</service>
226             </allowed_services>
227         </xml-rpc>
228
229         <!--
230         Once upon a time, Z39.50 servers were defined here. As of Evergreen 2.2,
231         they are now defined in the database. See the Release Notes for
232         instructions on mapping the old XML entries to database tables.
233         -->
234
235         <http_client>
236             <!--
237             These settings are used by the OpenILS::Utils::HTTPClient module
238             when communicating with external services (e.g. third-party APIs)
239             over HTTP.  Values are passed along to LWP::UserAgent.
240             -->
241
242             <!-- custom useragent for HTTP requests
243             <useragent>Evergreen</useragent>
244             -->
245
246             <!-- default timeout value (in seconds) -->
247             <default_timeout>60</default_timeout>
248
249             <ssl_opts>
250                 <!--
251                 When using HTTPS, verify that the external server has a valid
252                 SSL certificate matching the expected hostname.  (Set to 0 to
253                 disable verification, 1 to enable it.)
254                 -->
255                 <verify_hostname>1</verify_hostname>
256
257                 <!--
258                 If verify_hostname is enabled, you may need to specify a path
259                 for CA certificates installed on your system.  Use ONE of the
260                 following settings.  See LWP::UserAgent docs for details.
261                 <SSL_ca_path>/etc/ssl/certs</SSL_ca_path>
262                 <SSL_ca_file>/etc/ssl/certs/ca-certificates.crt</SSL_ca_file>
263                 -->
264             </ssl_opts>
265
266         </http_client>
267
268         <added_content>
269             <!-- load the OpenLibrary added content module -->
270             <module>OpenILS::WWW::AddedContent::OpenLibrary</module>
271
272             <!--
273             Max number of seconds to wait for an added content request to 
274             return data.  Data not returned within the timeout is considered
275             a failure.
276
277             Note that the pool of Apache processes used by the AddedContent
278             module is the same pool used by core Evergreen processes such as
279             search, circulation, etc. Therefore, the higher you set this
280             timeout value, the more likely you are to run out of available
281             Apache processes resulting in an accidental (or purposeful) denial
282             of service - particularly if the added content server starts
283             responding abnormally slowly.
284
285             The safest option is to disable the AddedContent module completely,
286             but 3 seconds is a compromise between the threat of a denial of
287             service and the enhanced user experience offered by successful added
288             content requests.
289             -->
290             <timeout>3</timeout>
291
292             <!--
293             After added content lookups have been disabled due to too many
294             lookup failures, this is the amount of time to wait before
295             we try again
296             -->
297             <retry_timeout>600</retry_timeout>
298
299             <!--
300             maximum number of consecutive lookup errors a given process can 
301             have before added content lookups are disabled for everyone
302             -->
303             <max_errors>15</max_errors>
304
305             <!-- If a userid is required to access the added content.. -->
306             <userid>MY_USER_ID</userid>
307
308             <!--
309             Base URL for Amazon added content fetching. Not needed by OpenLibrary
310             <base_url>http://images.amazon.com/images/P/</base_url>
311             -->
312
313             <!--
314             Segregating the details for ContentCafe out for easier use.  At some point, we
315             may want to support multiple services at one time.
316             -->
317             <ContentCafe>
318                 <userid>MY_USER_ID</userid>
319                 <password>MY_PASSWORD</password>
320
321                 <!--
322                 Which order to put identifiers in.
323                 Default is "isbn,upc", ignoring currently unsupported issn.
324                 Should be all lowercase.
325                 Remove an identifier from the list to skip it.
326                 -->
327                 <identifier_order>isbn,upc</identifier_order>
328             </ContentCafe>
329
330             <!--
331             Segregating the details for obalkyknih.cz out for easier use.
332             -->
333             <ObalkyKnih>
334                 <!-- Covers are there always -->
335
336                 <!-- Annotations provided by obalkyknih.cz is mapped to evergreen summary -->
337                 <summary>false</summary>
338                 
339                 <!-- Provider obalkyknih.cz provides TOC as text and as PDF plus thumbnail -->
340                 <tocPdf>true</tocPdf>
341                 <tocText>false</tocText>
342                 
343                 <!-- User reviews from obalkyknih.cz -->
344                 <reviews>true</reviews>
345
346             </ObalkyKnih>
347
348             <!--
349  
350             You can add free-form settings here and they will be accessible
351             within the added content module
352             -->
353
354         </added_content>
355
356         <!-- Config section for acq_order_reader.pl script.
357              It reads MARC order record files from disk (presumably
358              an FTP destination) and pushes the order records into ACQ.
359              THIS IS NOT EDI. -->
360         <acq_order_reader>
361
362             <!-- Root directory for all FTP'd ACQ order record files .
363                  If the script is configured to talk to a remote acq server,
364                  this directory has to be a read/write NFS share.  -->
365             <base_dir>/openils/var/data/acq_orders/</base_dir>
366
367             <!-- any files found in the shared subdir must be inspected
368                  (e.g. file name prefix) to determine the provider. -->
369             <shared_subdir>ALL</shared_subdir><!-- SUPPORT PENDING -->
370
371             <!-- providers that don't provide a mechanism to inspect the file
372                  have to push their files to provider-specific locations -->
373             <provider>
374                 <ordering_agency>BR1</ordering_agency> <!-- who gets/manages the order -->
375                 <provider_code>BAB</provider_code>   
376                 <provider_owner>CONS</provider_owner>  <!-- provider provider_owner; org unit shortname -->
377                 <subdir>CONS-BAB</subdir> <!-- file directory;  full path = base_dir + subdir -->
378                 <activate_po>false</activate_po> <!-- activate PO at upload? -->
379                 <vandelay>
380                     <import_no_match>true</import_no_match>
381                     <!-- Most Vandelay options are supported.  For bools, use true/false.
382                         match_quality_ratio 
383                         match_set 
384                         bib_source 
385                         merge_profile
386                         create_assets
387                         import_no_match 
388                         auto_overlay_exact 
389                         auto_overlay_1match 
390                         auto_overlay_best_match
391                     -->
392                 </vandelay>
393             </provider>
394
395             <!-- Add more as needed...
396             <provider>
397                 ...
398             </provider>
399             -->
400
401         </acq_order_reader>
402
403
404         <!-- no apps are enabled globally by default -->
405         <activeapps/> 
406
407         <!-- 
408             If this setting is "true", Evergreen "authoritative" APIs
409             will be enabled, forcing select API calls to wrap read calls
410             in a database BEGIN/ROLLBACK so they read from the primary
411             database.
412         -->
413         <uses_pooled_read_replica_dbs>false</uses_pooled_read_replica_dbs>
414
415         <cache>
416             <!-- memcache servers -->
417             <global>
418                 <servers>
419                     <server>127.0.0.1:11211</server>
420                 </servers>
421                 <max_cache_time>86400</max_cache_time>
422             </global>
423             <anon>
424                 <!-- anonymous cache.  currently, primarily used for web session caching -->
425                 <servers>
426                     <server>127.0.0.1:11211</server>
427                 </servers>
428                 <max_cache_time>1800</max_cache_time>
429                 <!-- maximum size of a single cache entry / default = 100k-->
430                 <max_cache_size>102400</max_cache_size>
431             </anon>
432         </cache>
433
434         <apps>
435             <!-- Acquisitions server -->
436             <open-ils.acq>
437                 <!-- how long to wait between stateful requests before the child process re-joins the pool -->
438                 <keepalive>5</keepalive>
439                 <!-- true if this service support stateless requests -->
440                 <stateless>1</stateless>
441                 <!-- implementation language -->
442                 <language>perl</language>
443                 <!-- name of the library that implements this application -->
444                 <implementation>OpenILS::Application::Acq</implementation>
445                 <!-- maximum OpenSRF REQUEST within a stateful connection -->
446                 <max_requests>100</max_requests>
447                 <unix_config>
448                     <!--
449                     maximum number of top level requests coming to 
450                     this child before the child is recycled
451                     -->
452                     <max_requests>100</max_requests>
453                     <!-- min children to fork -->
454                     <min_children>1</min_children>
455                     <!-- max possible children to fork -->
456                     <max_children>15</max_children>
457                     <!--
458                     C forking implementation does not support 
459                     min/max idle children, but may in the future
460                     -->
461
462                     <!-- min idle children -->
463                     <min_spare_children>1</min_spare_children>
464                     <!-- max idle children -->
465                     <max_spare_children>5</max_spare_children>
466                     <!-- currently, only Perl uses the following 3 settings -->
467                     <unix_sock>open-ils.acq_unix.sock</unix_sock>
468                     <unix_pid>open-ils.acq_unix.pid</unix_pid>
469                     <unix_log>open-ils.acq_unix.log</unix_log>
470                 </unix_config>
471             </open-ils.acq>
472
473             <!-- Authentication server -->
474             <open-ils.auth>
475                 <keepalive>5</keepalive>
476                 <stateless>1</stateless>
477                 <language>c</language>
478                 <implementation>liboils_auth.so</implementation>
479                 <unix_config>
480                     <max_requests>1000</max_requests>
481                     <min_children>1</min_children>
482                     <max_children>15</max_children>
483                     <min_spare_children>1</min_spare_children>
484                     <max_spare_children>5</max_spare_children>
485                 </unix_config>
486                 <app_settings>
487                     <!-- defined app-specific settings here -->
488                     <auth_limits>
489                         <seed>30</seed> <!-- amount of time a seed request is valid for -->
490                         <block_time>90</block_time> <!-- amount of time since last auth or seed request to save failure counts -->
491                         <block_count>10</block_count> <!-- number of failures before blocking access -->
492                     </auth_limits>
493                 </app_settings>
494             </open-ils.auth>
495
496             <!-- Internal authentication server -->
497             <open-ils.auth_internal>
498                 <keepalive>5</keepalive>
499                 <stateless>1</stateless>
500                 <language>c</language>
501                 <implementation>liboils_auth_internal.so</implementation>
502                 <unix_config>
503                     <max_requests>1000</max_requests>
504                     <min_children>1</min_children>
505                     <max_children>15</max_children>
506                     <min_spare_children>1</min_spare_children>
507                     <max_spare_children>5</max_spare_children>
508                 </unix_config>
509                 <app_settings>
510                     <!-- defined app-specific settings here -->
511                     <default_timeout>
512                         <!-- default login timeouts based on login type -->
513                         <opac>420</opac>
514                         <staff>7200</staff>
515                         <temp>300</temp>
516                         <persist>2 weeks</persist>
517                     </default_timeout>
518                 </app_settings>
519             </open-ils.auth_internal>
520
521
522
523             <!-- Authentication proxy server -->
524             <open-ils.auth_proxy>
525                 <keepalive>5</keepalive>
526                 <stateless>1</stateless>
527                 <language>perl</language>
528                 <implementation>OpenILS::Application::AuthProxy</implementation>
529                 <max_requests>93</max_requests>
530
531                 <unix_config>
532                     <max_requests>1000</max_requests>
533                     <unix_log>open-ils.auth-proxy_unix.log</unix_log>
534                     <unix_sock>open-ils.auth-proxy_unix.sock</unix_sock>
535                     <unix_pid>open-ils.auth-proxy_unix.pid</unix_pid>
536                     <min_children>1</min_children>
537                     <max_children>15</max_children>
538                     <min_spare_children>1</min_spare_children>
539                     <max_spare_children>5</max_spare_children>
540                 </unix_config>
541
542                 <app_settings>
543                     <!-- 'enabled' is the master switch; set to 'true' to enable proxied logins -->
544                     <enabled>false</enabled>
545                     <authenticators>
546                         <!-- the following is a sample configuration for the LDAP_Auth module; please adjust as needed -->
547                         <!--
548                         <authenticator>
549                             <name>ldap</name>
550                             <module>OpenILS::Application::AuthProxy::LDAP_Auth</module>
551                             <hostname>name.domain.com</hostname>
552                             <basedn>ou=people,dc=domain,dc=com</basedn>
553                             <authid>cn=username,ou=specials,dc=domain,dc=com</authid>
554                             <id_attr>uid</id_attr>
555                             <bind_attr>uid</bind_attr>
556                             <password>my_ldap_password_for_authid_user</password>
557                             <login_types>
558                                 <type>staff</type>
559                                 <type>opac</type>
560                                 <type>persist</type>
561                             </login_types>
562                             <org_units>
563                                 <unit>103</unit>
564                                 <unit>104</unit>
565                             </org_units>
566                             <restrict_by_home_ou>false</restrict_by_home_ou>
567                         </authenticator>
568                         -->
569                         <!-- 'native' is a proxied version of Evergreen's standard authentication -->
570                         <authenticator>
571                             <name>native</name>
572                             <!-- you can add 'login_types' and 'org_units' limits to this authenticator as well, if needed -->
573                         </authenticator>
574                     </authenticators>
575                 </app_settings>
576             </open-ils.auth_proxy>
577
578             <!-- Generic search server -->
579             <open-ils.search>
580                 <keepalive>5</keepalive>
581                 <stateless>1</stateless>
582                 <language>perl</language>
583                 <implementation>OpenILS::Application::Search</implementation>
584                 <max_requests>93</max_requests>
585                 <unix_config>
586                     <unix_sock>open-ils.search_unix.sock</unix_sock>
587                     <unix_pid>open-ils.search_unix.pid</unix_pid>
588                     <unix_log>open-ils.search_unix.log</unix_log>
589
590                     <max_requests>1000</max_requests>
591                     <min_children>1</min_children>
592                     <max_children>15</max_children>
593                     <min_spare_children>1</min_spare_children>
594                     <max_spare_children>5</max_spare_children>
595                 </unix_config>
596                 <app_settings>
597                     <marc_html_xsl>oilsMARC21slim2HTML.xsl</marc_html_xsl>
598                     <marc_html_xsl_slim>oilsMARC21slim2HTMLslim.xsl</marc_html_xsl_slim>
599
600                     <spelling_dictionary>
601                         <!-- 
602                             Optionally configure different dictionaries depending on search context.  
603                             If no dictionaries are defined, the default Aspell dictionary is used.
604                         -->
605                         <!--
606                         <default>LOCALSTATEDIR/data/default_dict.txt</default>
607                         <title>LOCALSTATEDIR/data/title_dict.txt</title>
608                         <author>LOCALSTATEDIR/data/author_dict.txt</author>
609                         <subject>LOCALSTATEDIR/data/subject_dict.txt</subject>
610                         <series>LOCALSTATEDIR/data/series_dict.txt</series>
611                         -->
612                     </spelling_dictionary>
613
614                     <!-- Default to using staged search -->
615                     <use_staged_search>true</use_staged_search>
616
617                     <!--
618                         For staged search, we estimate hits based on inclusion or exclusion.
619
620                         Valid settings:
621                             inclusion - visible ratio on superpage
622                             exclusion - excluded ratio on superpage
623                             delete_adjusted_inclusion - included ratio on superpage, ratio adjusted by deleted count
624                             delete_adjusted_exclusion - excluded ratio on superpage, ratio adjusted by deleted count
625
626                         Under normal circumstances, inclusion is the best strategy, and both delete_adjusted variants
627                         will return the same value +/- 1.  The exclusion strategy is the original, and works well
628                         when there are few deleted or excluded records, in other words, when the superpage is not
629                         sparsely populated with visible records.
630                     -->
631                     <estimation_strategy>inclusion</estimation_strategy>
632
633                     <!--
634                         Evergreen uses a cover density algorithm for calculating relative ranking of matches.  There
635                         are several tuning parameters and options available.  By default, no document length normalization
636                         is applied.  From the Postgres documentation on ts_rank_cd() (the function used by Evergreen):
637
638                             Since a longer document has a greater chance of containing a query term it is reasonable 
639                             to take into account document size, e.g., a hundred-word document with five instances of 
640                             a search word is probably more relevant than a thousand-word document with five instances. 
641                             Both ranking functions take an integer normalization option that specifies whether and how 
642                             a document's length should impact its rank. The integer option controls several behaviors, 
643                             so it is a bit mask: you can specify one or more behaviors using | (for example, 2|4).
644
645                                 0 (the default) ignores the document length
646
647                                 1 divides the rank by 1 + the logarithm of the document length
648
649                                 2 divides the rank by the document length
650
651                                 4 divides the rank by the mean harmonic distance between extents (this is implemented only by ts_rank_cd)
652
653                                 8 divides the rank by the number of unique words in document
654
655                                 16 divides the rank by 1 + the logarithm of the number of unique words in document
656
657                                 32 divides the rank by itself + 1
658
659                             If more than one flag bit is specified, the transformations are applied in the order listed.
660
661                             It is important to note that the ranking functions do not use any global information, so it 
662                             is impossible to produce a fair normalization to 1% or 100% as sometimes desired. Normalization 
663                             option 32 (rank/(rank+1)) can be applied to scale all ranks into the range zero to one, but of 
664                             course this is just a cosmetic change; it will not affect the ordering of the search results.
665
666                         In Evergreen, these options are set via search modifiers.  The modifiers are mapped in the
667                         following way:
668
669                             * #CD_logDocumentLength  => 1  :: rank / (1 + LOG(total_word_count))   :: Longer documents slightly less relevant
670                             * #CD_documentLength     => 2  :: rank / total_word_count              :: Longer documents much less relevant
671                             * #CD_meanHarmonic       => 4  :: Word Proximity                       :: Greater matched-word distance is less relevant
672                             * #CD_uniqueWords        => 8  :: rank / unique_word_count             :: Documents with repeated words much less relevant
673                             * #CD_logUniqueWords     => 16 :: rank / (1 + LOG(unique_word_count))  :: Documents with repeated words slightly less relevant
674                             * #CD_selfPlusOne        => 32 :: rank / (1 + rank)                    :: Cosmetic normalization of rank value between 0 and 1
675
676                         Adding one or more of these to the default_CD_modifiers list will cause all searches that use QueryParser to apply them.
677                     -->
678                     <default_CD_modifiers>#CD_documentLength #CD_meanHarmonic #CD_uniqueWords</default_CD_modifiers>
679
680                     <!--
681                         default_preferred_language
682                             Set the global, default preferred languange
683                     -->
684                     <default_preferred_language>eng</default_preferred_language>
685
686                     <!--
687                         default_preferred_language_weight
688                             Set the weight (higher is "better") for the preferred language. Comment out to remove all lanuage weighting by default.
689                     -->
690                     <default_preferred_language_weight>5</default_preferred_language_weight>
691
692                     <!-- Baseline number of records to check for hit estimation. -->
693                     <superpage_size>1000</superpage_size>
694
695                     <!-- How many superpages to consider for searching overall. -->
696                     <max_superpages>100</max_superpages>
697
698                     <!-- zip code database file -->
699                     <!--<zips_file>LOCALSTATEDIR/data/zips.txt</zips_file>-->
700                 </app_settings>
701             </open-ils.search>
702
703             <!-- server for accessing user info -->
704             <open-ils.actor>
705                 <keepalive>5</keepalive>
706                 <stateless>1</stateless>
707                 <language>perl</language>
708                 <implementation>OpenILS::Application::Actor</implementation>
709                 <max_requests>93</max_requests>
710                 <unix_config>
711                     <unix_sock>open-ils.actor_unix.sock</unix_sock>
712                     <unix_pid>open-ils.actor_unix.pid</unix_pid>
713                     <max_requests>1000</max_requests>
714                     <unix_log>open-ils.actor_unix.log</unix_log>
715                     <min_children>1</min_children>
716                     <max_children>15</max_children>
717                     <min_spare_children>1</min_spare_children>
718                     <max_spare_children>5</max_spare_children>
719                 </unix_config>
720                 <!-- set this to 'true' to have barcode search also search patron records by unique ID -->
721                 <app_settings>
722                     <id_as_barcode>false</id_as_barcode>
723                 </app_settings>
724
725             </open-ils.actor>
726
727             <open-ils.booking>
728                 <keepalive>5</keepalive>
729                 <stateless>1</stateless>
730                 <language>perl</language>
731                 <implementation>OpenILS::Application::Booking</implementation>
732                 <max_requests>199</max_requests>
733                 <unix_config>
734                     <unix_sock>open-ils.booking_unix.sock</unix_sock>
735                     <unix_pid>open-ils.booking_unix.pid</unix_pid>
736                     <max_requests>1000</max_requests>
737                     <unix_log>open-ils.booking_unix.log</unix_log>
738                     <min_children>1</min_children>
739                     <max_children>15</max_children>
740                     <min_spare_children>1</min_spare_children>
741                     <max_spare_children>5</max_spare_children>
742                 </unix_config>
743                 <app_settings>
744                 </app_settings>
745             </open-ils.booking>
746
747             <open-ils.geo>
748                 <keepalive>5</keepalive>
749                 <stateless>1</stateless>
750                 <language>perl</language>
751                 <implementation>OpenILS::Application::Geo</implementation>
752                 <max_requests>199</max_requests>
753                 <unix_config>
754                     <unix_sock>open-ils.geo_unix.sock</unix_sock>
755                     <unix_pid>open-ils.geo_unix.pid</unix_pid>
756                     <max_requests>1000</max_requests>
757                     <unix_log>open-ils.geo_unix.log</unix_log>
758                     <min_children>1</min_children>
759                     <max_children>15</max_children>
760                     <min_spare_children>1</min_spare_children>
761                     <max_spare_children>5</max_spare_children>
762                 </unix_config>
763                 <app_settings>
764                   <cache_timeout>300</cache_timeout>
765                 </app_settings>
766             </open-ils.geo>
767
768             <open-ils.cat>
769                 <keepalive>5</keepalive>
770                 <stateless>1</stateless>
771                 <language>perl</language>
772                 <implementation>OpenILS::Application::Cat</implementation>
773                 <max_requests>199</max_requests>
774                 <unix_config>
775                     <unix_sock>open-ils.cat_unix.sock</unix_sock>
776                     <unix_pid>open-ils.cat_unix.pid</unix_pid>
777                     <max_requests>1000</max_requests>
778                     <unix_log>open-ils.cat_unix.log</unix_log>
779                     <min_children>1</min_children>
780                     <max_children>15</max_children>
781                     <min_spare_children>1</min_spare_children>
782                     <max_spare_children>5</max_spare_children>
783                 </unix_config>
784                 <app_settings>
785                     <marctemplates>
786                         <K_book>LOCALSTATEDIR/templates/marc/k_book.xml</K_book>
787                     </marctemplates>
788                 </app_settings>
789             </open-ils.cat>
790
791             <open-ils.supercat>
792                 <keepalive>5</keepalive>
793                 <stateless>1</stateless>
794                 <language>perl</language>
795                 <implementation>OpenILS::Application::SuperCat</implementation>
796                 <max_requests>199</max_requests>
797                 <unix_config>
798                     <unix_sock>open-ils.supercat_unix.sock</unix_sock>
799                     <unix_pid>open-ils.supercat_unix.pid</unix_pid>
800                     <max_requests>1000</max_requests>
801                     <unix_log>open-ils.supercat_unix.log</unix_log>
802                     <min_children>1</min_children>
803                     <max_children>15</max_children>
804                     <min_spare_children>1</min_spare_children>
805                     <max_spare_children>5</max_spare_children>
806                 </unix_config>
807                 <app_settings>
808                     <oai>
809                         <!-- Where necessary, override the default settings here in the app_settings element. -->
810
811                         <!-- The OAI endpoint. The domain is the name of your proxy or frontend opac website. -->
812                         <!-- <base_url>http://mydomain.org/opac/extras/oai</base_url> -->
813
814                         <!-- <repository_name>My organization(s)</repository_name> -->
815                         <!-- <admin_email>admin@mydomain.org</admin_email> -->
816
817                         <!-- The maximum number of records in a ListRecords and ListIdentifiers response. -->
818                         <!-- <max_count>50</max_count> -->
819
820                         <!-- <granularity>YYYY-MM-DDThh:mm:ss</granularity> -->
821                         <!-- <earliest_datestamp>0001-01-01</earliest_datestamp> -->
822                         <!-- <deleted_record>yes</deleted_record> -->
823                         <!-- <scheme>oai</scheme> -->
824                         <!-- <repository_identifier>mydomain.org</repository_identifier> -->
825                         <!-- <delimiter>:</delimiter> -->
826                         <!-- <sample_identifier>oai:mydomain.org:12345</sample_identifier> -->
827
828                         <!--
829                         The metadataformat element contains the schema for the oai_dc and marcxml metadata formats.
830                         Each schema needs a reference to an xslt document.
831                         You can replace them with your custom xslt stylesheets.
832                         Place those in the /<openils sysdir>/var/xsl folder.
833                         You can also extend the OAI2 service further with new metadata schema.
834
835                         Bibliographic and authority records share the same stylesheet.
836                         Should you want to render them differently, use the
837                         marc:datafield[@tag='901']/marc:subfield[@code='t']
838                         value to identify the record type. -->
839
840                         <!--
841                         <metadataformat>
842                             <oai_dc>
843                                 <namespace_uri>http://www.openarchives.org/OAI/2.0/oai_dc/</namespace_uri>
844                                 <schema_location>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema_location>
845                                 <xslt>MARC21slim2OAIDC.xsl</xslt>
846                             </oai_dc>
847                             <marcxml>
848                                 <namespace_uri>http://www.loc.gov/MARC21/slim</namespace_uri>
849                                 <schema_location>http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd</schema_location>
850                             </marcxml>
851                         </metadataformat> -->
852
853                         <!--
854                         You can add different schema to the metadataformat element thus:
855                             <mods>
856                                 <namespace_uri>http://www.loc.gov/mods/</namespace_uri>
857                                 <schema_location>http://www.loc.gov/standards/mods/mods.xsd</schema_location>
858                                 <xslt>my-custom-marc2mods.xsl</xslt>
859                             </mods>
860                             <my-metadata_prefix>
861                                 <namespace_uri>my-namespace_uri</namespace_uri>
862                                 <schema_location>my-schema_location</schema_location>
863                                 <xslt>my-marc2my-metadata.xsl</xslt>
864                             </my-metadata_prefix>
865                         -->
866
867                         <!-- Change the way the asset copy values are mapped to which subfield codes: -->
868                         <!--
869                         <copies>
870                             <a>location</a>
871                             <b>owning_lib</b>
872                             <c>callnumber</c>
873                             <d>circlib</d>
874                             <g>barcode</g>
875                             <n>status</n>
876                         </copies>
877                         -->
878                         <!-- Or add static values to the copies element like this:
879                             <z>A value that always should for example be in the 852$z</z>
880                         -->
881
882                         <!-- Accept only 852$[barcode] values that match this regular expression. E.g.
883                         <barcode_filter>^[A-Za-z0-9]+</barcode_filter>
884                         only renders 852 datafields that contain barcodes values that begin with letters and numbers.
885                         -->
886                         <!--
887                         <barcode_filter><barcode_filter>
888                         -->
889
890                         <!-- Accept only 852$[status] values that match this regular expression. E.g.
891                         <status_filter>^Available$</status_filter>
892                         only renders 852 datafields that contain status code values that exactly match the string 'Available'.
893                         -->
894                         <!--
895                         <status_filter></status_filter>
896                         -->
897                     </oai>
898                 </app_settings>
899
900             </open-ils.supercat>
901
902             <!-- server for accessing user info -->
903             <open-ils.trigger>
904                 <keepalive>5</keepalive>
905                 <stateless>1</stateless>
906                 <language>perl</language>
907                 <implementation>OpenILS::Application::Trigger</implementation>
908                 <max_requests>93</max_requests>
909                 <unix_config>
910                     <unix_sock>open-ils.trigger_unix.sock</unix_sock>
911                     <unix_pid>open-ils.trigger_unix.pid</unix_pid>
912                     <max_requests>1000</max_requests>
913                     <unix_log>open-ils.trigger_unix.log</unix_log>
914                     <min_children>1</min_children>
915                     <max_children>15</max_children>
916                     <min_spare_children>1</min_spare_children>
917                     <max_spare_children>5</max_spare_children>
918                 </unix_config>
919                 <app_settings>
920                     <!-- number of parallel open-ils.trigger processes to use for collection and reaction -->
921                     <!--
922                     <parallel>
923                         <collect>3</collect>
924                         <react>3</react>
925                     </parallel>
926                     -->
927                 </app_settings>
928             </open-ils.trigger>
929
930             <open-ils.url_verify>
931                 <keepalive>5</keepalive>
932                 <stateless>1</stateless>
933                 <language>perl</language>
934                 <implementation>OpenILS::Application::URLVerify</implementation>
935                 <max_requests>199</max_requests>
936                 <unix_config>
937                     <unix_sock>open-ils.url_verify_unix.sock</unix_sock>
938                     <unix_pid>open-ils.url_verify_unix.pid</unix_pid>
939                     <max_requests>1000</max_requests>
940                     <unix_log>open-ils.url_verify_unix.log</unix_log>
941                     <min_children>1</min_children>
942                     <max_children>15</max_children>
943                     <min_spare_children>1</min_spare_children>
944                     <max_spare_children>5</max_spare_children>
945                 </unix_config>
946                 <app_settings>
947                     <user_agent>Evergreen %s Link Checker</user_agent>
948                 </app_settings>
949             </open-ils.url_verify>
950
951             <opensrf.math>
952                 <keepalive>3</keepalive>
953                 <stateless>1</stateless>
954                 <language>c</language>
955                 <implementation>libosrf_math.so</implementation>
956                 <unix_config>
957                     <unix_sock>opensrf.math_unix.sock</unix_sock>
958                     <unix_pid>opensrf.math_unix.pid</unix_pid>
959                     <max_requests>1000</max_requests>
960                     <unix_log>opensrf.math_unix.log</unix_log>
961                     <min_children>1</min_children>
962                     <max_children>15</max_children>
963                     <min_spare_children>1</min_spare_children>
964                     <max_spare_children>5</max_spare_children>
965                 </unix_config>
966             </opensrf.math>
967
968             <opensrf.dbmath> 
969                 <keepalive>3</keepalive>
970                 <stateless>1</stateless>
971                 <language>c</language>
972                 <implementation>libosrf_dbmath.so</implementation>
973                 <unix_config>
974                     <max_requests>1000</max_requests>
975                     <unix_log>opensrf.dbmath_unix.log</unix_log>
976                     <unix_sock>opensrf.dbmath_unix.sock</unix_sock>
977                     <unix_pid>opensrf.dbmath_unix.pid</unix_pid>
978                     <min_children>1</min_children>
979                     <max_children>15</max_children>
980                     <min_spare_children>1</min_spare_children> 
981                     <max_spare_children>5</max_spare_children>
982                 </unix_config>
983             </opensrf.dbmath>
984
985             <open-ils.justintime>
986                 <keepalive>5</keepalive>
987                 <stateless>1</stateless>
988                 <language>perl</language>
989                 <implementation>OpenILS::Application::JustInTime</implementation>
990                 <max_requests>199</max_requests>
991                 <unix_config>
992                     <unix_sock>open-ils.justintime_unix.sock</unix_sock>
993                     <unix_pid>open-ils.justintime_unix.pid</unix_pid>
994                     <max_requests>1000</max_requests>
995                     <unix_log>open-ils.justintime_unix.log</unix_log>
996                     <min_children>1</min_children>
997                     <max_children>15</max_children>
998                     <min_spare_children>1</min_spare_children>
999                     <max_spare_children>5</max_spare_children>
1000                 </unix_config>
1001                 <app_settings>
1002                 </app_settings>
1003             </open-ils.justintime>
1004
1005             <open-ils.circ> 
1006                 <keepalive>3</keepalive>
1007                 <stateless>1</stateless>
1008                 <language>perl</language>
1009                 <implementation>OpenILS::Application::Circ</implementation>
1010                 <max_requests>99</max_requests>
1011                 <unix_config>
1012                     <max_requests>1000</max_requests>
1013                     <unix_log>open-ils.circ_unix.log</unix_log>
1014                     <unix_sock>open-ils.circ_unix.sock</unix_sock>
1015                     <unix_pid>open-ils.circ_unix.pid</unix_pid>
1016                     <min_children>1</min_children>
1017                     <max_children>15</max_children>
1018                     <min_spare_children>1</min_spare_children> 
1019                     <max_spare_children>5</max_spare_children>
1020                 </unix_config>
1021                 <app_settings>
1022                     <notify_hold>
1023                         <email>false</email> <!-- set to false to disable hold notice emails -->
1024                     </notify_hold>
1025                 </app_settings>
1026             </open-ils.circ>
1027
1028             <open-ils.storage>
1029                 <keepalive>10</keepalive>
1030                 <stateless>1</stateless>
1031                 <language>perl</language>
1032                 <implementation>OpenILS::Application::Storage</implementation>
1033                 <unix_config>
1034                     <max_requests>1000</max_requests>
1035                     <unix_log>open-ils.storage_unix.log</unix_log>
1036                     <unix_sock>open-ils.storage_unix.sock</unix_sock>
1037                     <unix_pid>open-ils.storage_unix.pid</unix_pid>
1038                     <min_children>1</min_children>
1039                     <max_children>10</max_children>
1040                     <min_spare_children>1</min_spare_children>
1041                     <max_spare_children>5</max_spare_children>
1042                 </unix_config>
1043                 <app_settings>
1044                     <script_path>LIBDIR/javascript/</script_path>
1045                     <script_path>LOCALSTATEDIR/catalog/</script_path>
1046                     <scripts>
1047                         <biblio_fingerprint>biblio_fingerprint.js</biblio_fingerprint>
1048                     </scripts>
1049                     <databases>
1050                         <driver>Pg</driver>
1051                         <database>
1052                             <type>master</type>
1053                             <weight>2</weight>
1054                             <user>postgres</user>
1055                             <host>localhost</host>
1056                             <port>5432</port>
1057                             <pw>postgres</pw>
1058                             <db>evergreen</db>
1059                             <client_encoding>UTF-8</client_encoding>
1060                             <application_name>open-ils.storage</application_name>
1061                         </database>
1062                     </databases>
1063                 </app_settings>
1064             </open-ils.storage>
1065
1066             <open-ils.cstore>
1067                 <keepalive>6</keepalive>
1068                 <stateless>1</stateless>
1069                 <language>C</language>
1070                 <implementation>liboils_cstore.so</implementation>
1071                 <unix_config>
1072                     <max_requests>1000</max_requests>
1073                     <min_children>1</min_children>
1074                     <max_children>15</max_children>
1075                     <min_spare_children>1</min_spare_children>
1076                     <max_spare_children>5</max_spare_children>
1077                 </unix_config>
1078                 <app_settings>
1079                     <max_query_recursion>100</max_query_recursion>
1080                     <driver>pgsql</driver>
1081                     <database>
1082                         <type>master</type>
1083                         <weight>2</weight>
1084                         <user>postgres</user>
1085                         <host>localhost</host>
1086                         <port>5432</port>
1087                         <pw>postgres</pw>
1088                         <db>evergreen</db>
1089                         <client_encoding>UTF-8</client_encoding>
1090                         <application_name>open-ils.cstore</application_name>
1091                     </database>
1092                 </app_settings>
1093             </open-ils.cstore>
1094
1095             <open-ils.pcrud>
1096                 <keepalive>6</keepalive>
1097                 <migratable>1</migratable>
1098                 <stateless>1</stateless>
1099                 <language>C</language>
1100                 <implementation>liboils_pcrud.so</implementation>
1101
1102                 <unix_config>
1103                     <unix_log>open-ils.pcrud.log</unix_log>
1104                     <unix_sock>open-ils.pcrud.sock</unix_sock>
1105                     <unix_pid>open-ils.pcrud.pid</unix_pid>
1106                     <max_requests>1000</max_requests>
1107                     <min_children>1</min_children>
1108                     <max_children>15</max_children>
1109                     <min_spare_children>1</min_spare_children>
1110                     <max_spare_children>5</max_spare_children>
1111                 </unix_config>
1112
1113                 <app_settings>
1114                     <IDL>SYSCONFDIR/fm_IDL.xml</IDL>
1115                     <driver>pgsql</driver>
1116                     <database>
1117                         <type>master</type>
1118                         <weight>2</weight>
1119                         <user>postgres</user>
1120                         <host>localhost</host>
1121                         <port>5432</port>
1122                         <pw>postgres</pw>
1123                         <db>evergreen</db>
1124                         <client_encoding>UTF-8</client_encoding>
1125                         <application_name>open-ils.pcrud</application_name>
1126                     </database>
1127                 </app_settings>
1128             </open-ils.pcrud>
1129
1130             <open-ils.qstore>
1131                 <keepalive>6</keepalive>
1132                 <stateless>1</stateless>
1133                 <language>C</language>
1134                 <implementation>liboils_qstore.so</implementation>
1135                 <unix_config>
1136                     <max_requests>1000</max_requests>
1137                     <min_children>1</min_children>
1138                     <max_children>15</max_children>
1139                     <min_spare_children>1</min_spare_children>
1140                     <max_spare_children>5</max_spare_children>
1141                 </unix_config>
1142                 <app_settings>
1143                     <driver>pgsql</driver>
1144                     <database>
1145                         <type>master</type>
1146                         <weight>2</weight>
1147                         <user>postgres</user>
1148                         <host>localhost</host>
1149                         <port>5432</port>
1150                         <pw>postgres</pw>
1151                         <db>evergreen</db>
1152                         <client_encoding>UTF-8</client_encoding>
1153                         <application_name>open-ils.qstore</application_name>
1154                     </database>
1155                 </app_settings>
1156             </open-ils.qstore>
1157
1158             <opensrf.settings>
1159                 <keepalive>1</keepalive>
1160                 <stateless>1</stateless>
1161                 <language>perl</language>
1162                 <implementation>OpenSRF::Application::Settings</implementation>
1163                 <max_requests>17</max_requests>
1164                 <unix_config>
1165                     <unix_sock>opensrf.settings_unix.sock</unix_sock>
1166                     <unix_pid>opensrf.settings_unix.pid</unix_pid>
1167                     <max_requests>300</max_requests>
1168                     <unix_log>opensrf.settings_unix.log</unix_log>
1169                     <min_children>5</min_children>
1170                     <max_children>15</max_children>
1171                     <min_spare_children>3</min_spare_children>
1172                     <max_spare_children>5</max_spare_children>
1173                 </unix_config>
1174             </opensrf.settings>
1175
1176             <open-ils.collections>
1177                 <keepalive>3</keepalive>
1178                 <stateless>1</stateless>
1179                 <language>perl</language>
1180                 <implementation>OpenILS::Application::Collections</implementation>
1181                 <max_requests>17</max_requests>
1182                 <unix_config>
1183                     <unix_sock>open-ils.collections_unix.sock</unix_sock>
1184                     <unix_pid>open-ils.collections_unix.pid</unix_pid>
1185                     <max_requests>1000</max_requests>
1186                     <unix_log>open-ils.collections_unix.log</unix_log>
1187                     <min_children>1</min_children>
1188                     <max_children>10</max_children>
1189                     <min_spare_children>1</min_spare_children>
1190                     <max_spare_children>5</max_spare_children>
1191                 </unix_config>
1192                 <app_settings>
1193                     <!-- batch_file_dir must be a protected, web-accessible, shared directory -->
1194                     <batch_file_dir>/openils/var/web/collections</batch_file_dir>
1195                 </app_settings>
1196             </open-ils.collections>
1197
1198             <open-ils.reporter>
1199                 <keepalive>3</keepalive>
1200                 <stateless>1</stateless>
1201                 <language>perl</language>
1202                 <implementation>OpenILS::Application::Reporter</implementation>
1203                 <max_requests>99</max_requests>
1204                 <unix_config>
1205                     <unix_sock>open-ils.reporter_unix.sock</unix_sock>
1206                     <unix_pid>open-ils.reporter_unix.pid</unix_pid>
1207                     <max_requests>1000</max_requests>
1208                     <unix_log>open-ils.reporter_unix.log</unix_log>
1209                     <min_children>1</min_children>
1210                     <max_children>10</max_children>
1211                     <min_spare_children>1</min_spare_children>
1212                     <max_spare_children>5</max_spare_children>
1213                 </unix_config>
1214             </open-ils.reporter>
1215
1216             <open-ils.reporter-store>
1217                 <keepalive>6</keepalive>
1218                 <stateless>1</stateless>
1219                 <language>C</language>
1220                 <implementation>liboils_rstore.so</implementation>
1221                 <unix_config>
1222                     <max_requests>400</max_requests>
1223                     <min_children>1</min_children>
1224                     <max_children>10</max_children>
1225                     <min_spare_children>1</min_spare_children>
1226                     <max_spare_children>5</max_spare_children>
1227                 </unix_config>
1228                 <app_settings>
1229                     <driver>pgsql</driver>
1230                     <database>
1231                         <type>master</type>
1232                         <weight>2</weight>
1233                         <user>postgres</user>
1234                         <host>localhost</host>
1235                         <port>5432</port>
1236                         <pw>postgres</pw>
1237                         <db>evergreen</db>
1238                         <client_encoding>UTF-8</client_encoding>
1239                         <application_name>open-ils.reporter-store</application_name>
1240                     </database>
1241                 </app_settings>
1242             </open-ils.reporter-store>
1243
1244 <!-- resolver_type defaults to sfx but can also be cufts -->
1245 <!--
1246            <open-ils.resolver>
1247                <keepalive>3</keepalive>
1248                <stateless>1</stateless>
1249                <language>perl</language>
1250                <implementation>OpenILS::Application::ResolverResolver</implementation>
1251                <max_requests>93</max_requests>
1252                <unix_config>
1253                   <unix_sock>open-ils.resolver_unix.sock</unix_sock>
1254                   <unix_pid>open-ils.resolver_unix.pid</unix_pid>
1255                   <max_requests>1000</max_requests>
1256                   <unix_log>open-ils.resolver_unix.log</unix_log>
1257                   <min_children>5</min_children>
1258                   <max_children>15</max_children>
1259                   <min_spare_children>3</min_spare_children>
1260                   <max_spare_children>5</max_spare_children>
1261                </unix_config>
1262                <app_settings>
1263                   <cache_timeout>86400</cache_timeout>
1264                   <request_timeout>10</request_timeout>
1265                   <default_url_base>http://path/to/sfx_or_cufts</default_url_base>
1266                   <resolver_type>sfx</resolver_type>
1267                </app_settings>
1268             </open-ils.resolver>
1269 -->
1270
1271             <open-ils.permacrud>
1272                <keepalive>3</keepalive>
1273                <stateless>1</stateless>
1274                <language>perl</language>
1275                <implementation>OpenILS::Application::PermaCrud</implementation>
1276                <max_requests>17</max_requests>
1277                <unix_config>
1278                   <unix_sock>open-ils.permacrud_unix.sock</unix_sock>
1279                   <unix_pid>open-ils.permacrud_unix.pid</unix_pid>
1280                   <max_requests>1000</max_requests>
1281                   <unix_log>open-ils.permacrud_unix.log</unix_log>
1282                   <min_children>5</min_children>
1283                   <max_children>15</max_children>
1284                   <min_spare_children>3</min_spare_children>
1285                   <max_spare_children>5</max_spare_children>
1286                </unix_config>
1287             </open-ils.permacrud>
1288
1289             <open-ils.fielder>
1290                <keepalive>3</keepalive>
1291                <stateless>1</stateless>
1292                <language>perl</language>
1293                <implementation>OpenILS::Application::Fielder</implementation>
1294                <max_requests>17</max_requests>
1295                <unix_config>
1296                   <unix_sock>open-ils.fielder_unix.sock</unix_sock>
1297                   <unix_pid>open-ils.fielder_unix.pid</unix_pid>
1298                   <max_requests>1000</max_requests>
1299                   <unix_log>open-ils.fielder_unix.log</unix_log>
1300                   <min_children>5</min_children>
1301                   <max_children>15</max_children>
1302                   <min_spare_children>3</min_spare_children>
1303                   <max_spare_children>5</max_spare_children>
1304                </unix_config>
1305             </open-ils.fielder>
1306
1307             <open-ils.vandelay>
1308                 <keepalive>5</keepalive>
1309                 <stateless>1</stateless>
1310                 <language>perl</language>
1311                 <implementation>OpenILS::Application::Vandelay</implementation>
1312                 <max_requests>100</max_requests>
1313                 <unix_config>
1314                     <unix_sock>vandelay_unix.sock</unix_sock>
1315                     <unix_pid>vandelay_unix.pid</unix_pid>
1316                     <unix_log>vandelay_unix.log</unix_log>
1317                     <max_requests>100</max_requests>
1318                     <min_children>1</min_children>
1319                     <max_children>15</max_children>
1320                     <min_spare_children>1</min_spare_children>
1321                     <max_spare_children>5</max_spare_children>
1322                 </unix_config>
1323                 <app_settings>
1324                     <databases>
1325                         <!-- temporary location for MARC import files.  
1326                             Files will be deleted after records are spooled.
1327                             *note:  in a multi-brick environment, this will need to
1328                             be on a write-able NFS share.  -->
1329                         <importer>/tmp</importer>
1330                         <!-- permanent location for locally added content -->
1331                         <jackets>/openils/var/web/opac/extras/ac</jackets>
1332                     </databases>
1333                 </app_settings>
1334             </open-ils.vandelay>
1335
1336             <open-ils.serial>
1337                 <keepalive>3</keepalive>
1338                 <stateless>1</stateless>
1339                 <language>perl</language>
1340                 <implementation>OpenILS::Application::Serial</implementation>
1341                 <max_requests>17</max_requests>
1342                 <unix_config>
1343                     <unix_sock>open-ils.serial_unix.sock</unix_sock>
1344                     <unix_pid>open-ils.serial_unix.pid</unix_pid>
1345                     <max_requests>1000</max_requests>
1346                     <unix_log>open-ils.serial_unix.log</unix_log>
1347                     <min_children>5</min_children>
1348                     <max_children>15</max_children>
1349                     <min_spare_children>3</min_spare_children>
1350                     <max_spare_children>5</max_spare_children>
1351                 </unix_config>
1352                 <app_settings>
1353                 </app_settings>
1354             </open-ils.serial>
1355
1356             <open-ils.hold-targeter>
1357                 <keepalive>3</keepalive>
1358                 <stateless>1</stateless>
1359                 <language>perl</language>
1360                 <implementation>OpenILS::Application::HoldTargeter</implementation>
1361                 <max_requests>17</max_requests>
1362                 <unix_config>
1363                     <unix_sock>open-ils.hold-targeter_unix.sock</unix_sock>
1364                     <unix_pid>open-ils.hold-targeter_unix.pid</unix_pid>
1365                     <max_requests>1000</max_requests>
1366                     <unix_log>open-ils.hold-targeter_unix.log</unix_log>
1367                     <min_children>1</min_children>
1368                     <max_children>15</max_children>
1369                     <min_spare_children>1</min_spare_children>
1370                     <max_spare_children>5</max_spare_children>
1371                 </unix_config>
1372                 <app_settings>
1373                 </app_settings>
1374             </open-ils.hold-targeter>
1375
1376             <open-ils.ebook_api>
1377                 <keepalive>5</keepalive>
1378                 <stateless>1</stateless>
1379                 <language>perl</language>
1380                 <implementation>OpenILS::Application::EbookAPI</implementation>
1381                 <max_requests>100</max_requests>
1382                 <unix_config>
1383                     <unix_sock>ebook_api_unix.sock</unix_sock>
1384                     <unix_pid>ebook_api_unix.pid</unix_pid>
1385                     <unix_log>ebook_api_unix.log</unix_log>
1386                     <max_requests>100</max_requests>
1387                     <min_children>1</min_children>
1388                     <max_children>15</max_children>
1389                     <min_spare_children>1</min_spare_children>
1390                     <max_spare_children>5</max_spare_children>
1391                 </unix_config>
1392                 <app_settings>
1393                   <cache_timeout>300</cache_timeout>
1394                   <request_timeout>60</request_timeout>
1395                 </app_settings>
1396             </open-ils.ebook_api>
1397
1398             <open-ils.courses>
1399                 <keepalive>5</keepalive>
1400                 <stateless>1</stateless>
1401                 <language>perl</language>
1402                 <implementation>OpenILS::Application::Courses</implementation>
1403                 <max_requests>100</max_requests>
1404                 <unix_config>
1405                     <unix_sock>courses_unix.sock</unix_sock>
1406                     <unix_pid>courses_unix.pid</unix_pid>
1407                     <unix_log>courses_unix.log</unix_log>
1408                     <max_requests>100</max_requests>
1409                     <min_children>1</min_children>
1410                     <max_children>15</max_children>
1411                     <min_spare_children>1</min_spare_children>
1412                     <max_spare_children>5</max_spare_children>
1413                 </unix_config>
1414             </open-ils.courses>
1415
1416             <open-ils.curbside>
1417                 <keepalive>5</keepalive>
1418                 <stateless>1</stateless>
1419                 <language>perl</language>
1420                 <implementation>OpenILS::Application::Curbside</implementation>
1421                 <max_requests>1000</max_requests>
1422                 <unix_config>
1423                     <unix_sock>curbside_unix.sock</unix_sock>
1424                     <unix_pid>curbside_unix.pid</unix_pid>
1425                     <unix_log>curbside_unix.log</unix_log>
1426                     <max_requests>1000</max_requests>
1427                     <min_children>1</min_children>
1428                     <max_children>15</max_children>
1429                     <min_spare_children>1</min_spare_children>
1430                     <max_spare_children>5</max_spare_children>
1431                 </unix_config>
1432                 <app_settings>
1433                 </app_settings>
1434             </open-ils.curbside>
1435         </apps>
1436     </default>
1437
1438     <hosts>
1439
1440         <localhost> 
1441             <!-- ^-=- 
1442             Should match the fully qualified domain name of the host.
1443
1444             On Linux, the output of the following command is authoritative:
1445             $ perl -MNet::Domain -e 'print Net::Domain::hostfqdn() . "\n";'
1446
1447             To use 'localhost' instead, run osrf_control with the 'localhost' flag
1448             -->
1449
1450             <activeapps>
1451                 <!-- services hosted on this machine -->
1452                 <appname>opensrf.settings</appname> 
1453                 <appname>opensrf.math</appname> 
1454                 <appname>opensrf.dbmath</appname> 
1455                 <appname>open-ils.acq</appname> 
1456                 <appname>open-ils.booking</appname>
1457                 <appname>open-ils.cat</appname> 
1458                 <appname>open-ils.supercat</appname> 
1459                 <appname>open-ils.search</appname> 
1460                 <appname>open-ils.circ</appname> 
1461                 <appname>open-ils.actor</appname> 
1462                 <appname>open-ils.auth</appname> 
1463                 <appname>open-ils.auth_internal</appname>
1464                 <appname>open-ils.auth_proxy</appname> 
1465                 <appname>open-ils.storage</appname>  
1466                 <appname>open-ils.justintime</appname>  
1467                 <appname>open-ils.cstore</appname>  
1468                 <appname>open-ils.collections</appname>
1469                 <appname>open-ils.qstore</appname>
1470                 <appname>open-ils.reporter</appname>  
1471                 <appname>open-ils.reporter-store</appname>  
1472                 <!-- <appname>open-ils.resolver</appname> -->
1473                 <appname>open-ils.permacrud</appname>  
1474                 <appname>open-ils.pcrud</appname>  
1475                 <appname>open-ils.trigger</appname>  
1476                 <appname>open-ils.url_verify</appname>
1477                 <appname>open-ils.fielder</appname>  
1478                 <appname>open-ils.vandelay</appname>  
1479                 <appname>open-ils.serial</appname>  
1480                 <appname>open-ils.hold-targeter</appname>  
1481                 <appname>open-ils.ebook_api</appname>
1482                 <appname>open-ils.courses</appname>
1483                 <appname>open-ils.curbside</appname>
1484                 <appname>open-ils.geo</appname>
1485             </activeapps>
1486         </localhost>
1487     </hosts>
1488
1489 </opensrf>