| 
									
										
										
										
											2017-02-19 02:45:37 +08:00
										 |  |  | /* | 
					
						
							|  |  |  |  * Minio Cloud Storage, (C) 2016, 2017 Minio, Inc. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  |  * you may not use this file except in compliance with the License. | 
					
						
							|  |  |  |  * You may obtain a copy of the License at | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *     http://www.apache.org/licenses/LICENSE-2.0
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  |  * distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  |  * See the License for the specific language governing permissions and | 
					
						
							|  |  |  |  * limitations under the License. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-19 07:23:42 +08:00
										 |  |  | package cmd | 
					
						
							| 
									
										
											  
											
												config/main: Re-write config files - add to new config v3
- New config format.
```
{
	"version": "3",
	"address": ":9000",
    "backend": {
          "type": "fs",
          "disk": "/path"
    },
	"credential": {
		"accessKey": "WLGDGYAQYIGI833EV05A",
		"secretKey": "BYvgJM101sHngl2uzjXS/OBF/aMxAN06JrJ3qJlF"
	},
	"region": "us-east-1",
	"logger": {
		"file": {
			"enable": false,
			"fileName": "",
			"level": "error"
		},
		"syslog": {
			"enable": false,
			"address": "",
			"level": "debug"
		},
		"console": {
			"enable": true,
			"level": "fatal"
		}
	}
}
```
New command lines in lieu of supporting XL.
Minio initialize filesystem backend.
~~~
$ minio init fs <path>
~~~
Minio initialize XL backend.
~~~
$ minio init xl <url1>...<url16>
~~~
For 'fs' backend it starts the server.
~~~
$ minio server
~~~
For 'xl' backend it waits for servers to join.
~~~
$ minio server
... [PROGRESS BAR] of servers connecting
~~~
Now on other servers execute 'join' and they connect.
~~~
....
minio join <url1> -- from <url2> && minio server
minio join <url1> -- from <url3> && minio server
...
...
minio join <url1> -- from <url16> && minio server
~~~
											
										 
											2016-02-13 07:27:10 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-23 01:23:25 +08:00
										 |  |  | import "sync" | 
					
						
							| 
									
										
										
										
											2017-02-19 02:45:37 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												config/main: Re-write config files - add to new config v3
- New config format.
```
{
	"version": "3",
	"address": ":9000",
    "backend": {
          "type": "fs",
          "disk": "/path"
    },
	"credential": {
		"accessKey": "WLGDGYAQYIGI833EV05A",
		"secretKey": "BYvgJM101sHngl2uzjXS/OBF/aMxAN06JrJ3qJlF"
	},
	"region": "us-east-1",
	"logger": {
		"file": {
			"enable": false,
			"fileName": "",
			"level": "error"
		},
		"syslog": {
			"enable": false,
			"address": "",
			"level": "debug"
		},
		"console": {
			"enable": true,
			"level": "fatal"
		}
	}
}
```
New command lines in lieu of supporting XL.
Minio initialize filesystem backend.
~~~
$ minio init fs <path>
~~~
Minio initialize XL backend.
~~~
$ minio init xl <url1>...<url16>
~~~
For 'fs' backend it starts the server.
~~~
$ minio server
~~~
For 'xl' backend it waits for servers to join.
~~~
$ minio server
... [PROGRESS BAR] of servers connecting
~~~
Now on other servers execute 'join' and they connect.
~~~
....
minio join <url1> -- from <url2> && minio server
minio join <url1> -- from <url3> && minio server
...
...
minio join <url1> -- from <url16> && minio server
~~~
											
										 
											2016-02-13 07:27:10 +08:00
										 |  |  | /////////////////// Config V1 ///////////////////
 | 
					
						
							|  |  |  | type configV1 struct { | 
					
						
							| 
									
										
										
										
											2016-12-27 02:21:23 +08:00
										 |  |  | 	Version   string `json:"version"` | 
					
						
							|  |  |  | 	AccessKey string `json:"accessKeyId"` | 
					
						
							|  |  |  | 	SecretKey string `json:"secretAccessKey"` | 
					
						
							| 
									
										
											  
											
												config/main: Re-write config files - add to new config v3
- New config format.
```
{
	"version": "3",
	"address": ":9000",
    "backend": {
          "type": "fs",
          "disk": "/path"
    },
	"credential": {
		"accessKey": "WLGDGYAQYIGI833EV05A",
		"secretKey": "BYvgJM101sHngl2uzjXS/OBF/aMxAN06JrJ3qJlF"
	},
	"region": "us-east-1",
	"logger": {
		"file": {
			"enable": false,
			"fileName": "",
			"level": "error"
		},
		"syslog": {
			"enable": false,
			"address": "",
			"level": "debug"
		},
		"console": {
			"enable": true,
			"level": "fatal"
		}
	}
}
```
New command lines in lieu of supporting XL.
Minio initialize filesystem backend.
~~~
$ minio init fs <path>
~~~
Minio initialize XL backend.
~~~
$ minio init xl <url1>...<url16>
~~~
For 'fs' backend it starts the server.
~~~
$ minio server
~~~
For 'xl' backend it waits for servers to join.
~~~
$ minio server
... [PROGRESS BAR] of servers connecting
~~~
Now on other servers execute 'join' and they connect.
~~~
....
minio join <url1> -- from <url2> && minio server
minio join <url1> -- from <url3> && minio server
...
...
minio join <url1> -- from <url16> && minio server
~~~
											
										 
											2016-02-13 07:27:10 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /////////////////// Config V2 ///////////////////
 | 
					
						
							|  |  |  | type configV2 struct { | 
					
						
							|  |  |  | 	Version     string `json:"version"` | 
					
						
							|  |  |  | 	Credentials struct { | 
					
						
							| 
									
										
										
										
											2016-12-27 02:21:23 +08:00
										 |  |  | 		AccessKey string `json:"accessKeyId"` | 
					
						
							|  |  |  | 		SecretKey string `json:"secretAccessKey"` | 
					
						
							|  |  |  | 		Region    string `json:"region"` | 
					
						
							| 
									
										
											  
											
												config/main: Re-write config files - add to new config v3
- New config format.
```
{
	"version": "3",
	"address": ":9000",
    "backend": {
          "type": "fs",
          "disk": "/path"
    },
	"credential": {
		"accessKey": "WLGDGYAQYIGI833EV05A",
		"secretKey": "BYvgJM101sHngl2uzjXS/OBF/aMxAN06JrJ3qJlF"
	},
	"region": "us-east-1",
	"logger": {
		"file": {
			"enable": false,
			"fileName": "",
			"level": "error"
		},
		"syslog": {
			"enable": false,
			"address": "",
			"level": "debug"
		},
		"console": {
			"enable": true,
			"level": "fatal"
		}
	}
}
```
New command lines in lieu of supporting XL.
Minio initialize filesystem backend.
~~~
$ minio init fs <path>
~~~
Minio initialize XL backend.
~~~
$ minio init xl <url1>...<url16>
~~~
For 'fs' backend it starts the server.
~~~
$ minio server
~~~
For 'xl' backend it waits for servers to join.
~~~
$ minio server
... [PROGRESS BAR] of servers connecting
~~~
Now on other servers execute 'join' and they connect.
~~~
....
minio join <url1> -- from <url2> && minio server
minio join <url1> -- from <url3> && minio server
...
...
minio join <url1> -- from <url16> && minio server
~~~
											
										 
											2016-02-13 07:27:10 +08:00
										 |  |  | 	} `json:"credentials"` | 
					
						
							|  |  |  | 	MongoLogger struct { | 
					
						
							|  |  |  | 		Addr       string `json:"addr"` | 
					
						
							|  |  |  | 		DB         string `json:"db"` | 
					
						
							|  |  |  | 		Collection string `json:"collection"` | 
					
						
							|  |  |  | 	} `json:"mongoLogger"` | 
					
						
							|  |  |  | 	SyslogLogger struct { | 
					
						
							|  |  |  | 		Network string `json:"network"` | 
					
						
							|  |  |  | 		Addr    string `json:"addr"` | 
					
						
							|  |  |  | 	} `json:"syslogLogger"` | 
					
						
							|  |  |  | 	FileLogger struct { | 
					
						
							|  |  |  | 		Filename string `json:"filename"` | 
					
						
							|  |  |  | 	} `json:"fileLogger"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
											
												config: Migrate to the new version. Remove backend details.
Migrate to new config format v4.
```
{
	"version": "4",
	"credential": {
		"accessKey": "WLGDGYAQYIGI833EV05A",
		"secretKey": "BYvgJM101sHngl2uzjXS/OBF/aMxAN06JrJ3qJlF"
	},
	"region": "us-east-1",
	"logger": {
		"console": {
			"enable": true,
			"level": "fatal"
		},
		"file": {
			"enable": false,
			"fileName": "",
			"level": "error"
		},
		"syslog": {
			"enable": false,
			"address": "",
			"level": "debug"
		}
	}
}
```
This patch also updates [minio cli spec](./minio.md)
											
										 
											2016-04-02 10:19:44 +08:00
										 |  |  | /////////////////// Config V3 ///////////////////
 | 
					
						
							|  |  |  | // backendV3 type.
 | 
					
						
							|  |  |  | type backendV3 struct { | 
					
						
							|  |  |  | 	Type  string   `json:"type"` | 
					
						
							|  |  |  | 	Disk  string   `json:"disk,omitempty"` | 
					
						
							|  |  |  | 	Disks []string `json:"disks,omitempty"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-24 07:00:53 +08:00
										 |  |  | // syslogLogger v3
 | 
					
						
							|  |  |  | type syslogLoggerV3 struct { | 
					
						
							|  |  |  | 	Enable bool   `json:"enable"` | 
					
						
							|  |  |  | 	Addr   string `json:"address"` | 
					
						
							|  |  |  | 	Level  string `json:"level"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
											
												config: Migrate to the new version. Remove backend details.
Migrate to new config format v4.
```
{
	"version": "4",
	"credential": {
		"accessKey": "WLGDGYAQYIGI833EV05A",
		"secretKey": "BYvgJM101sHngl2uzjXS/OBF/aMxAN06JrJ3qJlF"
	},
	"region": "us-east-1",
	"logger": {
		"console": {
			"enable": true,
			"level": "fatal"
		},
		"file": {
			"enable": false,
			"fileName": "",
			"level": "error"
		},
		"syslog": {
			"enable": false,
			"address": "",
			"level": "debug"
		}
	}
}
```
This patch also updates [minio cli spec](./minio.md)
											
										 
											2016-04-02 10:19:44 +08:00
										 |  |  | // loggerV3 type.
 | 
					
						
							|  |  |  | type loggerV3 struct { | 
					
						
							|  |  |  | 	Console struct { | 
					
						
							|  |  |  | 		Enable bool   `json:"enable"` | 
					
						
							|  |  |  | 		Level  string `json:"level"` | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	File struct { | 
					
						
							|  |  |  | 		Enable   bool   `json:"enable"` | 
					
						
							|  |  |  | 		Filename string `json:"fileName"` | 
					
						
							|  |  |  | 		Level    string `json:"level"` | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	Syslog struct { | 
					
						
							|  |  |  | 		Enable bool   `json:"enable"` | 
					
						
							|  |  |  | 		Addr   string `json:"address"` | 
					
						
							|  |  |  | 		Level  string `json:"level"` | 
					
						
							|  |  |  | 	} `json:"syslog"` | 
					
						
							|  |  |  | 	// Add new loggers here.
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // configV3 server configuration version '3'.
 | 
					
						
							|  |  |  | type configV3 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Backend configuration.
 | 
					
						
							|  |  |  | 	Backend backendV3 `json:"backend"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// http Server configuration.
 | 
					
						
							|  |  |  | 	Addr string `json:"address"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential credential `json:"credential"` | 
					
						
							|  |  |  | 	Region     string     `json:"region"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							|  |  |  | 	Logger loggerV3 `json:"logger"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-05 13:01:58 +08:00
										 |  |  | // logger type representing version '4' logger config.
 | 
					
						
							| 
									
										
										
										
											2016-07-24 13:51:12 +08:00
										 |  |  | type loggerV4 struct { | 
					
						
							|  |  |  | 	Console struct { | 
					
						
							|  |  |  | 		Enable bool   `json:"enable"` | 
					
						
							|  |  |  | 		Level  string `json:"level"` | 
					
						
							|  |  |  | 	} `json:"console"` | 
					
						
							|  |  |  | 	File struct { | 
					
						
							|  |  |  | 		Enable   bool   `json:"enable"` | 
					
						
							|  |  |  | 		Filename string `json:"fileName"` | 
					
						
							|  |  |  | 		Level    string `json:"level"` | 
					
						
							|  |  |  | 	} `json:"file"` | 
					
						
							|  |  |  | 	Syslog struct { | 
					
						
							|  |  |  | 		Enable bool   `json:"enable"` | 
					
						
							|  |  |  | 		Addr   string `json:"address"` | 
					
						
							|  |  |  | 		Level  string `json:"level"` | 
					
						
							|  |  |  | 	} `json:"syslog"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // configV4 server configuration version '4'.
 | 
					
						
							|  |  |  | type configV4 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential credential `json:"credential"` | 
					
						
							|  |  |  | 	Region     string     `json:"region"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							|  |  |  | 	Logger loggerV4 `json:"logger"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-05 13:01:58 +08:00
										 |  |  | // logger type representing version '5' logger config.
 | 
					
						
							|  |  |  | type loggerV5 struct { | 
					
						
							|  |  |  | 	Console struct { | 
					
						
							|  |  |  | 		Enable bool   `json:"enable"` | 
					
						
							|  |  |  | 		Level  string `json:"level"` | 
					
						
							|  |  |  | 	} `json:"console"` | 
					
						
							|  |  |  | 	File struct { | 
					
						
							|  |  |  | 		Enable   bool   `json:"enable"` | 
					
						
							|  |  |  | 		Filename string `json:"fileName"` | 
					
						
							|  |  |  | 		Level    string `json:"level"` | 
					
						
							|  |  |  | 	} `json:"file"` | 
					
						
							|  |  |  | 	Syslog struct { | 
					
						
							|  |  |  | 		Enable bool   `json:"enable"` | 
					
						
							|  |  |  | 		Addr   string `json:"address"` | 
					
						
							|  |  |  | 		Level  string `json:"level"` | 
					
						
							|  |  |  | 	} `json:"syslog"` | 
					
						
							|  |  |  | 	AMQP struct { | 
					
						
							|  |  |  | 		Enable       bool   `json:"enable"` | 
					
						
							|  |  |  | 		Level        string `json:"level"` | 
					
						
							|  |  |  | 		URL          string `json:"url"` | 
					
						
							|  |  |  | 		Exchange     string `json:"exchange"` | 
					
						
							| 
									
										
										
										
											2016-08-13 13:23:06 +08:00
										 |  |  | 		RoutingKey   string `json:"routingKey"` | 
					
						
							| 
									
										
										
										
											2016-08-05 13:01:58 +08:00
										 |  |  | 		ExchangeType string `json:"exchangeType"` | 
					
						
							|  |  |  | 		Mandatory    bool   `json:"mandatory"` | 
					
						
							|  |  |  | 		Immediate    bool   `json:"immediate"` | 
					
						
							|  |  |  | 		Durable      bool   `json:"durable"` | 
					
						
							|  |  |  | 		Internal     bool   `json:"internal"` | 
					
						
							|  |  |  | 		NoWait       bool   `json:"noWait"` | 
					
						
							|  |  |  | 		AutoDeleted  bool   `json:"autoDeleted"` | 
					
						
							|  |  |  | 	} `json:"amqp"` | 
					
						
							|  |  |  | 	ElasticSearch struct { | 
					
						
							|  |  |  | 		Enable bool   `json:"enable"` | 
					
						
							|  |  |  | 		Level  string `json:"level"` | 
					
						
							|  |  |  | 		URL    string `json:"url"` | 
					
						
							|  |  |  | 		Index  string `json:"index"` | 
					
						
							|  |  |  | 	} `json:"elasticsearch"` | 
					
						
							|  |  |  | 	Redis struct { | 
					
						
							|  |  |  | 		Enable   bool   `json:"enable"` | 
					
						
							|  |  |  | 		Level    string `json:"level"` | 
					
						
							|  |  |  | 		Addr     string `json:"address"` | 
					
						
							|  |  |  | 		Password string `json:"password"` | 
					
						
							|  |  |  | 		Key      string `json:"key"` | 
					
						
							|  |  |  | 	} `json:"redis"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // configV5 server configuration version '5'.
 | 
					
						
							|  |  |  | type configV5 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential credential `json:"credential"` | 
					
						
							|  |  |  | 	Region     string     `json:"region"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							|  |  |  | 	Logger loggerV5 `json:"logger"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-23 23:27:22 +08:00
										 |  |  | // consoleLogger - default logger if not other logging is enabled.
 | 
					
						
							|  |  |  | type consoleLoggerV1 struct { | 
					
						
							|  |  |  | 	Enable bool   `json:"enable"` | 
					
						
							|  |  |  | 	Level  string `json:"level"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type fileLoggerV1 struct { | 
					
						
							|  |  |  | 	Enable   bool   `json:"enable"` | 
					
						
							|  |  |  | 	Filename string `json:"fileName"` | 
					
						
							|  |  |  | 	Level    string `json:"level"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-24 07:00:53 +08:00
										 |  |  | type loggerV6 struct { | 
					
						
							| 
									
										
										
										
											2017-03-23 23:27:22 +08:00
										 |  |  | 	Console consoleLoggerV1 `json:"console"` | 
					
						
							|  |  |  | 	File    fileLoggerV1    `json:"file"` | 
					
						
							|  |  |  | 	Syslog  syslogLoggerV3  `json:"syslog"` | 
					
						
							| 
									
										
										
										
											2016-11-24 07:00:53 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-10 15:51:25 +08:00
										 |  |  | // configV6 server configuration version '6'.
 | 
					
						
							|  |  |  | type configV6 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential credential `json:"credential"` | 
					
						
							|  |  |  | 	Region     string     `json:"region"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							| 
									
										
										
										
											2016-11-24 07:00:53 +08:00
										 |  |  | 	Logger loggerV6 `json:"logger"` | 
					
						
							| 
									
										
										
										
											2016-09-10 15:51:25 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2017-01-12 08:41:05 +08:00
										 |  |  | 	Notify notifierV1 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2016-09-10 15:51:25 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-10 06:22:10 +08:00
										 |  |  | // Notifier represents collection of supported notification queues in version
 | 
					
						
							|  |  |  | // 1 without NATS streaming.
 | 
					
						
							| 
									
										
										
										
											2017-01-12 08:41:05 +08:00
										 |  |  | type notifierV1 struct { | 
					
						
							|  |  |  | 	AMQP          map[string]amqpNotify          `json:"amqp"` | 
					
						
							|  |  |  | 	NATS          map[string]natsNotifyV1        `json:"nats"` | 
					
						
							|  |  |  | 	ElasticSearch map[string]elasticSearchNotify `json:"elasticsearch"` | 
					
						
							|  |  |  | 	Redis         map[string]redisNotify         `json:"redis"` | 
					
						
							|  |  |  | 	PostgreSQL    map[string]postgreSQLNotify    `json:"postgresql"` | 
					
						
							|  |  |  | 	Kafka         map[string]kafkaNotify         `json:"kafka"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-10 06:22:10 +08:00
										 |  |  | // Notifier represents collection of supported notification queues in version 2
 | 
					
						
							|  |  |  | // with NATS streaming but without webhook.
 | 
					
						
							|  |  |  | type notifierV2 struct { | 
					
						
							|  |  |  | 	AMQP          map[string]amqpNotify          `json:"amqp"` | 
					
						
							|  |  |  | 	NATS          map[string]natsNotify          `json:"nats"` | 
					
						
							|  |  |  | 	ElasticSearch map[string]elasticSearchNotify `json:"elasticsearch"` | 
					
						
							|  |  |  | 	Redis         map[string]redisNotify         `json:"redis"` | 
					
						
							|  |  |  | 	PostgreSQL    map[string]postgreSQLNotify    `json:"postgresql"` | 
					
						
							|  |  |  | 	Kafka         map[string]kafkaNotify         `json:"kafka"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-30 14:42:10 +08:00
										 |  |  | // configV7 server configuration version '7'.
 | 
					
						
							|  |  |  | type serverConfigV7 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential credential `json:"credential"` | 
					
						
							|  |  |  | 	Region     string     `json:"region"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							| 
									
										
										
										
											2016-11-24 07:00:53 +08:00
										 |  |  | 	Logger loggerV6 `json:"logger"` | 
					
						
							| 
									
										
										
										
											2016-09-30 14:42:10 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2017-01-12 08:41:05 +08:00
										 |  |  | 	Notify notifierV1 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2016-09-30 14:42:10 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Read Write mutex.
 | 
					
						
							|  |  |  | 	rwMutex *sync.RWMutex | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-04 08:29:55 +08:00
										 |  |  | // serverConfigV8 server configuration version '8'. Adds NATS notifier
 | 
					
						
							|  |  |  | // configuration.
 | 
					
						
							|  |  |  | type serverConfigV8 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential credential `json:"credential"` | 
					
						
							|  |  |  | 	Region     string     `json:"region"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							| 
									
										
										
										
											2016-11-24 07:00:53 +08:00
										 |  |  | 	Logger loggerV6 `json:"logger"` | 
					
						
							| 
									
										
										
										
											2016-10-04 08:29:55 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2017-01-12 08:41:05 +08:00
										 |  |  | 	Notify notifierV1 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2016-10-04 08:29:55 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Read Write mutex.
 | 
					
						
							|  |  |  | 	rwMutex *sync.RWMutex | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-24 07:00:53 +08:00
										 |  |  | // serverConfigV9 server configuration version '9'. Adds PostgreSQL
 | 
					
						
							|  |  |  | // notifier configuration.
 | 
					
						
							|  |  |  | type serverConfigV9 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential credential `json:"credential"` | 
					
						
							|  |  |  | 	Region     string     `json:"region"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							|  |  |  | 	Logger loggerV6 `json:"logger"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2017-01-12 08:41:05 +08:00
										 |  |  | 	Notify notifierV1 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2016-11-24 07:00:53 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Read Write mutex.
 | 
					
						
							|  |  |  | 	rwMutex *sync.RWMutex | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-23 23:27:22 +08:00
										 |  |  | type loggerV7 struct { | 
					
						
							|  |  |  | 	sync.RWMutex | 
					
						
							|  |  |  | 	Console consoleLoggerV1 `json:"console"` | 
					
						
							|  |  |  | 	File    fileLoggerV1    `json:"file"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-16 00:23:48 +08:00
										 |  |  | // serverConfigV10 server configuration version '10' which is like
 | 
					
						
							|  |  |  | // version '9' except it drops support of syslog config, and makes the
 | 
					
						
							|  |  |  | // RWMutex global (so it does not exist in this struct).
 | 
					
						
							|  |  |  | type serverConfigV10 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential credential `json:"credential"` | 
					
						
							|  |  |  | 	Region     string     `json:"region"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							| 
									
										
										
										
											2017-03-23 23:27:22 +08:00
										 |  |  | 	Logger loggerV7 `json:"logger"` | 
					
						
							| 
									
										
										
										
											2016-12-16 00:23:48 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2017-01-12 08:41:05 +08:00
										 |  |  | 	Notify notifierV1 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2016-12-16 00:23:48 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-12 08:41:05 +08:00
										 |  |  | // natsNotifyV1 - structure was valid until config V 11
 | 
					
						
							|  |  |  | type natsNotifyV1 struct { | 
					
						
							|  |  |  | 	Enable       bool   `json:"enable"` | 
					
						
							|  |  |  | 	Address      string `json:"address"` | 
					
						
							|  |  |  | 	Subject      string `json:"subject"` | 
					
						
							|  |  |  | 	Username     string `json:"username"` | 
					
						
							|  |  |  | 	Password     string `json:"password"` | 
					
						
							|  |  |  | 	Token        string `json:"token"` | 
					
						
							|  |  |  | 	Secure       bool   `json:"secure"` | 
					
						
							|  |  |  | 	PingInterval int64  `json:"pingInterval"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV11 server configuration version '11' which is like
 | 
					
						
							|  |  |  | // version '10' except it adds support for Kafka notifications.
 | 
					
						
							|  |  |  | type serverConfigV11 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential credential `json:"credential"` | 
					
						
							|  |  |  | 	Region     string     `json:"region"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							| 
									
										
										
										
											2017-03-23 23:27:22 +08:00
										 |  |  | 	Logger loggerV7 `json:"logger"` | 
					
						
							| 
									
										
										
										
											2017-01-12 08:41:05 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							|  |  |  | 	Notify notifierV1 `json:"notify"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-10 06:22:10 +08:00
										 |  |  | // serverConfigV12 server configuration version '12' which is like
 | 
					
						
							|  |  |  | // version '11' except it adds support for NATS streaming notifications.
 | 
					
						
							|  |  |  | type serverConfigV12 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential credential `json:"credential"` | 
					
						
							|  |  |  | 	Region     string     `json:"region"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							| 
									
										
										
										
											2017-03-23 23:27:22 +08:00
										 |  |  | 	Logger loggerV7 `json:"logger"` | 
					
						
							| 
									
										
										
										
											2017-01-10 06:22:10 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							|  |  |  | 	Notify notifierV2 `json:"notify"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-28 06:59:53 +08:00
										 |  |  | // serverConfigV13 server configuration version '13' which is like
 | 
					
						
							|  |  |  | // version '12' except it adds support for webhook notification.
 | 
					
						
							|  |  |  | type serverConfigV13 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential credential `json:"credential"` | 
					
						
							|  |  |  | 	Region     string     `json:"region"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							| 
									
										
										
										
											2017-03-23 23:27:22 +08:00
										 |  |  | 	Logger *loggerV7 `json:"logger"` | 
					
						
							| 
									
										
										
										
											2017-02-28 06:59:53 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							|  |  |  | 	Notify *notifier `json:"notify"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-18 00:29:17 +08:00
										 |  |  | // serverConfigV14 server configuration version '14' which is like
 | 
					
						
							|  |  |  | // version '13' except it adds support of browser param.
 | 
					
						
							|  |  |  | type serverConfigV14 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							| 
									
										
										
										
											2017-03-27 03:00:27 +08:00
										 |  |  | 	Credential credential  `json:"credential"` | 
					
						
							|  |  |  | 	Region     string      `json:"region"` | 
					
						
							|  |  |  | 	Browser    BrowserFlag `json:"browser"` | 
					
						
							| 
									
										
										
										
											2017-03-18 00:29:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							| 
									
										
										
										
											2017-03-23 23:27:22 +08:00
										 |  |  | 	Logger *loggerV7 `json:"logger"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							|  |  |  | 	Notify *notifier `json:"notify"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV15 server configuration version '15' which is like
 | 
					
						
							|  |  |  | // version '14' except it adds mysql support
 | 
					
						
							|  |  |  | type serverConfigV15 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							| 
									
										
										
										
											2017-03-27 03:00:27 +08:00
										 |  |  | 	Credential credential  `json:"credential"` | 
					
						
							|  |  |  | 	Region     string      `json:"region"` | 
					
						
							|  |  |  | 	Browser    BrowserFlag `json:"browser"` | 
					
						
							| 
									
										
										
										
											2017-03-23 23:27:22 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							|  |  |  | 	Logger *loggerV7 `json:"logger"` | 
					
						
							| 
									
										
										
										
											2017-03-18 00:29:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							|  |  |  | 	Notify *notifier `json:"notify"` | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2017-03-28 02:27:25 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV16 server configuration version '16' which is like
 | 
					
						
							|  |  |  | // version '15' except it makes a change to logging configuration.
 | 
					
						
							|  |  |  | type serverConfigV16 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential credential  `json:"credential"` | 
					
						
							|  |  |  | 	Region     string      `json:"region"` | 
					
						
							|  |  |  | 	Browser    BrowserFlag `json:"browser"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							|  |  |  | 	Logger *loggers `json:"logger"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							|  |  |  | 	Notify *notifier `json:"notify"` | 
					
						
							|  |  |  | } |