summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2021-10-11 17:42:37 +0300
committerPaul Buetow <paul@buetow.org>2021-10-12 22:35:56 +0300
commita6098084f7150df34edecf1519386bd28a527361 (patch)
tree8c81477d0b6ef1f5934f012eb5bd05462bbb7c16
parentc0f4ebc9b3773c37e22c686024c8cc7ce4e71f9f (diff)
Update JSON-schema to reflect all recent config file changes.
-rw-r--r--TODO.md2
-rw-r--r--docker/dtail.json27
-rw-r--r--internal/config/client.go2
-rw-r--r--internal/config/common.go9
-rw-r--r--internal/config/server.go2
-rw-r--r--internal/io/dlog/dlog.go4
-rw-r--r--internal/io/dlog/loggers/factory.go8
-rw-r--r--samples/dtail.json.sample131
-rwxr-xr-xsamples/dtail.schema.json493
9 files changed, 460 insertions, 218 deletions
diff --git a/TODO.md b/TODO.md
index f68697c..6c35a86 100644
--- a/TODO.md
+++ b/TODO.md
@@ -3,7 +3,7 @@ TODO
This is a loose list of what to do. Maybe for the next releae or maybe for a later one.
-[ ] Adjust JSONSchema to reflect all the changes made.
+[ ] Adjust JSONSchema to reflect all the changes made. (check all config options here)
[ ] Client 4.x should print a warning when trying to connect to a 3.x server.
[ ] Client 3.x should print a warning when trying to connect to a 4.x server.
[ ] Update docs for color configuration
diff --git a/docker/dtail.json b/docker/dtail.json
index d86da20..acef22a 100644
--- a/docker/dtail.json
+++ b/docker/dtail.json
@@ -7,34 +7,15 @@
"MaxConnections": 50,
"MapreduceLogFormat" : "default",
"HostKeyFile" : "cache/ssh_host_key",
- "HostKeyBits" : 2048,
- "Permissions": {
- "Default": [
- "readfiles:^/.*$",
- "runcommands:^/.*$"
- ],
- "Users": {
- "pbuetow": [
- "readfiles:^/.*$",
- "runcommands:^/.*$"
- ],
- "jblake": [
- "readfiles:^/tmp/foo.log$",
- "readfiles:^/.*$",
- "readfiles:!^/tmp/bar.log$",
- "runcommands:!^/.*$"
- ]
- }
- }
+ "HostKeyBits" : 2048
},
"Common": {
"LogDir": "/var/log/dserver",
- "Logger": "fout",
+ "Logger": "Fout",
+ "LogLevel": "trace",
+ "LogRotation": "Daily",
"CacheDir": "cache",
- "TmpDir": "tmp",
- "LogStrategy": "daily",
"SSHPort": 2222,
- "LogLevel": "trace",
"ExperimentalFeaturesEnable": false
}
}
diff --git a/internal/config/client.go b/internal/config/client.go
index 8227c68..9f4df97 100644
--- a/internal/config/client.go
+++ b/internal/config/client.go
@@ -102,7 +102,7 @@ type termColors struct {
// ClientConfig represents a DTail client configuration (empty as of now as there
// are no available config options yet, but that may changes in the future).
type ClientConfig struct {
- TermColorsEnable bool
+ TermColorsEnable bool `json:",omitempty"`
TermColors termColors `json:",omitempty"`
}
diff --git a/internal/config/common.go b/internal/config/common.go
index 9d22c95..7a72cfe 100644
--- a/internal/config/common.go
+++ b/internal/config/common.go
@@ -12,12 +12,10 @@ type CommonConfig struct {
Logger string
// LogLevel defines how much is logged.
LogLevel string `json:",omitempty"`
- // LogStrategy defines the log rotation strategy.
- LogStrategy string
+ // LogRotation strategy to be used.
+ LogRotation string
// The cache directory
CacheDir string
- // The temp directory
- TmpDir string `json:",omitempty"`
}
// Create a new default configuration.
@@ -28,8 +26,7 @@ func newDefaultCommonConfig() *CommonConfig {
LogDir: "log",
Logger: "stdout",
LogLevel: DefaultLogLevel,
- LogStrategy: "daily",
+ LogRotation: "daily",
CacheDir: "cache",
- TmpDir: "/tmp",
}
}
diff --git a/internal/config/server.go b/internal/config/server.go
index 677f5ac..254ea0c 100644
--- a/internal/config/server.go
+++ b/internal/config/server.go
@@ -47,7 +47,7 @@ type ServerConfig struct {
MaxConcurrentCats int
// The max amount of concurrent tails per server.
MaxConcurrentTails int
- // The user permissions.
+ // The user permissions. TODO: Add to JSON schema
Permissions Permissions `json:",omitempty"`
// The mapr log format
MapreduceLogFormat string `json:",omitempty"`
diff --git a/internal/io/dlog/dlog.go b/internal/io/dlog/dlog.go
index da67585..5e0c3a1 100644
--- a/internal/io/dlog/dlog.go
+++ b/internal/io/dlog/dlog.go
@@ -82,12 +82,12 @@ func new(sourceProcess, sourcePackage source.Source) *DLog {
if err != nil {
panic(err)
}
- strategy := loggers.NewStrategy(config.Common.LogStrategy)
+ logRotation := loggers.NewStrategy(config.Common.LogRotation)
loggerName := config.Common.Logger
level := newLevel(config.Common.LogLevel)
return &DLog{
- logger: loggers.Factory(sourceProcess.String(), loggerName, strategy),
+ logger: loggers.Factory(sourceProcess.String(), loggerName, logRotation),
sourceProcess: sourceProcess,
sourcePackage: sourcePackage,
maxLevel: level,
diff --git a/internal/io/dlog/loggers/factory.go b/internal/io/dlog/loggers/factory.go
index 415d7fb..a5cc7cf 100644
--- a/internal/io/dlog/loggers/factory.go
+++ b/internal/io/dlog/loggers/factory.go
@@ -10,12 +10,12 @@ var factoryMap map[string]Logger
var factoryMutex sync.Mutex
// Factory is there to retrieve a logger based on various settings.
-func Factory(sourceName, loggerName string, rotationStrategy Strategy) Logger {
+func Factory(sourceName, loggerName string, logRotation Strategy) Logger {
factoryMutex.Lock()
defer factoryMutex.Unlock()
id := fmt.Sprintf("sourceName:%s,fileBase:%s,loggerName:%s", sourceName,
- rotationStrategy.FileBase, loggerName)
+ logRotation.FileBase, loggerName)
if factoryMap == nil {
factoryMap = make(map[string]Logger)
}
@@ -29,10 +29,10 @@ func Factory(sourceName, loggerName string, rotationStrategy Strategy) Logger {
singleton = newStdout()
factoryMap[id] = singleton
case "file":
- singleton = newFile(rotationStrategy)
+ singleton = newFile(logRotation)
factoryMap[id] = singleton
case "fout":
- singleton = newFout(rotationStrategy)
+ singleton = newFout(logRotation)
factoryMap[id] = singleton
default:
panic(fmt.Sprintf("Unsupported logger type '%s'", loggerName))
diff --git a/samples/dtail.json.sample b/samples/dtail.json.sample
index 100e488..20a1359 100644
--- a/samples/dtail.json.sample
+++ b/samples/dtail.json.sample
@@ -2,49 +2,100 @@
"Client": {
"TermColorsEnable": true,
"TermColors": {
- "ClientErrorAttr": "Bold",
- "ClientErrorBg": "Black",
- "ClientErrorFg": "Red",
- "ClientStatsAttr": "Dim",
- "ClientStatsBg": "Blue",
- "ClientStatsFg": "White",
- "ClientWarnAttr": "None",
- "ClientWarnBg": "Black",
- "ClientWarnFg": "Magenta",
- "RemoteDebugAttr": "None",
- "RemoteDebugBg": "Green",
- "RemoteDebugFg": "Black",
- "RemoteErrorAttr": "Bold",
- "RemoteErrorBg": "Red",
- "RemoteErrorFg": "White",
- "RemoteFatalAttr": "Blink",
- "RemoteFatalBg": "Red",
- "RemoteFatalFg": "White",
- "RemoteStatsOkAttr": "None",
- "RemoteStatsOkBg": "Green",
- "RemoteStatsOkFg": "Black",
- "RemoteStatsWarnAttr": "None",
- "RemoteStatsWarnBg": "Red",
- "RemoteStatsWarnFg": "White",
- "RemoteTextAttr": "None",
- "RemoteTextBg": "Black",
- "RemoteTextFg": "White",
- "RemoteTraceAttr": "Bold",
- "RemoteTraceBg": "Green",
- "RemoteTraceFg": "White",
- "RemoteWarnAttr": "Bold",
- "RemoteWarnBg": "Yellow",
- "RemoteWarnFg": "White"
+ "Remote": {
+ "DelimiterAttr": "Dim",
+ "DelimiterBg": "Blue",
+ "DelimiterFg": "Cyan",
+ "RemoteAttr": "Dim",
+ "RemoteBg": "Blue",
+ "RemoteFg": "White",
+ "CountAttr": "Dim",
+ "CountBg": "Blue",
+ "CountFg": "White",
+ "HostnameAttr": "Bold",
+ "HostnameBg": "Blue",
+ "HostnameFg": "White",
+ "IDAttr": "Dim",
+ "IDBg": "Blue",
+ "IDFg": "White",
+ "StatsOkAttr": "None",
+ "StatsOkBg": "Green",
+ "StatsOkFg": "Black",
+ "StatsWarnAttr": "None",
+ "StatsWarnBg": "Red",
+ "StatsWarnFg": "White",
+ "TextAttr": "None",
+ "TextBg": "Black",
+ "TextFg": "White"
+ },
+ "Client": {
+ "DelimiterAttr": "Dim",
+ "DelimiterBg": "Yellow",
+ "DelimiterFg": "Black",
+ "ClientAttr": "Dim",
+ "ClientBg": "Yellow",
+ "ClientFg": "Black",
+ "HostnameAttr": "Dim",
+ "HostnameBg": "Yellow",
+ "HostnameFg": "Black",
+ "TextAttr": "None",
+ "TextBg": "Black",
+ "TextFg": "White"
+ },
+ "Server": {
+ "DelimiterAttr": "AttrDim",
+ "DelimiterBg": "BgCyan",
+ "DelimiterFg": "FgBlack",
+ "ServerAttr": "AttrDim",
+ "ServerBg": "BgCyan",
+ "ServerFg": "FgBlack",
+ "HostnameAttr": "AttrBold",
+ "HostnameBg": "BgCyan",
+ "HostnameFg": "FgBlack",
+ "TextAttr": "AttrNone",
+ "TextBg": "BgBlack",
+ "TextFg": "FgWhite"
+ },
+ "Common": {
+ "SeverityErrorAttr": "AttrBold",
+ "SeverityErrorBg": "BgRed",
+ "SeverityErrorFg": "FgWhite",
+ "SeverityFatalAttr": "AttrBold",
+ "SeverityFatalBg": "BgMagenta",
+ "SeverityFatalFg": "FgWhite",
+ "SeverityWarnAttr": "AttrBold",
+ "SeverityWarnBg": "BgBlack",
+ "SeverityWarnFg": "FgWhite"
+ },
+ "MaprTable": {
+ "DataAttr": "AttrNone",
+ "DataBg": "BgBlue",
+ "DataFg": "FgWhite",
+ "DelimiterAttr": "AttrDim",
+ "DelimiterBg": "BgBlue",
+ "DelimiterFg": "FgWhite",
+ "HeaderAttr": "AttrBold",
+ "HeaderBg": "BgBlue",
+ "HeaderFg": "FgWhite",
+ "HeaderDelimiterAttr": "AttrDim",
+ "HeaderDelimiterBg": "BgBlue",
+ "HeaderDelimiterFg": "FgWhite",
+ "HeaderSortKeyAttr": "AttrUnderline",
+ "HeaderGroupKeyAttr": "AttrReverse",
+ "RawQueryAttr": "AttrDim",
+ "RawQueryBg": "BgBlack",
+ "RawQueryFg": "FgCyan"
+ }
}
},
"Server": {
"SSHBindAddress": "0.0.0.0",
+ "HostKeyFile": "cache/ssh_host_key",
+ "HostKeyBits": 2048,
+ "MapreduceLogFormat": "default",
"MaxConcurrentCats": 2,
"MaxConcurrentTails": 50,
"MaxConnections": 50,
- "MapreduceLogFormat": "default",
- "HostKeyFile": "cache/ssh_host_key",
- "HostKeyBits": 2048,
"Permissions": {
"Default": [
"readfiles:^/.*$"
@@ -66,12 +117,10 @@
},
"Common": {
"LogDir": "log",
+ "Logger": "Fout",
+ "LogRotation": "Daily",
"CacheDir": "cache",
- "TmpDir": "tmp",
- "Logger": "fout",
- "LogStrategy": "daily",
"SSHPort": 2222,
- "LogLevel": "info",
- "ExperimentalFeaturesEnable": false
+ "LogLevel": "Info"
}
}
diff --git a/samples/dtail.schema.json b/samples/dtail.schema.json
index 37761f8..9bba4c9 100755
--- a/samples/dtail.schema.json
+++ b/samples/dtail.schema.json
@@ -1,118 +1,372 @@
{
"$schema": "https://json-schema.org/2019-09/schema",
"description": "Schema for dtail.json",
+ "definitions": {
+ "loglevel": {
+ "type": "string",
+ "enum": [
+ "None",
+ "Fatal",
+ "Error",
+ "Warn",
+ "Info",
+ "Default",
+ "Verbose",
+ "Debug",
+ "Devel",
+ "Trace",
+ "All"
+ ]
+ },
+ "logger": {
+ "type": "string",
+ "enum": [
+ "None",
+ "Stdout",
+ "File",
+ "Fout"
+ ]
+ },
+ "logrotation": {
+ "type": "string",
+ "enum": [
+ "Daily",
+ "Signal"
+ ]
+ },
+ "color": {
+ "type": "string",
+ "enum": [
+ "Black",
+ "Red",
+ "Green",
+ "Yellow",
+ "Blue",
+ "Magenta",
+ "Cyan",
+ "White"
+ ]
+ },
+ "attribute": {
+ "type": "string",
+ "enum": [
+ "None",
+ "Bold",
+ "Dim",
+ "Italic",
+ "Underline",
+ "Blink",
+ "SlowBlink",
+ "RapidBlink",
+ "Reverse",
+ "Hidden"
+ ]
+ }
+ },
"type": "object",
+ "additionalProperties": false,
"properties": {
"Client": {
+ "additionalProperties": false,
"properties": {
"TermColorsEnable": {
"type": "boolean"
},
"TermColors": {
"type": "object",
+ "additionalProperties": false,
"properties": {
- "ClientErrorAttr": {
- "type": "string"
- },
- "ClientErrorBg": {
- "type": "string"
- },
- "ClientErrorFg": {
- "type": "string"
- },
- "ClientWarnAttr": {
- "type": "string"
- },
- "ClientWarnBg": {
- "type": "string"
- },
- "ClientWarnFg": {
- "type": "string"
- },
- "RemoteDebugAttr": {
- "type": "string"
- },
- "RemoteDebugBg": {
- "type": "string"
- },
- "RemoteDebugFg": {
- "type": "string"
- },
- "RemoteErrorAttr": {
- "type": "string"
- },
- "RemoteErrorBg": {
- "type": "string"
- },
- "RemoteErrorFg": {
- "type": "string"
- },
- "RemoteFatalAttr": {
- "type": "string"
- },
- "RemoteFatalBg": {
- "type": "string"
- },
- "RemoteFatalFg": {
- "type": "string"
- },
- "RemoteStatsOkAttr": {
- "type": "string"
- },
- "RemoteStatsOkBg": {
- "type": "string"
- },
- "RemoteStatsOkFg": {
- "type": "string"
- },
- "RemoteStatsWarnAttr": {
- "type": "string"
- },
- "RemoteStatsWarnBg": {
- "type": "string"
- },
- "RemoteStatsWarnFg": {
- "type": "string"
- },
- "RemoteTextAttr": {
- "type": "string"
- },
- "RemoteTextBg": {
- "type": "string"
- },
- "RemoteTextFg": {
- "type": "string"
- },
- "RemoteTraceAttr": {
- "type": "string"
- },
- "RemoteTraceBg": {
- "type": "string"
+ "Remote": {
+ "additionalProperties": false,
+ "properties": {
+ "DelimiterAttr": {
+ "$ref": "#/definitions/attribute"
+ },
+ "DelimiterBg": {
+ "$ref": "#/definitions/color"
+ },
+ "DelimiterFg": {
+ "$ref": "#/definitions/color"
+ },
+ "RemoteAttr": {
+ "$ref": "#/definitions/attribute"
+ },
+ "RemoteBg": {
+ "$ref": "#/definitions/color"
+ },
+ "RemoteFg": {
+ "$ref": "#/definitions/color"
+ },
+ "CountAttr": {
+ "$ref": "#/definitions/attribute"
+ },
+ "CountBg": {
+ "$ref": "#/definitions/color"
+ },
+ "CountFg": {
+ "$ref": "#/definitions/color"
+ },
+ "HostnameAttr": {
+ "$ref": "#/definitions/attribute"
+ },
+ "HostnameBg": {
+ "$ref": "#/definitions/color"
+ },
+ "HostnameFg": {
+ "$ref": "#/definitions/color"
+ },
+ "IDAttr": {
+ "$ref": "#/definitions/attribute"
+ },
+ "IDBg": {
+ "$ref": "#/definitions/color"
+ },
+ "IDFg": {
+ "$ref": "#/definitions/color"
+ },
+ "StatsOkAttr": {
+ "$ref": "#/definitions/attribute"
+ },
+ "StatsOkBg": {
+ "$ref": "#/definitions/color"
+ },
+ "StatsOkFg": {
+ "$ref": "#/definitions/color"
+ },
+ "StatsWarnAttr": {
+ "$ref": "#/definitions/attribute"
+ },
+ "StatsWarnBg": {
+ "$ref": "#/definitions/color"
+ },
+ "StatsWarnFg": {
+ "$ref": "#/definitions/color"
+ },
+ "TextAttr": {
+ "$ref": "#/definitions/attribute"
+ },
+ "TextBg": {
+ "$ref": "#/definitions/color"
+ },
+ "TextFg": {
+ "$ref": "#/definitions/color"
+ }
+ }
},
- "RemoteTraceFg": {
- "type": "string"
+ "Client": {
+ "additionalProperties": false,
+ "properties": {
+ "DelimiterAttr": {
+ "$ref": "#/definitions/attribute"
+ },
+ "DelimiterBg": {
+ "$ref": "#/definitions/color"
+ },
+ "DelimiterFg": {
+ "$ref": "#/definitions/color"
+ },
+ "ClientAttr": {
+ "$ref": "#/definitions/attribute"
+ },
+ "ClientBg": {
+ "$ref": "#/definitions/color"
+ },
+ "ClientFg": {
+ "$ref": "#/definitions/color"
+ },
+ "HostnameAttr": {
+ "$ref": "#/definitions/attribute"
+ },
+ "HostnameBg": {
+ "$ref": "#/definitions/color"
+ },
+ "HostnameFg": {
+ "$ref": "#/definitions/color"
+ },
+ "TextAttr": {
+ "$ref": "#/definitions/attribute"
+ },
+ "TextBg": {
+ "$ref": "#/definitions/color"
+ },
+ "TextFg": {
+ "$ref": "#/definitions/color"
+ }
+ }
},
- "RemoteWarnAttr": {
- "type": "string"
+ "Server": {
+ "additionalProperties": false,
+ "properties": {
+ "DelimiterAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "DelimiterBg": {
+ "#ref": "#/definitions/color"
+ },
+ "DelimiterFg": {
+ "#ref": "#/definitions/color"
+ },
+ "ServerAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "ServerBg": {
+ "#ref": "#/definitions/color"
+ },
+ "ServerFg": {
+ "#ref": "#/definitions/color"
+ },
+ "HostnameAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "HostnameBg": {
+ "#ref": "#/definitions/color"
+ },
+ "HostnameFg": {
+ "#ref": "#/definitions/color"
+ },
+ "TextAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "TextBg": {
+ "#ref": "#/definitions/color"
+ },
+ "TextFg": {
+ "#ref": "#/definitions/color"
+ }
+ }
},
- "RemoteWarnBg": {
- "type": "string"
+ "Common": {
+ "additionalProperties": false,
+ "properties": {
+ "SeverityErrorAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "SeverityErrorBg": {
+ "#ref": "#/definitions/color"
+ },
+ "SeverityErrorFg": {
+ "#ref": "#/definitions/color"
+ },
+ "SeverityFatalAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "SeverityFatalBg": {
+ "#ref": "#/definitions/color"
+ },
+ "SeverityFatalFg": {
+ "#ref": "#/definitions/color"
+ },
+ "SeverityWarnAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "SeverityWarnBg": {
+ "#ref": "#/definitions/color"
+ },
+ "SeverityWarnFg": {
+ "#ref": "#/definitions/color"
+ }
+ }
},
- "RemoteWarnFg": {
- "type": "string"
+ "MaprTable": {
+ "additionalProperties": false,
+ "properties": {
+ "DataAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "DataBg": {
+ "#ref": "#/definitions/color"
+ },
+ "DataFg": {
+ "#ref": "#/definitions/color"
+ },
+ "DelimiterAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "DelimiterBg": {
+ "#ref": "#/definitions/color"
+ },
+ "DelimiterFg": {
+ "#ref": "#/definitions/color"
+ },
+ "HeaderAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "HeaderBg": {
+ "#ref": "#/definitions/color"
+ },
+ "HeaderFg": {
+ "#ref": "#/definitions/color"
+ },
+ "HeaderDelimiterAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "HeaderDelimiterBg": {
+ "#ref": "#/definitions/color"
+ },
+ "HeaderDelimiterFg": {
+ "#ref": "#/definitions/color"
+ },
+ "HeaderSortKeyAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "HeaderGroupKeyAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "RawQueryAttr": {
+ "#ref": "#/definitions/attribute"
+ },
+ "RawQueryBg": {
+ "#ref": "#/definitions/color"
+ },
+ "RawQueryFg": {
+ "#ref": "#/definitions/color"
+ }
+ }
}
- },
- "additionalProperties": false
+ }
}
- },
- "additionalProperties": false
+ }
},
"Server": {
+ "additionalProperties": false,
"properties": {
+ "SSHBindAddress": {
+ "type": "string"
+ },
+ "HostKeyFile": {
+ "type": "string"
+ },
+ "HostKeyBits": {
+ "type": "integer",
+ "minimum": 2048
+ },
+ "MapreduceLogFormat": {
+ "type": "string"
+ },
+ "MaxConcurrentCats": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 20
+ },
+ "MaxConcurrentTails": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100
+ },
+ "MaxConnections": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100
+ },
+ "Permissions": {
+ "type": "object",
+ "properties": {}
+ },
"Schedule": {
"type": "array",
"items": {
"type": "object",
+ "additionalProperties": false,
"properties": {
"Name": {
"type": "string"
@@ -147,6 +401,7 @@
"type": "array",
"items": {
"type": "object",
+ "additionalProperties": false,
"properties": {
"Name": {
"type": "string"
@@ -168,57 +423,25 @@
}
}
}
- },
- "HostKeyFile": {
- "type": "string"
- },
- "HostKeyBits": {
- "type": "integer",
- "minimum": 2048
- },
- "MapreduceLogFormat": {
- "type": "string"
- },
- "SSHBindAddress": {
- "type": "string"
- },
- "MaxConcurrentCats": {
- "type": "integer",
- "minimum": 1,
- "maximum": 20
- },
- "MaxConcurrentTails": {
- "type": "integer",
- "minimum": 1,
- "maximum": 100
- },
- "MaxConnections": {
- "type": "integer",
- "minimum": 1,
- "maximum": 100
- },
- "Permissions": {
- "type": "object",
- "properties": {}
}
- },
- "additionalProperties": false
+ }
},
"Common": {
+ "additionalProperties": false,
"properties": {
"LogDir": {
"type": "string"
},
- "LogLevel": {
- "type": "string"
+ "Logger": {
+ "#ref": "#/definitions/logger"
},
- "CacheDir": {
- "type": "string"
+ "LogLevel": {
+ "#ref": "#/definitions/loglevel"
},
- "TmpDir": {
- "type": "string"
+ "LogRotation": {
+ "#ref": "#/definitions/logrotation"
},
- "LogStrategy": {
+ "CacheDir": {
"type": "string"
},
"SSHPort": {
@@ -226,20 +449,12 @@
"minimum": 2,
"maximum": 16000
},
- "DebugEnable": {
- "type": "boolean"
- },
"ExperimentalFeaturesEnable": {
"type": "boolean"
- },
- "TraceEnable": {
- "type": "boolean"
}
- },
- "additionalProperties": false
+ }
}
},
- "additionalProperties": false,
"required": [
"Client",
"Server",