Configuration files

This resource applies to both editions of the platform.
When this file gets bigger I will split it into system and site settings. Items marked system are dangerous in ignorance.

As a list of items names:

  1. master_browser_barrier ~ details ~ This is a list of validation details for values that are allowed in the GET or POST requests. The validation options are a small declarative language. Each noun is a rule to be applied to the data. SYSTEM
  2. master_alias_list ~ A list of aliases so duplicate form items can have shared configuration (e.g. firstName and lastName having the same validation). If you add forms to your site, you need to add items to this list, or the master_browser_barrier.
  3. site_settings ~ A list of items to control the renderers and site settings.
  4. renderers ~ A list of renderer classes, this is a SYSTEM setting, only touch if you know what you are doing.
  5. mode_selector ~ A list of resource classes, only touch when you are SYSTEM. The order of this will affect the performance of the site.

Master list of items

This list is just reproduced for reference.

    'uid'      => array('type'=>'int', 'optional'=>1, ),
    'lg'      => array('min-length'=>2, 'max-length'=>5, 'trim'=>1, 'optional'=>1,),
    'eng'      => array('type'=>'int', 'optional'=>1, ),
    'resource'=> array('min-length'=>2, 'max-length'=>100, 'trim'=>1, ),
    'asset'      => array('min-length'=>2, 'max-length'=>100, 'trim'=>1, ),
     'hsh'      => array('min-length'=>32, 'max-length'=>32, 'trim'=>1, 'optional'=>1, ), # on dataflame
    'md'      => array('type'=>'int', 'optional'=>1, ),
    'db'      => array('type'=>'int', 'optional'=>1, ),
    'view'      =>array('trim'=>1, ),
    'humanname'=>array('trim'=>1, 'min-length'=>2, 'max-length'=>100, ),
    'action'  => array('trim'=>1, 'enum'=>array('new', 'update')),
    'name'    =>array('trim'=>1, 'min-length'=>2, 'max-length'=>100,),
    'size'    =>array('trim'=>1, 'min-length'=>2, 'max-length'=>100, 'optional'=>1),
    'date_UK' =>array('trim'=>1, 'min-length'=>6, 'max-length'=>10, 'regex'=>'^[0-9]{1,2}[-\/][0-9]{1,2}[-\/][0-9]{2,4}$'),
    'time_UK' =>array('trim'=>1, 'min-length'=>6, 'max-length'=>10, 'regex'=>'^[0-9]{1,2}:[0-9]{1,2}:[0-9]*$|^[0-9]{1,2}:[0-9]{1,2}AM$|^[0-9]{1,2}:[0-9]{1,2}$'),
    'indexItems'=> array('type'=>'int', ),
    'some_text'=>array('trim'=>1, 'min-length'=>2,),


Currently supported validation rules values in this platform.

  1. regex ~ the value is a regex, that will be applied to the data.
  2. type --> one of: boolean, int, float; to force type conversion from a string. Or JSON (written as lowercase), to allow auto conversion of JSON inputs to PHP array.
  3. enum --> as above only for literal values, like a DB.
  4. optional ~ don't abort if absent.
  5. reject-resource ~ on rejection, redirect to here. This is spec'ed, but NOT IMPL.
  6. reject-message ~ on rejection, announce this error message. This is spec'ed, but NOT IMPL.
  7. min-length ~ require strings to be at least that number of chars.
  8. max-length ~ require strings to be at most that number of chars.
  9. trim ~ remove whitespace chars from the extremes of the item.
  10. upper
  11. lower ~ as it says on the tin...

Config values

This is a hash, in the data structures. This means items may occur in any order.

Items to be edited, per site

  • site_language (default 'en_UK') ~ which resource set to use, if the web-client doesn't specify. Use requires the chosen language is present in the res directory, as one of the options.
  • current_timezone (default 'Europe/London') ~ hopefully obvious.
  • network_protocol (default 'http') ~ 'http' or 'https'.
  • site_name ~ A string, will get added to various headers. Brandable
  • page_author ~ Default value for the page author, used in HTML headers.
  • cookie_domain ~ '', where the cookies apply to.
  • cookie_lifetime ~ (default 20*60) How long should a session last (seconds)? After this point, the EU will need to log in again.
  • escape_urls (default 1) ~ the use of ASCII to entity conversion in embedded URLs, as an outbound filter. This makes the result HTML compliant to w3c spec. Could cause errors in some awkward cases, so it is possible to turn it off.
  • markup_ascii_quotes (default 1) ~ convert all double quotes in wiki text to relevant smart quotes. Could cause errors in some awkward cases, so it is possible to turn it off.
  • emit_log ~ Report the name of the current log file as a HTTP header 'X-transaction-reference'. Only useful if you can copy files off the server.
  • 404-text ~ text used in the HTTP header message. Brandable.
  • system_alert ~ add an optional alert message to the top of all web pages (this item is the text to display). Brandable.
  • revision ~ a piece of text to prepend to resources with the status=INCOMPLETE flag set. Brandable.
  • max_post_wait ~ the maximum time a csrf key is valid for. After this point, the response will be rejected, for protect-csrf enabled forms. Measured in seconds.

Software settings

  • page_charset (default 'utf-8') ~ Hopefully obvious.
  • rendering_engine (default 2) ~ Which one to use, see renderers.
  • session_name ~ Name of session in cookies etc.
  • platform_name ~ A version string, used in reporting.
  • platform_edition ~ '2.0.0', do not adjust, this is a string with Linux style double dot. Used to load the correct resource files.
  • log_verbosity ~ (default 8), controls the number of log messages written, see head of lib/Log for the options. It is annoying that I can't use symbolic values, but this file is parsed before they are defined.
  • log_targets ~ (default 2) Please read lib/Log, it is annoying that I can't use my nice constants, but they are not compiled yet.
  • log_cache_size ~ (default 1024), How many messages to cache, before the buffer is flushed.
  • error_template ~ (default 'report-error') What template to use for reporting errors.
  • safe_engine ~ (default 1), What is trusted to work, if options didn't.
  • page_sections_header (default 'Table of Contents'), text for the header.
  • resource_dir ~ (default '/resource/') Used in URLs.
  • external_dir ~ (default '/external/') Used in URLs.
  • asset_name ~ (default '/asset/') Used in URLs
  • wiki_render_format ~ (default 'Xhtml') item to configure the output language.
  • log_time_format ~ (default 'jS \o\f M, G:i:s'), what dates should look like in log files, see for the details.
  • human_date ~ (default 'jS \o\f M, G:i:s'), what the date should look like, in HTML. See above link for reference.
  • rss_date ~ A slightly different format needed to build RSS files with. Don't edit this one, unless RSS changes.
  • session_dir ~ where session files are put.
  • log_dir ~ where logs are put.
  • site_baseurl ~ the URL of this site.
  • permit_syslog_leakage (default 0), should log message be allowed to leak to the HTML, if the normal account doesn't work. Probably want this off for live use.
  • post_should_wiki (default 0), should post responses be feed through a wiki interpreter?
  • show_all_errors ~ append *any and all* PHP errors to the clients warnings section. Turn ON for testing, but OFF for production. Most valuable for people edit the iceline itself.
  • extra_markers ~ Chunks that need to be merged into the f2 frames. This is an array of names.