{
	"AppInfo": {
		"name": "TestServer",
		"description": "",
		"version": "",
		"homepage": "",
		"environment": "development"
	},
	"DefaultUsers": [
		{
			"user_id": "admin@server",
			"password": "password",
			"user_role": "admin",
			"user_name": "Administrator"
		},
		{
			"user_id": "super@server",
			"password": "password",
			"user_role": "super",
			"user_name": "Supervisor"
		},
		{
			"user_id": "user@server",
			"password": "password",
			"user_role": "user",
			"user_name": "User"
		}
	],
	"AnonymousUser": {
		"user_id": "anon@server",
		"user_role": "anon",
		"user_name": "Anonymous"
	},
	"Server": {
		"data_path": "~server-data",
		"source_watcher_ms": 0
	},
	"Services": {
		"Authentication": {
			"Session": {
				"session_key": "*** A MAGICAL SECRET KEY !!! ***",
				"session_duration": "24h"
			},
			"SessionStorage": {
				"storage_provider": "MemoryProvider",
				"FileProvider": {
					"path": "",
					"filename_base": "ItemName",
					"use_lock_file": false
				},
				"MemoryProvider": {},
				"MongoProvider": {
					"database_name": "ServiceName",
					"collection_name": "ItemName",
					"connection_string": "mongodb://<username>:<password>@<server-address>:27017"
				},
				"NedbProvider": {
					"filename": "ItemName.nedb"
				},
				"Sqlite3Provider": {
					"filename": "ServiceName.sqlite3",
					"table_name": "ItemName"
				}
			}
		},
		"ServerAccounts": {
			"UserStorage": {
				"storage_provider": "MemoryProvider",
				"FileProvider": {
					"path": "",
					"filename_base": "ItemName",
					"use_lock_file": false
				},
				"MemoryProvider": {},
				"MongoProvider": {
					"database_name": "ServiceName",
					"collection_name": "ItemName",
					"connection_string": "mongodb://<username>:<password>@<server-address>:27017"
				},
				"NedbProvider": {
					"filename": "ItemName.nedb"
				},
				"Sqlite3Provider": {
					"filename": "ServiceName.sqlite3",
					"table_name": "ItemName"
				},
				"storage_info_member": "__",
				"throw_permission_errors": false
			},
			"first_created_is_admin": true
		},
		"ServerManagement": {
			"enabled": true
		},
		"TestService": {
			"UserStorage": {
				"storage_provider": "MemoryProvider",
				"FileProvider": {
					"path": "",
					"filename_base": "ItemName",
					"use_lock_file": false
				},
				"MemoryProvider": {},
				"MongoProvider": {
					"database_name": "ServiceName",
					"collection_name": "ItemName",
					"connection_string": "mongodb://<username>:<password>@<server-address>:27017"
				},
				"NedbProvider": {
					"filename": "ItemName.nedb"
				},
				"Sqlite3Provider": {
					"filename": "ServiceName.sqlite3",
					"table_name": "ItemName"
				},
				"storage_info_member": "__",
				"throw_permission_errors": false
			}
		}
	},
	"Transports": {
		"Amqp": {
			"enabled": true,
			"amqp_server_url": "amqp://guest:guest@localhost:5672",
			"ConnectOptions": {
				"connectRetries": 30,
				"connectRetryInterval": 1000
			},
			"CommandQueueOptions": {
				"exclusive": false,
				"durable": false,
				"autoDelete": true
			},
			"ReplyQueueOptions": {
				"exclusive": false,
				"durable": false,
				"autoDelete": true
			},
			"ClientSupport": {
				"enabled": false,
				"amqp_api_client": "_amqp-client-api.js"
			}
		},
		"Text": {
			"enabled": false
		},
		"WebSocket": {
			"enabled": false,
			"server_url_path": "/socket.io/",
			"trace_connections": false,
			"use_http_server": "internal",
			"server_timeout": 120000,
			"ServerAddress": {
				"protocol": "http",
				"address": "0.0.0.0",
				"public_address": "",
				"port": 8081
			},
			"ClientSupport": {
				"enabled": false,
				"client_api_file": "~web-public/_websocket-client-api.js",
				"client_log_service_calls": true,
				"client_log_errors": true
			}
		},
		"Web": {
			"enabled": false,
			"server_url_path": "",
			"services_url_path": "",
			"report_routes": false,
			"set_express_trust_proxy": false,
			"server_timeout": 120000,
			"ServerAddress": {
				"protocol": "http",
				"address": "0.0.0.0",
				"public_address": "",
				"port": 8080
			},
			"DataHandling": {
				"JsonBodyParser": {
					"Settings": {
						"limit": "50mb"
					}
				},
				"UrlEncodedParser": {
					"Settings": {
						"extended": true,
						"limit": "50 MB"
					}
				},
				"FileUpload": {
					"Settings": {
						"debug": false,
						"limits": {
							"fileSize": 524288000
						},
						"abortOnLimit": true,
						"responseOnLimit": "Uploads cannot be larger than 500MB.",
						"useTempFiles": false,
						"tempFileDir": "~server-data/temp"
					}
				}
			},
			"Security": {
				"Cors": {
					"enabled": false,
					"Settings": {
						"origin": "*",
						"optionsSuccessStatus": 200
					}
				},
				"Helmet": {
					"enabled": false,
					"Settings": {}
				}
			},
			"ClientSupport": {
				"enabled": false,
				"public_folder": "~web-public",
				"public_url_path": "public",
				"client_api_file": "~web-public/_web-client-api.js",
				"client_api_style": "ajax",
				"client_log_service_calls": true,
				"client_log_errors": true,
				"open_api_file": "~web-public/_open-api.json",
				"view_engine": "pug",
				"view_folder": "~web-views",
				"home_view": "home",
				"view_core": "w3css-angularjs",
				"view_core_overwrite": false,
				"view_core_show_signup": true,
				"view_core_show_login": true,
				"view_core_easy_admin_login": true,
				"Authenticator": {
					"engine": "Local",
					"Engines": {
						"Local": {},
						"Auth0": {
							"Settings": {
								"domain": "auth0-domain",
								"client_id": "auth0-client-id",
								"client_secret": "auth0-client-secret",
								"callback_url": "auth0-callback-url"
							}
						}
					}
				}
			}
		}
	},
	"Modules": {
		"TaskManager": {},
		"SourceWatcher": {
			"check_interval_ms": 0,
			"warn_timeout_ms": 100
		},
		"Log": {
			"Console": {
				"enabled": false,
				"LogLevels": "TDIWEF",
				"OutputGroup": false,
				"OutputDate": false,
				"OutputTime": true,
				"OutputMilliseconds": true,
				"OutputTimezone": false,
				"OutputSeverity": true,
				"OutputSeverityWords": true,
				"ShellColorTheme": "",
				"DeferredOutput": false
			},
			"ShellLight": {
				"ColorizeEntireLine": true,
				"TraceColors": {
					"Forecolor": 90,
					"Effect": 2
				},
				"DebugColors": {
					"Forecolor": 90,
					"Effect": 1
				},
				"InfoColors": {
					"Forecolor": 97,
					"Effect": ""
				},
				"WarnColors": {
					"Forecolor": 33,
					"Effect": ""
				},
				"ErrorColors": {
					"Forecolor": 31,
					"Effect": ""
				},
				"FatalColors": {
					"Forecolor": 31,
					"Effect": 7
				}
			},
			"ShellDark": {
				"ColorizeEntireLine": true,
				"TraceColors": {
					"Forecolor": 90,
					"Effect": ""
				},
				"DebugColors": {
					"Forecolor": 37,
					"Effect": ""
				},
				"InfoColors": {
					"Forecolor": 97,
					"Effect": 1
				},
				"WarnColors": {
					"Forecolor": 33,
					"Effect": ""
				},
				"ErrorColors": {
					"Forecolor": 31,
					"Effect": ""
				},
				"FatalColors": {
					"Forecolor": 31,
					"Effect": 7
				}
			},
			"File": {
				"enabled": false,
				"LogLevels": "IWEF",
				"OutputGroup": false,
				"OutputDate": true,
				"OutputTime": true,
				"OutputMilliseconds": true,
				"OutputTimezone": true,
				"OutputSeverity": true,
				"OutputSeverityWords": true,
				"File": {
					"log_path": "~server-data/log",
					"log_filename": "server",
					"log_extension": "log",
					"use_hourly_logfiles": false,
					"use_daily_logfiles": false
				}
			}
		},
		"Utility": {}
	}
}