--[[
A config.lua is needed to run this project. This sample config file was
originally generated by tools/setup.py.

Run the tools/setup.py script and a config.lua which looks a lot like this one will
be generated. If, for whatever reason, that script is not working for you, you
may use this config.lua as a starting point.

Contributors should strive to keep this sample updated. One way to do this would
be to run the tools/setup.py, rename the generated config to config.lua.sample,
and then pasting this message or a modified form of this message at the top.
]]

local config = {
    es_url = "http://localhost:9200/ponymail2/",
    mailserver = "mail.foo.org",
--  mailport = 1025, -- override the default port (25)
    accepted_domains = "*",
    wordcloud = false,
    email_footer = nil, -- see the docs for how to set this up.
    full_headers = false,
    maxResults = 5000, -- max emails to return in one go. Might need to be bumped for large lists
--  stats_maxBody = 200, -- max size of body snippet returned by stats.lua
--  stats_wordExclude = ".|..|...", -- patterns to exclude from word cloud generated by stats.lua
    admin_oauth = {}, -- list of domains that may do administrative oauth (private list access)
                     -- add 'www.googleapis.com' to the list for google oauth to decide, for instance.
    oauth_fields = { -- used for specifying individual oauth handling parameters.
-- for example:
--        internal = {
--            email = 'CAS-EMAIL',
--            name = 'CAS-NAME',
--            uid = 'REMOTE-USER',
--            env = 'subprocess' -- use environment vars instead of request headers
--        }
    },
--  allow_insecure_cookie = true, -- override the default (false) - only use for test installations 
--  no_association = {}, -- domains that are not allowed for email association
--  listsDisplay = 'regex', -- if defined, hide list names that don't match the regex
--  debug = false, -- whether to return debug information
    antispam = true,  -- Whether or not to add anti-spam measures aimed at anonymous users.
    noShowQuery = false, -- disallow return query in JSON result: true|false (default false)
}
return config
