--- AUTO_DECLARE_TARGETS: summary: Automatically load all the target folders under config/targets into the system description: When automatically discovering target folders the COSMOS naming convention must be followed. Target folders must be uppercase and be named according to how COSMOS will access them. For example, if you create a config/targets/INST directory, COSMOS will create a target named 'INST' which is how it will be referenced. This keyword is REQUIRED unless you individually declare your targets using the DECLARE_TARGET keyword. DECLARE_TARGET: summary: Declare a COSMOS target and name it description: Declare target is used in place of AUTO_DECLARE_TARGETS to give more fine grained control over how the target folder is loaded and named within COSMOS. This is required if AUTO_DECLARE_TARGET is not present. example: DECLARE_TARGET INST INST2 inst.txt parameters: - name: Target Name required: true description: The directory name which contains the target information. This must match a directory under config/targets. values: <%= System.targets.keys %> - name: Substitute Target Name required: false description: The target name in the COSMOS system. This is how the target will be referred to in scripts. If this is not given (or given as nil) the target name will be the directory name given above. - name: Target Filename required: false description: The name of the file in the target directory which contains the configuration information for the target. By default this is 'target.txt' but if you want to rename this you need to set this parameter. DECLARE_GEM_TARGET: summary: Declare a COSMOS target which resides in a Ruby gem description: COSMOS targets can be distributed in gem form in which case they must be named 'cosmos-' where is the descriptive name of the gem. See the COSMOS documentation at cosmosrb.com for for information on creating a COSMOS gem target. parameters: - name: Gem Name required: true description: The COSMOS gem name which must be cosmos- where is the descriptive gem name. In the above example, the target will be named 'GEM-NAME' (note the cosmos- prefix is stripped off). values: .+ - name: Substitute Target Name required: false description: The target name in the COSMOS system. This is how the target will be referred to in scripts. If this is not given (or given as nil) the target name will be the gem name as described above. - name: Target Filename required: false description: The name of the file in the target directory which contains the configuration information for the target. By default this is 'target.txt' but if you want to rename this you need to set this parameter. DECLARE_GEM_MULTI_TARGET: summary: Declare a COSMOS target which resides in a Ruby gem with multiple targets description: COSMOS targets can be distributed in gem form in which case they must be named 'cosmos-' where is the descriptive name of the gem. Multiple Targets can be packaged into a single gem. This directive will tell COSMOS where to look for a target inside the first directory level of the gem. The sub-directory name must be all uppercase and must contain a sub-directory named 'cmd_tlm'. See the COSMOS documentation at cosmosrb.com for for information on creating a COSMOS gem target. parameters: - name: Gem Name required: true description: The COSMOS gem name which must be cosmos- where is the descriptive gem name. In the above example, the target will be named 'GEM-NAME' (note the cosmos- prefix is stripped off). values: .+ - name: Target Name required: true description: The directory name which contains the target information. This must match a directory under the first level of the gem base directory. values: .+ - name: Substitute Target Name required: false description: The target name in the COSMOS system. This is how the target will be referred to in scripts. If this is not given (or given as nil) the target name will be the gem name as described above. - name: Target Filename required: false description: The name of the file in the target directory which contains the configuration information for the target. By default this is 'target.txt' but if you want to rename this you need to set this parameter. PORT: summary: Set a Server Port description: Port is used to set the default ports used by the Command and Telemetry Server. It is not necessary to set this option unless you wish to override the defaults (given in the example usage). Overriding ports is necessary if you want to run two Command and Telemetry Servers on the same computer simultaneously. example: | PORT CTS_API 7777 # Default PORT TLMVIEWER_API 7778 # Default PORT CTS_PREIDENTIFIED 7779 # Default parameters: - name: Port Name required: true description: CTS_API - This port is what tools connect to to communicate with the COSMOS Scripting API. TLMVIEWER_API - This port is used to remotely open and close telemetry screens in Telemetry Viewer. CTS_PREIDENTIFIED - This port provides access to a preidentified stream of all telemetry packets in the system. This is currently used by Telemetry Grapher and can be used to chain Command and Telemetry Servers together as it also accepts commands. CTS_CMD_ROUTER - This port provides access to a stream of all command packets that have been accepted by COSMOS. values: <%= %w(CTS_API TLMVIEWER_API CTS_PREIDENTIFIED CTS_CMD_ROUTER) %> - name: Port Value required: true description: Port number to use for the specified port name values: '\d{2,}' LISTEN_HOST: summary: IP addresses or host names to bind API ports to since: 4.0.0 parameters: - name: Host Port Name required: true description: CTS_API - This port is what tools connect to to communicate with the COSMOS Scripting API. TLMVIEWER_API - This port is used to remotely open and close telemetry screens in Telemetry Viewer. CTS_PREIDENTIFIED - This port provides access to a preidentified stream of all telemetry packets in the system. This is currently used by Telemetry Grapher and can be used to chain Command and Telemetry Servers together as it also accepts commands. CTS_CMD_ROUTER - This port provides access to a stream of all command packets that have been accepted by COSMOS. values: <%= %w(CTS_API TLMVIEWER_API CTS_PREIDENTIFIED CTS_CMD_ROUTER) %> - name: Host Value required: true description: The IP address or host name to bind the Host Port Name to. By default, the CTS_API and TLMVIEWER_API are bound to localhost meaning that only tools on the same machine can connect. By default, CTS_PREIDENTIFIED and CTS_CMD_ROUTER are bound to '0.0.0.0' to allow for tools on any machines to connect. This allows for chaining two or more Servers out of the box. values: .+ CONNECT_HOST: summary: IP addresses or host names to connect tools to since: 4.0.0 parameters: - name: Host Port Name required: true description: CTS_API - This port is what tools connect to to communicate with the COSMOS Scripting API. TLMVIEWER_API - This port is used to remotely open and close telemetry screens in Telemetry Viewer. CTS_PREIDENTIFIED - This port provides access to a preidentified stream of all telemetry packets in the system. This is currently used by Telemetry Grapher and can be used to chain Command and Telemetry Servers together as it also accepts commands. CTS_CMD_ROUTER - This port provides access to a stream of all command packets that have been accepted by COSMOS. values: <%= %w(CTS_API TLMVIEWER_API CTS_PREIDENTIFIED CTS_CMD_ROUTER) %> - name: Host Value required: true description: The IP address or host name to connect tools to. By default all ports are bound to localhost so all tools connect to the local machine. values: .+ PATH: summary: Set a Server Path description: Path is used to set the default paths used by the Command and Telemetry Server to access or create files. It is not necessary to set this option unless you wish to override the defaults (given in the example usage). warning: The PROCEDURES path must be set for Script Runner and Test Runner to locate your procedure files. You can add multiple 'PATH PROCEDURES' lines to your configuration file to set multiple locations. example: | PATH LOGS './logs' # Default location of system and tool log files PATH TMP './tmp' # Default location of temporary marshal files PATH SAVED_CONFIG './saved_config' # Default location of saved configurations (see note) PATH TABLES './tables' # Default location of table files PATH PROCEDURES './procedures' # Default location of Script procedure files PATH HANDBOOKS './handbooks' # Default location to place handbook files parameters: - name: Path Name required: true description: Path name to set. values: <%= %w(LOGS TMP SAVED_CONFIG TABLES PROCEDURES HANDBOOK) %> - name: Path Value required: true description: File system path to use for the specified path name values: .+ DEFAULT_PACKET_LOG_WRITER: summary: Set the class used when creating binary packet log files warning: Overriding the default log writer can break the ability to write log files that COSMOS can interpret. Proceed with caution! example: DEFAULT_PACKET_LOG_WRITER packet_log_writer.rb # Default parameters: - name: Filename required: true description: Ruby file to use when instantiating a new log writer values: '.+\.rb' - name: parameter required: false description: Parameters which are passed to the log read upon initialization values: .* since: 4.0.0 DEFAULT_PACKET_LOG_READER: summary: Set the class used when reading binary packet log file warning: Overriding the default log read can break the ability to read log files. Proceed with caution! example: DEFAULT_PACKET_LOG_READER packet_log_reader.rb # Default parameters: - name: Filename required: true description: Ruby file to use when instantiating a new log writer values: '.+\.rb' - name: parameter required: false description: Parameters which are passed to the log read upon initialization values: .* since: 4.0.0 STALENESS_SECONDS: summary: Number of seconds before marking the packet stale description: A stale packet is identified in telemetry screens by all the telemetry items in the stale packet being colored purple.. example: STALENESS_SECONDS 30 # Default parameters: - name: Seconds required: true description: Integer number of seconds before packets are marked stale values: '\d+' ENABLE_DNS: summary: Enable reverse DNS lookups for tools description: Enables reverse DNS lookups when tools connect to the Command and Telemetry Server's pre-identified socket or to any target using the TCPIP Server Interface. As of COSMOS 3.5.0 the default is to not use DNS. since: 3.5.0 DISABLE_DNS: summary: Disable reverse DNS lookups for tools description: Disable reverse DNS lookups when tools connect to the Command and Telemetry Server's pre-identified socket or to any target using the TCPIP Server Interface. This is useful when you are in an environment where DNS is not available. As of COSMOS 3.5.0 the default is to not use DNS ENABLE_SOUND: summary: Enable audible sounds when popups occur description: Enable sound makes any prompts that occur in ScriptRunner/TestRunner make an audible sound when they popup to alert the operator of needed input. since: 3.5.0 ALLOW_ACCESS: summary: White list machines that are allowed to connect to the Server example: ALLOW_ACCESS ALL # Default parameters: - name: Name or IP Address required: true description: Machine name to allow access or you can specify 'ALL' to allow all machines access values: .+ META_INIT: summary: Specify a file to initialize the SYSTEM META packet description: Filename should be a text file with key value pairs where the keyword matches an item in the SYSTEM META packet. Note you do not have to specify ALL the items in the SYSTEM META packet. since: 4.0.0 parameters: - name: Filename required: true description: Filename, either fully qualified, or relative to Cosmos::USERPATH values: .+ TIME_ZONE_UTC: summary: Report all times as UTC description: COSMOS will report all times as UTC time. If this keyword is not used, COSMOS will report all times as local times, where the local time zone is determined automatically by Ruby based upon the operating system time settings. This setting affects packet receive times, timestamped log filenames, message logs, Cmd/Tlm extractor time ranges, etc. since: 3.10.0 ADD_HASH_FILE: summary: Add a file to the hashing sum calculation description: Adds a file to the set of files used in marshal file hashing sum calculation. Upon startup, COSMOS calculates a hashing sum over the command/telemetry definition files for all targets. After the definitions have been processed, COSMOS saves the resulting objects as marshal files in a folder with the hashing sum as part of the name. The next time COSMOS runs, if the hashing sum of the cmd/tlm definition files has not changed, COSMOS can load the marshal files instead of re-processing the definitions. If a file is specified with the ADD_HASH_FILE keyword, COSMOS will include it in the hashing sum calculation. This means that a change in the file will cause COSMOS to re-process the cmd/tlm defintions and create a new set of marshal files. The default hashing algorithm is MD5, but other Ruby Digest algorithms are also supported, like SHA1 and SHA256 since: 4.4.0 example: ADD_HASH_FILE lib/user_version.rb parameters: - name: Filename required: true description: Filename, either fully qualified, or relative to Cosmos::USERPATH values: '.+\.rb' CLASSIFICATION: summary: Add a classification banner to the top of all the COSMOS tools since: 4.3.0 example: | CLASSIFICATION Unclassified green CLASSIFICATION Secret 255 114 0 parameters: - name: Display Text required: true description: The text to display in the classification banner values: '.*' - name: Color Name | Red Hex required: true description: The color name or the red value of a RGB triplet values: '.*' - name: Green Hex required: false description: The green value of a RGB triplet values: '\d+' - name: Blue Hex required: false description: The blue value of a RGB triplet values: '\d+' HASHING_ALGORITHM: summary: Specify which Ruby Digest hashing algorithm to use description: Set the hashing algorithm used for config hashing, tlm_viewer hashing, and script hashing. COSMOS will truncate the resulting hash string down to 32 characters since: 4.4.0 example: HASHING_ALGORITHM SHA256 parameters: - name: Algorithm required: true description: Digest algorithm, one of MD5, RMD160, SHA1, SHA256, SHA384, SHA512 values: .+