Skip to content

QTIWorks Engine management

Dave McKain edited this page Mar 3, 2015 · 11 revisions

Overview

Basic management and administration of a QTIWorks Engine installation is done on the command line via the qtiworks-engine-manager.jar.

TODO: A volunteer is welcome to add system administration functionality to the webapp!

Using the Engine Manager

You will need access to your qtiworks-deployment.properties file and the qtiworks-engine-manager.jar file. The former is created when you install the QTIWorks Engine webapp; the latter is included in the QTIWorks download, or created when you build the system from source.

  • The simplest way to invoke the manager is to copy (or link) your qtiworks-deployment.properties file into your current directory, and then run:
java -jar qtiworks-engine-manager-VERSION.jar <action> <args>
  • Alternatively, you can pass the path to your qtiworks-deployment.properties if it lives somewhere else via:
java -jar qtiworks-engine-manager-VERSION.jar -config /path/to/qtiworks-deployment.properties <action> <args>
  • The <action> parameter specifies the action you would like the manager to perform for you. If you don't specify anything, you'll get a summary of the various options available.
  • The <args> parameter specifies any additional information required by the action. If you miss these out, you'll get told what information is required.

Available Actions

bootstrap

This (re)bootstraps the QTIWorks database and file store. Use this during initial installation, as described in QTIWorks Engine installation guide. This action can also be used to wipe and delete your existing data.

DANGER! This will delete all existing data stored by your QTIWorks, so be careful!

importUsers <userFile.csv>

This creates accounts for system instructor users. This is only useful if you are not using QTIWorks with an LTI tool consumer. The users to be created should be specified in your CSV file as follows:

loginName,firstName,lastName,emailAddress,password(,systemAdmin?)
...

Any lines whose loginName corresponds to an existing user will be skipped.

The final systemAdmin field is optional. If present, it should be t for true or f for false. (Note however that this flag is not presently used!)

editUserPassword <loginName> <password>

This changes the password of an existing system instructor user with the given loginName.

resetUsers <loginNameOrUid> ...

This resets the accounts for the given users by deleting all data associated with them. Pass a list of loginNames and/or internal user IDs (which you can find in the database).

deleteUsers <loginNameOrUid> ...

This delete users from the system, plus all data associated with them. Pass a list of loginNames and/or internal user IDs (which you can find in the database).

importSamples

This (re)imports the bundled sample assessments into the system. Use this only if you want to showcase the public samples to visitors. Any existing sample assessments will be deleted, as will any data associated with them.

updateSamples

This is similar to importSamples, except that it is less destructive about existing data. Again, you will only want this if you are showcasing the public samples.

registerLtiDomain <consumerKey> (<sharedSecret>)

This registers a new LTI Tool Consumer (TC), using the provided consumer key and shared secret.

  • We suggest uses the domain name of your LTI Tool Consumer as a basis for your consumer key.
  • The shared secret parameter is optional; a secret will be generated for you and output back to you if this is not explicitly provided.

importLtiDomains <ltiDomainsCsv.csv>

This imports LTI Tool Consumer registrations from a CSV file. The file should have the following format:

consumerKey,sharedSecret
...

See the registerLtiDomain action for details about the consumer key and shared secret. (Note: the shared secrets MUST be explicitly included when importing from CSV.)

Any consumer keys listed in the CSV file that have already been registered will be skipped.

exportLtiDomains

Exports the list of registered LTI Tool Consumers as a CSV file. This file has the same format as that used in importLtiDomains, so can be used to reimport or update the data at a later time.

runMaintenanceJobs

This invokes the QTIWorks Engine maintenance tasks. These normally run periodically so there shouldn't usually be any need to invoke this explicitly.

sendQueuedLtiOutcomes

Attempts to send any pending LTI outcome data back to the corresponding Tool Consumers. This is normally run periodically so there shouldn't been any need to invoke this explicitly. (It can however be useful for developers trying to debug LTI outcomes on certain Tool Consumers.)