5.4. Configuration

ConsoleUser can be configured by the UserDBConfig tool, and then use Conversion to suitable config files. Below details the manual configuration process that can be used to create or modify files.

Except Markov files (noted below) the files are key = value pairs, and often the value portion can be a comma delimited list of values. ConsoleUser will start by loading a primary config file, traditionally named user.conf. From there other files may be loaded that can have application specific configs. All keys share a single namespace, so values defined in different files could collide.

All keys are case insensitive.

5.4.1. Main Values

Below are the main values that ConsoleUser needs to have to be able to connect and be useful.

ConsoleUser Behavior

Key

Description

KeyboardStrategy

The way this user types. The most common values are Simple or SimpleNoShift

ListenPort

The local port on which this instance will listen

MouseStrategy

The way this user moves the mouse. Only supports Simple right now.

RegionTarget

The type of Region source files that should be used. This will generally correspond to the type of server ConsoleUser will interact with. The most common is qemu, but others have been used as well. Not all use image files.

RegionType

The type of Region objects this instance will use

RegionMatcher

The matcher strategy to use when searching for matches in a Region

5.4.2. Connection Characteristics

One of the most important set of configuration options is the collection that tells ConsoleUser how to connect to and interact with the target system. This can be over direct RFB (a.k.a., VNC), or be mediated by a VMWare server, or it could use local accessibility options to drive the host.

The type of connection is specified in the SystemType field, and which one is selected determines what other fields are required.

ConsoleUser User SystemType field

Key

Description

SystemType

The type of connection to make. (Required)

An RFB system (either RFB or rfbpy for the SystemType) needs the address and port for the server to connect to. As such, it will require SystemHost and SystemPort both be specified.

ConsoleUser User RFB/VNC values

Key

Description

SystemHost

The IP/name of the VNC server to connect to

SystemPort

The port number the VNC server to connect to

If the system is negotiating the connection via VMWare vCenter and/or ESXi the SystemType must be rfb-vmware. When that is given the fields describing where to find the VM in question and how to authenticate will be needed. These are stored in VMServer, VMID, VMUser, VMPassword.

ConsoleUser User VMWare connection values

Key

Description

VMServer

The IP/name of the vCenter server to connect to

VMID

The vm ID VMWare has assigned to the target VM

VMUser

The VMWare user to authenticate as

VMPassword

The password to authenticate to VMWare with

Using the local accessibility layer can be done using ATASPI and the associated System type, namely atspi. This system does not need to know connection or authentication information, so no other values are required.

5.4.3. User Characteristics

These are the parameters that define who the user is that ConsoleUser is embodying. Application specific characteristics are not reflected here.

ConsoleUser User

Key

Description

Apps

The comma separated list of applications this user “knows” how to use

fname

The user’s “first” name

lname

The user’s “last” name

LoginName

The username used to login to the “main” system

LoginPass

The password used to login to the “main” system

LoginDomain

The (Windows) domain the user will login to

LoginManager

The type of login style this user uses–reflects the type of system and things like whether a PIN or domain name or things are required

LogInTime

The time of day this user typically logs in. Times should be either HH:MM [ap]m for 12 hour time or HHMM for a 24 hour time

LogOutTime

The time of day this user typically logs out. Times should be either HH:MM [ap]m for 12 hour time or HHMM for a 24 hour time

5.4.4. Markov Brain Specific

The Markov Brain (see Brains) looks for additional values in the config file, and will load additional per application files (see below).

Markov Brain Options

Key

Description

ActionTimeMax

An int that is the maximum number of seconds to sleep between performing actions within a module

ActionTimeMin

An int that is the minimum number of seconds to sleep between performing actions within a module

MaxTransitionSleep

An int that is the maximum number of seconds to sleep between ending one module and starting the next.

MinTransitionSleep

An int that is the minimum number of seconds to sleep between ending one module and starting the next.

ModulesFormat

The format of the module transition file. Right now the only supported valued is markov

ModulesPath

The path to the module transition file

5.4.5. Application Specific

Every application listed in the Apps line will also provide its own configuration and transition matrices (when using the Markov brain).

5.4.5.1. Blog

This is the configuration for Blog modules, which typically involve using a browser to login to a site and writing posts or commenting on them/reading them.

The transition file (see Markov Transition Files) for this module is called BlogActions.conf.

Blog Options

Key

Description

BlogBaseURI

This is the main URI for the blogging site.

BlogLoginURI

Some sites will directly provide a URI to the login page, rather than following it from the main site URI. This is that value if needed

BlogLoginName

If a username other than the default LoginName is used for this site, provide it here.

BlogLoginPass

If a password other than the default LoginPass is used for this site, provide it here.

BlogTopic

Optionally the path to a Babble File this user blogs about.

BlogType

The specific type of Blog this User will use. Must match the TYPE field of a module that implements Blog

5.4.5.2. ChatClient

This is the configuration for ChatClient modules, which could be stand alone applications or browser-based sites.

The transition file (see Markov Transition Files) for this module is called ChatClientActions.conf.

Chat Client Options

Key

Description

ChatClientTopic

Optionally the path to a Babble File this user chats about.

ChatClientType

The specific type of ChatClient this User will use. Must match the TYPE field of a module that implements Chat

ChatLoginName

For chat programs with logins, this is the username to login with if different from the User’s normal login credentials.

ChatLoginPass

For chat programs with logins, this is the username to login with if different from the User’s normal login credentials.

RocketChatURI [1]

For RocketChat implementations, this is the URI of the RocketChat server.

5.4.5.3. CommandShell

This is the configuration for CommandShell modules.

The transition file (see Markov Transition Files) for this module is called CommandShellActions.conf.

Command Shell Options

Key

Description

CommandShellType

The specific type of CommandShell this User will use. Must match the TYPE field of a module that implements CommandShell

CommandShellTasks

This is a CDF Line listing the commands to run in the shell.

5.4.5.4. EmailClient

This is the configuration file for EmailClient, which naturally defines properties about how ConsoleUser, and especially with the MarkovBrain, provides email activity.

The transition file for this module is called EmailClientActions.conf and is a Markov transition file (see Markov Transition Files).

Email Client Options

Key

Description

AttachmentFiles

A comma separated list of paths to files to use as attachments for outgoing messages

AttachmentSaveDir

The directory into which attachments on received should be saved

EmailClientRecips

A CDF Line listing people this user will send email to

EmailClientType

The specific type of EmailClient this User will use. Must match the TYPE field of a module that implements EmailClient

EmailFolders

A comma separated list of folder names to use

EmailTopic

Optionally the path to a Babble File this user sends email about.

EmailAttachPercent

The chance (between 0.0 and 1.0) that an attachment will be added to a new message

5.4.5.5. File Sharing

This config file, named FileSharing.conf, contains configuration information about how to interact with a file sharing site, like OwnCloud or SharePoint or similar.

The transition file for this module is called FileSharingActions.conf and is a Markov transition file (see Markov Transition Files).

File Sharing Options

Key

Description

DownloadSharing

This is a CDF Line of files that this user will download from the sharing site.

FileSharingLoginName

The name to use when logging in, if omitted the User’s default login name will be used

FileSharingLoginPassword

The password to use when logging in, if ommitted the User’s default login name will be used

FileSharingType

The specific type of FileSharing this User will use. Must match the TYPE field of a module that implements FileSharing

FileSharingURI

The base URI for the site to use.

FTPFiles

This is a CDF Line of files that this user will upload to the sharing site. This value is used if UploadSharing is not populated

FTPUploads

This is a CDF Line of files that this user will upload to the sharing site. This value is used if both UploadSharing and FTPFiles are not populated

UploadSharing

This is a CDF Line of files that this user will upload to the sharing site.

5.4.5.6. FTP

This config file, named FTP.conf, contains configuration information about how to interact with FTP sites.

The Markov Transition Files for this module is called FTPActions.conf

FTP Options

Key

Description

FTPDownloadDir

This is the local directory into which files will be “getted”.

FTPDownloads

A CDF Line of files available to get

FTPFileList

This is a comma delimited list of files that this user will upload to the sharing site.

FTPSites

This is a CDF Line of sites that this user will connect to.

FTPType

The specific type of FTP client this User will use. Must match the TYPE field of a module that implements FTP

FTPUploadDir

This is the remote path into which files are put

FTPUploads

This is a CDF Line of files that this user will upload to the ftp site.

5.4.5.7. Image Sharing

This config file, named ImageSharing.conf, contains configuration information about how to interact with Image Sharing sites, like CopperMine.

The Markov Transition Files for this module is called ImageSharingActions.conf

Image Sharing Options

Key

Description

ImageCommentTopic

A Babble File for the topic of comments

ImageDescriptionTopic

A Babble File for the topic of image descriptions

ImageSharingLoginName

Optionally, the username to use to login to the site. Defaults to the User’s normal loginName

ImageSharingLoginPassword

Optionally, the password to use to login to the site. Defaults to the User’s normal loginPass

ImageSharingType

The specific type of Image Sharing client this User will use. Must match the TYPE field of a module that implements ImageSharing

UploadImages

A CDF Line of local files to upload.

5.4.5.8. IM

This config file, named IM.conf, contains configuration information about how to interact with instant messengers.

The Markov Transition Files for this module is called IMActions.conf

IM Options

Key

Description

IMTopic

A Babble File for this user to write about

IMRecips

A CDF Line of people this user will send messages to.

IMType

The specific type of IM client this User will use. Must match the TYPE field of a module that implements IM

5.4.5.9. Media Player

This config file, named MediaPlayer.conf, contains configuration information about how to interact with media players like VLC or Windows Media Player.

The Markov Transition Files for this module is called MediaPlayerActions.conf

Media Player Options

Key

Description

MediaSites

A CDF Line of sources of media to play

MediaPlayerSites

A CDF Line of sources of media to play. This is only used if MediaSites is empty

MediaPlayerType

The specific type of media player this User will use. Must match the TYPE field of a module that implements MediaPlayer

5.4.5.10. Node Goat

This config file, named NodeGoat.conf, contains configuration information about how to interact with the Node Goat web app.

The Markov Transition Files for this module is called NodeGoatActions.conf

Node Goat Options

Key

Description

NodeGoatType

The specific type of node goat client this User will use. Must match the TYPE field of a module that implements NodeGoat

NodeGoatPassword

The password to use when logging into Node Goat

NodeGoatURI

The URI of the Node Goat server to use

NodeGoatUserName

The Username to use when logging into Node Goat

5.4.5.11. PDF Viewer

This config file, named PDFViewer.conf, contains configuration information about how to view PDF files.

The Markov Transition Files for this module is called PDFViewerActions.conf

PDF Viewer Options

Key

Description

PDFViewerType

The specific type of pdf viewer client this User will use. Must match the TYPE field of a module that implements PDFViewer

Sources

A CDF Line of PDF sources to load and read

5.4.5.12. Project Management

This config file, named ProjectManagement.conf, contains configuration information about how to use project management software.

The Markov Transition Files for this module is called ProjectManagementActions.conf

Project Management Options

Key

Description

ProjectMangementType

The specific type of project management client this User will use. Must match the TYPE field of a module that implements ProjectManagement

TaskNameTopic

A Babble File to generate task names.

5.4.5.13. SCM (Source Code Management)

This config file, named SCM.conf, contains configuration information about how to use SCM software.

The Markov Transition Files for this module is called SCMActions.conf

SCM Options

Key

Description

RemoteRepos

A CDF Line listing remote repos to use

SCMCommitTopic

A Babble File to generate commit messages

SCMModifyCommands

A CDF Line listing commands to modify the local repo which will perhaps later be committed

SCMType

The specific type of SCM client this User will use. Must match the TYPE field of a module that implements SCM

5.4.5.14. SCP (secure copy)

This config file, named SCP.conf, contains configuration information about how to use SCP software.

The Markov Transition Files for this module is called SCPActions.conf

SCP Options

Key

Description

SCP_Password

The password to use when connecting to a server

SCPDownloads

A CDF Line listing files to download

SCMCommitTopic

A Babble File to generate commit messages

SCPFileList

A comma seperated list of files to be downloaded This is only used if SCPUploads is empty

SCPFiles

A CDF Line listing files to upload. This is only used if SCPUploads is empty

SCPUploads

A CDF Line listing files to upload

SCPType

The specific type of SCP client this User will use. Must match the TYPE field of a module that implements SCP

5.4.5.15. Streaming Media

This config file, named StreamingMedia.conf, contains configuration information about how to use streaming media sites, like Media Goblin.

The Markov Transition Files for this module is called StreamingMediaActions.conf

Streaming Media Options

Key

Description

MediaCommentTopic

A Babble File file to generate the text of comments. Defaults to techno.babble

MediaDescriptionTopic

A Babble File file to generate new post descriptions. Defaults to techno.babble

MediaTagsTopic

A Babble File file to generate new post tag list. Defaults to techno.babble

MediaTitlesTopic

A Babble File file to generate new post titles. Defaults to techno.babble

UploadMedia

A CDF Line listing files to upload

StreamingMediaLoginName

The username to login to the media site with

StreamingMediaLoginPassword

The password to login to the media site with

StreamingMediaType

The specific type of streaming media this User will use. Must match the TYPE field of a module that implements StreamingMedia

StreamingMediaURI

The URI of the streaming media site to use

5.4.5.16. Web Browser

This config file, named WebBrowser.conf contains configuration information about how to interact with web browsers for general browsing activities. Visiting social media sites or similar will be their own apps and have their own configuration files.

The Markov Transition Files for this module is called WebBrowserActions.conf

Web Browser Options

Key

Description

BrowserType

The specific type of WebBrowser this User will use. Must match the TYPE field of a module that implements WebBrowser

WebBrowserURIs

A CDF Line of URIs this User will type to visit.

5.4.5.17. Web Forum

This config file, named WebForum.conf contains configuration information about how to interact with web fora like one provided by Simple Machines, for example.

The Markov Transition Files for this module is called WebForumActions.conf

Web Browser Options

Key

Description

WebForumType

The specific type of WebForum this User will use. Must match the TYPE field of a module that implements WebForum

WebForumTopic

A Babble File to generate text while writing on the forum.

WebForumURI

The URI of the forum this User will use

ForumUname

If a name other than the default LoginName should specify it here.

ForumPassword

If a name other than the default LoginPass should specify it here.

5.4.5.18. Word Processor

This config file, named WordProcessor.conf contains configuration information about how to interact with word processors like Word or Libre Office Writer.

The Markov Transition Files for this module is called WordProcessorActions.conf

Word Processor Options

Key

Description

WordProcessorType

The specific type of Word Processor this User will use. Must match the TYPE field of a module that implements WordProcessor

WordTopic

A Babble File to generate text content

Footnotes