2017-02-18 13:45:37 -05:00
|
|
|
/*
|
2018-03-15 16:03:41 -04:00
|
|
|
* Minio Cloud Storage, (C) 2016, 2017, 2018 Minio, Inc.
|
2017-02-18 13:45:37 -05: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-18 19:23:42 -04: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-12 18:27:10 -05:00
|
|
|
|
2017-10-31 14:54:32 -04:00
|
|
|
import (
|
|
|
|
"sync"
|
|
|
|
|
2018-08-17 15:52:14 -04:00
|
|
|
"github.com/minio/minio/cmd/crypto"
|
2017-10-31 14:54:32 -04:00
|
|
|
"github.com/minio/minio/pkg/auth"
|
2018-03-15 16:03:41 -04:00
|
|
|
"github.com/minio/minio/pkg/event/target"
|
2018-10-09 17:00:01 -04:00
|
|
|
"github.com/minio/minio/pkg/iam/policy"
|
|
|
|
"github.com/minio/minio/pkg/iam/validator"
|
2018-02-02 21:18:52 -05:00
|
|
|
"github.com/minio/minio/pkg/quick"
|
2017-10-31 14:54:32 -04:00
|
|
|
)
|
2017-02-18 13:45:37 -05: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-12 18:27:10 -05:00
|
|
|
/////////////////// Config V1 ///////////////////
|
|
|
|
type configV1 struct {
|
2016-12-26 13:21:23 -05: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-12 18:27:10 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////// Config V2 ///////////////////
|
|
|
|
type configV2 struct {
|
|
|
|
Version string `json:"version"`
|
|
|
|
Credentials struct {
|
2016-12-26 13:21:23 -05: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-12 18:27:10 -05: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-01 22:19:44 -04:00
|
|
|
/////////////////// Config V3 ///////////////////
|
|
|
|
// backendV3 type.
|
|
|
|
type backendV3 struct {
|
|
|
|
Type string `json:"type"`
|
|
|
|
Disk string `json:"disk,omitempty"`
|
|
|
|
Disks []string `json:"disks,omitempty"`
|
|
|
|
}
|
|
|
|
|
2016-11-23 18:00:53 -05: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-01 22:19:44 -04: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-10-31 14:54:32 -04: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-01 22:19:44 -04:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
|
|
|
Logger loggerV3 `json:"logger"`
|
|
|
|
}
|
|
|
|
|
2016-08-05 01:01:58 -04:00
|
|
|
// logger type representing version '4' logger config.
|
2016-07-24 01:51:12 -04: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-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2016-07-24 01:51:12 -04:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
|
|
|
Logger loggerV4 `json:"logger"`
|
|
|
|
}
|
|
|
|
|
2016-08-05 01:01:58 -04: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 01:23:06 -04:00
|
|
|
RoutingKey string `json:"routingKey"`
|
2016-08-05 01:01:58 -04: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-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2016-08-05 01:01:58 -04:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
|
|
|
Logger loggerV5 `json:"logger"`
|
|
|
|
}
|
|
|
|
|
2017-03-23 11:27:22 -04: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-23 18:00:53 -05:00
|
|
|
type loggerV6 struct {
|
2017-03-23 11:27:22 -04:00
|
|
|
Console consoleLoggerV1 `json:"console"`
|
|
|
|
File fileLoggerV1 `json:"file"`
|
|
|
|
Syslog syslogLoggerV3 `json:"syslog"`
|
2016-11-23 18:00:53 -05:00
|
|
|
}
|
|
|
|
|
2016-09-10 03:51:25 -04:00
|
|
|
// configV6 server configuration version '6'.
|
|
|
|
type configV6 struct {
|
|
|
|
Version string `json:"version"`
|
|
|
|
|
|
|
|
// S3 API configuration.
|
2017-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2016-09-10 03:51:25 -04:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
2016-11-23 18:00:53 -05:00
|
|
|
Logger loggerV6 `json:"logger"`
|
2016-09-10 03:51:25 -04:00
|
|
|
|
|
|
|
// Notification queue configuration.
|
2017-01-11 19:41:05 -05:00
|
|
|
Notify notifierV1 `json:"notify"`
|
2016-09-10 03:51:25 -04:00
|
|
|
}
|
|
|
|
|
2017-01-09 17:22:10 -05:00
|
|
|
// Notifier represents collection of supported notification queues in version
|
|
|
|
// 1 without NATS streaming.
|
2017-01-11 19:41:05 -05:00
|
|
|
type notifierV1 struct {
|
2018-03-15 16:03:41 -04: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-11 19:41:05 -05:00
|
|
|
}
|
|
|
|
|
2017-01-09 17:22:10 -05:00
|
|
|
// Notifier represents collection of supported notification queues in version 2
|
|
|
|
// with NATS streaming but without webhook.
|
|
|
|
type notifierV2 struct {
|
2018-03-15 16:03:41 -04: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-09 17:22:10 -05:00
|
|
|
}
|
|
|
|
|
2016-09-30 02:42:10 -04:00
|
|
|
// configV7 server configuration version '7'.
|
|
|
|
type serverConfigV7 struct {
|
|
|
|
Version string `json:"version"`
|
|
|
|
|
|
|
|
// S3 API configuration.
|
2017-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2016-09-30 02:42:10 -04:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
2016-11-23 18:00:53 -05:00
|
|
|
Logger loggerV6 `json:"logger"`
|
2016-09-30 02:42:10 -04:00
|
|
|
|
|
|
|
// Notification queue configuration.
|
2017-01-11 19:41:05 -05:00
|
|
|
Notify notifierV1 `json:"notify"`
|
2016-09-30 02:42:10 -04:00
|
|
|
|
|
|
|
// Read Write mutex.
|
|
|
|
rwMutex *sync.RWMutex
|
|
|
|
}
|
|
|
|
|
2016-10-03 20:29:55 -04:00
|
|
|
// serverConfigV8 server configuration version '8'. Adds NATS notifier
|
|
|
|
// configuration.
|
|
|
|
type serverConfigV8 struct {
|
|
|
|
Version string `json:"version"`
|
|
|
|
|
|
|
|
// S3 API configuration.
|
2017-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2016-10-03 20:29:55 -04:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
2016-11-23 18:00:53 -05:00
|
|
|
Logger loggerV6 `json:"logger"`
|
2016-10-03 20:29:55 -04:00
|
|
|
|
|
|
|
// Notification queue configuration.
|
2017-01-11 19:41:05 -05:00
|
|
|
Notify notifierV1 `json:"notify"`
|
2016-10-03 20:29:55 -04:00
|
|
|
|
|
|
|
// Read Write mutex.
|
|
|
|
rwMutex *sync.RWMutex
|
|
|
|
}
|
|
|
|
|
2016-11-23 18:00:53 -05:00
|
|
|
// serverConfigV9 server configuration version '9'. Adds PostgreSQL
|
|
|
|
// notifier configuration.
|
|
|
|
type serverConfigV9 struct {
|
|
|
|
Version string `json:"version"`
|
|
|
|
|
|
|
|
// S3 API configuration.
|
2017-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2016-11-23 18:00:53 -05:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
|
|
|
Logger loggerV6 `json:"logger"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2017-01-11 19:41:05 -05:00
|
|
|
Notify notifierV1 `json:"notify"`
|
2016-11-23 18:00:53 -05:00
|
|
|
|
|
|
|
// Read Write mutex.
|
|
|
|
rwMutex *sync.RWMutex
|
|
|
|
}
|
|
|
|
|
2017-03-23 11:27:22 -04:00
|
|
|
type loggerV7 struct {
|
|
|
|
sync.RWMutex
|
|
|
|
Console consoleLoggerV1 `json:"console"`
|
|
|
|
File fileLoggerV1 `json:"file"`
|
|
|
|
}
|
|
|
|
|
2016-12-15 11:23:48 -05: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-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2016-12-15 11:23:48 -05:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
2017-03-23 11:27:22 -04:00
|
|
|
Logger loggerV7 `json:"logger"`
|
2016-12-15 11:23:48 -05:00
|
|
|
|
|
|
|
// Notification queue configuration.
|
2017-01-11 19:41:05 -05:00
|
|
|
Notify notifierV1 `json:"notify"`
|
2016-12-15 11:23:48 -05:00
|
|
|
}
|
|
|
|
|
2017-01-11 19:41:05 -05: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-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2017-01-11 19:41:05 -05:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
2017-03-23 11:27:22 -04:00
|
|
|
Logger loggerV7 `json:"logger"`
|
2017-01-11 19:41:05 -05:00
|
|
|
|
|
|
|
// Notification queue configuration.
|
|
|
|
Notify notifierV1 `json:"notify"`
|
|
|
|
}
|
|
|
|
|
2017-01-09 17:22:10 -05: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-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2017-01-09 17:22:10 -05:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
2017-03-23 11:27:22 -04:00
|
|
|
Logger loggerV7 `json:"logger"`
|
2017-01-09 17:22:10 -05:00
|
|
|
|
|
|
|
// Notification queue configuration.
|
|
|
|
Notify notifierV2 `json:"notify"`
|
|
|
|
}
|
|
|
|
|
2018-11-07 13:23:13 -05:00
|
|
|
type notifierV3 struct {
|
2018-03-15 16:03:41 -04: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-27 17:59:53 -05: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-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2017-02-27 17:59:53 -05:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
2017-03-23 11:27:22 -04:00
|
|
|
Logger *loggerV7 `json:"logger"`
|
2017-02-27 17:59:53 -05:00
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify *notifierV3 `json:"notify"`
|
2017-02-27 17:59:53 -05:00
|
|
|
}
|
|
|
|
|
2017-03-17 12:29:17 -04: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-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2018-06-06 21:10:51 -04:00
|
|
|
Browser BoolFlag `json:"browser"`
|
2017-03-17 12:29:17 -04:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
2017-03-23 11:27:22 -04:00
|
|
|
Logger *loggerV7 `json:"logger"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify *notifierV3 `json:"notify"`
|
2017-03-23 11:27:22 -04: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-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2018-06-06 21:10:51 -04:00
|
|
|
Browser BoolFlag `json:"browser"`
|
2017-03-23 11:27:22 -04:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
|
|
|
Logger *loggerV7 `json:"logger"`
|
2017-03-17 12:29:17 -04:00
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify *notifierV3 `json:"notify"`
|
2017-03-17 12:29:17 -04:00
|
|
|
}
|
2017-03-27 14:27:25 -04:00
|
|
|
|
2018-01-17 10:24:46 -05: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 02:18:29 -05:00
|
|
|
type loggers struct {
|
|
|
|
sync.RWMutex
|
|
|
|
Console ConsoleLogger `json:"console"`
|
|
|
|
File FileLogger `json:"file"`
|
|
|
|
}
|
|
|
|
|
2017-03-27 14:27:25 -04: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-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2018-06-06 21:10:51 -04:00
|
|
|
Browser BoolFlag `json:"browser"`
|
2017-03-27 14:27:25 -04:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
|
|
|
Logger *loggers `json:"logger"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify *notifierV3 `json:"notify"`
|
2017-03-27 14:27:25 -04:00
|
|
|
}
|
2017-03-31 06:34:26 -04: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-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2018-06-06 21:10:51 -04:00
|
|
|
Browser BoolFlag `json:"browser"`
|
2017-03-31 06:34:26 -04:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
|
|
|
Logger *loggers `json:"logger"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify *notifierV3 `json:"notify"`
|
2017-03-31 06:34:26 -04:00
|
|
|
}
|
2017-06-14 20:27:03 -04: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-10-31 14:54:32 -04:00
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2018-06-06 21:10:51 -04:00
|
|
|
Browser BoolFlag `json:"browser"`
|
2017-06-14 20:27:03 -04:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
|
|
|
Logger *loggers `json:"logger"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify *notifierV3 `json:"notify"`
|
2017-06-14 20:27:03 -04:00
|
|
|
}
|
2017-11-14 19:56:24 -05: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"`
|
2018-06-06 21:10:51 -04:00
|
|
|
Browser BoolFlag `json:"browser"`
|
2017-11-14 19:56:24 -05:00
|
|
|
|
|
|
|
// Additional error logging configuration.
|
|
|
|
Logger *loggers `json:"logger"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify *notifierV3 `json:"notify"`
|
2017-11-14 19:56:24 -05:00
|
|
|
}
|
2017-11-29 16:12:47 -05: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"`
|
2018-06-06 21:10:51 -04:00
|
|
|
Browser BoolFlag `json:"browser"`
|
2017-11-29 16:12:47 -05:00
|
|
|
Domain string `json:"domain"`
|
|
|
|
|
|
|
|
// Additional error logging configuration.
|
|
|
|
Logger *loggers `json:"logger"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify *notifierV3 `json:"notify"`
|
2017-11-29 16:12:47 -05:00
|
|
|
}
|
2017-12-06 02:18:29 -05: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"`
|
2018-06-06 21:10:51 -04:00
|
|
|
Browser BoolFlag `json:"browser"`
|
2017-12-06 02:18:29 -05:00
|
|
|
Domain string `json:"domain"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify *notifierV3 `json:"notify"`
|
2017-12-06 02:18:29 -05:00
|
|
|
}
|
2017-12-22 06:28:13 -05:00
|
|
|
|
|
|
|
// serverConfigV22 is just like version '21' with added support
|
2018-01-31 11:15:54 -05:00
|
|
|
// for StorageClass.
|
|
|
|
//
|
|
|
|
// IMPORTANT NOTE: When updating this struct make sure that
|
|
|
|
// serverConfig.ConfigDiff() is updated as necessary.
|
2017-12-22 06:28:13 -05:00
|
|
|
type serverConfigV22 struct {
|
|
|
|
Version string `json:"version"`
|
|
|
|
|
|
|
|
// S3 API configuration.
|
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2018-06-06 21:10:51 -04:00
|
|
|
Browser BoolFlag `json:"browser"`
|
2017-12-22 06:28:13 -05:00
|
|
|
Domain string `json:"domain"`
|
|
|
|
|
|
|
|
// Storage class configuration
|
|
|
|
StorageClass storageClassConfig `json:"storageclass"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify notifierV3 `json:"notify"`
|
2017-12-22 06:28:13 -05:00
|
|
|
}
|
2018-03-28 17:14:06 -04:00
|
|
|
|
2018-04-13 14:15:19 -04:00
|
|
|
// serverConfigV23 is just like version '22' with addition of cache field.
|
|
|
|
//
|
|
|
|
// IMPORTANT NOTE: When updating this struct make sure that
|
|
|
|
// serverConfig.ConfigDiff() is updated as necessary.
|
2018-03-28 17:14:06 -04:00
|
|
|
type serverConfigV23 struct {
|
|
|
|
Version string `json:"version"`
|
|
|
|
|
|
|
|
// S3 API configuration.
|
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2018-06-06 21:10:51 -04:00
|
|
|
Browser BoolFlag `json:"browser"`
|
2018-03-28 17:14:06 -04:00
|
|
|
Domain string `json:"domain"`
|
|
|
|
|
|
|
|
// Storage class configuration
|
|
|
|
StorageClass storageClassConfig `json:"storageclass"`
|
|
|
|
|
|
|
|
// Cache configuration
|
|
|
|
Cache CacheConfig `json:"cache"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify notifierV3 `json:"notify"`
|
2018-03-28 17:14:06 -04:00
|
|
|
}
|
2018-06-04 21:35:41 -04:00
|
|
|
|
2018-06-05 21:53:44 -04:00
|
|
|
// serverConfigV24 is just like version '23', we had to revert
|
|
|
|
// the changes which were made in 6fb06045028b7a57c37c60a612c8e50735279ab4
|
2018-06-04 21:35:41 -04:00
|
|
|
//
|
|
|
|
// IMPORTANT NOTE: When updating this struct make sure that
|
|
|
|
// serverConfig.ConfigDiff() is updated as necessary.
|
|
|
|
type serverConfigV24 struct {
|
|
|
|
Version string `json:"version"`
|
|
|
|
|
|
|
|
// S3 API configuration.
|
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
2018-06-06 21:10:51 -04:00
|
|
|
Browser BoolFlag `json:"browser"`
|
|
|
|
Domain string `json:"domain"`
|
|
|
|
|
|
|
|
// Storage class configuration
|
|
|
|
StorageClass storageClassConfig `json:"storageclass"`
|
|
|
|
|
|
|
|
// Cache configuration
|
|
|
|
Cache CacheConfig `json:"cache"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify notifierV3 `json:"notify"`
|
2018-06-06 21:10:51 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
// serverConfigV25 is just like version '24', stores additionally
|
|
|
|
// worm variable.
|
|
|
|
//
|
|
|
|
// IMPORTANT NOTE: When updating this struct make sure that
|
|
|
|
// serverConfig.ConfigDiff() is updated as necessary.
|
|
|
|
type serverConfigV25 struct {
|
2018-05-15 21:20:22 -04:00
|
|
|
quick.Config `json:"-"` // ignore interfaces
|
|
|
|
|
2018-06-06 21:10:51 -04:00
|
|
|
Version string `json:"version"`
|
|
|
|
|
|
|
|
// S3 API configuration.
|
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
|
|
|
Browser BoolFlag `json:"browser"`
|
|
|
|
Worm BoolFlag `json:"worm"`
|
2018-06-04 21:35:41 -04:00
|
|
|
Domain string `json:"domain"`
|
|
|
|
|
|
|
|
// Storage class configuration
|
|
|
|
StorageClass storageClassConfig `json:"storageclass"`
|
|
|
|
|
|
|
|
// Cache configuration
|
|
|
|
Cache CacheConfig `json:"cache"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify notifierV3 `json:"notify"`
|
2018-06-04 21:35:41 -04:00
|
|
|
}
|
2018-06-25 13:24:12 -04:00
|
|
|
|
|
|
|
// serverConfigV26 is just like version '25', stores additionally
|
|
|
|
// cache max use value in 'CacheConfig'.
|
2018-07-19 18:55:06 -04: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"`
|
|
|
|
Browser BoolFlag `json:"browser"`
|
|
|
|
Worm BoolFlag `json:"worm"`
|
|
|
|
Domain string `json:"domain"`
|
|
|
|
|
|
|
|
// Storage class configuration
|
|
|
|
StorageClass storageClassConfig `json:"storageclass"`
|
|
|
|
|
|
|
|
// Cache configuration
|
|
|
|
Cache CacheConfig `json:"cache"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify notifierV3 `json:"notify"`
|
2018-07-19 18:55:06 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
type loggerConsole struct {
|
|
|
|
Enabled bool `json:"enabled"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type loggerHTTP struct {
|
|
|
|
Enabled bool `json:"enabled"`
|
|
|
|
Endpoint string `json:"endpoint"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type loggerConfig struct {
|
|
|
|
Console loggerConsole `json:"console"`
|
|
|
|
HTTP map[string]loggerHTTP `json:"http"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// serverConfigV27 is just like version '26', stores additionally
|
|
|
|
// the logger field
|
2018-06-25 13:24:12 -04:00
|
|
|
//
|
|
|
|
// IMPORTANT NOTE: When updating this struct make sure that
|
|
|
|
// serverConfig.ConfigDiff() is updated as necessary.
|
2018-07-19 18:55:06 -04:00
|
|
|
type serverConfigV27 struct {
|
2018-06-25 13:24:12 -04:00
|
|
|
quick.Config `json:"-"` // ignore interfaces
|
|
|
|
|
|
|
|
Version string `json:"version"`
|
|
|
|
|
|
|
|
// S3 API configuration.
|
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
|
|
|
Browser BoolFlag `json:"browser"`
|
|
|
|
Worm BoolFlag `json:"worm"`
|
|
|
|
Domain string `json:"domain"`
|
|
|
|
|
|
|
|
// Storage class configuration
|
|
|
|
StorageClass storageClassConfig `json:"storageclass"`
|
|
|
|
|
|
|
|
// Cache configuration
|
|
|
|
Cache CacheConfig `json:"cache"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify notifierV3 `json:"notify"`
|
2018-07-19 18:55:06 -04:00
|
|
|
|
|
|
|
// Logger configuration
|
|
|
|
Logger loggerConfig `json:"logger"`
|
2018-06-25 13:24:12 -04:00
|
|
|
}
|
2018-08-17 15:52:14 -04:00
|
|
|
|
|
|
|
// serverConfigV28 is just like version '27', additionally
|
|
|
|
// storing KMS config
|
|
|
|
//
|
|
|
|
// IMPORTANT NOTE: When updating this struct make sure that
|
|
|
|
// serverConfig.ConfigDiff() is updated as necessary.
|
|
|
|
type serverConfigV28 struct {
|
|
|
|
quick.Config `json:"-"` // ignore interfaces
|
|
|
|
|
|
|
|
Version string `json:"version"`
|
|
|
|
|
|
|
|
// S3 API configuration.
|
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
|
|
|
Worm BoolFlag `json:"worm"`
|
2018-09-20 17:56:32 -04:00
|
|
|
|
|
|
|
// Storage class configuration
|
|
|
|
StorageClass storageClassConfig `json:"storageclass"`
|
|
|
|
|
|
|
|
// Cache configuration
|
|
|
|
Cache CacheConfig `json:"cache"`
|
|
|
|
|
|
|
|
// KMS configuration
|
|
|
|
KMS crypto.KMSConfig `json:"kms"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify notifierV3 `json:"notify"`
|
2018-09-20 17:56:32 -04:00
|
|
|
|
|
|
|
// Logger configuration
|
|
|
|
Logger loggerConfig `json:"logger"`
|
|
|
|
}
|
|
|
|
|
2018-10-09 17:00:01 -04:00
|
|
|
// serverConfigV29 is just like version '28'.
|
|
|
|
type serverConfigV29 serverConfigV28
|
|
|
|
|
2018-09-27 23:36:17 -04:00
|
|
|
// compressionConfig represents the compression settings.
|
|
|
|
type compressionConfig struct {
|
|
|
|
Enabled bool `json:"enabled"`
|
|
|
|
Extensions []string `json:"extensions"`
|
|
|
|
MimeTypes []string `json:"mime-types"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// serverConfigV30 is just like version '29', stores additionally
|
|
|
|
// extensions and mimetypes fields for compression.
|
|
|
|
type serverConfigV30 struct {
|
2018-10-09 17:00:01 -04:00
|
|
|
Version string `json:"version"`
|
|
|
|
|
|
|
|
// S3 API configuration.
|
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
|
|
|
Worm BoolFlag `json:"worm"`
|
|
|
|
|
|
|
|
// Storage class configuration
|
|
|
|
StorageClass storageClassConfig `json:"storageclass"`
|
|
|
|
|
|
|
|
// Cache configuration
|
|
|
|
Cache CacheConfig `json:"cache"`
|
|
|
|
|
|
|
|
// KMS configuration
|
|
|
|
KMS crypto.KMSConfig `json:"kms"`
|
|
|
|
|
|
|
|
// Notification queue configuration.
|
2018-11-07 13:23:13 -05:00
|
|
|
Notify notifierV3 `json:"notify"`
|
2018-10-09 17:00:01 -04:00
|
|
|
|
|
|
|
// Logger configuration
|
|
|
|
Logger loggerConfig `json:"logger"`
|
2018-09-20 17:56:32 -04:00
|
|
|
|
2018-10-09 17:00:01 -04:00
|
|
|
// Compression configuration
|
|
|
|
Compression compressionConfig `json:"compress"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// serverConfigV31 is just like version '30', with OPA and OpenID configuration.
|
|
|
|
type serverConfigV31 struct {
|
2018-09-20 17:56:32 -04:00
|
|
|
Version string `json:"version"`
|
|
|
|
|
|
|
|
// S3 API configuration.
|
|
|
|
Credential auth.Credentials `json:"credential"`
|
|
|
|
Region string `json:"region"`
|
|
|
|
Worm BoolFlag `json:"worm"`
|
2018-08-17 15:52:14 -04:00
|
|
|
|
|
|
|
// Storage class configuration
|
|
|
|
StorageClass storageClassConfig `json:"storageclass"`
|
|
|
|
|
|
|
|
// Cache configuration
|
|
|
|
Cache CacheConfig `json:"cache"`
|
|
|
|
|
|
|
|
// KMS configuration
|
|
|
|
KMS crypto.KMSConfig `json:"kms"`
|
|
|
|
|
2018-11-07 13:23:13 -05:00
|
|
|
// Notification queue configuration.
|
|
|
|
Notify notifierV3 `json:"notify"`
|
|
|
|
|
|
|
|
// Logger configuration
|
|
|
|
Logger loggerConfig `json:"logger"`
|
|
|
|
|
|
|
|
// Compression configuration
|
|
|
|
Compression compressionConfig `json:"compress"`
|
|
|
|
|
|
|
|
// OpenID configuration
|
|
|
|
OpenID struct {
|
|
|
|
// JWKS validator config.
|
|
|
|
JWKS validator.JWKSArgs `json:"jwks"`
|
|
|
|
} `json:"openid"`
|
|
|
|
|
|
|
|
// External policy enforcements.
|
|
|
|
Policy struct {
|
|
|
|
// OPA configuration.
|
|
|
|
OPA iampolicy.OpaArgs `json:"opa"`
|
|
|
|
|
|
|
|
// Add new external policy enforcements here.
|
|
|
|
} `json:"policy"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type notifier struct {
|
|
|
|
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"`
|
|
|
|
NSQ map[string]target.NSQArgs `json:"nsq"`
|
|
|
|
PostgreSQL map[string]target.PostgreSQLArgs `json:"postgresql"`
|
|
|
|
Redis map[string]target.RedisArgs `json:"redis"`
|
|
|
|
Webhook map[string]target.WebhookArgs `json:"webhook"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// 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"`
|
|
|
|
Worm BoolFlag `json:"worm"`
|
|
|
|
|
|
|
|
// Storage class configuration
|
|
|
|
StorageClass storageClassConfig `json:"storageclass"`
|
|
|
|
|
|
|
|
// Cache configuration
|
|
|
|
Cache CacheConfig `json:"cache"`
|
|
|
|
|
|
|
|
// KMS configuration
|
|
|
|
KMS crypto.KMSConfig `json:"kms"`
|
|
|
|
|
2018-08-17 15:52:14 -04:00
|
|
|
// Notification queue configuration.
|
|
|
|
Notify notifier `json:"notify"`
|
|
|
|
|
|
|
|
// Logger configuration
|
|
|
|
Logger loggerConfig `json:"logger"`
|
2018-09-27 23:36:17 -04:00
|
|
|
|
|
|
|
// Compression configuration
|
|
|
|
Compression compressionConfig `json:"compress"`
|
2018-10-09 17:00:01 -04:00
|
|
|
|
|
|
|
// OpenID configuration
|
|
|
|
OpenID struct {
|
|
|
|
// JWKS validator config.
|
|
|
|
JWKS validator.JWKSArgs `json:"jwks"`
|
|
|
|
} `json:"openid"`
|
|
|
|
|
|
|
|
// External policy enforcements.
|
|
|
|
Policy struct {
|
|
|
|
// OPA configuration.
|
|
|
|
OPA iampolicy.OpaArgs `json:"opa"`
|
|
|
|
|
|
|
|
// Add new external policy enforcements here.
|
|
|
|
} `json:"policy"`
|
2018-08-17 15:52:14 -04:00
|
|
|
}
|