/
config.ini
2510 lines (2263 loc) · 119 KB
/
config.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
;
; VuFind Configuration
;
; This section controls global system behavior and can usually be left unmodified.
[System]
; Change to false to take the system offline and show an unavailability message;
; note that you can use the NoILS driver (in [Catalog] section below) to keep VuFind
; up during ILS maintenance.
available = true
; Change to true to see messages about the behavior of the system as part of the
; output -- only for use when troubleshooting problems. See also the access.DebugMode
; setting in permissions.ini to turn on debug using a GET parameter in the request.
debug = false
; This setting should be set to false after auto-configuration is complete
autoConfigure = true
; This setting specifies a health check file location. If a health check file exists,
; the getServerStatus AJAX call will return an error regardless of actual status
; allowing the server to be disabled from a load-balancer.
;healthCheckFile = /tmp/disable_vufind
; This section will need to be customized for your installation
[Site]
; Base URL is normally auto-detected, but this setting is used when autodetection is
; not possible (i.e. during sitemap generation at the command line).
url = http://library.myuniversity.edu/vufind
; Set to true if VuFind is behind a reverse proxy (typically Apache with mod_proxy),
; make sure your reverse proxy sets the necessary headers.
;reverse_proxy = true
email = support@myuniversity.edu
; The title of your site, used in some messages and (by default) page <title> tags.
; Including site title in page titles is recommended to improve browser tab
; navigation for users with screen readers. However, if you wish to remove this from
; titles or change the order/layout, you can customize the title_wrapper translation
; in your language files to remove or relocate the %%siteTitle%% token.
title = "Library Catalog"
; The separator used between page name and site name in the <title> tag of pages.
titleSeparator = "::"
; This is the default theme for non-mobile devices (or all devices if mobile_theme
; is disabled below). Available standard themes:
; bootstrap3 = HTML5 theme using Bootstrap 3 + jQuery libraries, with minimal styling
; bootprint3 = bootstrap3 theme with more attractive default styling applied
; (named after the earlier, now-deprecated blueprint theme)
; sandal = bootstrap3 theme with a "flat" styling applied (a newer look
; than bootprint3).
theme = sandal
; Uncomment the following line to use a different default theme for mobile devices.
; You may not wish to use this setting if you are using one of the Bootstrap-based
; standard themes since they support responsive design.
;mobile_theme = mobile
; Automatic asset minification and concatenation setting. When active, HeadScript
; and HeadLink will concatenate and minify all viable files to reduce requests and
; load times. This setting is off by default.
;
; This configuration takes the form of a semi-colon separated list of
; environment:configuration pairs where "environment" is a possible APPLICATION_ENV
; value (e.g. 'production' or 'development') or '*'/no prefix for all contexts.
; Possible values for 'configuration' within each environment are 'js', 'css',
; 'off'/false, 'on'/true/'*'. This allows global enabling/disabling of the pipeline
; or separate configurations for different types of resources. Multiple configuration
; values may be comma-separated -- e.g. 'js,css'.
;
; Example: "development:off; production:js,css"
;asset_pipeline = "production:js"
; File size limit for inlining of css @import resources in kilobytes when the asset
; pipeline is enabled (see above) for css files. Set to 0 to disable inlining. Note
; that you will need to delete any css files from local/cache/public directory for
; changes to this setting to take effect.
;
; N.B. The default here is 0 for compatibility with the content security policy.
; A suggested non-zero value is 5, which improves performance by avoiding http
; requests for small images, but any non-zero value requires that data: URIs are
; added as allowed for images in contentsecuritypolicy.ini e.g. with the following
; line:
; img-src[] = "data:"
asset_pipeline_max_css_import_size = 0
; This is a comma-separated list of themes that may be accessed via the ?ui GET
; parameter. Each entry has two parts: the value used on the URL followed by the
; actual theme name. For example, http://library.myuniversity.edu/vufind?ui=theme1
; would load the myTheme1 theme with the setting shown below. Note that the values
; of "standard" and "mobile" are reserved for the default and mobile themes defined
; above.
;alternate_themes = theme1:myTheme1,theme2:myTheme2
; This is a comma-separated list of theme options that will be displayed to the user
; as a drop-down. Each entry has two parts: a value for the "ui" GET parameter and
; an on-screen description. "standard" refers to the "theme" setting above, "mobile"
; refers to the "mobile_theme" setting, and all other values must be defined in
; alternate_themes above. When commented out, no drop-down theme list will display.
;selectable_themes = "standard:Standard Theme,mobile:Mobile Theme"
; Use the browser language setting to set the VuFind language.
browserDetectLanguage = true
language = en ; default -- more options available in [Languages] below.
locale = en_US
; Comma-separated list of fallback languages to check when a translation is missing
; from the active language. Default fallback languages are the default language above
; and "en". Note that for changes to take effect, the language cache directory may
; need to be cleared.
;fallback_languages = "en-gb,de"
; Set this to specify a default ISO 4217 currency code (used on the fines screen).
; If omitted, the default currency for the locale above will be used.
;defaultCurrency = USD
; Find valid timezone values here:
; http://www.php.net/manual/en/timezones.php
timezone = "America/New_York"
; A string used to format user interface date strings using the PHP date() function
; default is m-d-Y (MM-DD-YYYY 01-01-2010)
displayDateFormat = "m-d-Y"
; A string used to format user interface time strings using the PHP date() function
; default is H:i (HH:MM 23:01)
displayTimeFormat = "H:i"
; The base VuFind URL will load this controller unless the user is logged in:
defaultModule = Search
; When defaultModule is used, this action will be triggered (default = Home)
;defaultAction = Home
; The base VuFind URL will load this controller when the user is logged in:
defaultLoggedInModule = MyResearch
; When defaultLoggedInModule is used, this action will be triggered (default = Home)
;defaultLoggedInAction = Home
; The search backend that VuFind will use in search boxes when nothing else is
; specified (e.g. on user account pages, search history, etc.). Default = Solr
;defaultSearchBackend = Solr
; The route VuFind will send users to following a log out operation. Set to false
; or omit to attempt to retain the user's current context after log out.
;logOutRoute = home
; Default tab to display when a record is viewed (see also RecordTabs.ini):
defaultRecordTab = Holdings
; Hide the holdings tab if no holdings are available from the ILS; note that this
; feature requires your ILS driver to support the hasHoldings() method.
hideHoldingsTabWhenEmpty = false
; Whether to load the default tab through AJAX (which brings some performance
; gain but breaks compatibility with non-Javascript-enabled browsers; off by default)
;loadInitialTabWithAjax = true
; The holdingsTemplate to use to display the ILS holdings (defaults to standard).
; See the templates/RecordTab/holdingsils subdirectory of your theme for options.
;holdingsTemplate = extended
; This page will show by default when a user accesses the MyResearch module:
defaultAccountPage = Favorites
; Allow access to the Admin module? (See the access.AdminModule setting in
; permissions.ini for more granular ways to restrict Admin access).
admin_enabled = false
; Show sidebar on the left side instead of right
sidebarOnLeft = false
; Invert the sidebarOnLeft setting for right-to-left languages?
mirrorSidebarInRTL = true
; Put search result thumbnails on the left (true) or right (false)
resultThumbnailsOnLeft = true
; Put favorites list thumbnails on the left (true) or right (false)
listThumbnailsOnLeft = true
; Put hold/checkedout/ILL/etc. item thumbnails on the left (true) or right (false)
accountThumbnailsOnLeft = true
; Show thumbnail on opposite side in right-to-left languages?
mirrorThumbnailsRTL = true
; Handle menu as an offcanvas slider at mobile sizes (in bootstrap3-based themes)
offcanvas = false
; Show (true) / Hide (false) Book Bag - Default is Hide.
showBookBag = false
; Set the maximum amount of items allowed in the Book Bag - Default is 100
bookBagMaxSize = 100
; Show individual add/remove bookbag buttons in search results? (Supersedes cart
; checkboxes and bulk action buttons unless showBulkOptions is true).
bookbagTogglesInSearch = true
; Display bulk items (export, save, etc.) and checkboxes on search result screens?
showBulkOptions = false
; Should users be allowed to save searches in their accounts?
allowSavedSearches = true
; Some VuFind features can be made compatible with non-Javascript browsers at
; a performance cost. By default, this compatibility is disabled, but it can
; be turned on here. Note that even with this setting turned on, some features
; still require Javascript; this simply improves compatibility for certain
; features (such as display of hierarchies).
nonJavascriptSupportEnabled = false
; Generator value to display in an HTML header <meta> tag:
generator = "VuFind 9.1.1"
; This section allows you to configure the mechanism used for storing user
; sessions. Available types: File, Memcache, Database, Redis.
; Some of the settings below only apply to specific session handlers;
; such settings are named with an obvious prefix. Non-prefixed settings
; are global to all handlers.
[Session]
type = File
lifetime = 3600 ; Session lasts for 1 hour
; Should stored session data be encrypted?
secure = false
; Keep-alive interval in seconds. When set to a positive value, the session is kept
; alive with a JavaScript call as long as a VuFind page is open in the browser.
; Default is 0 (disabled). When keep-alive is enabled, session lifetime above can be
; reduced to e.g. 600.
;keepAlive = 60
;file_save_path = /tmp/vufind_sessions
;memcache_host = localhost
;memcache_port = 11211
;memcache_connection_timeout = 1
; The name of the PHP client library to use for connecting to Memcache (can be either
; "Memcache" or "Memcached"); default is "Memcache". Note that if you change from one
; library to another, you should flush your cache to avoid problems caused by
; inconsistencies in data encoding between the two libraries.
;memcache_client = Memcache
;
; Settings related to Redis-based sessions; default values are listed below
;redis_host = localhost
;redis_port = 6379
;redis_connection_timeout = 0.5
;redis_db = 0
;redis_user = username (optional)
;redis_auth = some_secret_password
;redis_version = 3
;redis_standalone = true
; This section controls how VuFind creates cookies (to store session IDs, bookbag
; contents, theme/language settings, etc.)
[Cookies]
; In case there are multiple VuFind instances on the same server and they should not
; share cookies/sessions, this option can be enabled to limit the session to the
; current path. Default is false, which will place cookies at the root directory.
;limit_by_path = true
; If VuFind is only accessed via HTTPS, this setting can be enabled to disallow
; the browser from ever sending cookies over an unencrypted connection (i.e.
; before being redirected to HTTPS). Default is false.
;only_secure = true
; Whether to set cookies set by the server (apart from cart function) "HTTP only" so
; that they cannot be accessed by scripts. Default is true.
;http_only = false
; Set the domain used for cookies (sometimes useful for sharing the cookies across
; subdomains); by default, cookies will be restricted to the current hostname.
;domain = ".example.edu"
; This sets the session cookie's name. Comment this out to use the default
; PHP_SESS_ID value. If running multiple versions of VuFind (or multiple PHP
; applications) on the same host, it is strongly recommended to give each a
; different session_name setting to avoid data contamination.
session_name = VUFIND_SESSION
; Set the SameSite attribute used for cookies. Default is Lax. See e.g.
; https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite for
; more information
;sameSite = "Lax"
; Whether to ask for cookie consent (required e.g. for GDPR compliance). Default is
; false. See also CookieConsent.yaml for cookie categories and other settings.
;consent = false
; Categories to enable for cookie consent. This is a comma-separated list of
; categories defined in CookieConsent.yaml. Default is "essential".
;consentCategories = "essential,matomo"
; Cookie consent revision. If you change the categories or do any other major changes
; in CookieConsent.yaml, you will need to increase revision as well so that users get
; prompted for consent.
;consentRevision = 0
; Please set the ILS that VuFind will interact with.
;
; Available drivers:
; - Aleph
; - Alma
; - Amicus
; - ComposedDriver (combining multiple drivers)
; - DAIA (using either XML or JSON API)
; - Demo (fake ILS driver returning complex responses)
; - Evergreen
; - Folio
; - GeniePlus
; - Horizon (basic database access only)
; - HorizonXMLAPI (more features via API)
; - Innovative (for INNOPAC; see also SierraRest)
; - Koha (basic database access only)
; - KohaILSDI (more features via ILS-DI API)
; - KohaRest (the most feature-complete Koha driver using Koha's REST API. Requires
; at least Koha 20.05 and the koha-plugin-rest-di extension found at:
; https://github.com/natlibfi/koha-plugin-rest-di)
; - MultiBackend (to chain together multiple drivers in a consortial setting)
; - NewGenLib
; - NoILS (for users with no ILS, or to disable ILS features during maintenance),
; - PAIA
; - Polaris
; - Sample (fake ILS driver returning bare-minimum data)
; - SierraRest (accesses Sierra via REST API)
; - Symphony (uses native SirsiDynix APIs)
; - Unicorn (also applies to Symphony; requires installation of connector found at:
; http://code.google.com/p/vufind-unicorn/)
; - Virtua
; - Voyager (database access only; for Voyager 6+)
; - VoyagerRestful (for Voyager 7+ w/ RESTful web services)
; - XCNCIP2 (for XC NCIP Tookit v2.x)
;
; If you haven't set up your ILS yet, two fake drivers are available for testing
; purposes. "Sample" is fast but does very little; "Demo" simulates more
; functionality of a real ILS but may slow down your system by performing extra
; searches. If you don't plan to use an ILS, the NoILS driver is your best option.
;
; Note: Enabling most of the features in this section will only work if you use an
; ILS driver that supports them; not all drivers support holds/renewals.
[Catalog]
driver = Sample
; If true, the user will be presented with a login form for entering ILS credentials
; when attempting to access ILS functionality without working cached credentials.
; If false, the user will instead see an error screen. You should use the false value
; here when the user's ILS credentials are automatically loaded into the database via
; [Authentication] and related configuration, and you never expect a user to manually
; provide these details.
;
; Note: if you disable user login, this can also have implications for the
; library_cards setting (see below).
allowUserLogin = true
; loadNoILSOnFailure - Whether or not to load the NoILS driver if the main driver fails
loadNoILSOnFailure = false
; healthCheckId - When performing ILS health checks (see the IlsStatusMonitor block
; described in searches.ini for more details), VuFind will look up the status of a
; bibliographic record and ensure the response is well-formed. By default, it uses
; a bibliographic record ID of "1". If your ILS does not accept "1" as a valid
; identifier, you can specify a different health check record ID here.
;healthCheckId = 12345
; List of search backends that contain records from your ILS (defaults to Solr
; unless set otherwise). You can set ilsBackends = false to disable ILS status
; loading entirely.
;ilsBackends[] = Solr
; This setting determines how and when hold / recall links are displayed.
; Legal values:
; - all (Show links for all items - Place Hold for Available Items and Place Recall
; for unavailable items)
; - availability (Only show recall links if ALL items on bib are currently
; unavailable)
; - disabled (Never show hold/recall links)
; - driver (Use ILS driver to determine which items may be held/recalled; best option
; if available, but not supported by all drivers)
; - holds (Only show links for available items)
; - recalls (Only show links for unavailable items)
; default is "all"
holds_mode = "all"
; Set this to true if you want to allow your ILS driver to override your holds_mode
; setting on a record-by-record basis; this may be useful for local customizations,
; but in most cases you should leave this setting unchanged. Overrides are ignored
; for mode settings of "driver" or "disabled."
allow_holds_override = false
; Determines if holds can be cancelled or not. Options are true or false.
; default is false
cancel_holds_enabled = false
; Determines if storage retrieval requests can be cancelled or not.
; Options are true or false.
; default is false
cancel_storage_retrieval_requests_enabled = false
; Determines if ILL requests can be cancelled or not.
; Options are true or false.
; default is false
cancel_ill_requests_enabled = false
; Determines if item can be renewed or not. Options are true or false.
; default is false
renewals_enabled = false
; Determines if title level holds are displayed or not.
; Legal values:
; - disabled (Never show title Holds - Default)
; - always (Always show title Holds)
; - availability (Only show title holds if ALL items on bib are currently
; unavailable)
; - driver (Use ILS driver to determine which items may be held/recalled; best option
; if available, but not supported by all drivers)
title_level_holds_mode = "disabled"
; Determines how holdings are grouped in the record display, using fields from
; the item information provided by the ILS driver.
;
; Most commonly-used values:
; - holdings_id,location (Use holdings record id if available, location name as
; secondary - Default)
; - location (Use location name)
;
; See https://vufind.org/wiki/development:plugins:ils_drivers#getholding for
; more options (though not every ILS driver supports every possible value).
;
; Note that there may also be driver-specific values outside of the specification,
; such as:
; - item_agency_id (XCNCIP2 driver's Agency ID, which may be useful in consortial
; environments)
;
; You may use multiple group keys (delimited by comma), e.g.,
; - item_agency_id,location
;holdings_grouping = holdings_id,location
; Text fields such as holdings_notes gathered from items to be displayed in each
; holdings group in the display order.
; The default list is 'holdings_notes', 'summary', 'supplements' and 'indexes'. The
; deprecated field 'notes' is used as an alias for 'holdings_notes'.
; Note that displayed information depends on what the ILS driver returns.
;holdings_text_fields[] = 'holdings_notes'
;holdings_text_fields[] = 'summary'
; Whether support for multiple library cards is enabled. Default is false.
;
; Note: to create library cards through a manual form, users will require
; the allowUserLogin setting (see above) to be enabled as well.
;library_cards = true
; Whether support for connecting multiple library cards via authentication is
; enabled. This is currently only supported for Shibboleth. Default is false.
; See https://vufind.org/wiki/configuration:shibboleth:library_cards for details.
;auth_based_library_cards = true
; The number of checked out items to display per page; 0 for no limit (may cause
; memory problems for users with huge numbers of items). Default = 50.
;checked_out_page_size = 50
; The number of historic loans to display per page; 0 for no limit (may cause
; memory problems for users with a large number of historic loans). Default = 50
;historic_loan_page_size = 50
; Whether to display the item barcode for each loan. Default is false.
;display_checked_out_item_barcode = true
; Whether to display items without barcodes in the Holdings tab. Prior to VuFind
; 9.0, hiding items without barcodes was VuFind's default behavior. The current
; default value is true -- to always display ALL items.
; If you need to apply more complex filtering rules to Holdings display, you
; can extend/override the VuFind\View\Helper\Root\Holdings::holdingIsVisible method.
;display_items_without_barcodes = true
; This section controls features related to user accounts
[Account]
; Allow the user to set a home library through the Profile screen, which will
; override ILS-provided default pickup locations throughout the system.
set_home_library = true
; Allow the user to "subscribe" to search history entries in order to receive
; email notifications of new search results.
schedule_searches = false
; Should we always send a scheduled search email the first time we run notices
; after a user has subscribed (true), or should we only send an email when there
; is actually something new (false, default)
force_first_scheduled_email = false
; When schedule_searches is set to true, you can customize the schedule frequencies
; here -- just use the number of days between notifications in the brackets. Labels
; will be run through the translator.
;scheduled_search_frequencies[0] = schedule_none
;scheduled_search_frequencies[1] = schedule_daily
;scheduled_search_frequencies[7] = schedule_weekly
; This section allows you to determine how the users will authenticate.
; You can use an LDAP directory, the local ILS (or multiple ILSes through
; the MultiILS option), the VuFind database (Database), a hard-coded list of
; access passwords (PasswordAccess), AlmaDatabase (combination
; of VuFind database and Alma account), Shibboleth, SIP2, CAS, Facebook, Email or
; some combination of these (via the MultiAuth or ChoiceAuth options).
;
; The Email method is special; it is intended to be used through ChoiceAuth in
; combination with Database authentication (or any other method that reliably stores
; the user's email address) to make it possible to log in by receiving an
; authentication link at the email address stored in VuFind's database. Email is
; also supported as the primary authentication mechanism for some ILS drivers (e.g.
; Alma). In these cases, ChoiceAuth is not needed, and ILS should be configured as
; the Authentication method; see the ILS driver's configuration for possible options.
;
; Also note that the Email method stores hashes in your database's auth_hash table.
; You should run the "php $VUFIND_HOME/public/index.php util expire_auth_hashes"
; utility periodically to clean out old data in this table.
[Authentication]
;method = LDAP
;method = ILS
method = Database
;method = AlmaDatabase
;method = Shibboleth
;method = SIP2
;method = CAS
;method = MultiAuth
;method = ChoiceAuth
;method = MultiILS
;method = Facebook
;method = PasswordAccess
;method = Email
;method = SimulatedSSO ; FOR TESTING ONLY -- see SimulatedSSO.ini
; This setting only applies when method is set to ILS. It determines which
; field of the ILS driver's patronLogin() return array is used as the username
; in VuFind's user database. If commented out, it defaults to cat_username
; (the recommended setting in most situations).
;ILS_username_field = cat_username
; Whether or not to hide the Login Options; note that even when this is set to
; false, ILS driver settings may be used to conditionally hide the login. See
; hideLogin in the [Settings] section of NoILS.ini for an example.
hideLogin = false
; When set to true, uses AJAX calls to annotate the account menu with
; notifications (overdue items, total fines, etc.)
enableAjax = true
; When set to true, replicates the account menu as a drop-down next to the
; account link in the header.
enableDropdown = false
; Setting this to false will turn off password hashing and store user passwords
; in plain text, which is NOT RECOMMENDED, but may be useful if you are in the
; process of migrating data from a very old VuFind release that predates password
; hashing. DO NOT CHANGE under other circumstances. Also note that this setting
; only applies when method = Database or AlmaDatabase above.
hash_passwords = true
; Allow users to recover passwords via email (if supported by Auth method)
; You can set the subject of recovery emails in your
; language files under the term "recovery_email_subject"
recover_password = false
; Time (seconds) before another recovery attempt can be made
recover_interval = 60
; Length of time before a recovery hash can no longer be used (expires)
; Default: Two weeks
recover_hash_lifetime = 1209600
; Allow users to set change their email address (if supported by Auth method).
; When turning this on, it is also strongly recommended to turn on verify_email
; below.
change_email = false
; Allow users to set change their passwords (if supported by Auth method)
change_password = true
; Force users to verify their email address before being able to log in
; (only if method=Database) or make changes to it (if change_email=true).
; If you wish to customize the email messages used by the system, see the
; translation strings starting with verify and change_notification, as well as
; the notify-email-change.phtml and verify-email.phtml Email templates.
verify_email = false
; Set this to false if you would like to store catalog passwords in plain text
encrypt_ils_password = false
; This is the key used to encrypt and decrypt catalog passwords. This must be
; filled in with a random string value when encrypt_ils_passwords is set to true.
; Note: aes requires a key exactly 32 characters long.
; 32 chars -> "--------------------------------"
ils_encryption_key = false
; This is the algorithm used to encrypt and decrypt catalog passwords.
; A symmetrical encryption algorithm must be used.
; You can use openssl_get_cipher_methods() to see available options on your system.
; Common choices: blowfish (deprecated -- do not use), aes (recommended), cast, sm4
; If you want to convert from one algorithm to another, run this from $VUFIND_HOME:
; php public/index.php util switch_db_hash new_algorithm new_key
ils_encryption_algo = "aes"
; This setting may optionally be uncommented to restrict the email domain(s) from
; which users are allowed to register when using the Database or AlmaDatabase method.
;legal_domains[] = "myuniversity.edu"
;legal_domains[] = "mail.myuniversity.edu"
; Specify default minimum and maximum new username length (Auth method may override
; this).
;minimum_username_length = 3
;maximum_username_length = 32
; Specify default limit of accepted characters in the username. Allowed values
; are "numeric", "alphanumeric" or a regular expression.
; The following default requires the username to consist of printable characters
; allowed in email addresses (i.e. !#$%&'*+-/=?^_`{|}~) and letters and decimal
; numbers in any script (see
; https://www.php.net/manual/en/regexp.reference.unicode.php for more information):
username_pattern = "([\\x21\\x23-\\x2B\\x2D-\\x2F\\x3D\\x3F\\x40\\x5E-\\x60\\x7B-\\x7E\\p{L}\\p{Nd}]+)"
; Specify default hint about what the username may contain when using a regexp
; pattern. May be text or a translation key. The "numeric" and "alphanumeric"
; patterns have translated default hints.
username_hint = username_only_letters_numbers_and_basic_punctuation
; Specify default minimum and maximum password length (Auth method may override
; this).
;minimum_password_length = 4
;maximum_password_length = 32
; Specify default limit of accepted characters in the password. Allowed values
; are "numeric", "alphanumeric" or a regular expression
;password_pattern = "(?=.*\d)(?=.*[a-z])(?=.*[A-Z])"
; Specify default hint about what the password may contain when using a regexp
; pattern. May be text or a translation key. The "numeric" and "alphanumeric"
; patterns have translated default hints.
;password_hint = "Include both upper and lowercase letters and at least one number."
; Uncomment this line to switch on "privacy mode" in which no user information
; will be stored in the database. Note that this is incompatible with social
; features, password resets, and many other features. It is not recommended for
; use with "Database" or "AlmaDatabase" authentication, since the user will be
; forced to create a new account upon every login.
;privacy = true
; Allow a user to delete their account. Default is false.
;account_deletion = true
; Whether comments added by a user are deleted when they remove their account.
; Default is true.
;delete_comments_with_user = false
; Whether ratings added by a user are deleted when they remove their account.
; Default is true.
;delete_ratings_with_user = false
; "Remember me" functionality for listed login methods. If the user chooses to save
; the login, a login token cookie and a database entry will be created.
; The implementation is based on Improved Persistent Login Cookie Best Practice, see
; https://gist.github.com/oleg-andreyev/9dcef18ca3687e12a071648c1abff782
; User's browser information is stored with the login token. This requires an up to
; date browscap cache. The browscap cache can be updated in the Maintenance section
; of the admin UI or by using the util/browscap command line utility. If you use the
; command line utility, you will need to ensure that the user of the web server has
; read and write access to the cache directory and its contents as well.
; If you use cookie consent, ensure that the loginToken cookie is included (look for
; {{vufind_login_token_cookie_name}} in CookieConsent.yaml).
;persistent_login = "database,multiils"
; Persistent login token lifetime in days
;persistent_login_lifetime = 60
; Whether to send email warnings about suspicious logins. Default is true.
;send_persistent_login_warnings = true
; Whether to use a more lenient token rotation to avoid cookie issues with Safari,
; which sometimes fails to maintain cookies across sessions. Default is true.
;lenient_token_rotation = true
; Subject for the email sent after a suspicious login has been detected.
; Default email subject will be the translation for
; "persistent_login_warning_email_subject" and any custom value used here
; will also be run through the translator.
;persistent_login_warning_email_subject = "%%title%%: Invalid login attempt detected"
; See the comments in library/VF/Auth/MultiAuth.php for full details
; on using multiple authentication methods. Note that MultiAuth assumes login
; with username and password, so some methods (i.e. Shibboleth) may not be
; compatible.
;[MultiAuth]
;method_order = ILS,LDAP
;filters = "username:trim,password:trim"
; Present two auth options on the login screen. Each choice given must also be
; configured in its relevant section. (The code should allow for more than 2
; choices, but styling would need to be expanded / modified)
;
; WARNING! This module does not account for the possibility that the auth
; choices you present may return different usernames. You would want a user to
; be able to log in via any method and see the same account. To make sure that
; is the case, you should ensure that the usernames given by the authentication
; methods themselves are the same for any given user.
;[ChoiceAuth]
;choice_order = Shibboleth,Database
; This section defines the location/behavior of the Solr index and requires no
; changes for most installations
[Index]
; url can also be an array of servers. If so, VuFind will try the servers one by one
; until one can be reached. This is only useful for advanced fault-tolerant Solr
; installations.
url = http://localhost:8983/solr
; Default bibliographic record index name (core or collection)
default_core = biblio
; Default authority record index name (core or collection)
default_authority_core = authority
; This setting needs to match the <maxBooleanClauses> setting in your solrconfig.xml
; file; when VuFind has to look up large numbers of records using ID values, it may
; have to restrict the size of its result set based on this limitation.
maxBooleanClauses = 1024
; This is the timeout in seconds when communicating with the Solr server.
timeout = 30
; This is the Dismax handler to use if nothing is specified in searchspecs.yaml.
; You can choose dismax for standard Dismax (the default) or edismax for Extended
; Dismax, or you can configure your own custom handler in solrconfig.xml.
default_dismax_handler = dismax
; This is the number of records to retrieve in a batch e.g. when building a record
; hierarchy. A higher number results in fewer round-trips but may increase Solr's
; memory usage. Default is 1000. Set to false to disable use of cursors in retrieval
; (which is only necessary if your local custom code leverages Solr features which
; are incompatible with cursorMark usage).
;cursor_batch_size = 1000
; This limits the number of records to retrieve in a batch e.g. when retrieving
; records for a list. Default is 100 which should be a good number to avoid
; memory problems.
;record_batch_size = 100
; Enable/Disable searching reserves using the "reserves" Solr index. When enabling
; this feature, you need to run the util/index_reserves.php script to populate the
; new index.
[Reserves]
search_enabled = false
; This section requires no changes for most installations; if your SMTP server
; requires authentication, you can fill in a username and password below.
[Mail]
host = localhost
port = 25
;username = user
;password = pass
; The server name to report to the upstream mail server when sending mail.
;name = vufind.myuniversity.edu
; If a login is required you can define which protocol to use for securing the
; connection. If no explicit protocol ('tls' or 'ssl') is configured, a protocol
; based on the configured port is chosen (587 -> tls, 487 -> ssl).
;secure = tls
; This setting enforces a limit (in seconds) on the lifetime of an SMTP
; connection, which can be useful when sending batches of emails, since it can
; help avoid errors caused by server timeouts. Comment out the setting to disable
; the limit.
connection_time_limit = 60
; Uncomment this setting to disable outbound mail but simulate success; this
; is useful for interface testing but should never be used in production!
;testOnly = true
; If set to false, users can send anonymous emails; otherwise, they must log in first
require_login = true
; Should we put the logged-in user's address in the "from" field by default?
user_email_in_from = false
; Should we put the logged-in user's address in the "to" field by default?
user_email_in_to = false
; Should the user be allowed to edit email subject lines?
user_editable_subjects = false
; How many recipients is the user allowed to specify? (use 0 for no limit)
maximum_recipients = 1
; Populate the "from" field with this value if user_email_in_from is false and/or no
; user is logged in:
;default_from = "no-reply@myuniversity.edu"
; Should we hide the "from" field in email forms? If no from field is visible, emails
; will be sent based on user_email_in_from and default_from above, with the email
; setting from the [Site] section used as a last resort.
disable_from = false
; From field override. Setting this allows keeping the "from" field in email forms
; but will only use it as a reply-to address. The address defined here is used as the
; actual "from" address.
; Note: If a feature explicitly sets a different reply-to address (for example,
; Feedback forms), the original from address will NOT override that reply-to value.
;override_from = "no-reply@myuniversity.edu"
; Being a special case of mail message, sending record results via SMS ("Text this")
; may be "enabled" or "disabled" ("enabled" by default).
; Should you choose to leave it enabled, see also sms.ini for further
; configuration options.
sms = enabled
; Set this value to "database" to shorten links sent via email/SMS and
; store its path in the database (default "none").
url_shortener = none
; Which method to use for generating the short link key. Options:
; - base62: Base62-encode the database row ID (insecure, but makes very short URLs)
; - md5: Create a salted MD5 hash of the URL (DEFAULT: more private, but also longer)
; ...or any hash algorithm supported by PHP's hash() function.
url_shortener_key_type = md5
; Which redirect mechanism to use when shortlinks are resolved.
; threshold:1000 (default) : If the URL is shorter than the given size, HTTP is used, else HTML.
; html : HTML meta redirect after 3 seconds with infobox.
; http : Use HTTP location header for redirects.
; May cause problems if the HTTP header is longer than 8192 bytes
; due to long URL's.
;url_shortener_redirect_method = threshold:1000
; This section needs to be changed to match your database connection information
[Database]
; Connection string format is [platform]://[username]:[password]@[host]:[port]/[db]
; where:
; [platform] = database platform (mysql, oci8 or pgsql)
; [username] = username for connection
; [password] = password for connection (optional)
; [host] = host of database server
; [port] = port of database server (optional)
; [db] = database name
database = mysql://root@localhost/vufind
; Should SSL be enabled on connections? (Currently only supported for MySQL).
; IMPORTANT: when using Linux, if your database connection string above uses
; "localhost", MySQL will automatically use a Unix socket connection. To force
; an SSL connection, change "localhost" to the IP address (e.g. "127.0.0.1").
use_ssl = false
; When use_ssl above is true, the SSL certificate used by MySQL will not be
; verified by default. This is usually a self-signed certificate that cannot be
; easily verified. Skipping verification will not prevent traffic from being
; securely encrypted, it simply means that you trust the validity of the
; certificate being used by your server. If you do switch this to true in order
; to force certificate verification, additional configuration may be needed to
; successfully connect and ensure actual certificate verification occurs.
; For PHP, you should fill in the security-related settings in extra_options
; below; for Java (used by the MARC import tool), see the "Connecting Securely
; Using SSL" section of the Connector/J manual for details.
verify_server_certificate = false
; This setting can be used to send additional options to the Laminas DB adapter.
; This is useful for advanced features unsupported by settings above, such as
; detailed SSL security configuration.
;extra_options[client_key] = "/path/to/key"
;extra_options[client_cert] = "/path/to/cert"
;extra_options[ca_cert] = "/path/to/ca_cert"
;extra_options[ca_path] = "/path/to/ca"
; If your database (e.g. PostgreSQL) uses a schema, you can set it here:
;schema = schema_name
; The character set of the database -- utf8 and utf8mb4 are currently the only
; supported values, and utf8mb4 is the default if no value is set here. If you have
; a legacy VuFind 1.x database encoded in latin1, please upgrade it to utf8 using
; VuFind 7.x or earlier.
;charset = utf8
; Reduce access to a set of single passwords
; This is only used when Authentication method is PasswordAccess. See above.
; Recommended to be used in conjunction with very restricted permissions.ini settings
; and with most social settings disabled
;[PasswordAccess]
; access_user is a map of users to passwords
; entering a correct password will login as that user
;access_user[user] = password
;access_user[admin] = superpassword
; LDAP is optional. This section only needs to exist if the
; Authentication Method is set to LDAP. When LDAP is active,
; host, port, basedn and username are required.
;[LDAP]
; Prefix the host with ldaps:// to use LDAPS; omit the prefix for standard
; LDAP with TLS.
;host = ldap.myuniversity.edu
;port = 389 ; LDAPS usually uses port 636 instead
; By default, when you use regular LDAP (not LDAPS), VuFind uses TLS security.
; You can set disable_tls to true to bypass TLS if your server does not support
; it. Note that this setting is ignored if you use ldaps:// in the host setting.
;disable_tls = false
;basedn = "o=myuniversity.edu"
;username = uid
; separator string for mapping multi-valued ldap-fields to a user attribute
; if no separator is given, only the first value is mapped to the given attribute
;separator = ';'
; Optional settings to map fields in your LDAP schema to fields in the user table
; in VuFind's database -- the more you fill in, the more data will be imported
; from LDAP into VuFind:
;firstname = givenname
;lastname = sn
;email = mail
;cat_username =
;cat_password =
;college = studentcollege
;major = studentmajor
; If you need to bind to LDAP with a particular account before
; it can be searched, you can enter the necessary credentials
; here. If this extra security measure is not needed, leave
; these settings commented out.
;bind_username = "uid=username o=myuniversity.edu"
;bind_password = password
; SIP2 is optional. This section only needs to exist if the
; Authentication Method is set to SIP2.
;[SIP2]
;host = ils.myuniversity.edu
;port = 6002
; Shibboleth is optional. This section only needs to exist if the
; Authentication Method is set to Shibboleth. Be sure to set up authorization
; logic in the permissions.ini file to filter users by Shibboleth attributes.
;[Shibboleth]
; Server param with the identity provider entityID if a Shibboleth session exists.
; If omitted, Shib-Identity-Provider is used.
;idpserverparam = Shib-Identity-Provider
; Optional: Session ID parameter for SAML2 single logout support. If omitted, single
; logout support is disabled. Note that if SLO support is enabled, Shibboleth session
; ID's are tracked in external_session table which may need to be cleaned up with the
; util/expire_external_sessions command line utility. See
; https://vufind.org/wiki/configuration:shibboleth for more information on how
; to configure the single logout support.
;session_id = Shib-Session-ID
; Check for expired session - user is automatically logged out when Shibboleth
; session is not present (default = true if unset); note that expiration check
; also requires session_id to be set above.
;checkExpiredSession = false
; Optional: you may set attribute names and values to be used as a filter;
; users will only be logged into VuFind if they match these filters.
;userattribute_1 = entitlement
;userattribute_value_1 = urn:mace:dir:entitlement:common-lib-terms
;userattribute_2 = unscoped-affiliation
;userattribute_value_2 = member
; Set to true when shibboleth attributes must be read from headers instead of
; environment variables - for example if you use proxy server and shibboleth is
; running on proxy side. In that case you should protect against header spoofing:
; see https://wiki.shibboleth.net/confluence/display/SP3/SpoofChecking for details
;use_headers = false
; Required: the attribute Shibboleth uses to uniquely identify users.
;username = persistent-id
; Required: Shibboleth login URL.
;login = https://shib.myuniversity.edu/Shibboleth.sso/Login
; Optional: Shibboleth logout URL.
;logout = https://shib.myuniversity.edu/Shibboleth.sso/Logout
; Optional: URL to forward to after Shibboleth login (if omitted,
; defaultLoggedInModule from [Site] section will be used).
;target = https://shib.myuniversity.edu/vufind/MyResearch/Home
; Optional: provider_id (entityId) parameter to pass along to Shibboleth login.
;provider_id = https://idp.example.edu/shibboleth-idp
; Some or all of the following entries may be uncommented to map Shibboleth
; attributes to user database columns:
;cat_username = HTTP_ALEPH_ID
;cat_password = HTTP_CAT_PASSWORD
;email = HTTP_MAIL
;firstname = HTTP_FIRST_NAME
;lastname = HTTP_LAST_NAME
;college = HTTP_COLLEGE
;major = HTTP_MAJOR
;home_library = HTTP_HOME_LIBRARY
; Enable if you want to override mapping or required attributes for specific IdP
; in Shibboleth.ini
;allow_configuration_override = true
; CAS is optional. This section only needs to exist if the
; Authentication Method is set to CAS.
;[CAS]
; Optional: the attribute CAS uses to uniquely identify users. (Omit to use
; native CAS username instead of an attribute-based value).
;username = uid
; Required: CAS Hostname.
;server = cas.myuniversity.edu
; Required: CAS port.
;port = 443
; Required: CAS context.
;context = /cas
; Required: CAS Certificate Path. (Set to false to bypass authentication;
; BYPASSING AUTHENTICATION IS *NOT* RECOMMENDED IN PRODUCTION).
;CACert = /etc/pki/cert/cert.crt
; Required: CAS login URL.
;login = https://cas.myuniversity.edu/cas/login
; Required: CAS logout URL.
;logout = https://cas.myuniversity.edu/cas/logout
; Optional : CAS client base URL. If omitted, [Site][url] will be used
;service_base_url[] = "https://vufind.myuniversity.edu"
;service_base_url[] = "http://vufind.myuniversity.edu"
; Optional: CAS logging, forwarded to [Logging]
;debug = false
; Optional: URL to forward to after CAS login (if omitted,
; defaultLoggedInModule from [Site] section will be used).
;target = http://lib.myuniversity.edu/vufind/MyResearch/Home
; Optional: protocol to follow (legal values include CAS_VERSION_1_0,
; CAS_VERSION_2_0, CAS_VERSION_3_0 and SAML_VERSION_1_1; default is
; SAML_VERSION_1_1)
;protocol = SAML_VERSION_1_1
; Some or all of the following entries may be uncommented to map CAS
; attributes to user database columns:
;cat_username = acctSyncUserID
;cat_password = catPassword
;email = mail
;firstname = givenName
;lastname = sn
;college = college
;major = major1
;home_library = library
; Facebook may be used for authentication; fill in this section in addition to
; turning it on in [Authentication] above to use it. You must register your
; VuFind instance as an application at http://developers.facebook.com to obtain
; credentials.
;[Facebook]
;appId = "your app ID"
;secret = "your app secret"
; External Content is Optional.
; To use multiple, separate with a comma. Priority will be given by the order listed
; Account id is separated with a colon, if no id is used then no colon is necessary
;
; IMPORTANT: Review content providers' terms of service before turning them on.
; Terms may change, and not all content sources are appropriate for all
; applications. The existence of functionality in VuFind does not imply
; suitability for any particular situation.
[Content]
; You can define the cover size used by each template: false (to disable covers)
; or size (small, medium, or large). A colon separated list may be used to try
; multiple sizes in a particular order. All legal template values and default
; values are reflected in the examples below. Uncomment the appropriate lines to
; make changes.
;coversize[checkedout] = small
;coversize[collection-info] = medium
;coversize[core] = medium
;coversize[holds] = small
;coversize[illrequests] = small
;coversize[list-entry] = small
;coversize[RandomRecommend] = "small:medium"
;coversize[result-grid] = large
;coversize[result-list] = small
;coversize[similar-items] = large
;coversize[storageretrievalrequests] = small
; Alternatively, if you wish to disable covers completely, you may set the
; coversize setting to false:
;coversize = false