Mercurial > p > roundup > code
view doc/tracker_config.txt @ 8266:43dc610bbd24
doc: known issues with possible dependent tests
When reversing the testing order, two blocks of tests fail. Document
these.
I spent time trying to fix them, but got nowhere. Obviously I am
missing something. But this doc gives future me or somebody else a
starting point.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Thu, 09 Jan 2025 09:32:10 -0500 |
| parents | 8b5f8b950f58 |
| children | c3bf229d3d4b |
line wrap: on
line source
.. index:: config.ini; sections main .. _`config-ini-section-main`: .. code:: ini [main] # Database directory path. # The path may be either absolute or relative # to the directory containing this config file. # Default: db database = db # Templating engine to use. # Possible values are: # 'zopetal' for the old TAL engine ported from Zope, # 'chameleon' for Chameleon, # 'jinja2' for jinja2 templating. # Available found jinja2 module. # Default: zopetal template_engine = zopetal # Path to the HTML templates directory. # The path may be either absolute or relative # to the directory containing this config file. # Default: html templates = html # A list of space separated directory paths (or a single # directory). These directories hold additional public # static files available via Web UI. These directories # may contain sitewide images, CSS stylesheets etc. If a # '-' is included, the list processing ends and the # TEMPLATES directory is not searched after the specified # directories. If this option is not set, all static # files are taken from the TEMPLATES directory. Access to # these files is public, it is not checked against # registered users. So do not put any sensitive data in # the files in these directories. # The space separated paths may be either absolute # or relative to the directory containing this config file. # Default: static_files = # Email address that roundup will complain to if it runs # into trouble. # If no domain is specified then the config item # mail -> domain is added. # Default: roundup-admin admin_email = roundup-admin # The 'dispatcher' is a role that can get notified # when errors occur while sending email to a user. # It is used by the ERROR_MESSAGES_TO config setting. # If no domain is specified then the config item # mail -> domain is added. # Default: roundup-admin dispatcher_email = roundup-admin # Additional text to include in the "name" part # of the From: address used in nosy messages. # If the sending user is "Foo Bar", the From: line # is usually: "Foo Bar" <issue_tracker@tracker.example> # the EMAIL_FROM_TAG goes inside the "Foo Bar" quotes like so: # "Foo Bar EMAIL_FROM_TAG" <issue_tracker@tracker.example> # Default: email_from_tag = # Roles that a user gets when they register # with Web User Interface. # This is a comma-separated string of role names # (e.g. 'Admin,User'). # Default: User new_web_user_roles = User # Roles that a user gets when they register # with Email Gateway. # This is a comma-separated string of role names # (e.g. 'Admin,User'). # Default: User new_email_user_roles = User # On schema changes, properties or classes in the history may # become obsolete. Since normal access permissions do not apply # (we don't know if a user should see such a property or class) # a list of roles is specified here that are allowed to see # these obsolete properties in the history. By default only the # admin role may see these history entries, you can make them # visible to all users by adding, e.g., the 'User' role here. # Default: Admin obsolete_history_roles = Admin # Send error message emails to the "dispatcher", "user", # or "both" (these are the three allowed values). # The dispatcher is configured using the DISPATCHER_EMAIL # setting. # Default: user error_messages_to = user # This setting should be left at the default value of html4. # Support for xhtml has been disabled. # HTML version to generate. The templates are html4 by default. # Allowed values: html4 # Default: html4 html_version = html4 # Default timezone offset, # applied when user's timezone is not set. # If pytz module is installed, value may be any valid # timezone specification (e.g. EET or Europe/Warsaw). # If pytz is not installed, value must be integer number # giving local timezone offset from UTC in hours. # Default: UTC timezone = UTC # Register new users instantly, or require confirmation via # email? # Allowed values: yes, no # Default: no instant_registration = no # Offer registration confirmation by email or only # through the web? # Allowed values: yes, no # Default: yes email_registration_confirmation = yes # Force Roundup to use a particular text indexer. # If no indexer is supplied, the first available indexer # will be used in the following order: # Possible values: xapian, whoosh, native (internal), native-fts. # Note 'native-fts' will only be used if set. # Allowed values: '', 'xapian', 'whoosh', 'native', 'native-fts' # Default: indexer = # Used to determine what language should be used by the # indexer above. Applies to Xapian and PostgreSQL native-fts # indexer. It sets the language for the stemmer, and PostgreSQL # native-fts stopwords and other dictionaries. # Possible values: must be a valid language for the indexer, # see indexer documentation for details. # Default: english indexer_language = english # Additional stop-words for the full-text indexer specific to # your tracker. See the indexer source for the default list of # stop-words (eg. A,AND,ARE,AS,AT,BE,BUT,BY, ...). This is # not used by the postgres native-fts indexer. But is used to # filter search terms with the sqlite native-fts indexer. # Allowed values: comma-separated list of words # Default: indexer_stopwords = # Defines the file creation mode mask. # Default: 0o2 umask = 0o2 # Maximum size of a csv-field during import. Roundups export # format is a csv (comma separated values) variant. The csv # reader has a limit on the size of individual fields # starting with python 2.5. Set this to a higher value if you # get the error 'Error: field larger than field limit' during # import. # Default: 131072 csv_field_size = 131072 # Sets the default number of rounds used when encoding passwords # using the PBKDF2 scheme. Set this to a higher value on faster # systems which want more security. # PBKDF2 (Password-Based Key Derivation Function) is a # password hashing mechanism that derives hash from the # password and a random salt. For authentication this process # is repeated with the same salt as in the stored hash. # If both hashes match, the authentication succeeds. # PBKDF2 supports a variable 'rounds' parameter which varies # the time-cost of calculating the hash - doubling the number # of rounds doubles the cpu time required to calculate it. The # purpose of this is to periodically adjust the rounds as CPUs # become faster. The currently enforced minimum number of # rounds is 1000. # See: http://en.wikipedia.org/wiki/PBKDF2 and RFC2898 # Default: 2000000 password_pbkdf2_default_rounds = 2000000 .. index:: config.ini; sections tracker .. _`config-ini-section-tracker`: .. code:: ini [tracker] # A descriptive name for your roundup instance. # Default: Roundup issue tracker name = Roundup issue tracker # The web address that the tracker is viewable at. # This will be included in information # sent to users of the tracker. # The URL MUST include the cgi-bin part or anything else # that is required to get to the home page of the tracker. # URL MUST start with http/https scheme and end with '/' # Default: NO DEFAULT #web = NO DEFAULT # Email address that mail to roundup should go to. # If no domain is specified then mail_domain is added. # Default: issue_tracker email = issue_tracker # Controls the reply-to header address used when sending # nosy messages. # If the value is unset (default) the roundup tracker's # email address (above) is used. # If set to "AUTHOR" then the primary email address of the # author of the change will be used as the reply-to # address. This allows email exchanges to occur outside of # the view of roundup and exposes the address of the person # who updated the issue, but it could be useful in some # unusual circumstances. # If set to some other value, the value is used as the reply-to # address. It must be a valid RFC2822 address or people will not # be able to reply. # Default: replyto_address = # Default locale name for this tracker. # If this option is not set, the language is determined # by OS environment variable LANGUAGE, LC_ALL, LC_MESSAGES, # or LANG, in that order of preference. # Default: language = .. index:: config.ini; sections web .. _`config-ini-section-web`: .. code:: ini [web] # Setting this option enables Roundup to serve uploaded HTML # file content *as HTML*. This is a potential security risk # and is therefore disabled by default. Set to 'yes' if you # trust *all* users uploading content to your tracker. # Allowed values: yes, no # Default: no allow_html_file = no # Whether to use HTTP Basic Authentication, if present. # Roundup will use either the REMOTE_USER (the value set # by http_auth_header) or HTTP_AUTHORIZATION # variables supplied by your web server (in that order). # Set this option to 'no' if you do not wish to use HTTP Basic # Authentication in your web interface. # Allowed values: yes, no # Default: yes http_auth = yes # The HTTP header that holds the user authentication information. # If empty (default) the REMOTE_USER header is used. # This is used when the upstream HTTP server authenticates # the user and passes the username using this HTTP header. # Default: http_auth_header = # Setting this option makes roundup look at the Accept-Encoding # header supplied by the client. It will compress the response # on the fly using a common encoding. Disable it if your # upstream server does compression of dynamic data. # Allowed values: yes, no # Default: yes dynamic_compression = yes # Setting this option enables Roundup to serve precompressed # static files. The admin must create the compressed files with # proper extension (.gzip, .br, .zstd) in the same directory as # the uncompressed file. If a precompressed file doesn't # exist, the uncompressed file will be served possibly with # dynamic compression. # Allowed values: yes, no # Default: no use_precompressed_files = no # If usernames consist of a name and a domain/realm part of # the form user@realm and we're using REMOTE_USER for # authentication (e.g. via Kerberos), convert the realm part # of the incoming REMOTE_USER to lowercase before matching # against the roundup username. This allows roundup usernames # to be lowercase (including the realm) and still follow the # Kerberos convention of using an uppercase realm. In # addition this is compatible with Active Directory which # stores the username with realm as UserPrincipalName in # lowercase. # Allowed values: yes, no # Default: no http_auth_convert_realm_to_lowercase = no # If the http_auth option is in effect (see above) # we're accepting a REMOTE_USER variable resulting from # an authentication mechanism implemented in the web-server, # e.g., Kerberos login or similar. To override the mechanism # provided by the web-server (e.g. for enabling sub-login as # another user) we tell roundup that the cookie takes # precedence over a REMOTE_USER or HTTP_AUTHORIZATION # variable. So if both, a cookie and a REMOTE_USER is # present, the cookie wins. # # Allowed values: yes, no # Default: no cookie_takes_precedence = no # Limit login attempts per user per minute to this number. # By default the 4th login attempt in a minute will notify # the user that they need to wait 20 seconds before trying to # log in again. This limits password guessing attacks and # shouldn't need to be changed. Rate limiting on login can # be disabled by setting the value to 0. # Default: 3 login_attempts_min = 3 # The number of seconds needed to complete the new user # registration form. This limits the rate at which bots # can attempt to sign up. Limit can be disabled by setting # the value to 0. # Default: 4 registration_delay = 4 # When registering a user, check that the username # is available before sending confirmation email. # Usually a username conflict is detected when # confirming the registration. Disabled by default as # it can be used for guessing existing usernames. # # Allowed values: yes, no # Default: no registration_prevalidate_username = no # Set the mode of the SameSite cookie option for # the session cookie. Choices are 'Lax' or # 'Strict'. 'None' can be used to suppress the # option. Strict mode provides additional security # against CSRF attacks, but may confuse users who # are logged into roundup and open a roundup link # from a source other than roundup (e.g. link in # email). # Allowed values: Strict, Lax, None # Default: Lax samesite_cookie_setting = Lax # Whether to enable the XMLRPC API in the roundup web # interface. By default the XMLRPC endpoint is the string # 'xmlrpc' after the roundup web url configured in the # 'tracker' section. If this variable is set to 'no', the # xmlrpc path has no special meaning and will yield an # error message. # Allowed values: yes, no # Default: yes enable_xmlrpc = yes # Whether to enable i18n for the xmlrpc endpoint. Enable it if # you want to enable translation based on browsers lang # (if enabled), trackers lang (if set) or environment. # Allowed values: yes, no # Default: no translate_xmlrpc = no # Whether to enable the REST API in the roundup web # interface. By default the REST endpoint is the string # 'rest' plus any additional REST-API parameters after the # roundup web url configured in the tracker section. If this # variable is set to 'no', the rest path has no special meaning # and will yield an error message. # Allowed values: yes, no # Default: yes enable_rest = yes # Whether to enable i18n for the rest endpoint. Enable it if # you want to enable translation based on browsers lang # (if enabled), trackers lang (if set) or environment. # Allowed values: yes, no # Default: no translate_rest = no # Log-Level for REST errors. # Allowed values: none, debug, info, warning, error, critical # Default: none rest_logging = none # Limit API calls per api_interval_in_sec seconds to # this number. # Determines the burst rate and the rate that new api # calls will be made available. If set to 360 and # api_intervals_in_sec is set to 3600, the 361st call in # 10 seconds results in a 429 error to the caller. It # tells them to wait 10 seconds (3600/360) before making # another api request. A value of 0 turns off rate # limiting in the API. Tune this as needed. See rest # documentation for more info. # # Default: 0 api_calls_per_interval = 0 # Defines the interval in seconds over which an api client can # make api_calls_per_interval api calls. Tune this as needed. # # Default: 3600 api_interval_in_sec = 3600 # Limit login failure to the API per api_failed_login_interval_in_sec # seconds. # A value of 0 turns off failed login rate # limiting in the API. You should not disable this. See rest # documentation for more info. # # Default: 4 api_failed_login_limit = 4 # Defines the interval in seconds over which api login failures # are recorded. It allows api_failed_login_limit login failures # in this time interval. Tune this as needed. # # Default: 600 api_failed_login_interval_in_sec = 600 # How do we deal with @csrf fields in posted forms. # Set this to 'required' to block the post and notify # the user if the field is missing or invalid. # Set this to 'yes' to block the post and notify the user # if the token is invalid, but accept the form if # the field is missing. # Set this to 'logfailure' to log a notice to the roundup # log if the field is invalid or missing, but accept # the post. # Set this to 'no' to ignore the field and accept the post. # # Allowed values: required, yes, logfailure, no # Default: yes csrf_enforce_token = yes # csrf_tokens have a limited lifetime. If they are not # used they are purged from the database after this # number of minutes. Default (20160) is 2 weeks. # Default: 20160 csrf_token_lifetime = 20160 # This is only used for xmlrpc and rest requests. This test is # done after Origin and Referer headers are checked. It only # verifies that the X-Requested-With header exists. The value # is ignored. # Set this to 'required' to block the post and notify # the user if the header is missing or invalid. # Set this to 'yes' is the same as required. # Set this to 'logfailure' is the same as 'no'. # Set this to 'no' to ignore the header and accept the post. # Allowed values: required, yes, logfailure, no # Default: yes csrf_enforce_header_x-requested-with = yes # Verify that the Referer http header matches the # tracker.web setting in config.ini. # Set this to 'required' to block the post and notify # the user if the header is missing or invalid. # Set this to 'yes' to block the post and notify the user # if the header is invalid, but accept the form if # the field is missing. # Set this to 'logfailure' to log a notice to the roundup # log if the header is invalid or missing, but accept # the post. # Set this to 'no' to ignore the header and accept the post. # Allowed values: required, yes, logfailure, no # Default: yes csrf_enforce_header_referer = yes # Verify that the Origin http header matches the # tracker.web setting in config.ini. # Set this to 'required' to block the post and notify # the user if the header is missing or invalid. # Set this to 'yes' to block the post and notify the user # if the header is invalid, but accept the form if # the field is missing. # Set this to 'logfailure' to log a notice to the roundup # log if the header is invalid or missing, but accept # the post. # Set this to 'no' to ignore the header and accept the post. # Allowed values: required, yes, logfailure, no # Default: yes csrf_enforce_header_origin = yes # A comma separated list of additonal valid Origin header # values used when enforcing the header origin. They are used # only for the api URL's (/rest and /xmlrpc). They are not # used for the usual html URL's. These strings must match the # value of the Origin header exactly. So 'https://bar.edu' and # 'https://Bar.edu' are two different Origin values. Note that # the origin value is scheme://host. There is no path # component. So 'https://bar.edu/' would never be valid. # The value '*' can be used to match any origin. It must be # first in the list if used. Note that this value allows # any web page on the internet to make anonymous requests # against your Roundup tracker. # # You need to set these if you have a web application on a # different origin accessing your Roundup instance. # # (The origin from the tracker.web setting in config.ini is # always valid and does not need to be specified.) # A list of space separated case sensitive # origin headers 'scheme://host'. # Default: allowed_api_origins = # Verify that the X-Forwarded-Host http header matches # the host part of the tracker.web setting in config.ini. # Set this to 'required' to block the post and notify # the user if the header is missing or invalid. # Set this to 'yes' to block the post and notify the user # if the header is invalid, but accept the form if # the field is missing. # Set this to 'logfailure' to log a notice to the roundup # log if the header is invalid or missing, but accept # the post. # Set this to 'no' to ignore the header and accept the post. # Allowed values: required, yes, logfailure, no # Default: yes csrf_enforce_header_x-forwarded-host = yes # "If there is no X-Forward-Host header, verify that # the Host http header matches the host part of the # tracker.web setting in config.ini. # Set this to 'required' to block the post and notify # the user if the header is missing or invalid. # Set this to 'yes' to block the post and notify the user # if the header is invalid, but accept the form if # the field is missing. # Set this to 'logfailure' to log a notice to the roundup # log if the header is invalid or missing, but accept # the post. # Set this to 'no' to ignore the header and accept the post. # Allowed values: required, yes, logfailure, no # Default: yes csrf_enforce_header_host = yes # Minimum number of header checks that must pass # to accept the request. Set to 0 to accept post # even if no header checks pass. Usually the Host header check # always passes, so setting it less than 1 is not recommended. # Default: 1 csrf_header_min_count = 1 # Whether to use HTTP Accept-Language, if present. # Browsers send a language-region preference list. # It's usually set in the client's browser or in their # Operating System. # Set this option to 'no' if you want to ignore it. # Allowed values: yes, no # Default: yes use_browser_language = yes # Setting this option makes Roundup display error tracebacks # in the user's browser rather than emailing them to the # tracker admin. # Allowed values: yes, no # Default: no debug = no # Setting this option to yes/true allows users with # an empty/blank password to login to the # web/http interfaces. # Allowed values: yes, no # Default: no login_empty_passwords = no # Setting this option makes Roundup migrate passwords with # an insecure password-scheme to a more secure scheme # when the user logs in via the web-interface. # Allowed values: yes, no # Default: yes migrate_passwords = yes # A per tracker secret used in etag calculations for # an object. It must not be empty. # It prevents reverse engineering hidden data in an object # by calculating the etag for a sample object. Then modifying # hidden properties until the sample object's etag matches # the one returned by roundup. # Changing this changes the etag and invalidates updates by # clients. It must be persistent across application restarts. # (Note the default value changes every time # roundup-admin updateconfig # is run, so it must be explicitly set to a non-empty string. # # A string that starts with 'file://' is interpreted # as a file path relative to the tracker home. Using # 'file:///' defines an absolute path. The first # line of the file will be used as the value. Any # string that does not start with 'file://' is used # as is. It removes any whitespace at the end of the # line, so a newline can be put in the file. # # Default: DWmbKgVUy6fF5D2Y5TD5Az+dnHhMYKCCpJzIY3H8nsU= secret_key = DWmbKgVUy6fF5D2Y5TD5Az+dnHhMYKCCpJzIY3H8nsU= # This is used to sign/validate json web tokens # (JWT). Even if you don't use JWTs it must not be # empty. You can use multiple secrets separated by a # comma ','. This allows for secret rotation. The newest # secret should be placed first and used for signing. The # rest of the secrets are used for validating an old JWT. # If the first secret is less than 256 bits (32 # characters) in length JWTs are disabled. If other secrets # are less than 32 chars, the application will exit. Removing # a secret from this list invalidates all JWTs signed with # the secret. JWT support is experimental and disabled by # default. The secrets must be persistent across # application restarts. # # A string that starts with 'file://' is interpreted # as a file path relative to the tracker home. Using # 'file:///' defines an absolute path. The first # line of the file will be used as the value. Any # string that does not start with 'file://' is used # as is. It removes any whitespace at the end of the # line, so a newline can be put in the file. # # Default: disabled jwt_secret = disabled .. index:: config.ini; sections rdbms .. _`config-ini-section-rdbms`: .. code:: ini # Settings in this section (except for backend) are used # by RDBMS backends only. [rdbms] # Database backend. # Available backends: anydbm, mysql, sqlite, postgresql # Default: NO DEFAULT #backend = NO DEFAULT # Name of the database to use. For Postgresql, this can # be database.schema to use a specific schema within # a Postgres database. # Default: roundup name = roundup # Database server host. # Default: localhost host = localhost # TCP port number of the database server. # Postgresql usually resides on port 5432 (if any), # for MySQL default port number is 3306. # Leave this option empty to use backend default # Default: port = # Database user name that Roundup should use. # Default: roundup user = roundup # Database user password. # A string that starts with 'file://' is interpreted # as a file path relative to the tracker home. Using # 'file:///' defines an absolute path. The first # line of the file will be used as the value. Any # string that does not start with 'file://' is used # as is. It removes any whitespace at the end of the # line, so a newline can be put in the file. # # Default: roundup password = roundup # Name of the PostgreSQL connection service for this Roundup # instance. Only used in Postgresql connections. You need to set # up a pg_service.conf file usable by psql use this option. # Default: service = # Name of the MySQL defaults file. # Only used in MySQL connections. # Default: ~/.my.cnf read_default_file = ~/.my.cnf # Name of the group to use in the MySQL defaults file (.my.cnf). # Only used in MySQL connections. # Default: roundup read_default_group = roundup # Charset to use for mysql connection and databases. # If set to 'default', no charset option is used when # creating the db connection and utf8mb4 is used for the # database charset. # Otherwise any permissible mysql charset is allowed here. # Only used in MySQL connections. # Default: utf8mb4 mysql_charset = utf8mb4 # Comparison/order to use for mysql database/table collations. # When upgrading, you can use 'utf8' to match the # depricated 'utf8mb3'. This must be compatible with the # mysql_charset setting above. Only used by MySQL. # Default: utf8mb4_unicode_ci mysql_collation = utf8mb4_unicode_ci # Comparison/order to use for mysql database/table collations # when matching case. When upgrading, you can use 'utf8_bin' # to match the depricated 'utf8mb3_bin' collation. This must # be compatible with the mysql_collation above. Only used # by MySQL. # Default: utf8mb4_0900_bin mysql_binary_collation = utf8mb4_0900_bin # Number of seconds to wait when the SQLite database is locked # Default: use a 30 second timeout (extraordinarily generous) # Only used in SQLite connections. # Default: 30 sqlite_timeout = 30 # Size of the node cache (in elements). Used to keep the # most recently used data in memory. # Default: 100 cache_size = 100 # Setting this option to 'no' protects the database against # table creations. # Allowed values: yes, no # Default: yes allow_create = yes # Setting this option to 'no' protects the database against # table alterations. # Allowed values: yes, no # Default: yes allow_alter = yes # Setting this option to 'no' protects the database against # table drops. # Allowed values: yes, no # Default: yes allow_drop = yes # Name of the PostgreSQL template for database creation. # For database creation the template used has to match # the character encoding used (UTF8), there are different # PostgreSQL installations using different templates with # different encodings. If you get an error: # new encoding (UTF8) is incompatible with the encoding of # the template database (SQL_ASCII) # HINT: Use the same encoding as in the template database, # or use template0 as template. # then set this option to the template name given in the # error message. # Default: template = # Database isolation level, currently supported for # PostgreSQL and mysql. See, e.g., # http://www.postgresql.org/docs/9.1/static/transaction-iso.html # Allowed values: 'read uncommitted', 'read committed', 'repeatable read', 'serializable' # Default: read committed isolation_level = read committed # Set the database cursor for filter queries to serverside # cursor, this avoids caching large amounts of data in the # client. This option only applies for the postgresql backend. # Allowed values: yes, no # Default: yes serverside_cursor = yes .. index:: config.ini; sections sessiondb .. _`config-ini-section-sessiondb`: .. code:: ini # Choose configuration for session and one time key storage. [sessiondb] # Set backend for storing one time key (otk) and session data. # Values have to be compatible with main backend. # main\/ session>| anydbm | sqlite | redis | mysql | postgresql | # anydbm | D | | X | | | # sqlite | X | D | X | | | # mysql | | | | D | | # postgresql | | | | | D | # -------------------------------------------------------------+ # D - default if unset, X - compatible choice # Default: backend = # URL used to connect to redis. Default uses unauthenticated # redis database 0 running on localhost with default port. # # A string that starts with 'file://' is interpreted # as a file path relative to the tracker home. Using # 'file:///' defines an absolute path. The first # line of the file will be used as the value. Any # string that does not start with 'file://' is used # as is. It removes any whitespace at the end of the # line, so a newline can be put in the file. # # Default: redis://localhost:6379/0?health_check_interval=2 redis_url = redis://localhost:6379/0?health_check_interval=2 .. index:: config.ini; sections logging .. _`config-ini-section-logging`: .. code:: ini [logging] # Path to configuration file for standard Python logging module. # If this option is set, logging configuration is loaded # from specified file; options 'filename' and 'level' # in this section are ignored. # The path may be either absolute or relative # to the directory containing this config file. # Default: config = # Log file name for minimal logging facility built into Roundup. # If no file name specified, log messages are written on stderr. # If above 'config' option is set, this option has no effect. # The path may be either absolute or relative # to the directory containing this config file. # Default: filename = # Minimal severity level of messages written to log file. # If above 'config' option is set, this option has no effect. # Allowed values: DEBUG, INFO, WARNING, ERROR # Default: ERROR level = ERROR # If set to yes, only the loggers configured in this section will # be used. Yes will disable gunicorn's --access-logfile. # # Allowed values: yes, no # Default: no disable_loggers = no .. index:: config.ini; sections mail .. _`config-ini-section-mail`: .. code:: ini # Outgoing email options. # Used for nosy messages, password reset and registration approval # requests. [mail] # The email domain that admin_email, issue_tracker and # dispatcher_email belong to. # This domain is added to those config items if they don't # explicitly include a domain. # Do not include the '@' symbol. # Default: NO DEFAULT #domain = NO DEFAULT # SMTP mail host that roundup will use to send mail # Default: NO DEFAULT #host = NO DEFAULT # SMTP login name. # Set this if your mail host requires authenticated access. # If username is not empty, password (below) MUST be set! # Default: username = # SMTP login password. # Set this if your mail host requires authenticated access. # A string that starts with 'file://' is interpreted # as a file path relative to the tracker home. Using # 'file:///' defines an absolute path. The first # line of the file will be used as the value. Any # string that does not start with 'file://' is used # as is. It removes any whitespace at the end of the # line, so a newline can be put in the file. # # Default: NO DEFAULT #password = NO DEFAULT # Default port to send SMTP on. # Set this if your mail server runs on a different port. # Default: 25 port = 25 # The (fully qualified) host/ domain name (FQDN) to use during # SMTP sessions. If left blank, the underlying SMTP library will # attempt to detect your FQDN. Set this if your mail server # requires something specific. # # Default: local_hostname = # If your SMTP mail host provides or requires TLS # (Transport Layer Security) then set this option to 'yes'. # Allowed values: yes, no # Default: no tls = no # If TLS is used, you may set this option to the name # of a PEM formatted file that contains your private key. # The path may be either absolute or relative # to the directory containing this config file. # Default: tls_keyfile = # If TLS is used, you may set this option to the name # of a PEM formatted certificate chain file. # The path may be either absolute or relative # to the directory containing this config file. # Default: tls_certfile = # Character set to encode email headers with. # We use utf-8 by default, as it's the most flexible. # Some mail readers (eg. Eudora) can't cope with that, # so you might need to specify a more limited character set # (eg. iso-8859-1). # Default: utf-8 charset = utf-8 # Setting this option makes Roundup write all outgoing email # messages to this file *instead* of sending them. # This option has the same effect as the environment variable # SENDMAILDEBUG. # Environment variable takes precedence. # The path may be either absolute or relative # to the directory containing this config file. # Default: debug = # Add a line with author information at top of all messages # sent by roundup # Allowed values: yes, no # Default: yes add_authorinfo = yes # Add the mail address of the author to the author information # at the top of all messages. # If this is false but add_authorinfo is true, only the name # of the actor is added which protects the mail address of the # actor from being exposed at mail archives, etc. # Allowed values: yes, no # Default: yes add_authoremail = yes .. index:: config.ini; sections mailgw .. _`config-ini-section-mailgw`: .. code:: ini # Roundup Mail Gateway options [mailgw] # Keep email citations when accepting messages. # Setting this to "no" strips out "quoted" text # from the message. Setting this to "new" keeps quoted # text only if a new issue is being created. # Signatures are also stripped. # Allowed values: yes, no, new # Default: yes keep_quoted_text = yes # Setting this to "yes" preserves the email body # as is - that is, keep the citations _and_ signatures. # Setting this to "new" keeps the body only if we are # creating a new issue. # Allowed values: yes, no, new # Default: no leave_body_unchanged = no # Default class to use in the mailgw # if one isn't supplied in email subjects. # To disable, leave the value blank. # Default: issue default_class = issue # Default locale name for the tracker mail gateway. # If this option is not set, mail gateway will use # the language of the tracker instance. # Default: language = # Controls the parsing of the [prefix] on subject # lines in incoming emails. "strict" will return an # error to the sender if the [prefix] is not recognised. # "loose" will attempt to parse the [prefix] but just # pass it through as part of the issue title if not # recognised. "none" will always pass any [prefix] # through as part of the issue title. # Default: strict subject_prefix_parsing = strict # Controls the parsing of the [suffix] on subject # lines in incoming emails. "strict" will return an # error to the sender if the [suffix] is not recognised. # "loose" will attempt to parse the [suffix] but just # pass it through as part of the issue title if not # recognised. "none" will always pass any [suffix] # through as part of the issue title. # Default: strict subject_suffix_parsing = strict # Defines the brackets used for delimiting the prefix and # suffix in a subject line. The presence of "suffix" in # the config option name is a historical artifact and may # be ignored. # Default: [] subject_suffix_delimiters = [] # Controls matching of the incoming email subject line # against issue titles in the case where there is no # designator [prefix]. "never" turns off matching. # "creation + interval" or "activity + interval" # will match an issue for the interval after the issue's # creation or last activity. The interval is a standard # Roundup interval. # Default: always subject_content_match = always # Update issue title if incoming subject of email is different. # Setting this to "no" will ignore the title part of the subject # of incoming email messages. # # Allowed values: yes, no # Default: yes subject_updates_title = yes # Regular expression matching a single reply or forward # prefix prepended by the mailer. This is explicitly # stripped from the subject during parsing. # Value is Python Regular Expression (UTF8-encoded). # Default: (\s*\W?\s*(fw|fwd|re|aw|sv|ang)\W)+ refwd_re = (\s*\W?\s*(fw|fwd|re|aw|sv|ang)\W)+ # Regular expression matching start of an original message # if quoted the in body. # Value is Python Regular Expression (UTF8-encoded). # Default: ^[>|\s]*-----\s?Original Message\s?-----$ origmsg_re = ^[>|\s]*-----\s?Original Message\s?-----$ # Regular expression matching the start of a signature # in the message body. # Value is Python Regular Expression (UTF8-encoded). # Default: ^[>|\s]*-- ?$ sign_re = ^[>|\s]*-- ?$ # Regular expression matching end of line. # Value is Python Regular Expression (UTF8-encoded). # Default: [\r\n]+ eol_re = [\r\n]+ # Regular expression matching a blank line. # Value is Python Regular Expression (UTF8-encoded). # Default: [\r\n]+\s*[\r\n]+ blankline_re = [\r\n]+\s*[\r\n]+ # Unpack attached messages (encoded as message/rfc822 in MIME) # as multiple parts attached as files to the issue, if not # set we handle message/rfc822 attachments as a single file. # Allowed values: yes, no # Default: no unpack_rfc822 = no # When parsing incoming mails, roundup uses the first # text/plain part it finds. If this part is inside a # multipart/alternative, and this option is set, all other # parts of the multipart/alternative are ignored. The default # is to keep all parts and attach them to the issue. # Allowed values: yes, no # Default: no ignore_alternatives = no # If an email has only text/html parts, use this module # to convert the html to text. Choose from beautifulsoup 4, # dehtml - (internal code), or none to disable conversion. # If 'none' is selected, email without a text/plain part # will be returned to the user with a message. If # beautifulsoup is selected but not installed dehtml will # be used instead. # Allowed values: beautifulsoup, dehtml, none # Default: none convert_htmltotext = none # When handling emails ignore the Resent-From:-header # and use the original senders From:-header instead. # (This might be desirable in some situations where a moderator # reads incoming messages first before bouncing them to Roundup) # Allowed values: yes, no # Default: no keep_real_from = no .. index:: config.ini; sections pgp .. _`config-ini-section-pgp`: .. code:: ini # OpenPGP mail processing options [pgp] # Enable PGP processing. Requires gpg. If you're planning # to send encrypted PGP mail to the tracker, you should also # enable the encrypt-option below, otherwise mail received # encrypted might be sent unencrypted to another user. # Allowed values: yes, no # Default: no enable = no # If specified, a comma-separated list of roles to perform # PGP processing on. If not specified, it happens for all # users. Note that received PGP messages (signed and/or # encrypted) will be processed with PGP even if the user # doesn't have one of the PGP roles, you can use this to make # PGP processing completely optional by defining a role here # and not assigning any users to that role. # Default: roles = # Location of PGP directory. Defaults to $HOME/.gnupg if # not specified. # Default: homedir = # Enable PGP encryption. All outgoing mails are encrypted. # This requires that keys for all users (with one of the gpg # roles above or all users if empty) are available. Note that # it makes sense to educate users to also send mails encrypted # to the tracker, to enforce this, set 'require_incoming' # option below (but see the note). # Allowed values: yes, no # Default: no encrypt = no # Require that pgp messages received by roundup are either # 'signed', 'encrypted' or 'both'. If encryption is required # we do not return the message (in clear) to the user but just # send an informational message that the message was rejected. # Note that this still presents known-plaintext to an attacker # when the users sends the mail a second time with encryption # turned on. # Default: signed require_incoming = signed .. index:: config.ini; sections nosy .. _`config-ini-section-nosy`: .. code:: ini # Nosy messages sending [nosy] # Send nosy messages to the author of the message. # Allowed values: yes, no, new, nosy -- if yes, messages # are sent to the author even if not on the nosy list, same # for new (but only for new messages). When set to nosy, # the nosy list controls sending messages to the author. # Default: no messages_to_author = no # Where to place the email signature. # Allowed values: top, bottom, none # Default: bottom signature_position = bottom # Does the author of a message get placed on the nosy list # automatically? If 'new' is used, then the author will # only be added when a message creates a new issue. # If 'yes', then the author will be added on followups too. # If 'no', they're never added to the nosy. # # Allowed values: yes, no, new # Default: new add_author = new # Do the recipients (To:, Cc:) of a message get placed on the # nosy list? If 'new' is used, then the recipients will # only be added when a message creates a new issue. # If 'yes', then the recipients will be added on followups too. # If 'no', they're never added to the nosy. # # Allowed values: yes, no, new # Default: new add_recipients = new # Controls the email sending from the nosy reactor. If # "multiple" then a separate email is sent to each # recipient. If "single" then a single email is sent with # each recipient as a CC address. # Default: single email_sending = single # Attachments larger than the given number of bytes # won't be attached to nosy mails. They will be replaced by # a link to the tracker's download page for the file. # Default: 9223372036854775807 max_attachment_size = 9223372036854775807 .. index:: config.ini; sections markdown .. _`config-ini-section-markdown`: .. code:: ini # Markdown rendering options. [markdown] # If yes/true, render single new line characters in markdown # text with <br>. Set true if you want GitHub Flavored Markdown # (GFM) handling of embedded newlines. # Allowed values: yes, no # Default: no break_on_newline = no
