{ "$schema": "http://json-schema.org/draft-06/schema#", "definitions": { "trayOptionsItem": { "title": "Tray Option", "description": "An object that represents a single tray menu item", "type": "object", "properties": { "label": { "title": "Label", "description": "Text of menu item", "type": "string" }, "action": { "title": "Action", "description": "Action to perform when user clicks this menu item. 'openfilesystem', 'openbrowser', or 'stopserver'", "type": "string" }, "url": { "title": "URL", "description": "Url to open for 'openbrowser' action", "type": "string" }, "disabled": { "title": "Disabled", "description": "Turn menu item grey and nothing happens when clicking on it", "type": "boolean", "default": false }, "image": { "title": "Image", "description": "Path to PNG image to display on menu item next to the label", "type": "string", "default": "" }, "hotkey": { "title": "Hotkey", "description": "Keyboard shortcut to choose this menu item", "type": "string", "default": "" }, "path": { "title": "Path", "description": "Filesystem path to open for 'openfilesystem' action", "type": "string", "default": "" }, "items": { "title": "Items", "description": "Nested menu items", "type": "array", "minItems": 0, "items": { "$ref": "#/definitions/trayOptionsItem" }, "default": [] } } } }, "title": "CommandBox Server", "description": "Configuration file for a CommandBox server", "type": "object", "properties": { "name": { "title": "Name", "description": "The name of the server", "type": "string", "default": "" }, "openBrowser": { "title": "Open Browser", "description": "Controls whether browser opens by default when starting server", "type": "boolean", "default": true }, "openBrowserURL": { "title": "Open Browser URL", "description": "Override the URL to open when starting the server", "type": "string", "default": "" }, "startTimeout": { "title": "Server start timeout", "description": "The length of time in seconds to wait for the server to start", "type": "number", "default": 240 }, "stopsocket": { "title": "Stop Socket", "description": "The port the server listens on to receive a stop command", "type": "number", "default": 0 }, "debug": { "title": "Debug", "description": "Enable debug level logging for server", "type": "boolean", "default": false }, "trace": { "title": "Trace", "description": "Enable trace level logging for server", "type": "boolean", "default": false }, "console": { "title": "Console", "description": "Start the server in console mode instead of in the background", "type": "boolean", "default": false }, "trayEnable": { "title": "Tray Enable", "description": "Control whether the server has an associated icon in the system tray", "type": "boolean", "default": true }, "trayicon": { "title": "Tray Icon", "description": "Path to the server's tray icon", "type": "string", "default": "" }, "trayOptions": { "title": "Tray Options", "description": "An array of custom menu items to be added to the server's tray menu", "type": "array", "minItems": 0, "items": { "$ref": "#/definitions/trayOptionsItem" }, "default": [] }, "jvm": { "title": "JVM", "description": "JVM Options", "type": "object", "properties": { "heapSize": { "title": "Max Heap Size", "description": "The max heap size of the server", "type": [ "number", "string" ], "default": "" }, "minHeapSize": { "title": "Min Heap Size", "description": "The starting heap size for the server", "type": [ "number", "string" ], "default": "" }, "args": { "title": "JVM Arguments", "description": "Ad-hoc JVM args for the server such as -X:name", "type": "string", "default": "" }, "javaHome": { "title": "Java Home Path", "description": "Path to custom JRE. Default is the one that the CommandBox CLI is using", "type": "string", "default": "" }, "javaVersion": { "title": "Java Version", "description": "A Java installation ID. In its entirety, it has the form _____", "type": "string", "default": "" } } }, "web": { "title": "Web", "description": "Web Server Options", "type": "object", "properties": { "host": { "title": "Host", "description": "The default host name of the server", "type": "string", "default": "127.0.0.1" }, "webroot": { "title": "Webroot", "description": "Webroot directory", "type": "string", "default": "" }, "directoryBrowsing": { "title": "Directory Browsing", "description": "Enables file listing for directories with no welcome file", "type": "boolean", "default": false }, "accessLogEnable": { "title": "Access Log Enable", "description": "Enable web server access log", "type": "boolean", "default": true }, "GZIPEnable": { "title": "GZIP Enable", "description": "Enable GZip compression in HTTP responses", "type": "boolean", "default": true }, "welcomeFiles": { "title": "Welcome Files", "description": "A comma-delimited list of files that you would like CommandBox to look for when a user hits a directory", "type": "string", "default": "" }, "aliases": { "title": "Aliases", "description": "Web aliases for the web server, similar to virtual directories", "type": "object", "patternProperties": { "^(/[^/]+)+$": { "title": "Alias", "description": "The key is the web-accessible virtual path and the value is the relative or absolute path to the folder the alias points to", "type": "string" } }, "additionalProperties": false, "default": {} }, "errorPages": { "title": "Error Pages", "description": "The error pages that CommandBox servers return. You can have a setting for each status code including a default error page to be used if no other setting applies", "type": "object", "properties": { "default": { "title": "Default", "description": "Path to default error page", "type": "string", "default": "" } }, "patternProperties": { "^[1-5][0-9]{2}$": { "title": "Error Page", "description": "The key is the status code integer and the value is a relative (to the web root) path to be loaded for that status code", "type": "string" } }, "additionalProperties": false, "default": {} }, "HTTP": { "title": "HTTP Settings", "description": "Configure the HTTP listener on the server", "type": "object", "properties": { "enable": { "title": "Enable", "description": "Enable HTTP for this serer", "type": "boolean", "default": true }, "port": { "title": "Port", "description": "HTTP port to use", "type": "number", "default": 0 } } }, "SSL": { "title": "SSL", "description": "Configure the HTTPS listener on the server", "type": "object", "properties": { "enable": { "title": "Enable", "description": "Enable HTTPS for this server", "type": "boolean", "default": false }, "port": { "title": "Port", "description": "HTTPS port to use", "type": "number", "default": 1443 }, "certFile": { "title": "Cert File", "description": "Path to SSL cert file", "type": "string", "default": "" }, "keyFile": { "title": "Key File", "description": "Path to SSL key file", "type": "string", "default": "" }, "keyPass": { "title": "Key Pass", "description": "Password for SSL key file", "type": "string", "default": "" } } }, "AJP": { "title": "AJP", "description": "Configure the AJP listener on the server", "type": "object", "properties": { "enable": { "title": "Enable", "description": "Enable AJP for this server", "type": "boolean", "default": false }, "port": { "title": "Port", "description": "AJP port to use", "type": "number", "default": 8009 } } }, "rewrites": { "title": "Rewrites", "description": "Configure URL Rewrites", "type": "object", "properties": { "enable": { "title": "Enable", "description": "Enable URL Rewrites on this server", "type": "boolean", "default": false }, "logEnable": { "title": "Log Enable", "description": "Enable Rewrite log file", "type": "boolean", "default": false }, "config": { "title": "Config", "description": "Path to xml config file or .htaccess", "type": "string", "default": "" }, "statusPath": { "title": "Tuckey Status Path", "description": "URL path to visit Tuckey status page like '/tuckey-status'", "type": "string", "default": "/tuckey-status" }, "configReloadSeconds": { "title": "Config Reload Seconds", "description": "Number of seconds to check rewrite config file for changes", "type": "number" } } }, "basicAuth": { "title": "Configure basic authentication", "description": "", "type": "object", "properties": { "enable": { "title": "Enable", "description": "Enable basic auth for this server", "type": "boolean", "default": true }, "users": { "title": "Users", "description": "Users who can authenticate to basic auth", "type": "object", "additionalProperties": { "title": "User", "description": "The key is the user name and the value is the password.", "type": "string" }, "default": {} } } } } }, "app": { "title": "Application", "description": "Application Server Options", "type": "object", "properties": { "logDir": { "title": "Log Directory", "description": "The folder path where the servlet out, rewrite, and access log are written to", "type": "string", "default": "" }, "libDirs": { "title": "Jar lib Directories", "description": "A comma-delimited list of directories from which CommandBox will load JARs", "type": "string", "default": "" }, "webConfigDir": { "title": "Web Context Directory", "description": "Directory for Lucee/Railo web context", "type": "string", "default": "" }, "serverConfigDir": { "title": "Server Context Directory", "description": "Directory for Lucee/Railo server context", "type": "string", "default": "" }, "webXML": { "title": "Web XML", "description": "Path to web.xml file", "type": "string", "default": "" }, "WARPath": { "title": "WAR Path", "description": "Path to a local WAR archive or exploded WAR folder. Mutually exclusive with cfengine.", "type": "string", "default": "" }, "cfengine": { "title": "CFML Engine", "description": "An Endpoint ID that resolves to a CF engine such as 'adobe' or 'lucee'. Include version as 'adobe@2016'", "type": "string", "default": "" }, "restMappings": { "title": "REST Mappings", "description": "Comma delimited list of paths to map to the CF engine's REST servlet such as '/rest/*,/api/*'", "type": "string", "default": "" }, "serverHomeDirectory": { "title": "Server Home Directory", "description": "Path to folder where the server WAR will be expanded", "type": "string", "default": "" }, "sessionCookieSecure": { "title": "Session Cookie Secure", "description": "Enable secure session cookies", "type": "boolean", "default": false }, "sessionCookieHTTPOnly": { "title": "Session Cookie HttpOnly", "description": "Enable HTTP-only session cookies", "type": "boolean", "default": false } } }, "runwar": { "title": "Configure RunWar", "description": "These settings apply to the underlying Runwar library that starts servers", "type": "object", "properties": { "args": { "title": "Arguments", "description": "Ad-hoc options for the underlying Runwar library", "type": "string", "default": "" } } } } }