Configuration Files Schema

Raspberry Pi Dashboard uses the same configuration files as Monkey HTTP Server. They are unique on it's schema, they have been designed to force the user to keep a simple and readable format, if for some reason some of the Schema rules are broken, the Server will not start up and will raise an error.

Three basic concepts in configuration files:

  • Sections
  • Entries: Key/Value
  • Indented Configuration Mode

A simple example of a configuration file is as follows:

[GLOBAL]
    # This is a commented line
    SessionExpires 0
    DefaultAccess users

Sections

A section is defined by a name or title inside brackets. Looking at the example above a Global section have been set using [GLOBAL] definition. Section names are case insensitive. Section rules:

  • All section content must be indented.
  • Multiples sections can exists on the same file.
  • Under a section is expected to have comments and entries, a section cannot be empty.
  • Any commented line under a section, must be indented too.

Entries: Key/Value

A section may contain Entries, an entry is defined by a line of text that contains a Key and a Value, using the above example, the [GLOBAL] section contains two entries, one is the key SessionExpires with value 0 and the other the key DefaultAccess with the value users. Key names are case insensitive. Entries rules:

  • An entry is defined by a key and a value.
  • A key must be indented.
  • A key must contain a value which ends in the breakline.
  • Multiple keys with the same name can exists.

Comments

Comment lines are set with the # prefix character. Those lines are not processed but they must be indented too.

Indented Configuration Mode

Configuration files are based in a strict Indented Mode, that means that each configuration file must follow the same pattern of alignment from left to right when writing text. Monkey by default suggest an indentation level of four spaces from left to right. Example:

[FIRST_SECTION]
    # This is a commented line
    Key1  some value

    Key2  another value

    # more comments

[SECOND_SECTION]
    KeyN  3.14

As you can see there are two sections with multiple entries and comments, note also that empty lines are allowed and they do not need to be indented.