{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "profiles-schema", "type": "object", "title": "The root schema", "description": "The root schema comprises the entire JSON document.", "properties": { "applicationProps": { "$id": "#/properties/applicationProps", "type": "object", "title": "Application Properties", "properties": { "description": { "$id": "#/properties/applicationProps/properties/description", "title": "Description", "default": "Application", "type": "string" }, "directory": { "$id": "#/properties/applicationProps/properties/directory", "default": "/opt/pronghorn/current/node_modules", "title": "Directory", "description": "The location of the node_modules directory.", "type": "string", "format": "uri-reference" } }, "required": [ "directory" ] }, "uiProps": { "$id": "#/properties/uiProps", "type": "object", "title": "UI Properties", "properties": { "description": { "$id": "#/properties/uiProps/properties/description", "type": "string", "title": "Description", "default": "UI", "examples": [ "UI" ] }, "layout": { "$id": "#/properties/uiProps/properties/layout", "type": "string", "title": "Layout", "examples": [ "node_modules/@itential/pronghorn-core/ui/views/layout.jade" ] }, "home": { "$id": "#/properties/uiProps/properties/home", "type": "string", "title": "Home", "examples": [ "node_modules/@itential/pronghorn-core/ui/views/home.jade" ] }, "login": { "$id": "#/properties/uiProps/properties/login", "type": "string", "title": "Login", "examples": [ "node_modules/@itential/pronghorn-core/ui/views/login.jade" ] }, "profile": { "$id": "#/properties/uiProps/properties/profile", "type": "string", "title": "Profile", "examples": [ "node_modules/@itential/pronghorn-core/ui/views/profile.jade" ] }, "fav_icon": { "$id": "#/properties/uiProps/properties/fav_icon", "type": "string", "title": "Favicon", "examples": [ "node_modules/@itential/pronghorn-core/ui/img/favicon.ico" ] } }, "required": [ "layout", "home", "login", "profile", "fav_icon" ] }, "authenticationProps": { "$id": "#/properties/authenticationProps", "type": "object", "title": "Authentication Properties", "properties": { "description": { "$id": "#/properties/authenticationProps/properties/description", "type": "string", "title": "Description", "examples": [ "Authentication" ] }, "logoutTime": { "$id": "#/properties/authenticationProps/properties/logoutTime", "type": "integer", "minimum": 2, "description": "The maximum number of time IAP has to make an api call before the user is logged out, in minutes.", "title": "Logout Time", "default": 60, "examples": [ 20 ] }, "uniqueSession": { "$id": "#/properties/authenticationProps/properties/uniqueSession", "type": "boolean", "description": "When uniqueSession is set to true, only one session may be enabled for a given user.", "title": "Unique Session", "default": false, "examples": [ false ] }, "admins": { "$id": "#/properties/authenticationProps/properties/admins", "type": "array", "title": "Admins", "description": "Members of these groups will be implicitly assigned with admin permissions", "items": { "$id": "#/properties/authenticationProps/properties/admins/items", "type": "object", "properties": { "provenance": { "$id": "#/properties/authenticationProps/properties/admins/items/properties/provenance", "type": "string", "description": "The name of the AAA adapter in which the groups reside.", "title": "Provenance", "default": "", "examples": [ "Local AAA" ] }, "group": { "$id": "#/properties/authenticationProps/properties/admins/items/properties/group", "type": "string", "description": "The name of a user group which will have Pronghorn user management capabilities.", "title": "Group", "default": "", "examples": [ "admin" ] } }, "required": [ "provenance", "group" ] } }, "cookieName": { "$id": "#/properties/authenticationProps/properties/cookieName", "type": "string", "description": "The name used by Pronghorn to identify cookies for user session data", "title": "Cookie Name", "default": "token", "examples": [ "pronghorn_token" ] }, "brokerPrincipal": { "$id": "#/properties/authenticationProps/properties/brokerPrincipal", "type": "boolean", "description": "When brokerPrincipal is set to true, the AAA adapter will be responsible for creating a principal.", "title": "Broker Principal", "default": false, "examples": [ false ] } }, "required": [ "uniqueSession", "admins" ] }, "expressProps": { "$id": "#/properties/expressProps", "type": "object", "title": "Express Properties", "properties": { "description": { "$id": "#/properties/expressProps/properties/description", "type": "string", "title": "Description", "default": "Express Server", "examples": [ "Express Server" ] }, "cacheControl": { "$id": "#/properties/expressProps/properties/cacheControl", "type": "boolean", "description": "A boolean flag indicating whether Pronghorn will send the Cache-Control header. This can be useful in environments that leverage caching proxy servers.", "title": "Cache Control", "default": false, "examples": [ false ] }, "timeout": { "$id": "#/properties/expressProps/properties/timeout", "type": "integer", "description": "The maximum number of milliseconds Pronghorn has to respond to a request before a timeout will be returned to the client.", "title": "Timeout", "default": 300000, "examples": [ 300000 ] }, "access_control_allow_origin": { "$id": "#/properties/expressProps/properties/access_control_allow_origin", "type": "string", "description": "The configured domain name for the Access-Control-Allow-Origin header used for security.", "title": "Access-Control-Allow-Origin", "default": "*", "examples": [ "*" ] }, "express_http": { "$id": "#/properties/expressProps/properties/express_http", "type": "object", "title": "Express HTTP Settings", "properties": { "enable": { "$id": "#/properties/expressProps/properties/express_http/properties/enable", "type": "boolean", "description": "A boolean flag indicating whether Pronghorn will listen for incoming HTTP requests.", "title": "Enable HTTP", "default": false, "examples": [ false ] }, "port": { "$ref": "#/definitions/port" } }, "required": [ "enable", "port" ] }, "express_https": { "$id": "#/properties/expressProps/properties/express_https", "type": "object", "title": "Express HTTPS Settings", "properties": { "enable": { "$id": "#/properties/expressProps/properties/express_https/properties/enable", "type": "boolean", "description": "A boolean flag indicating whether Pronghorn will listen for incoming HTTPS requests.", "title": "Enable HTTPS", "default": false, "examples": [ true ] }, "port": { "$ref": "#/definitions/port" }, "key": { "$id": "#/properties/expressProps/properties/express_https/properties/key", "type": "string", "description": "The server's private key to use for all https transactions. If the private key is encrypted with a passphrase, you should also include the express_https.passphrase property.", "title": "Key", "default": "/opt/pronghorn/current/keys/key.pem", "examples": [ "/opt/pronghorn/current/keys/key.pem" ] }, "passphrase": { "$id": "#/properties/expressProps/properties/express_https/properties/passphrase", "type": "string", "title": "Passphrase", "description": "The passphrase for the server's private key. You should only include this property if the private key is encrypted with a passphrase." }, "cert": { "$id": "#/properties/expressProps/properties/express_https/properties/cert", "type": "string", "title": "Certificate", "description": "The server's public certificate to use for all HTTPS transactions.", "default": "/opt/pronghorn/current/keys/cert.pem", "examples": [ "/opt/pronghorn/current/keys/cert.pem" ] }, "secureProtocol": { "$id": "#/properties/expressProps/properties/express_https/properties/secureProtocol", "type": "string", "description": "The secureProtocol can be used to configure the set of allowed SSL/TLS protocol versions.", "title": "Secure Protocol", "default": "TLSv1_2_method", "examples": [ "TLSv1_2_method" ], "enum": [ "TLSv1_method", "TLSv1_1_method", "TLSv1_2_method" ] }, "ciphers": { "$id": "#/properties/expressProps/properties/express_https/properties/ciphers", "type": "string", "description": "The set of ciphers to allow when establishing an encrypted session.", "title": "Ciphers", "default": "", "examples": [ "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256" ] }, "client_reneg_limit": { "$id": "#/properties/expressProps/properties/express_https/properties/client_reneg_limit", "type": "integer", "description": "The maximum number of client renegotiations allowed per renegotiation window.", "title": "Client Renegotiation Limit", "default": 1, "examples": [ 1 ] }, "client_reneg_window": { "$id": "#/properties/expressProps/properties/express_https/properties/client_reneg_window", "type": "integer", "description": "The renegotiation window allows a limited number of client renegotiation requests within a configured number of seconds.", "title": "Client Renegotiation Window", "default": 600, "examples": [ 600 ] } }, "required": [ "enable", "port", "key", "cert", "secureProtocol", "client_reneg_limit", "client_reneg_window" ] } }, "required": [ "express_http", "express_https" ] }, "loggerProps": { "$id": "#/properties/loggerProps", "type": "object", "title": "Logger Properties", "properties": { "description": { "$id": "#/properties/loggerProps/properties/description", "type": "string", "title": "Description", "default": "Logger Settings", "examples": [ "Logging" ] }, "log_directory": { "$id": "#/properties/loggerProps/properties/log_directory", "type": "string", "title": "Directory", "description": "The directory to store Pronghorn log files.", "default": "/var/log/pronghorn", "examples": [ "/var/log/pronghorn" ] }, "log_filename": { "$id": "#/properties/loggerProps/properties/log_filename", "type": "string", "description": "The name of the current Pronghorn log file.", "title": "Filename", "default": "pronghorn.log", "examples": [ "pronghorn.log" ] }, "log_max_file_size": { "$id": "#/properties/loggerProps/properties/log_max_file_size", "type": "integer", "title": "Max File Size", "description": "The maximum size of each Pronghorn log file in bytes.", "default": 1048576, "examples": [ 1048576 ] }, "log_max_files": { "$id": "#/properties/loggerProps/properties/log_max_files", "type": "integer", "description": "The maximum number of log files maintained on the server.", "title": "Max Number of Files", "default": 100, "examples": [ 100 ] }, "log_timezone_offset": { "$id": "#/properties/loggerProps/properties/log_timezone_offset", "type": "integer", "description": "Defunct: Previously used to apply a timezone offset to log messages. IAP now uses UTC for all log messages. This property will be fully removed in release/2023.2.", "title": "Timezone Offset", "default": 0, "examples": [ -5 ], "minimum": -12, "maximum": 12 }, "log_level": { "title": "Log Level", "$ref": "#/definitions/log_level" }, "console_level": { "title": "Console Level", "$ref": "#/definitions/log_level" }, "webserver": { "$id": "#/properties/loggerProps/webserver", "type": "object", "description": "Determines how to set up the web server access log.", "title": "Webserver", "properties": { "log_directory": { "$id": "#/properties/loggerProps/properties/webserver/properties/log_directory", "type": "string", "title": "Directory", "description": "The directory to store web server access log files.", "default": "/var/log/pronghorn", "examples": [ "/var/log/pronghorn" ] }, "log_filename": { "$id": "#/properties/loggerProps/properties/webserver/properties/log_filename", "type": "string", "description": "The name for the web server access log file.", "title": "Filename", "default": "webserver.log", "examples": [ "webserver.log" ] } } }, "syslog": { "$id": "#/properties/loggerProps/syslog", "type": "object", "description": "Allows Pronghorn to send log messages to a local or remote syslog daemon.", "title": "Syslog", "properties": { "level": { "$ref": "#/definitions/sys_log_level" }, "host": { "$id": "#/properties/loggerProps/properties/syslog/properties/host", "type": "string", "description": "The host running syslogd.", "title": "Host", "default": "localhost", "examples": [ "localhost" ] }, "port": { "$id": "#/properties/loggerProps/properties/syslog/properties/port", "type": "integer", "description": "The port on the host that syslog is running on.", "title": "Port", "default": 514, "minimum": 1, "maximum": 65535, "examples": [ 514 ] }, "protocol": { "$id": "#/properties/loggerProps/properties/syslog/properties/protocol", "type": "string", "title": "Protocol", "description": "The network protocol to log over. Can be one of tcp4, udp4, unix or unix-connect.", "default": "udp4", "examples": [ "udp4" ], "enum": [ "tcp4", "udp4", "unix", "unix-connect" ] }, "facility": { "$id": "#/properties/loggerProps/properties/syslog/properties/facility", "type": "string", "description": "The syslog facility to use.", "title": "Facility", "default": "local0", "examples": [ "local0" ] }, "type": { "$id": "#/properties/loggerProps/properties/syslog/properties/type", "type": "string", "title": "Type", "description": "The type of syslog protocol to use. Possible values are BSD and 5424.", "default": "BSD", "examples": [ "5424" ], "enum": [ "BSD", "5424" ] }, "path": { "$id": "#/properties/loggerProps/properties/syslog/properties/path", "type": "string", "title": "Path", "description": "The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X). If path is used, host, port and protocol do not need to be configured.", "default": "", "format": "uri-reference", "examples": [ "/dev/log" ] }, "pid": { "$id": "#/properties/loggerProps/properties/syslog/properties/pid", "type": "string", "description": "Process identifier (PID) of the process that log messages are coming from (Default is process.pid).", "title": "Process ID", "default": "process.pid", "examples": [ "process.pid" ] }, "localhost": { "$id": "#/properties/loggerProps/properties/syslog/properties/localhost", "type": "string", "description": "The host to indicate that log messages are coming from.", "title": "Log Host", "default": "", "examples": [ "localhost" ] }, "app_name": { "$id": "#/properties/loggerProps/properties/syslog/properties/app_name", "type": "string", "description": "The name of the application.", "title": "Application Name", "default": "", "examples": [ "process.title" ] }, "eol": { "$id": "#/properties/loggerProps/properties/syslog/properties/eol", "type": "string", "title": "End of Line Character", "description": "The end of line character to be added to the end of the message.", "default": "", "examples": [ "CR" ] } }, "allOf": [ { "required": [ "level", "facility", "type" ] }, { "anyOf": [ { "required": [ "host", "port", "protocol" ] }, { "required": [ "path" ] } ] } ], "additionalProperties": false } }, "required": [ "log_directory", "log_filename", "log_max_file_size", "log_max_files", "log_level", "console_level" ], "additionalProperties": false }, "redisProps": { "$id": "#/properties/redisProps", "type": "object", "title": "Redis Properties", "properties": { "db": { "$id": "/properties/redisProps/properties/db", "type": "integer", "description": "The Redis database number to connect to (may be any of 0-15).", "title": "Database Number", "examples": [ 0 ], "minimum": 0 }, "username": { "$id": "/properties/redisProps/properties/username", "type": "string", "title": "Username", "description": "The username with access to the Redis DB.", "examples": [ "admin" ] }, "password": { "$id": "/properties/redisProps/properties/password", "type": "string", "title": "Password", "description": "The passphrase protecting access to the Redis DB.", "examples": [ "$ENC87eb897b507afc1796db49409dd1251c87872e85afd2469e" ] }, "maxRetriesPerRequest": { "$id": "/properties/redisProps/properties/maxRetriesPerRequest", "type": "integer", "description": "IAP will be shutdown after maxRetriesPerRequest is reached in case of lost Redis network connection.", "title": "Max Retries Per Request", "default": 20, "examples": [ 20 ] }, "maxHeartbeatWriteRetries": { "$id": "/properties/redisProps/properties/maxHeartbeatWriteRetries", "type": "integer", "description": "IAP will be shutdown after maxHeartbeatWriteRetries is reached in case of lost ability to write data in Redis.", "title": "Max Heartbeat Write Retries", "default": 20, "examples": [ 20 ] } }, "oneOf": [ { "properties": { "host": { "$id": "/properties/redisProps/properties/host", "type": "string", "description": "The IP or hostname of the server running the Redis service.", "title": "Host", "format": "hostname", "examples": [ "127.0.0.1", "localhost" ] }, "port": { "$id": "#/properties/redisProps/properties/port", "type": "integer", "title": "Port", "examples": [ 6379 ] } }, "required": [ "host", "port" ] }, { "properties": { "sentinels": { "$id": "/properties/redisProps/properties/sentinels", "type": "array", "title": "Sentinels", "items": { "$id": "/properties/redisProps/properties/sentinels/items", "type": "object", "properties": { "host": { "$id": "/properties/redisProps/properties/sentinels/items/properties/host", "type": "string", "title": "Host", "examples": [ "localhost" ] }, "port": { "$id": "/properties/redisProps/properties/sentinels/items/properties/port", "type": "integer", "title": "Port", "examples": [ 26379 ] } } }, "description": "The list of Redis hosts for sentinel configuration." }, "name": { "$id": "/properties/redisProps/properties/name", "type": "string", "title": "Name", "description": "The name of the master node in the Redis sentinel group." } }, "required": [ "sentinels", "name" ] } ] }, "auditProps": { "$id": "#/properties/auditProps", "type": "object", "title": "Audit Properties", "properties": { "description": { "$id": "#/properties/auditProps/properties/description", "type": "string", "title": "Description", "examples": [ "Audit" ] }, "audit": { "$id": "#/properties/auditProps/properties/audit", "type": "boolean", "title": "Audit", "examples": [ true ] }, "brokerValidation": { "$id": "#/properties/auditProps/properties/brokerValidation", "type": "boolean", "title": "Broker Validation", "examples": [ true ] } }, "required": [ "audit", "brokerValidation" ] }, "pathProps": { "$id": "#/properties/pathProps", "type": "object", "title": "Path Properties", "properties": { "description": { "$id": "#/properties/applicationProps/description", "title": "Description", "default": "Path Properties", "type": "string" }, "encrypted": { "$id": "/properties/pathProps/properties/encrypted", "type": "boolean", "description": "A boolean flag indicating Pronghorn core is encrypted.", "title": "Encrypted", "default": true, "examples": [ true ] } }, "required": [ "encrypted" ] }, "alarmProps": { "$id": "#/services/alarmProps", "title": "Alarm Properties", "type": "array", "items": { "$ref": "#/definitions/snmpConfig" }, "minItems": 0 }, "id": { "$id": "#/properties/id", "type": "string", "title": "Profile ID", "pattern": "^[^\\/]+$", "examples": [ "profile1" ] }, "services": { "$id": "#/properties/services", "type": "array", "title": "Services", "items": { "$id": "#/properties/services/items", "type": "string", "examples": [ "WorkflowBuilder", "FormBuilder" ] } }, "description": { "$id": "#/properties/description", "type": "string", "title": "Description", "examples": [ "An IAP Profile" ] }, "rabbitmq": { "$id": "#/services/rabbitmq", "type": "object", "title": "RabbitMQ", "properties": { "eventDeduplication": { "$id": "/properties/rabbitmq/eventDeduplication", "type": "object", "title": "Event Deduplication", "properties": { "active": { "title": "Active", "type": "boolean", "default": false }, "cacheTtl": { "title": "Cache TTL", "type": "integer", "default": 100 }, "cacheSize": { "title": "Cache Size", "type": "integer", "default": 100 }, "cachePersistence": { "title": "Cache Persistence", "enum": [ "memory", "disk" ], "default": "memory" }, "messagePreservation": { "title": "Message Preservation", "type": "object", "properties": { "strategy": { "title": "Strategy", "type": "string", "enum": [ "manual", "automatic", "off" ], "default": "automatic" }, "preserveMessages": { "title": "Preserve Messages", "type": "boolean", "default": true }, "tempQueueName": { "title": "Temp Queue Name", "type": "string", "default": "iap_event__TMP__" }, "shovelName": { "title": "Shovel Name", "type": "string", "default": "preserve_iap_events" }, "shovelAckMode": { "title": "Shovel Ack Mode", "enum": [ "on-confirm", "on-publish" ], "default": "on-confirm" }, "shovelAddHeaders": { "title": "Shovel Add Headers", "type": "boolean", "default": false }, "shovelPrefetchCount": { "title": "Shovel Prefetch Count", "type": "integer", "default": 1000 }, "shovelReconnectDelay": { "title": "Shovel Reconnect Delay", "type": "number", "default": 5 }, "maxTransferWait": { "title": "Max Transfer Wait", "type": "number", "default": 5 }, "transferWaitPollIncrement": { "title": "Transfer Wait Poll Increment", "type": "number", "default": 0.1 } } } }, "required": [ "active" ] }, "protocol": { "$id": "/properties/rabbitmq/protocol", "type": "string", "title": "Protocol", "default": "amqp", "description": "The protocol used by RabbitMQ.", "examples": [ "amqp" ] }, "hosts": { "$id": "/properties/rabbitmq/hosts", "type": "array", "title": "Hosts", "default": "rabbitmq", "description": "The hosts used by RabbitMQ.", "items": { "$id": "#/properties/rabbitmq/hosts/items", "type": "string" } }, "port": { "$ref": "#/definitions/port" }, "adminPort": { "type": "integer", "title": "Admin Port", "description": "The admin port used by the RabbitMQ admin console.", "minimum": 1, "maximum": 65535 }, "username": { "$id": "/properties/rabbitmq/username", "type": "string", "title": "Username", "default": "", "description": "The username used to validate RabbitMQ.", "examples": [ "guest" ] }, "password": { "$id": "/properties/rabbitmq/password", "type": "string", "title": "Password", "default": "", "description": "The password used to validate RabbitMQ.", "examples": [ "guest" ] }, "locale": { "$id": "/properties/rabbitmq/locale", "type": "string", "title": "Locale", "default": "en_US", "description": "The locale used by RabbitMQ.", "examples": [ "en_US" ] }, "frameMax": { "$id": "/properties/rabbitmq/frameMax", "type": "integer", "title": "Frame Max", "default": 0, "description": "The maximum number of frames for RabbitMQ.", "examples": [ 0 ] }, "heartbeat": { "$id": "/properties/rabbitmq/heartbeat", "type": "integer", "title": "Heartbeat", "default": 0, "description": "The heartbeat for RabbitMQ.", "examples": [ 0 ] }, "vhost": { "$id": "/properties/rabbitmq/vhost", "type": "string", "title": "Vhost", "default": "/", "description": "The vhost used by RabbitMQ.", "examples": [ "/" ] }, "keyPath": { "type": "string", "description": "The path to the RabbitMQ private key used for SSL", "examples": [ "/opt/pronghorn/current/keys/key.pem" ] }, "certPath": { "type": "string", "description": "The path to the RabbitMQ public certificate used for SSL", "examples": [ "/opt/pronghorn/current/keys/cert.pem" ] }, "caPath": { "type": "string", "description": "The path to the RabbitMQ certificate authority used for SSL", "examples": [ "/opt/pronghorn/current/keys/ca.crt" ] }, "passphrase": { "type": "string", "title": "Passphrase", "description": "The passphrase for the RabbitMQ private key. You should only include this property if the private key is encrypted with a passphrase." } }, "required": [ "protocol", "hosts", "port", "username", "password", "locale", "frameMax", "heartbeat", "vhost" ] }, "adapterStrategy": { "$id": "#/properties/adapterStrategy", "type": "object", "title": "Adapter Strategy", "properties": { "device": { "$id": "/properties/adapterStrategy/device", "title": "Device Calls", "description": "Defines the order in which southbound systems are called.", "properties": { "adapterTypes": { "$id": "/properties/adapterStrategy/device/adapterTypes", "type": "array", "uniqueItems": true, "title": "Adapter Types", "default": [], "description": "A list of adapter types that manages the devices.", "items": { "$id": "#/properties/adapterStrategy/device/adapterTypes/items", "type": "string", "enum": [ "NSO", "AutomationGateway" ] } }, "exceptions": { "$id": "/properties/adapterStrategy/device/exceptions", "type": "object", "minProperties": 1, "maxProperties": 1, "title": "Exceptions", "default": { "runCommand": "" }, "description": "An override for the runCommand's preference to a southbound system.", "properties": { "runCommand": { "$id": "/properties/adapterStrategy/device/exceptions/runCommand", "type": "string", "title": "Run Command", "default": "", "description": "Runs a command on a device.", "oneOf": [ { "const": "", "title": "None" }, { "const": "NSO", "title": "NSO" }, { "const": "AutomationGateway", "title": "Automation Gateway" } ] } }, "required": [ "runCommand" ] } }, "required": [ "adapterTypes" ], "type": "object" } }, "required": [ "device" ], "additionalProperties": true }, "systemProps": { "$id": "#/properties/systemProps", "type": "object", "title": "System Properties", "description": "Properties used to configure IAP process.", "properties": { "shutdownTimeout": { "type": "integer", "title": "Shutdown Timeout", "minimum": 0, "description": "The amount of time a service should wait before shutting down, in seconds.", "examples": [ 3 ] }, "servicesBlacklist": { "type": "array", "title": "Services Blacklist", "description": "An array of services that blocks CRUD operation access for each service listed.", "items": { "type": "string", "description": "The service type that will be denied CRUD operation access.", "examples": [ "Local AAA" ] } }, "launchDelay": { "$id": "/launchDelay", "type": "integer", "title": "Launch Delay", "minimum": 0, "maximum": 60, "description": "The application/adapter launch delay, in seconds.", "examples": [ 5 ] }, "launchTimeout": { "$id": "/launchTimeout", "type": "integer", "title": "Launch Timeout", "minimum": 30, "maximum": 1200, "description": "The application/adapter launch timeout, in seconds.", "examples": [ 60 ] }, "deadProcessCheck": { "type": "boolean", "title": "Dead Process Check", "default": false, "description": "Enable/disable IAP check for dead applications/adapters.", "examples": [ false, true ] }, "deadProcessCheckInterval": { "type": "integer", "title": "Dead Process Check Interval", "default": 5, "minimum": 5, "maximum": 600, "description": "How often to check if application/adapter stopped sending healthcheck pings, in seconds.", "examples": [ 5 ] }, "deadProcessMaxPeriod": { "type": "integer", "title": "Dead Process Max Period", "default": 15, "minimum": 15, "maximum": 600, "description": "Maximum time period for application/adapter without sending healthcheck ping, in seconds.", "examples": [ 15 ] }, "externalRequestTimeout": { "$id": "/externalRequestTimeout", "type": "integer", "title": "External Request Timeout", "minimum": 1, "maximum": 120, "default": 5, "description": "The timeout for external API requests, in seconds.", "examples": [ 5, 10 ] } }, "required": [] }, "prebuiltProps": { "type": "object", "title": "Prebuilt Properties", "properties": { "repoConfigs": { "type": "object", "title": "Repository Configurations", "description": "The configurations used to fetch Prebuilts from different repositories.", "properties": { "@itentialopensource": { "type": "object", "properties": { "enabled": { "$ref": "common-schema#/definitions/enabled" }, "type": { "$ref": "common-schema#/definitions/type" }, "hostname": { "$ref": "common-schema#/definitions/hostname" }, "path": { "$ref": "common-schema#/definitions/path" }, "credentials": { "$ref": "common-schema#/definitions/credentials" } } } }, "additionalProperties": true } }, "required": [ "repoConfigs" ] }, "integrationProps": { "$id": "#/properties/integrationProps", "type": "object", "title": "Integration Properties", "properties": { "threadCount": { "$id": "/properties/integrationProps/threadCount", "type": "integer", "title": "Integrations Thread Count", "default": 5, "minimum": 1, "maximum": 16, "description": "The number of threads available for API requests.", "examples": [ 5 ] }, "timeout": { "$id": "/properties/integrationProps/timeout", "type": "integer", "title": "Integrations Timeout", "default": 15000, "description": "The number of milliseconds until an integration request times out.", "examples": [ 15000 ] } }, "required": [ "threadCount", "timeout" ] }, "retryStrategy": { "$id": "#/properties/retryStrategy", "type": "object", "title": "Retry Strategy", "description": "Properties used to configure the strategy services use on crash.", "properties": { "maxRetries": { "$id": "/properties/retryStrategy/maxRetries", "type": "integer", "title": "Max Retries", "default": 10, "minimum": 1, "description": "Specifies the amount of times services will retry on crash before stopping.", "examples": [ 5 ] }, "retryResetTimer": { "$id": "/properties/retryStrategy/retryResetTimer", "type": "integer", "title": "Retry Reset Timer", "default": 60000, "minimum": 0, "description": "Specifies the amount of times between each retry before the count will reset in milliseconds.", "examples": [ 30000 ] } }, "required": [ "maxRetries", "retryResetTimer" ] } }, "required": [ "applicationProps", "uiProps", "authenticationProps", "expressProps", "loggerProps", "redisProps", "auditProps", "pathProps", "alarmProps", "id", "services", "description", "rabbitmq", "adapterStrategy", "systemProps", "prebuiltProps" ], "additionalProperties": true, "definitions": { "snmpConfig": { "$id": "#/services/snmpConfig", "type": "object", "title": "Remote SNMP Config", "description": "Remote SNMP destination config.", "properties": { "description": { "$id": "#/services/snmpConfig/properties/description", "title": "Description", "default": "Alarm", "type": "string" }, "ip": { "$id": "#/services/snmpConfig/properties/ip", "type": "string", "format": "hostname", "description": "The IP address of the remote alarm receiver. FQDNs are also supported in this field.", "title": "Remote Server IP Address", "default": "127.0.0.1", "examples": [ "127.0.0.1" ] }, "community": { "$id": "#/services/snmpConfig/properties/community", "type": "string", "description": "The SNMP community to apply to the outgoing trap or inform.", "title": "SNMP Community", "default": "public", "examples": [ "public" ] }, "properties": { "$id": "#/services/snmpConfig/properties", "type": "object", "properties": { "retries": { "$id": "#/services/snmpConfig/properties/properties/properties/retries", "type": "integer", "description": "The number of timeout cycles to wait for an acknowledgement when delivering inform type notifications.", "title": "Retries", "default": 1, "examples": [ 1 ] }, "timeout": { "$id": "#/services/snmpConfig/properties/properties/properties/timeout", "type": "integer", "description": "The number of seconds to wait for an acknowledgement when delivering inform type notifications.", "title": "Timeout", "default": 5000, "examples": [ 5000 ] }, "transport": { "$id": "#/services/snmpConfig/properties/properties/properties/transport", "type": "string", "description": "The protocol to use to send alarms to this receiver.", "title": "Transport Protocol", "default": "udp4", "examples": [ "udp4" ], "enum": [ "udp4", "udp6" ] }, "trapPort": { "$id": "#/services/snmpConfig/properties/properties/properties/trapPort", "type": "integer", "description": "The remote port of this alarm receiver.", "title": "SNMP Trap Port", "default": 162, "examples": [ 162 ] }, "version": { "$id": "#/snmpConfig/properties/properties/properties/version", "type": "string", "description": "The SNMP version to use when delivering notifications to this alarm receiver.", "title": "SNMP Version", "default": "V1", "examples": [ "V1" ], "enum": [ "V1", "V2", "V2C", "v1", "v2", "v2c" ] } }, "required": [ "retries", "timeout", "trapPort", "version" ] }, "type": { "$id": "#/services/snmpConfig/properties/type", "type": "string", "description": "The type can be configured as either a trap or inform.", "title": "SNMP Type", "default": "trap", "examples": [ "trap", "inform" ], "enum": [ "trap", "inform" ] } }, "required": [ "ip", "community", "properties", "type" ], "additionalProperties": false }, "log_level": { "$id": "#/services/log_level", "type": "string", "title": "Log Level", "examples": [ "error", "warn", "info", "debug", "trace", "spam" ], "enum": [ "error", "warn", "info", "debug", "trace", "spam" ] }, "sys_log_level": { "$id": "#/services/sys_log_level", "type": "string", "title": "Sys Log Level", "default": "error", "examples": [ "debug", "info", "warning", "error" ], "enum": [ "debug", "info", "warning", "error" ] }, "port": { "$id": "#/services/port", "type": "integer", "title": "Port", "minimum": 1, "maximum": 65535 } } }