Skip to content

Configuration parameters

This section describes most configuration parameters available to Kerko and KerkoApp.

Unless indicated otherwise, all parameters are optional and will take a default value if omitted from your configuration.

Note

Flask and Flask extensions loaded by the application may provide additional configuration parameters that are not described in this manual. To find those, please refer to the documentation of the relevant package.

Changing the Kerko configuration can be disruptive

Making any change to a Kerko configuration file requires that you at least restart the application afterwards for the change to become effective.

Moreover, some parameters have an effect on the structure of the cache or the search index that Kerko depends on. Changing this kind of parameter may require that you rebuild either. Refer to the documentation of the parameter to check if specific actions need to be taken after a change.

Prefix your environment variables

KerkoApp users must prefix parameter names with KERKOAPP_ when configuring them as environment variables. However, that prefix should be omitted when the same parameter is set in a TOML file. See environment variables for details.

Be a minimalist, only set a parameter when necessary

If a parameter's default value works for you, just omit that parameter from your configuration file. Your configuration file will be much smaller and easier to read, and you will have less things to check when eventually upgrading Kerko.


BABEL_DEFAULT_LOCALE

The default language of the user interface.

Type: String
Default value: "en"


BABEL_DEFAULT_TIMEZONE

The timezone to use for user facing times. Any timezone name supported by the pytz package should work.

Type: String
Default value: "UTC"


CONFIG_FILES

Specifies where to look for one or more TOML configuration files. The value must be a semicolon-separated list of file paths.

The files are loaded in the specified order. The parameters from each file get merged into the previously known configuration. If a given parameter was already set, its value is overwritten by the one from the later file.

Paths may be absolute or relative. Relative paths are resolved from the current working directory. If a specified file is not found there, it is searched by traversing the directories upwards. If the root directory is reached and the file is still not found, then the same search method is reapplied, but this time starting from the INSTANCE_PATH.

Type: String
Default value: "config.toml;instance.toml;.secrets.toml"

Environment variable only

This parameter is specific to KerkoApp and cannot be set in a TOML file. It can only be set as an environment variable, therefore it should actually be referenced as KERKOAPP_CONFIG_FILES. See environment variables for details.


DATA_PATH

The data path specifies a directory where Kerko may store its cache, search index, and file attachments. This may be provided as an absolute path or as a relative path. If a relative path is given, it will be relative to INSTANCE_PATH.

Type: String
Default value: "kerko"


INSTANCE_PATH

The instance path specifies a directory where the application may store data and configuration files.

Type: String
Default value: Determined by Flask. In practice, the default for KerkoApp users is a directory named instance located at the same level as the wsgi.py file. You may set INSTANCE_PATH to a different directory, which you must specify as an absolute path.

Environment variable only

This parameter is specific to KerkoApp and cannot be set in a TOML file. It can only be set as an environment variable, therefore it should actually be referenced as KERKOAPP_INSTANCE_PATH. See environment variables for details.


LOGGING_ADDRESS

Address to send log messages to. Used only if LOGGING_HANDLER is set to "syslog".

Type: String
Default value: "/dev/log"


LOGGING_FORMAT

Log message format string, with %-style placeholders. Refer to the Python logging documentation for allowed attributes.

Type: String
Default value: "[%(asctime)s] %(levelname)s in %(module)s: %(message)s"


LOGGING_HANDLER

Logging handler to use. At this time, the sole allowed value is "syslog". If no value is set, the default handler will write to the default stream (usually sys.stderr).

Type: String


LOGGING_LEVEL

Severity of events to log. Allowed values are "DEBUG", "INFO", "WARNING", "ERROR", and "CRITICAL".

Type: String
Default value: "DEBUG" if the application is running in debug mode, or "WARNING" otherwise.


SECRET_KEY

This parameter is required for generating secure tokens in web forms. It should have a hard to guess value, and should really remain secret.

This parameter is required and has no default value.

Type: String


ZOTERO_API_KEY

This parameter specifies your Zotero API key, as created on zotero.org.

Kerko does not need to write to your library. Thus, we recommend that your API key be read-only, and that it does not grant any more access to your Zotero data than strictly necessary.

On zotero.org, the API key creation options vary on whether you want to connect Kerko to a personal library or to a group library:

Make sure to check Allow library access, as well as Allow notes access, unless you are certain you won't need any Kerko feature that relies on notes. If you are unsure at this point, we recommend that you allow notes access, otherwise some features might not work, and when that happens you might not remember that it is the API key that is blocking notes access. You can always edit the API key later.

We recommend that you use Per group permissions so that access is strictly restricted to the chosen group. Make sure that Read Only is selected for that group. This will grant read-only access to all items of that group, including notes.

This parameter is required and has no default value.

Type: String


ZOTERO_LIBRARY_ID

The identifier of the Zotero library to get data from.

Finding your library ID:

For a personal library, the value is your userID, as found on zotero.org (you must be logged-in).

For a group library this value is the groupID of the library, as found in the URL of the library (e.g., the groupID of the library at https://www.zotero.org/groups/2348869/kerko_demo is "2348869").

This parameter is required and has no default value.

Type: String


ZOTERO_LIBRARY_TYPE

The type of library to get data from, either "user" for a personal library, or "group" for a group library.

This parameter is required and has no default value.

Type: String


kerko.bib_formats.*.

Bibliographic record download formats, where * is a format key.

The default formats are:

  • bibtex
  • ris

The configuration system does not allow adding new formats.

enabled

Enable the format. If this is set to false, the format will not be available through any download link.

Type: Boolean

Modifies the cache and the search index

Changing this parameter from false to true will require that you run the sync cache --full and sync index commands. See synchronization commands for details.

extension

File extension of the downloadable file.

Type: String

help_text

Description of the format, to show in the help window.

Type: String

label

Label to use in the format selector.

Type: String

mime_type

MIME type of the downloadable format.

Type: String

weight

Relative position of the format in lists. Formats with low weights (small numbers) rise above heavier ones (large numbers).

Type: Integer


kerko.breadcrumb.

A breadcrumb is a navigational aid that displays the location of the current page in relation to the structure of a website.

If enabled, the breadcrumb works in relation with the kerko.link_groups.breadcrumb_base parameter, which defines the base (starting links) of the breadcrumb trail, which Kerko dynamically completes with one or more links based on the current location within Kerko.

enabled

Enable the breadcrumb.

Type: Boolean
Default value: true

include_current

Include the current page at the end of the breadcrumb trail. If set to false, the breadcrumb trail will end with the parent page instead of the current page.

Type: Boolean
Default value: true

text_max_length

Maximum length for a breadcrumb item's text (in number of characters). If text is to be truncated in the middle of a word, the whole word is discarded instead. Truncated text is appended with an ellipsis sign ("...").

If set to 0, no truncation will be applied.

Type: Integer
Default value: 50

text_max_length_leeway

If the length of a breadcrumb item's text only exceeds kerko.breadcrumb.text_max_length by this tolerance margin or less (in number of characters), the text will not be truncated.

This parameter has no effect if text_max_length is set to 0 (no truncation).

Type: Integer
Default value: 10


kerko.facets.*.

Facets to provide in the search interface, where * is a facet key. The facet key is used internally by Kerko to identify the facet.

The default facets are:

  • item_type (item types facet, enabled by default)
  • language (item languages facet, disabled by default)
  • link (items with links facet, disabled by default)
  • tag (item tags facet, enabled by default)
  • year (item years facet, enabled by default)

You may define additional facets. See Defining custom facets based on Zotero collections.

Modifies the search index

Most of the kerko.facets.* parameters require that you run the clean index and sync index commands after you have changed them. See synchronization commands for details.

collection_key

Key of the Zotero collection to map the facet to. This must refer to a top-level collection containing at least one hierarchical level of subcollections. Each subcollection will be mapped to a filter under the facet, if it contains at least one item that is not excluded through the kerko.zotero.item_include_re or kerko.zotero.item_exclude_re parameters.

This parameter has no default value and is required for facets whose type parameter is set to "collection".

Type: String

enabled

Enable the facet.

Type: Boolean
Default value: depends on which facet you are looking at.

filter_key

Key to use in URLs when filtering with the facet.

Type: String
Default value: depends on which facet you are looking at.

initial_limit

Maximum number of filters to show by default under the facet. Excess filters will be shown if the user clicks a "view more" button. A value of 0 means no limit.

Type: Integer
Default value: depends on which facet you are looking at.

initial_limit_leeway

If the number of filters under the facet exceeds initial_limit by this tolerance margin or less, all filters will be shown. A value of 0 means no tolerance margin.

Type: Integer
Default value: depends on which facet you are looking at.

item_view

Show the facet on item view pages.

Type: Boolean
Default value: depends on which facet you are looking at.

sort_by

List of criteria used for sorting the filters under the facet. Allowed values in this list are "count" and "label".

Type: Array of strings
Default value: depends on which facet you are looking at.

sort_reverse

Reverse the sort order of the filters under the facet.

Type: Boolean
Default value: depends on which facet you are looking at.

title

Heading of the facet.

Type: String
Default value: depends on which facet you are looking at.

type

Type of facet. Determines the data source of the facet.

Allowed values are:

  • "collection": Use a Zotero collection as source.
  • "item_type": Use the item type as source.
  • "language": Use item Language field as source.
  • "link": Use item URL field as source.
  • "tag": Use Zotero tags as source.
  • "year": Use the item year field as source.

This parameter is required and has no default value.

Type: String

weight

Relative position of the facet in lists. Facets with low weights (small numbers) rise above heavier ones (large numbers).

Type: Integer
Default value: depends on which facet you are looking at.

kerko.facets.language.

The parameters in this section only apply to the language facet.

Source values for the language facet are extracted from the Language field of Zotero items.

allow_invalid

Allow values that are not found in the pycountry language database.

This parameter has an effect only if normalize is set to true.

If this parameter is set to true, non-standard or badly entered language names will be allowed to appear in the language facet. You may find that you have to clean your data in Zotero if you wish to make the facet usable.

If this parameter is set to false, non-standard or badly entered language names will be omitted from the language facet. The facet will only show recognized languages but may give an incomplete picture of all the languages present in your library.

Type: Boolean
Default value: true

locale

The locale to use when displaying language names in the language facet. Translations are provided by pycountry.

This parameter has an effect only if normalize is set to true.

Type: String
Default value: "en"

normalize

Normalize language names using the pycountry language database.

If this parameter is set to true, slight inconsistencies in your data can be attenuated, preventing unwanted duplicates in the facet. For example, values such as fr, FR, fra, Fra, fre, fr-FR, fr-fr, fr-CA, or French will all fall under a single French term in the facet. The normalization process is case insensitive, ignores country or area codes, and recognizes:

  • 3-letter ISO 639-3 language codes;
  • 3-letter ISO 639-2 bibliographic (B) codes;
  • 2-letter ISO 639-1 codes;
  • English language names.

Terms not falling into any of the above categories will be considered invalid. To choose what to do with invalid terms, see the allow_invalid parameter.

For the best results with the normalize option, we recommend that you record languages in Zotero using 2-letter ISO 639-1 codes (because they also happen to be supported by the Citation Style Language), or 3-letter ISO 639-3 codes for languages not covered by ISO 639-1.

If normalize is set to false, item language values will be used verbatim. In that case, the facet will work equally well if your language data is well controlled and consistent. This is the way to go if languages are consistently recorded using their non-English names in your Zotero library.

Type: Boolean
Default value: true

values_separator_re

Regular expression to use for splitting the content of Zotero's Language field into multiple languages, e.g., en; de; it. We do not necessarily recommend recording multiple languages in the Language field, but in practice some people do when describing multilingual resources.

Type: String
Default value: ";"


kerko.features.

download_attachment_new_window

Open attachments in new tabs. In other words: add the HTML target="_blank" attribute to attachment links.

Type: Boolean
Default value: false

download_item

Provide a record download button on item pages.

To configure the bibliographic formats made available for downloading, see kerko.bib_formats.

Type: Boolean
Default value: true

download_results

Provide a record download button on search results pages.

To configure the bibliographic formats made available for downloading, see kerko.bib_formats.

Type: Boolean
Default value: true

download_results_max_count

Limit over which the record download button should be hidden from search results pages.

Type: Integer
Default value: 0 (i.e., no limit)

open_in_zotero_app

On item pages, show a button for opening the corresponding item in the Zotero application (through a link using the zotero:// protocol). If this parameter is set to true, a user will still need to first enable the button from the Preferences menu (which can be accessed from the footer of item pages and saves the user's choices in browser cookies). For the link to work, the user must also have the Zotero application installed, and have access to the Zotero library. This feature is generally only useful to library editors and might confuse other users, especially if your Zotero library is private. Thus you should probably enable this option only if there is a strong need from the editors.

Type: Boolean
Default value: false

open_in_zotero_web

On item pages, show a button for viewing the corresponding item on zotero.org (through a regular hyperlink). If this parameter is set to true, a user will still need to first enable the button from the Preferences menu (which can be accessed from the footer of item pages and saves the user's choices in browser cookies). For the link to work, the user must also have access to the Zotero library. This feature is generally only useful to library editors and might confuse other users, especially if your Zotero library is private. Thus you should probably enable this option only if there is a strong need from the editors.

Type: Boolean
Default value: false

Provide a print button on item pages.

Type: Boolean
Default value: false

Provide a print button on search results pages.

Type: Boolean
Default value: false

Limit over which the print button should be hidden from search results pages.

Type: Integer
Default value: 0 (i.e., no limit)

relations_initial_limit

Number of related items to show above the "show more" link.

Type: Integer
Default value: 5

Show item links in lists of related items.

Enabling this only has an effect if at least one of the following variables is also set to true: kerko.features.results_attachment_links, kerko.features.results_url_links.

Type: Boolean
Default value: false

results_abstracts

Show abstracts on search result pages.

Type: Boolean
Default value: false (i.e., hide abstracts)

results_abstracts_toggler

Show a button letting users show or hide abstracts on search results pages.

Type: Boolean
Defaults value: true (i.e., toggle is displayed)

results_abstracts_max_length

Truncate abstracts at the given length (in number of characters). If text is to be truncated in the middle of a word, the whole word is discarded instead. Truncated text is appended with an ellipsis sign ("...").

Type: Integer
Default value: 0 (i.e., abstracts get displayed in their full length, without any truncation)

results_abstracts_max_length_leeway

If the length of an abstract only exceeds kerko.features.results_abstracts_max_length by this tolerance margin or less (in number of characters), it will not be truncated.

This parameter has no effect if results_abstracts_max_length is set to 0 (no truncation).

Type: Integer
Default value: 0 (i.e., no tolerance margin).

Provide links to attachments in search results.

Type: Boolean
Default value: true

Provide links to online resources in search results (for items whose URL field has a value).

Type: Boolean
Default value: true


kerko.feeds.

formats

A list of syndication feed formats to publish.

If set to an empty array, no web feed will be provided. The only supported format at this time is 'atom'.

Type: Array of strings
Default value: ["atom"]

fields

List of fields to retrieve for each feed item. Values in this list are keys identifying fields defined in the kerko_composer object, and the list must contain all fields that are used by the kerko.templates.atom_feed template.

One probably only needs to change the default list when overriding the template to display additional fields.

Note that some fields from the default list may be required by Kerko, and removing those could cause crashes.

Type: Dictionary

max_days

The age (in number of days) of the oldest items allowed into web feeds. The date field of the items is used for that purpose, and when no date is available, the date the item was added to Zotero is used instead.

Unless your goal is to promote recent literature only, you should probably keep the default value.

Items with missing dates will be considered as very recent, to prevent them from being excluded from feeds. For the same reason, items whose date lack the month and/or the day will be considered as from the 12th month of the year and/or the last day of the month.

Type: Integer
Default value: 0 (i.e., no age limit)


Link groups, where * is an arbitrary key used for identifying the group. Each group is a list which must contain at least one link defined using one or more of the sub-parameters described below.

Link groups can be used for navigation or anywhere hyperlinks are needed. Templates can use the key to retrieve a desired link group.

Kerko provides default navbar and breadcrumb_base link groups. In TOML format, these are defined as below (the double brackets indicate a list item):

[[kerko.link_groups.navbar]]
type = "endpoint"
endpoint = "kerko.search"
text = "Bibliography"

[[kerko.link_groups.breadcrumb_base]]
type = "endpoint"
endpoint = "kerko.search"
text = "Bibliography"

anchor

Anchor to append to the endpoint's URL.

This optional parameter is only allowed when the type parameter is set to "endpoint".

Type: String

endpoint

Name of the endpoint within the application to use as target for the link. Use this for internal links. For example, the endpoint for the Kerko search page is "kerko.search".

This parameter is required if the type parameter is set to "endpoint" and has no default value.

Type: String

external

Generate a full URL (with scheme and domain) for the endpoint instead of an internal URL.

This parameter is only allowed when the type parameter is set to "endpoint".

Type: Boolean
Default value: false

new_window

Open the link in a new tab.

Type: Boolean
Default value: false

page

Key of the page to use as target for the link. That page must have been defined in kerko.pages.*.

This parameter is required if the type parameter is set to "page" (and cannot be used with other type values).

Type: String

parameters

Dictionary of parameters to pass to the endpoint. Unknown keys are appended to the URL as query string arguments, like ?a=b&c=d.

This optional parameter is only allowed when the type parameter is set to "endpoint".

Type: Dictionary

scheme

Protocol to use in the endpoint's URL.

This parameter is only allowed when the type parameter is set to "endpoint" and the external parameter is set to true.

Type: String
Default value: Same protocol as the current request

text

Text to use for the link.

This parameter is required and has no default value.

Type: String

type

Type of link being configured. Other parameters may or may not be available depending on this value.

Allowed values are:

  • "endpoint": Link to an application page (served by a Flask endpoint).
  • "page": Link to a page defined in kerko.pages.*.
  • "url": Link to an arbitrary URL.

This parameter is required and has no default value.

Type: String

url

URL of the external link.

This parameter is required if the type parameter is set to "url".

Type: String

weight

Relative position of the link in lists. Links with low weights (small numbers) rise above heavier ones (large numbers). At equal weights, links are ordered based on their order of appearance in the configuration.

Type: Integer
Default value: 0


kerko.meta.

google_analytics_id

A Google Analytics stream ID, e.g., 'G-??????????'.

If the value is not empty and Flask is not running in debug mode, then the Google Analytics tag is inserted into the pages.

Type: String
Default value: ""

highwirepress_tags

Embed Highwire Press tags into the HTML of item pages. This should help search engines such as Google Scholar index your items more accurately, but works only with book, conference paper, journal article, report or thesis items.

Type: Boolean
Default value: true (i.e., enabled).

title

The title to display in web pages.

Type: String


kerko.pages.*.

Simple content pages, where * is an arbitrary key you must choose to uniquely identify the page. The content of the page will come from a Zotero standalone note of your choosing.

The key can be used in kerko.link_groups.* tables to define hyperlinks to the page.

path

The path to use in the URL of the page. Must start with a slash (/) character.

Type: String

item_id

The Zotero item ID of the note to use as content for the page.

Type: String

title

The title of the page.

Type: String


kerko.pagination.

page_len

The number of search results per page.

Type: Integer
Default value: 20

Number of pages to show in the pager (not counting the current page).

Type: Integer
Default value: 4


kerko.performance.

whoosh_index_memory_limit

Maximum memory (in megabytes) the Whoosh index writer will use for the indexing pool. The higher the number, the faster indexing will be.

The actual memory used will be higher than this value because of interpreter overhead (up to twice as much!). Other operations performed by Kerko at indexing time use memory too. Thus, although useful as a tuning parameter, this setting does not allow to exactly control the memory usage.

Type: Integer
Default value: 128

whoosh_index_processors

Controls the number of processors Whoosh will use for indexing.

Note that when you use multiprocessing, the whoosh_index_memory_limit parameter controls the amount of memory used by each process, so the actual memory used will be whoosh_index_memory_limit × whoosh_index_processors.

Type: Integer
Default value: 1


kerko.scopes.*.

Keyword search scopes, where * is a scope key. The scope key is used internally by Kerko to identify the scope. Scopes allow users to restrict the search to some fields.

The default scopes are:

  • all
  • creator
  • fulltext
  • metadata
  • pubyear
  • title

You may define additional scopes.

To link fields to scopes, see kerko.search_fields.scopes.

breadbox_label

Label to use when the scope appears in the breadbox, i.e. in the list of search criteria.

enabled

Enable the scope.

Type: Boolean

help_text

Description of the scope, to show in the help window.

Type: String

selector_label

Label to use in the scope selector.

Type: String

weight

Relative position of the scope in lists. Scopes with low weights (small numbers) rise above heavier ones (large numbers).

Type: Integer


kerko.search.

fulltext

Allow full-text search of PDF attachments.

Type: Boolean
Default value: true

Tip

To get consistent results with full-text search, see Ensuring full-text indexing of your attachments in Zotero.

Tip

When setting kerko.search.fulltext to false, it is recommended that you set kerko.scopes.fulltext.enabled and kerko.scopes.metadata.enabled to false as well. With full-text data unavailable, the fulltext scope is useless, and the metadata scope gives the same results as the all scope.

Modifies the cache and the search index

Changing this parameter will require that you run the sync cache --full and sync index commands. See synchronization commands for details.

result_fields

List of item fields to retrieve for search results (most notably used by the kerko.templates.search_item template).

Values in this list are keys identifying fields defined in the kerko.composer.Composer instance. One probably only needs to change the default list when overriding the template to display additional fields.

Note that some fields from the default list may be required by Kerko, and removing those could cause crashes.

Type: Array of strings
Default value: ["id", "attachments", "bib", "coins", "data", "url"]

whoosh_language

The language of search requests.

As of this writing, Whoosh supports the following languages: ar, da, nl, en, fi, fr, de, hu, it, no, pt, ro, ru, es, sv, tr. You may refer to Whoosh's source code to get the list of supported languages (see whoosh.lang.languages) and the list of languages that support stemming (see whoosh.lang.has_stemmer()).

Type: String
Default value: "en"

Modifies the search index

Changing this parameter will require that you run the sync index --full command. See synchronization commands for details.


kerko.search_fields.*.

Searchable fields, where * is a field key. The default fields fall into different tables:

  • core.optional.*: These fields have limited parameters. Their only allowed parameters are boost, enabled, and scopes.
  • core.required.*: These fields cannot be disabled. Their only allowed parameters are boost and scopes.
  • zotero.*: These fields derive directly from Zotero item fields and allow all field parameters.

The configuration system does not allow adding new fields.

Modifies the search index

Changing any of the kerko.search_fields.* parameters will require that you run the clean index and sync index commands, except if you are just disabling a field or changing its scopes parameter. See synchronization commands for details.

analyzer

Type of analysis to apply to the field value when building the search index.

Allowed values:

  • "id": Index the entire value of the field as one token.
  • "name": Apply standard tokenization and filtering, but without stemming.
  • "text": Apply standard tokenization, stemming and filtering.

Type: String

boost

Scaling factor to apply to score when matches are found in the field.

Type: Float

enabled

Enable the field.

Type: Boolean

scopes

List of keyword search scopes that will exploit the field.

Allowed values are determined by kerko.scopes.

Type: Array of strings


kerko.sorts.*.

Search results sorting options, where * is a sort option key.

The default sort options are:

  • author_asc
  • author_desc
  • date_asc
  • date_desc
  • score
  • title_asc
  • title_desc

The configuration system does not allow adding new sort options.

enabled

Enable the sort option.

Type: Boolean

label

Label of the sort option.

Type: String

weight

Relative position of the sort option in lists. Sort options with low weights (small numbers) rise above heavier ones (large numbers).

The default sort option will be the one with the lowest weight.

Type: Integer

Tip

It is recommended that kerko.sorts.score.weight has the smallest value of all your sort options. Thus, when a keyword search is performed, sorting by relevance score will be the default, and when no keywords are used in the search, then the sort option with the second smallest weight will be the default one.


kerko.templates.

Name of the Jinja2 template to render for the search page with list of results.

Type: String
Default value: "kerko/search.html.jinja2"

search_item

Name of the Jinja2 template to render for the search page with a single bibliographic record.

Type: String
Default value: "kerko/search-item.html.jinja2"

item

Name of the Jinja2 template to render for the bibliographic record view.

Type: String
Default value: "kerko/item.html.jinja2"

atom_feed

Name of the Jinja2 template used to render an Atom feed.

Type: String
Default value: "kerko/atom.xml.jinja2"

layout

Name of the Jinja2 template that is extended by the search, search-item, and item templates.

Type: String
Default value: "kerko/layout.html.jinja2"

base

Name of the Jinja2 template that is extended by the layout template.

Type: String
Default value: "kerko/base.html.jinja2"


kerko.zotero.

attachment_mime_types

List of allowed MIME types for attachments.

Type: Array of strings
Default value: ["application/pdf"]

Modifies the attachments

Changing this parameter will require that you run the sync attachments command. See synchronization commands for details.

csl_style

The citation style to use for formatted references.

Allowed values are either a file name (without the .csl extension) found in the Zotero Styles Repository (e.g., "apa") or the publicly accessible URL of a remote CSL file.

Type: String
Default value: "apa".

Modifies the cache and the search index

Changing this parameter will require that you run the sync cache --full and sync index commands. See synchronization commands for details.

batch_size

Number of items to request on each call to the Zotero API.

Type: Integer
Default value: 100 (this is the maximum currently allowed by the Zotero API)

child_include_re

Regular expression to use to include children (e.g. notes, attachments) based on their tags. Any child which does not have a tag that matches this regular expression will be ignored. If this value is empty (which is the default), all children will be accepted unless kerko.zotero.child_exclude_re is set and causes some to be rejected.

Type: String
Default value: ""

Modifies the search index and attachments

Changing this parameter will require that you run the sync index --full and sync attachments commands. See synchronization commands for details.

child_exclude_re

Regular expression to use to exclude children (e.g. notes, attachments) based on their tags. Any child that have a tag that matches this regular expression will be ignored. If empty, no children will be rejected unless kerko.zotero.child_include_re is set and the tags of those children do not match it. By default, any child having at least one tag that begins with an underscore character (_) is rejected.

Type: String
Default value: "^_"

Modifies the search index and attachments

Changing this parameter will require that you run the sync index --full and sync attachments commands. See synchronization commands for details.

item_include_re

Regular expression to use to include items based on their tags. Any item which does not have a tag that matches this regular expression will be ignored. If this value is empty (which is the default), all items will be accepted unless kerko.zotero.item_exclude_re is set which can cause some items to be rejected.

Type: String
Default value: ""

Modifies the search index and attachments

Changing this parameter will require that you run the sync index --full and sync attachments commands. See synchronization commands for details.

item_exclude_re

Regular expression to use to exclude items based on their tags. Any item that have a tag that matches this regular expression will be excluded. If empty (which is the default), no items will be excluded unless kerko.zotero.item_include_re is set, in which case items that do not have any tag that matches it will be excluded.

Type: String
Default value: ""

Modifies the search index and attachments

Changing this parameter will require that you run the sync index --full and sync attachments commands. See synchronization commands for details.

locale

The locale to use with Zotero API calls. This dictates the locale of Zotero item types, field names, creator types and citations. Supported locales are listed at https://api.zotero.org/schema, under "locales".

Type: String
Default value: "en-US"

Modifies the cache and the search index

Changing this parameter will require that you run the sync cache --full and sync index commands. See synchronization commands for details.

max_attempts

Maximum number of tries after the Zotero API has returned an error or has not responded during indexing.

Type: Integer
Default value: 10

tag_include_re

Regular expression to use to include tags. By default, all tags are accepted.

Note that record exports (downloads) always include all tags regardless of this parameter, which only applies to information displayed by Kerko (exports are generated by the Zotero API, not by Kerko).

Type: String
Default value: ""

Modifies the search index

Changing this parameter will require that you run the sync index --full command. See synchronization commands for details.

tag_exclude_re

Regular expression to use to exclude tags. The default value causes any tag that begins with an underscore character (_) to be ignored by Kerko.

Note that record exports (downloads) always include all tags regardless of this parameter, which only applies to information displayed by Kerko (exports are generated by the Zotero API, not by Kerko).

Type: String
Default value: "^_"

Modifies the search index

Changing this parameter will require that you run the sync index --full command. See synchronization commands for details.

wait

Time to wait (in seconds) between failed attempts to call the Zotero API.

Type: Integer
Default value: 120


kerkoapp.proxy_fix.

When an application is running behind a proxy server, WSGI may see the request as coming from that server rather than the real client. Proxies set various headers to track where the request actually came from.

In that case you must tell the application how many proxies set each header so it knows what values to trust. However, enable this ONLY if the application is actually running behind a proxy; it would be a security issue to trust values that came directly from the client rather than a proxy.

Refer to Tell Flask it is behind a proxy for details.

Warning

This parameter is specific to KerkoApp.

enabled

Enable the proxy parameters.

All other kerkoapp.proxy_fix parameters are ignored unless this is set to true.

Type: Boolean
Default value: false

x_for

Number of values to trust for X-Forwarded-For.

Type: Integer
Default value: 1

x_proto

Number of values to trust for X-Forwarded-Proto.

Type: Integer
Default value: 1

x_host

Number of values to trust for X-Forwarded-Host.

Type: Integer
Default value: 0

x_port

Number of values to trust for X-Forwarded-Port.

Type: Integer
Default value: 0

x_prefix

Number of values to trust for X-Forwarded-Prefix.

Type: Integer
Default value: 0