| 
									
										
										
										
											2017-02-19 02:45:37 +08:00
										 |  |  | /* | 
					
						
							| 
									
										
										
										
											2019-04-10 02:39:42 +08:00
										 |  |  |  * MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc. | 
					
						
							| 
									
										
										
										
											2017-02-19 02:45:37 +08:00
										 |  |  |  * | 
					
						
							|  |  |  |  * 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-11-01 02:54:32 +08:00
										 |  |  | import ( | 
					
						
							|  |  |  | 	"sync" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	"github.com/minio/minio/cmd/config" | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	"github.com/minio/minio/cmd/config/cache" | 
					
						
							|  |  |  | 	"github.com/minio/minio/cmd/config/compress" | 
					
						
							| 
									
										
										
										
											2019-10-23 13:59:13 +08:00
										 |  |  | 	xldap "github.com/minio/minio/cmd/config/identity/ldap" | 
					
						
							|  |  |  | 	"github.com/minio/minio/cmd/config/identity/openid" | 
					
						
							| 
									
										
										
										
											2019-10-09 14:11:15 +08:00
										 |  |  | 	"github.com/minio/minio/cmd/config/notify" | 
					
						
							| 
									
										
										
										
											2019-10-23 13:59:13 +08:00
										 |  |  | 	"github.com/minio/minio/cmd/config/policy/opa" | 
					
						
							| 
									
										
										
										
											2019-10-07 13:50:24 +08:00
										 |  |  | 	"github.com/minio/minio/cmd/config/storageclass" | 
					
						
							| 
									
										
										
										
											2018-08-18 03:52:14 +08:00
										 |  |  | 	"github.com/minio/minio/cmd/crypto" | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	"github.com/minio/minio/cmd/logger" | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	"github.com/minio/minio/pkg/auth" | 
					
						
							| 
									
										
										
										
											2018-03-16 04:03:41 +08:00
										 |  |  | 	"github.com/minio/minio/pkg/event/target" | 
					
						
							| 
									
										
										
										
											2018-02-03 10:18:52 +08:00
										 |  |  | 	"github.com/minio/minio/pkg/quick" | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | ) | 
					
						
							| 
									
										
										
										
											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.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
											
												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
										 |  |  | 
 | 
					
						
							|  |  |  | 	// 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.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2016-07-24 13:51:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// 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.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2016-08-05 13:01:58 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// 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.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2016-09-10 15:51:25 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// 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 { | 
					
						
							| 
									
										
										
										
											2018-03-16 04:03:41 +08:00
										 |  |  | 	AMQP          map[string]target.AMQPArgs          `json:"amqp"` | 
					
						
							|  |  |  | 	NATS          map[string]natsNotifyV1             `json:"nats"` | 
					
						
							|  |  |  | 	ElasticSearch map[string]target.ElasticsearchArgs `json:"elasticsearch"` | 
					
						
							|  |  |  | 	Redis         map[string]target.RedisArgs         `json:"redis"` | 
					
						
							|  |  |  | 	PostgreSQL    map[string]target.PostgreSQLArgs    `json:"postgresql"` | 
					
						
							|  |  |  | 	Kafka         map[string]target.KafkaArgs         `json:"kafka"` | 
					
						
							| 
									
										
										
										
											2017-01-12 08:41:05 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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 { | 
					
						
							| 
									
										
										
										
											2018-03-16 04:03:41 +08:00
										 |  |  | 	AMQP          map[string]target.AMQPArgs          `json:"amqp"` | 
					
						
							|  |  |  | 	NATS          map[string]target.NATSArgs          `json:"nats"` | 
					
						
							|  |  |  | 	ElasticSearch map[string]target.ElasticsearchArgs `json:"elasticsearch"` | 
					
						
							|  |  |  | 	Redis         map[string]target.RedisArgs         `json:"redis"` | 
					
						
							|  |  |  | 	PostgreSQL    map[string]target.PostgreSQLArgs    `json:"postgresql"` | 
					
						
							|  |  |  | 	Kafka         map[string]target.KafkaArgs         `json:"kafka"` | 
					
						
							| 
									
										
										
										
											2017-01-10 06:22:10 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-30 14:42:10 +08:00
										 |  |  | // configV7 server configuration version '7'.
 | 
					
						
							|  |  |  | type serverConfigV7 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2016-09-30 14:42:10 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// 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
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-09 14:11:15 +08:00
										 |  |  | // serverConfigV8 server configuration version '8'. Adds NATS notify.Config
 | 
					
						
							| 
									
										
										
										
											2016-10-04 08:29:55 +08:00
										 |  |  | // configuration.
 | 
					
						
							|  |  |  | type serverConfigV8 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2016-10-04 08:29:55 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// 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
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-24 07:00:53 +08:00
										 |  |  | // serverConfigV9 server configuration version '9'. Adds PostgreSQL
 | 
					
						
							| 
									
										
										
										
											2019-10-09 14:11:15 +08:00
										 |  |  | // notify.Config configuration.
 | 
					
						
							| 
									
										
										
										
											2016-11-24 07:00:53 +08:00
										 |  |  | type serverConfigV9 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2016-11-24 07:00:53 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// 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
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2016-12-16 00:23:48 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// 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.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2017-01-12 08:41:05 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// 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.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2017-01-10 06:22:10 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// 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"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | type notifierV3 struct { | 
					
						
							| 
									
										
										
										
											2018-03-16 04:03:41 +08:00
										 |  |  | 	AMQP          map[string]target.AMQPArgs          `json:"amqp"` | 
					
						
							|  |  |  | 	Elasticsearch map[string]target.ElasticsearchArgs `json:"elasticsearch"` | 
					
						
							|  |  |  | 	Kafka         map[string]target.KafkaArgs         `json:"kafka"` | 
					
						
							|  |  |  | 	MQTT          map[string]target.MQTTArgs          `json:"mqtt"` | 
					
						
							|  |  |  | 	MySQL         map[string]target.MySQLArgs         `json:"mysql"` | 
					
						
							|  |  |  | 	NATS          map[string]target.NATSArgs          `json:"nats"` | 
					
						
							|  |  |  | 	PostgreSQL    map[string]target.PostgreSQLArgs    `json:"postgresql"` | 
					
						
							|  |  |  | 	Redis         map[string]target.RedisArgs         `json:"redis"` | 
					
						
							|  |  |  | 	Webhook       map[string]target.WebhookArgs       `json:"webhook"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2017-02-28 06:59:53 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// 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.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify *notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2017-02-28 06:59:53 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `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.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify *notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2017-03-23 23:27:22 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // 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-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `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.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify *notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2017-03-18 00:29:17 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2017-03-28 02:27:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-17 23:24:46 +08:00
										 |  |  | // FileLogger is introduced to workaround the dependency about logrus
 | 
					
						
							|  |  |  | type FileLogger struct { | 
					
						
							|  |  |  | 	Enable   bool   `json:"enable"` | 
					
						
							|  |  |  | 	Filename string `json:"filename"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // ConsoleLogger is introduced to workaround the dependency about logrus
 | 
					
						
							|  |  |  | type ConsoleLogger struct { | 
					
						
							|  |  |  | 	Enable bool `json:"enable"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Loggers struct is defined with FileLogger and ConsoleLogger
 | 
					
						
							|  |  |  | // although they are removed from logging logic. They are
 | 
					
						
							|  |  |  | // kept here just to workaround the dependency migration
 | 
					
						
							|  |  |  | // code/logic has on them.
 | 
					
						
							| 
									
										
										
										
											2017-12-06 15:18:29 +08:00
										 |  |  | type loggers struct { | 
					
						
							|  |  |  | 	sync.RWMutex | 
					
						
							|  |  |  | 	Console ConsoleLogger `json:"console"` | 
					
						
							|  |  |  | 	File    FileLogger    `json:"file"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `json:"browser"` | 
					
						
							| 
									
										
										
										
											2017-03-28 02:27:25 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							|  |  |  | 	Logger *loggers `json:"logger"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify *notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2017-03-28 02:27:25 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2017-03-31 18:34:26 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV17 server configuration version '17' which is like
 | 
					
						
							|  |  |  | // version '16' except it adds support for "format" parameter in
 | 
					
						
							|  |  |  | // database event notification targets: PostgreSQL, MySQL, Redis and
 | 
					
						
							|  |  |  | // Elasticsearch.
 | 
					
						
							|  |  |  | type serverConfigV17 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `json:"browser"` | 
					
						
							| 
									
										
										
										
											2017-03-31 18:34:26 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							|  |  |  | 	Logger *loggers `json:"logger"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify *notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2017-03-31 18:34:26 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2017-06-15 08:27:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV18 server configuration version '18' which is like
 | 
					
						
							|  |  |  | // version '17' except it adds support for "deliveryMode" parameter in
 | 
					
						
							|  |  |  | // the AMQP notification target.
 | 
					
						
							|  |  |  | type serverConfigV18 struct { | 
					
						
							|  |  |  | 	sync.RWMutex | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							| 
									
										
										
										
											2017-11-01 02:54:32 +08:00
										 |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `json:"browser"` | 
					
						
							| 
									
										
										
										
											2017-06-15 08:27:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							|  |  |  | 	Logger *loggers `json:"logger"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify *notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2017-06-15 08:27:03 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2017-11-15 08:56:24 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV19 server configuration version '19' which is like
 | 
					
						
							|  |  |  | // version '18' except it adds support for MQTT notifications.
 | 
					
						
							|  |  |  | type serverConfigV19 struct { | 
					
						
							|  |  |  | 	sync.RWMutex | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `json:"browser"` | 
					
						
							| 
									
										
										
										
											2017-11-15 08:56:24 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							|  |  |  | 	Logger *loggers `json:"logger"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify *notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2017-11-15 08:56:24 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2017-11-30 05:12:47 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV20 server configuration version '20' which is like
 | 
					
						
							|  |  |  | // version '19' except it adds support for VirtualHostDomain
 | 
					
						
							|  |  |  | type serverConfigV20 struct { | 
					
						
							|  |  |  | 	sync.RWMutex | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `json:"browser"` | 
					
						
							| 
									
										
										
										
											2017-11-30 05:12:47 +08:00
										 |  |  | 	Domain     string           `json:"domain"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Additional error logging configuration.
 | 
					
						
							|  |  |  | 	Logger *loggers `json:"logger"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify *notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2017-11-30 05:12:47 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2017-12-06 15:18:29 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV21 is just like version '20' without logger field
 | 
					
						
							|  |  |  | type serverConfigV21 struct { | 
					
						
							|  |  |  | 	sync.RWMutex | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `json:"browser"` | 
					
						
							| 
									
										
										
										
											2017-12-06 15:18:29 +08:00
										 |  |  | 	Domain     string           `json:"domain"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify *notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2017-12-06 15:18:29 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2017-12-22 19:28:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV22 is just like version '21' with added support
 | 
					
						
							| 
									
										
										
										
											2018-02-01 00:15:54 +08:00
										 |  |  | // for StorageClass.
 | 
					
						
							| 
									
										
										
										
											2017-12-22 19:28:13 +08:00
										 |  |  | type serverConfigV22 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `json:"browser"` | 
					
						
							| 
									
										
										
										
											2017-12-22 19:28:13 +08:00
										 |  |  | 	Domain     string           `json:"domain"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Storage class configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-07 13:50:24 +08:00
										 |  |  | 	StorageClass storageclass.Config `json:"storageclass"` | 
					
						
							| 
									
										
										
										
											2017-12-22 19:28:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2017-12-22 19:28:13 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2018-03-29 05:14:06 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-14 02:15:19 +08:00
										 |  |  | // serverConfigV23 is just like version '22' with addition of cache field.
 | 
					
						
							| 
									
										
										
										
											2018-03-29 05:14:06 +08:00
										 |  |  | type serverConfigV23 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `json:"browser"` | 
					
						
							| 
									
										
										
										
											2018-03-29 05:14:06 +08:00
										 |  |  | 	Domain     string           `json:"domain"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Storage class configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-07 13:50:24 +08:00
										 |  |  | 	StorageClass storageclass.Config `json:"storageclass"` | 
					
						
							| 
									
										
										
										
											2018-03-29 05:14:06 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Cache configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Cache cache.Config `json:"cache"` | 
					
						
							| 
									
										
										
										
											2018-03-29 05:14:06 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2018-03-29 05:14:06 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2018-06-05 09:35:41 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-06 09:53:44 +08:00
										 |  |  | // serverConfigV24 is just like version '23', we had to revert
 | 
					
						
							|  |  |  | // the changes which were made in 6fb06045028b7a57c37c60a612c8e50735279ab4
 | 
					
						
							| 
									
										
										
										
											2018-06-05 09:35:41 +08:00
										 |  |  | type serverConfigV24 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `json:"browser"` | 
					
						
							| 
									
										
										
										
											2018-06-07 09:10:51 +08:00
										 |  |  | 	Domain     string           `json:"domain"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Storage class configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-07 13:50:24 +08:00
										 |  |  | 	StorageClass storageclass.Config `json:"storageclass"` | 
					
						
							| 
									
										
										
										
											2018-06-07 09:10:51 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Cache configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Cache cache.Config `json:"cache"` | 
					
						
							| 
									
										
										
										
											2018-06-07 09:10:51 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2018-06-07 09:10:51 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV25 is just like version '24', stores additionally
 | 
					
						
							|  |  |  | // worm variable.
 | 
					
						
							|  |  |  | type serverConfigV25 struct { | 
					
						
							| 
									
										
										
										
											2018-05-16 09:20:22 +08:00
										 |  |  | 	quick.Config `json:"-"` // ignore interfaces
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-07 09:10:51 +08:00
										 |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `json:"browser"` | 
					
						
							|  |  |  | 	Worm       config.BoolFlag  `json:"worm"` | 
					
						
							| 
									
										
										
										
											2018-06-05 09:35:41 +08:00
										 |  |  | 	Domain     string           `json:"domain"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Storage class configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-07 13:50:24 +08:00
										 |  |  | 	StorageClass storageclass.Config `json:"storageclass"` | 
					
						
							| 
									
										
										
										
											2018-06-05 09:35:41 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Cache configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Cache cache.Config `json:"cache"` | 
					
						
							| 
									
										
										
										
											2018-06-05 09:35:41 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2018-06-05 09:35:41 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2018-06-26 01:24:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV26 is just like version '25', stores additionally
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | // cache max use value in 'cache.Config'.
 | 
					
						
							| 
									
										
										
										
											2018-07-20 06:55:06 +08:00
										 |  |  | type serverConfigV26 struct { | 
					
						
							|  |  |  | 	quick.Config `json:"-"` // ignore interfaces
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `json:"browser"` | 
					
						
							|  |  |  | 	Worm       config.BoolFlag  `json:"worm"` | 
					
						
							| 
									
										
										
										
											2018-07-20 06:55:06 +08:00
										 |  |  | 	Domain     string           `json:"domain"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Storage class configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-07 13:50:24 +08:00
										 |  |  | 	StorageClass storageclass.Config `json:"storageclass"` | 
					
						
							| 
									
										
										
										
											2018-07-20 06:55:06 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Cache configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Cache cache.Config `json:"cache"` | 
					
						
							| 
									
										
										
										
											2018-07-20 06:55:06 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2018-07-20 06:55:06 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV27 is just like version '26', stores additionally
 | 
					
						
							|  |  |  | // the logger field
 | 
					
						
							|  |  |  | type serverConfigV27 struct { | 
					
						
							| 
									
										
										
										
											2018-06-26 01:24:12 +08:00
										 |  |  | 	quick.Config `json:"-"` // ignore interfaces
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Browser    config.BoolFlag  `json:"browser"` | 
					
						
							|  |  |  | 	Worm       config.BoolFlag  `json:"worm"` | 
					
						
							| 
									
										
										
										
											2018-06-26 01:24:12 +08:00
										 |  |  | 	Domain     string           `json:"domain"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Storage class configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-07 13:50:24 +08:00
										 |  |  | 	StorageClass storageclass.Config `json:"storageclass"` | 
					
						
							| 
									
										
										
										
											2018-06-26 01:24:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Cache configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Cache cache.Config `json:"cache"` | 
					
						
							| 
									
										
										
										
											2018-06-26 01:24:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2018-07-20 06:55:06 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Logger configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Logger logger.Config `json:"logger"` | 
					
						
							| 
									
										
										
										
											2018-06-26 01:24:12 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2018-08-18 03:52:14 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV28 is just like version '27', additionally
 | 
					
						
							|  |  |  | // storing KMS config
 | 
					
						
							|  |  |  | type serverConfigV28 struct { | 
					
						
							|  |  |  | 	quick.Config `json:"-"` // ignore interfaces
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Worm       config.BoolFlag  `json:"worm"` | 
					
						
							| 
									
										
										
										
											2018-09-21 05:56:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Storage class configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-07 13:50:24 +08:00
										 |  |  | 	StorageClass storageclass.Config `json:"storageclass"` | 
					
						
							| 
									
										
										
										
											2018-09-21 05:56:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Cache configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Cache cache.Config `json:"cache"` | 
					
						
							| 
									
										
										
										
											2018-09-21 05:56:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// KMS configuration
 | 
					
						
							|  |  |  | 	KMS crypto.KMSConfig `json:"kms"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2018-09-21 05:56:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Logger configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Logger logger.Config `json:"logger"` | 
					
						
							| 
									
										
										
										
											2018-09-21 05:56:32 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-10 05:00:01 +08:00
										 |  |  | // serverConfigV29 is just like version '28'.
 | 
					
						
							|  |  |  | type serverConfigV29 serverConfigV28 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-28 11:36:17 +08:00
										 |  |  | // serverConfigV30 is just like version '29', stores additionally
 | 
					
						
							|  |  |  | // extensions and mimetypes fields for compression.
 | 
					
						
							|  |  |  | type serverConfigV30 struct { | 
					
						
							| 
									
										
										
										
											2018-10-10 05:00:01 +08:00
										 |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Worm       config.BoolFlag  `json:"worm"` | 
					
						
							| 
									
										
										
										
											2018-10-10 05:00:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Storage class configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-07 13:50:24 +08:00
										 |  |  | 	StorageClass storageclass.Config `json:"storageclass"` | 
					
						
							| 
									
										
										
										
											2018-10-10 05:00:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Cache configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Cache cache.Config `json:"cache"` | 
					
						
							| 
									
										
										
										
											2018-10-10 05:00:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// KMS configuration
 | 
					
						
							|  |  |  | 	KMS crypto.KMSConfig `json:"kms"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	Notify notifierV3 `json:"notify"` | 
					
						
							| 
									
										
										
										
											2018-10-10 05:00:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Logger configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Logger logger.Config `json:"logger"` | 
					
						
							| 
									
										
										
										
											2018-09-21 05:56:32 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-10 05:00:01 +08:00
										 |  |  | 	// Compression configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Compression compress.Config `json:"compress"` | 
					
						
							| 
									
										
										
										
											2018-10-10 05:00:01 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV31 is just like version '30', with OPA and OpenID configuration.
 | 
					
						
							|  |  |  | type serverConfigV31 struct { | 
					
						
							| 
									
										
										
										
											2018-09-21 05:56:32 +08:00
										 |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Worm       config.BoolFlag  `json:"worm"` | 
					
						
							| 
									
										
										
										
											2018-08-18 03:52:14 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Storage class configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-07 13:50:24 +08:00
										 |  |  | 	StorageClass storageclass.Config `json:"storageclass"` | 
					
						
							| 
									
										
										
										
											2018-08-18 03:52:14 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Cache configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Cache cache.Config `json:"cache"` | 
					
						
							| 
									
										
										
										
											2018-08-18 03:52:14 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// KMS configuration
 | 
					
						
							|  |  |  | 	KMS crypto.KMSConfig `json:"kms"` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 	// Notification queue configuration.
 | 
					
						
							|  |  |  | 	Notify notifierV3 `json:"notify"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Logger configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Logger logger.Config `json:"logger"` | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Compression configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Compression compress.Config `json:"compress"` | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// OpenID configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-23 13:59:13 +08:00
										 |  |  | 	OpenID openid.Config `json:"openid"` | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// External policy enforcements.
 | 
					
						
							|  |  |  | 	Policy struct { | 
					
						
							|  |  |  | 		// OPA configuration.
 | 
					
						
							| 
									
										
										
										
											2019-10-23 13:59:13 +08:00
										 |  |  | 		OPA opa.Args `json:"opa"` | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		// Add new external policy enforcements here.
 | 
					
						
							|  |  |  | 	} `json:"policy"` | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // serverConfigV32 is just like version '31' with added nsq notifer.
 | 
					
						
							|  |  |  | type serverConfigV32 struct { | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Worm       config.BoolFlag  `json:"worm"` | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Storage class configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-07 13:50:24 +08:00
										 |  |  | 	StorageClass storageclass.Config `json:"storageclass"` | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Cache configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Cache cache.Config `json:"cache"` | 
					
						
							| 
									
										
										
										
											2018-11-08 02:23:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// KMS configuration
 | 
					
						
							|  |  |  | 	KMS crypto.KMSConfig `json:"kms"` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-18 03:52:14 +08:00
										 |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2019-10-09 14:11:15 +08:00
										 |  |  | 	Notify notify.Config `json:"notify"` | 
					
						
							| 
									
										
										
										
											2018-08-18 03:52:14 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Logger configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Logger logger.Config `json:"logger"` | 
					
						
							| 
									
										
										
										
											2018-09-28 11:36:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Compression configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Compression compress.Config `json:"compress"` | 
					
						
							| 
									
										
										
										
											2018-10-10 05:00:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// OpenID configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-23 13:59:13 +08:00
										 |  |  | 	OpenID openid.Config `json:"openid"` | 
					
						
							| 
									
										
										
										
											2018-10-10 05:00:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// External policy enforcements.
 | 
					
						
							|  |  |  | 	Policy struct { | 
					
						
							|  |  |  | 		// OPA configuration.
 | 
					
						
							| 
									
										
										
										
											2019-10-23 13:59:13 +08:00
										 |  |  | 		OPA opa.Args `json:"opa"` | 
					
						
							| 
									
										
										
										
											2018-10-10 05:00:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		// Add new external policy enforcements here.
 | 
					
						
							|  |  |  | 	} `json:"policy"` | 
					
						
							| 
									
										
										
										
											2018-08-18 03:52:14 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2018-11-30 13:16:17 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-12 10:53:20 +08:00
										 |  |  | // serverConfigV33 is just like version '32', removes clientID from NATS and MQTT, and adds queueDir, queueLimit in all notification targets.
 | 
					
						
							| 
									
										
										
										
											2018-11-30 13:16:17 +08:00
										 |  |  | type serverConfigV33 struct { | 
					
						
							|  |  |  | 	quick.Config `json:"-"` // ignore interfaces
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	Version string `json:"version"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// S3 API configuration.
 | 
					
						
							|  |  |  | 	Credential auth.Credentials `json:"credential"` | 
					
						
							|  |  |  | 	Region     string           `json:"region"` | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Worm       config.BoolFlag  `json:"worm"` | 
					
						
							| 
									
										
										
										
											2018-11-30 13:16:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Storage class configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-07 13:50:24 +08:00
										 |  |  | 	StorageClass storageclass.Config `json:"storageclass"` | 
					
						
							| 
									
										
										
										
											2018-11-30 13:16:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Cache configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Cache cache.Config `json:"cache"` | 
					
						
							| 
									
										
										
										
											2018-11-30 13:16:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// KMS configuration
 | 
					
						
							|  |  |  | 	KMS crypto.KMSConfig `json:"kms"` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Notification queue configuration.
 | 
					
						
							| 
									
										
										
										
											2019-10-09 14:11:15 +08:00
										 |  |  | 	Notify notify.Config `json:"notify"` | 
					
						
							| 
									
										
										
										
											2018-11-30 13:16:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Logger configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-08 13:47:56 +08:00
										 |  |  | 	Logger logger.Config `json:"logger"` | 
					
						
							| 
									
										
										
										
											2018-11-30 13:16:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Compression configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	Compression compress.Config `json:"compress"` | 
					
						
							| 
									
										
										
										
											2018-11-30 13:16:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// OpenID configuration
 | 
					
						
							| 
									
										
										
										
											2019-10-23 13:59:13 +08:00
										 |  |  | 	OpenID openid.Config `json:"openid"` | 
					
						
							| 
									
										
										
										
											2018-11-30 13:16:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// External policy enforcements.
 | 
					
						
							|  |  |  | 	Policy struct { | 
					
						
							|  |  |  | 		// OPA configuration.
 | 
					
						
							| 
									
										
										
										
											2019-10-23 13:59:13 +08:00
										 |  |  | 		OPA opa.Args `json:"opa"` | 
					
						
							| 
									
										
										
										
											2018-11-30 13:16:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		// Add new external policy enforcements here.
 | 
					
						
							|  |  |  | 	} `json:"policy"` | 
					
						
							| 
									
										
										
										
											2019-09-10 07:12:29 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-05 01:35:33 +08:00
										 |  |  | 	LDAPServerConfig xldap.Config `json:"ldapserverconfig"` | 
					
						
							| 
									
										
										
										
											2018-11-30 13:16:17 +08:00
										 |  |  | } |