Config
Config
This call allows changing the core server configuration, including enabled outputs and the API port. Requests take the following form:
{
  "config": {
    //All of the below members are optional, and will only override their currently set values when given.
    //To unset a value, set it to null, which will activate the default setting.
    "controller": { //controller settings. Any of these may be left out or null to set the default.
      "interface": "0.0.0.0", //interface to listen on. Defaults to 0.0.0.0 = all interfaces.
      "port": 4242, //port to listen on. Defaults to 4242.
      "username": "root", //username to drop privileges to. Defaults to root.
      "debug": 3 // Debug level to run entire server under. Defaults to 3 (production level).
    },
    "protocols": [ //enabled outputs (named protocols here for historical reasons)
      {
        "connector": "HTTP" //Name of the output to enable
        //any required and/or optional settings may be given here as "name": "value" pairs inside this object.
      },
      //above structure repeated for all enabled connectors / protocols
    ],
    "triggers": { //Pro-only: list of enabled triggers
      "SOME_TRIGGER": [
        {
          "handler": "/some/handler", //handler of trigger
          "sync": true, //true if blocking, false otherwise
          "streams": ["optional", "stream", "list"], //List of streams to trigger for
          "params": "optional parameters"
        },
        //Or... (deprecated syntax)
        ["handler", nonblocking, ["optional", "stream", "list"]],
        //Multiple handlers may be defined, a mixture of the above syntaxes is supported
      ],
      //Multiple triggers may be defined. For details, see manual chapter on triggers!
    },
    "serverid": "", //human-readable server identifier
    "prometheus": "", //Passphrase for prometheus access. When empty, prometheus access is disabled (default).
    "accesslog": "LOG", //Where to write the access log. When set to LOG, prints to regular log (default).
    "defaultStream": "" //Global default stream setting, when a requested stream cannot be opened by an output
  }
}
Similarly to the call, all enabled outputs must be given at once. To add or remove outputs incrementally, see the "", "" and "" calls. Any/all changed settings will take immediate effect.
MistServer will respond as follows:
{
  "config": {
    "controller": {}, //controller settings, same as in request.
    "protocols": [ //enabled outputs
      {
        "connector": "HTTP" //Name of the output
        //any required and/or optional settings will be included here as well
        "online": 1 //0 = offline, 1 = online, 2 = enabled (on demand)
      },
      //above structure repeated for all enabled outputs
    ],
    "triggers": {},//Configured trigger list. Same format as in request.
    "serverid": "", //human-readable server identifier, as configured.
    "iid": "12345678", //Instance ID. Unique ID for this currently running instance, changes every restart.
    "time": 1398982430, //Current server unix time.
    "version": "2.7/Generic_64", //Currently running server version string.
    "prometheus": "", //Passphrase for prometheus access.
    "accesslog": "LOG" //Current accesslog storage location.
  }
}