Configuration Settings
Engine has the ability to configure settings for a tenant, package, or registration. The listing of settings below will note the most specific level at which a particular setting may be configured. This is not a complete listing of the available configuration settings, though it does include
everything we expect new customers might want to change.
A level
of "special", "base", or "system" indicates a setting that must be set system-wide, and will apply to all tenants. The difference between them is the possible methods of configuring a value for the setting. Settings marked "base" or "special" can only be configured in the settings file mentioned below. Those marked "system" can be configured either in the properties file or through the API.
Your Engine delivery includes a template for a settings file used to configure values you want to apply system-wide. The configuration file (RusticiEngineSettings.config
) should be referenced by your web.config file in the appSettings
section.The configuration file (RusticiEngineSettings.properties
) should be placed in your application server's classpath.
Settings Reference
Each setting is defined as follows:
SettingIdentifier (level [, default: defaultValue])
description of setting
The level
is the most specific level at which the setting may be configured. Settings may always be configured at a
lower (less specific) level, If a setting is configured at multiple levels, the most specific level will be used.
From less specific to most, the levels are:
- system (including base and special)
- tenant
- package
- dispatch destination
- dispatch
- registration
Note: Engine strives to have sensible defaults for all settings, so generally you do not need to configure a value for the majority of those listed here. If you aren't sure if you should be changing a particular setting or not, or what you should set it to, please reach out and ask us.
xAPI Settings
xAPIEnabled
Type |
Level Specificity |
Default |
bool |
System |
true |
xAPIRewriteStatementModifier
Type |
Level Specificity |
Default |
JObject |
Registration |
|
If rusticiRewrite=true is passed on the statements request, then this setting will be used to modify statements as they are returned. It is expected to be a JSON object with an 'overlay' and/or a 'knownRegistrationOverlay' property. These overlays, from each configuration level (eg: system, tenant, and registration) will be merged into any statements read from this tenant (the knownRegistrationOverlay will only be applied to statements for which the registration can be looked up). The ID for the statement will be changed and the original ID will be noted in an extension property. See 'Dynamic Setting Values'
xAPIMaxRequestSizeInBytes
Type |
Level Specificity |
Default |
int |
System |
5242880 |
The maximum number of bytes to accept in an xAPI request before returning an error. The default is 5 mebibytes.
xAPIObjectStoreRepairs
Type |
Level Specificity |
Default |
Enum |
System |
empty string |
Some customers who upgraded to Engine 2015.1 from earlier versions of Engine and were using xAPI may experience bugs arising from the keys in the upgraded object store not matching the scheme used in 2015.1 and later. Setting this allows customers to fix this issue by automatically searching for certain objects based on the location they would have had in 2014. The valid choices here are UriHashCase and DocumentHashCase. Both options should be enabled for Java customers with this problem; only UriHashCase is necessary for .NET customers. In both cases, be sure to consult with Engine support before enabling, so we can confirm this problem applies to you.
xAPIEnablePublicEndpoint
Type |
Level Specificity |
Default |
bool |
System |
false |
If set, allows unauthenticated access to a public xAPI endpoint.
xAPILaunchTokenLifeInSeconds
Type |
Level Specificity |
Default |
int |
System |
28800 |
Sets the initial life of the TinCan Launch Token. This time is only set when the token is first created. Default is 8 hours.
xAPILaunchTokenUpdateLifeInSeconds
Type |
Level Specificity |
Default |
int |
System |
0 |
Sets the updated life of the TinCan Launch Token. This time will be added to the expiry every time the token is accessed. Default is 0.
xAPILaunchTokenCleanupIntervalInSeconds
Type |
Level Specificity |
Default |
int |
System |
7200 |
How long to wait between each execution of the background task that cleans up expired xAPI launch tokens. Default is 2 hours.
UsePlayerForTinCanLaunches
Type |
Level Specificity |
Default |
bool |
Registration |
true |
Sets whether Tin Can launches should use Engine's player rather than launching the course directly.
AllowWritableUserAgentProfile
Type |
Level Specificity |
Default |
bool |
Registration |
false |
Allow launched cmi5 or Tin Can content to write to the user agent profile of the learner associated with the course launch.
CharsToNonRandomizeUuid
Type |
Level Specificity |
Default |
int |
Tenant |
2 |
How many characters from the start of some uuids should be set in deterministic way to improve clustering. The maximum allowed value is 6 and a value between 2 and 4 is recommended
IntervalInSecondsPerGroupingOfUuids
Type |
Level Specificity |
Default |
int |
Tenant |
600 |
Sets the length of interval used to normalize some uuids. For example if set to 600, the ids created during that period of 600s (10 minutes) would start with the same characters, with the amount of characters used determined by 'CharsToNonRandomizeUuid'
LRS Settings
SystemHomepageUrl
Type |
Level Specificity |
Default |
string |
Tenant |
|
The absolute URL of the canonical, permanent, homepage for this system. Ideally this really is the homepage a user would use to access the system, but this must be canonical and permanent: that is, it is a single URL the system can be identified by. This setting is required for xAPI, in order to create actor objects for users in the system. It is also used to construct activity IDs during SCORM to xAPI conversion.
xAPIFilesPath
Type |
Level Specificity |
Default |
string |
Tenant |
RusticiSoftware.ScormContentPlayer.Logic.DataAccess.FileStorage.NullStreamingFileStore |
This setting is a fallback for both xAPILargeDocumentsPath and xAPILargeAttachmentsPath. If those settings are not given, this setting will be used instead.
xAPILargeDocumentsPath
Type |
Level Specificity |
Default |
string |
Tenant |
|
The root path or file store (see file stores) where large xAPI documents will be stored (see xAPIMaxDocumentSizeForDatabaseInBytes to define "large").
xAPILargeAttachmentsPath
Type |
Level Specificity |
Default |
string |
Tenant |
|
The root path or file store (see file stores) where large xAPI attachments will be stored (see xAPIMaxDocumentSizeForDatabaseInBytes to define "large").
HashContentFilesForActivityId
Type |
Level Specificity |
Default |
bool |
Tenant |
true |
Specifies whether or not non-xAPI content files should be hashed to generate an activity ID during import. If true, then all of the files in the content directory are hashed to generate the activity ID. If false, then only the manifest file is hashed.
xAPIValidations
Type |
Level Specificity |
Default |
Enum |
Tenant |
AttachmentContentTransferEncoding, SignatureContentType, NoUnexpectedParameters, IdenticalDocumentsCanConflict, StatementSchemaValidation, StatementSchemaValidationIncludingInteractions, NewDocumentsRequireETag |
xAPI validations that are required to pass the conformance test (and indeed to conform to xAPI), but were not present in prior releases of Engine. These should be left on if possible, but are provided as a setting to enable non-conforming requests to work if needed. To disable all xAPI validations, use the value "none".
Value |
Description |
AttachmentContentTransferEncoding |
(attachments) MUST include a Content-Transfer-Encoding field with a value of 'binary' in each part's header after the first (statements) part. Note the above MUST applies to the attachment itself, the LRS does not have a 'MUST' for validating this header |
SignatureContentType |
xAPI signatures have a content type of application/octet-stream |
NoUnexpectedParameters |
no unexpected parameters are sent on xAPI request |
IdenticalDocumentsCanConflict |
xAPI does not make an exception to the concurrency rules for document PUT requests for identical documents (the same document PUT multiple times). This setting will enable checking identical documents for concurrency E-Tags, and possibly reject them as a conflict |
StatementSchemaValidation |
Validate xAPI statements against 'tin-can-json-schema' |
StatementSchemaValidationIncludingInteractions |
Validate xAPI statements, including interaction activity details included in those statements, against 'tin-can-json-schema' |
NewDocumentsRequireETag |
xAPI does not make an exception to the concurrency rules for document PUT requests where a new document is being written This setting will enable checking new documents for concurrency E-Tags, and possibly reject them |
xAPIPostProcessContextParameters
Type |
Level Specificity |
Default |
string[] |
Tenant |
top , left , content_token , width , content_endpoint , height, Content-Length |
Only relevant if TinCanPostProcessContext is overriden, or as a way to consume extraneous parameters so they are not flagged as 'unexpected'. Comma-delimited, case sensitive list of xAPI parameters to pass to the TinCanPostProcessContext integration method requestParameters collection. This is needed because xAPI requires us to consider any unexpected parameters an error, so if an integration uses parameters from the xAPI call it needs to declare that usage. The default value contains extra parameters the combination of the Engine player and the TinCan launch process recomendation typically cause to be sent.
EnableExistingActivityIdParserWarnings
Type |
Level Specificity |
Default |
bool |
Tenant |
true |
When enabled (default), parser warnings will be generated during import of packages with activities that are either already mapped to a package, or recorderd in the LRS.
xAPIMaxSizeForDatabaseInBytes
Type |
Level Specificity |
Default |
int |
Tenant |
64000 |
Setting that determines the max number of bytes to put into a DB for a document or attachment before trying to store the document in a file store (see xAPILargeDocumentsPath and xAPILargeAttachmentsPath). Unfortunately, documents and attachments stored in the database must be kept entirely in memory, and so it is advantageous to put larger documents and attachments in the filestore, which supports streaming (low memory usage).
xAPIUrlPrefix
Type |
Level Specificity |
Default |
string |
System |
lrs |
The URL prefix that is used for xAPI requests.
xAPIUrl
Type |
Level Specificity |
Default |
string |
Tenant |
|
The full URL that is used for xAPI requests. If the value is not specified, a default value of {RusticiEngineUrl}/{xAPIUrlPrefix}/ will be used. Note: xAPI requests will fail if xAPIUrl does not contain /{xAPIUrlPrefix}/
LrsAuth Settings
LrsAuthCallbackMaxCacheSize
Type |
Level Specificity |
Default |
int |
Tenant |
500 |
The number of cache entries at which to obliterate the auth callback cache to prevent excessive memory usage.
LrsAuthCallbackUrl
Type |
Level Specificity |
Default |
secretString |
Tenant |
empty string |
Call back URL that will provide basic auth authorization. Will convert username:password@hostname to basic authentication if provided.
LrsAuthCacheSecondsSuccess
Type |
Level Specificity |
Default |
int |
Tenant |
1800 |
The default amount of time to cache a successful LRS auth callback. Can be overridden via auth callback response for each individual request if necessary
LrsAuthCacheSecondsFailure
Type |
Level Specificity |
Default |
int |
Tenant |
60 |
The default amount of time to cache an unsuccessful LRS auth callback. This value acts as a timeout that will prevent multiple quick requests (eg, DoS) to the callback page should there be an issue connecting or getting a response.
xAPIBasicAccounts
Type |
Level Specificity |
Default |
ConfiguredAccount[] |
Tenant |
empty string |
A set of xAPI accounts can be optionally specified. To use one of these accounts, the same username and password must be sent over HTTP basic auth to the xAPI endpoint. These should be separated by newlines, and must be of the form username:password:role. A bcrypt password hash may be used for the password portion. The roles are as follows:
* user : typical, default permissions, allowing the account to assert any statement, and read only those statements they have asserted or play some role in
* read-only : allowed to read all statements and state documents, but not write anything
* write-only : allowed to write any statement or xAPI document, but not read anything
* root : allowed to read and write any statement or xAPI document
API Settings
ApiAlternateIdDelimiter
Type |
Level Specificity |
Default |
string |
System |
~ |
A delimiter that may be used instead of | when passing External IDs to API calls, since | can be a problem in URL paths.
ApiRoot
Type |
Level Specificity |
Default |
string |
System |
/api/ |
The root path (under the main application path) for the API (before the API version).
NancyConsolePassword
Type |
Level Specificity |
Default |
secretString |
System |
empty string |
Password for the Nancy Diagnostic Console (/RusticiEngine/_Nancy). Leave blank to disable. (.NET only)
ApiImportResultsPostBackUrl
Type |
Level Specificity |
Default |
secretString |
Tenant |
empty string |
Specifies a URL to which to post import results, will convert username:password@hostname to basic authentication if provided. You can use the value 'noop' to disable postbacks configured at a lower level (e.g., disable postbacks for a single tenant when a value has been configured at the system level for everyone).
ApiPostbackProcessorSleepSeconds
Type |
Level Specificity |
Default |
int |
System |
300 |
How long to sleep between checking for postback tasks to retry (note: the first try is always immediate, either by being synchronous or by triggering an async check of the queue.)
ApiResultLimit
Type |
Level Specificity |
Default |
int |
System |
100 |
Maximum number of items to return in a list at once.
ApiResultLimitSinceNotSpecified
Type |
Level Specificity |
Default |
int |
System |
10 |
Maximum number of items to return in a list at once when the 'since' parameter is available and not used. The only reason since is not a required parameter is to make testing the API easy, and long lists are not required for that.
ApiDoNotCheckAuthentication
Type |
Level Specificity |
Default |
bool |
Base |
false |
For use when API authentication will be handled by a proxy or other software outside of Engine. All API calls will be allowed, IsAllowed() will not be called.
ApiEnableV2
Type |
Level Specificity |
Default |
bool |
Base |
true |
Is the v2 API enabled? If false requests to the v2 API will be rejected regardless of the credential specified.
ApiIndentJson
Type |
Level Specificity |
Default |
bool |
Base |
false |
Format the JSON returned from the API nicely, useful when developing but should usually be turned off in production for performance and payload size reasons.
ApiBasicSystemAccounts
Type |
Level Specificity |
Default |
ConfiguredAccount[] |
System |
empty string |
A set of basic auth "accounts" comprising different API users for the system. The setting takes the form of `username:password[:role]` (the role is optional). A bcrypt password hash may be used for the password portion. At this moment, the only valid role is `root`.
ApiBasicTenantAccounts
Type |
Level Specificity |
Default |
ConfiguredAccount[] |
Tenant |
empty string |
A set of basic auth "accounts" comprising different API users for a particular tenant. The setting takes the form of `username:password[:role]`, where the role is optional. At this moment, the only valid role is `tenant`.
ApiTokenSecret
Type |
Level Specificity |
Default |
secretString |
Tenant |
|
Secret used to sign tokens generated by the API, currently used in signed launch links. If the string starts with '0x' the remainder will be interpreted as hexidecimal.
PreviousApiTokenSecret
Type |
Level Specificity |
Default |
secretString |
Tenant |
empty string |
The previous ApiTokenSecret used to allow ApiTokenSecret rotation. Tokens previously built with it can continue to be validated, but it will not be used when creating new tokens.
ApiTokenPostbackValidHours
Type |
Level Specificity |
Default |
int |
Tenant |
24 |
Number of hours the token used to authenticate SCORM runtime postbacks (when using signed launch links) is valid.
ApiUseSignedLaunchLinks
Type |
Level Specificity |
Default |
bool |
Tenant |
false |
If enabled, launch links generated by the API will be signed, and only signed launch links will be accepted by the player (so launch links must be generated via the API).
ImportLinkLocation
Type |
Level Specificity |
Default |
string |
System |
defaultui/import |
The path to the import page used when you have generated an import URL to POST to.
DefaultImportRedirectLocation
Type |
Level Specificity |
Default |
string |
System |
defaultui/defaultredirect |
Default redirect URL to redirect to after import via `defaultui\import` page if none was supplied.
JobTimeoutSeconds
Type |
Level Specificity |
Default |
int |
Tenant |
36000 |
The number of seconds until a `RUNNING` job is marked `TIMEOUT`.
ApiPingCheckDatabase
Type |
Level Specificity |
Default |
bool |
System |
false |
Determines whether a simple connectivity check of the Engine database should occur in the execution of the /ping resource.
ApiCourseDeleteAttemptDeleteFiles
Type |
Level Specificity |
Default |
bool |
Registration |
false |
Controls whether or not deleting a course through the API should also attempt to delete the course's files. This functionality will only work for courses that are located within the FilePathToContentRoot that you have configured. It will not delete the metadata files for remote AICC or Tin Can courses.
ApiMaxAuthTokenLifetimeSeconds
Type |
Level Specificity |
Default |
int |
System |
28800 |
Maximum amount of seconds from now an API token expiration may be set to, when creating a token. Note: there is no way to invalidate individual tokens besides waiting for them to expire, so be careful with long lived tokens.
WebHookAuthConfiguration
Type |
Level Specificity |
Default |
JObject |
Tenant |
|
Configuration for WebHookAuth plugin. See Integrating With Engine / Web Hooks in documentation
WebHookCustomUserAgent
Type |
Level Specificity |
Default |
string |
Tenant |
empty string |
Custom user agent header to set for web hook requests.
SystemWebHookAdditionalHeaders
Type |
Level Specificity |
Default |
string[] |
System |
empty string |
Additional headers which will be added to web hook requests which are not associated with a tenant, or for which a tenant override isn't set. Comma delimited list in the format of 'headerName:value'
TenantWebHookAdditionalHeaders
Additional headers which will be added to web hook requests for a given tenant. If this is not set for a given tenant, or if the request is not tied to any tenant, the list from 'SystemWebHookAdditionHeaders' will be used. If this is set for a given tenant, this list overrides the list in 'SystemWebHookAdditionalHeaders'. Comma delimited list in the format of 'headerName:value'
WebHookLoggedMessageBodyMaxLength
Type |
Level Specificity |
Default |
int |
System |
1000 |
When a web hook failure is logged, the logged MessageBody should be truncated to what length? A value of "0" will not show the MessageBody.
SubscriptionClientCertificatePath
Type |
Level Specificity |
Default |
string |
System |
empty string |
Client Certificate to be used by subscription event notifications
SubscriptionClientCertificatePassword
Type |
Level Specificity |
Default |
string |
System |
empty string |
Password for the Client Certificate used by subscription event notifications
ApiRollup Settings
ApiRollupRegistrationPostBackUrl
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
Specifies a URL to which to post activity and status data within an interval in which dirty data is available or as soon as possible when the course is completed. You can use the value 'noop' to disable postbacks configured at a lower level (e.g., disable postbacks for a single tenant when a postback url has been configured at the system level).
ApiRollupRegistrationSynchronous
Type |
Level Specificity |
Default |
bool |
Registration |
true |
The initial attempt to post registration data will occur synchronously as the course is being completed.
ApiRollupRegistrationAuthType
Type |
Level Specificity |
Default |
string |
Registration |
httpbasic |
Indicates how to authorize against the given postbackurl, can be 'form' or 'httpbasic'. If form authentication, the username and password for authentication are submitted as form fields 'username' and 'password', and the registration data as the form field 'data'. If httpbasic authentication is used, the username and password are placed in the standard Authorization HTTP header, and the registration data is the body of the message. This field is set to 'httpbasic' by default.
ApiRollupRegistrationAuthUser
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
User name to use when posting registration data.
ApiRollupRegistrationAuthPassword
Type |
Level Specificity |
Default |
secretString |
Registration |
empty string |
Password to use when posting registration data.
ApiRollupRegistrationFormat
Type |
Level Specificity |
Default |
string |
Registration |
activity |
Level of detail in the information that provided when posting registration data. It may be one of three values: 'course' (course summary), 'activity' (activity summary, or 'full' (full detail), and is set to 'activity' by default. The information will be posted as JSON, using the schemas for the registration /progress or /progress/detail resources depending on the format selected, with an additional wrapper specifying the registration ID.
ApiPostbackTimeoutSeconds
Type |
Level Specificity |
Default |
int |
Tenant |
10 |
Timeout in seconds for API rollup registration postback.
ApiRollupRegistrationDuringSession
Type |
Level Specificity |
Default |
bool |
Registration |
true |
Should rollup registration postbacks be sent during a learning session, instead of waiting for the learner to exit?.
Database Settings
SystemDatabaseEnabled
Type |
Level Specificity |
Default |
bool |
Base |
true |
Should the system database be used? Note: if disabled, features that use system wide queues such as PENS and xAPI pipes will not work. Multiple tenants per DB are not supported without a system database. This setting must be set as desired upon initial installation of Engine, changing it on a existing system is likely to result in data loss.
UseSystemDatabaseForTenantSettings
Should the system database be used to store tenant settings (other than the connection string)? Note: if disabled, setting tenant settings other than connection string will fail until a valid connection string is configured for the tenant.
SystemDatabaseConnectionString
Type |
Level Specificity |
Default |
secretString |
Base |
|
The connection string to use when connecting to the system schema
DatabaseSchema
Type |
Level Specificity |
Default |
string |
Base |
empty string |
The DBMS-level schema to use when connecting to the database. At this moment, it is not possible to specify different tenant and system DBMS schemas.
TenantDatabaseConnectionString
The connection string to use when connecting to the tenant schema. For customers using multiple tenant DBs, this should be set to NOT_CONFIGURED in your configuration file.
TenantDatabaseReadReplicaConnectionString
Type |
Level Specificity |
Default |
secretString |
Tenant |
empty string |
The connection string to use when connecting to the read replica for a tenant schema.
ReadReplicaMaximumExpectedLagMS
Type |
Level Specificity |
Default |
int |
Tenant |
2000 |
The expected maximum expected amount of lag time before the read replica reflects updates. Used to set X-Experience-API-Consistent-Through, and may be used in a future version of Engine to determine what other reads may be safely serviced via the replica.
DataPersistenceEngine
Type |
Level Specificity |
Default |
string |
Base |
|
A string (`sqlserver`, `mysql`, `postgresql`, or `oracle`) corresponding to the DBMS flavor in use.
DatabaseTimeoutSeconds
Type |
Level Specificity |
Default |
int |
Base |
60 |
The timeout (in seconds) to set on database operations. This setting applies only to .NET.
DatabaseRetryCount
Type |
Level Specificity |
Default |
int |
Base |
3 |
The number of retries we should attempt an database action when contending for shared locks.
MaxPersistableStringLength
Type |
Level Specificity |
Default |
int |
Base |
2500000 |
The maximum string length (in characters) to allow through to the database.
TenantIdLength
Type |
Level Specificity |
Default |
int |
Base |
2 |
The length, in bytes, of the tenancy field in the database
StoreRuntimeDataAsLob
Type |
Level Specificity |
Default |
bool |
Base |
true |
Determines whether runtime data received from player should be stored in a lob column or normalized.
UseNativePostgreSqlUpserts
Type |
Level Specificity |
Default |
bool |
Base |
true |
By default, Engine will use the INSERT / ON CONFLICT upserts for PostgreSQL databases instead of first trying to insert and then updating if there's a conflict. Must be using PostgreSQL 9.5+ to use this setting. To disable the behavior for older versions of PostgreSQL, set this value to false.
Upsert Settings
MaxRowsPerDatabaseUpsert
Type |
Level Specificity |
Default |
int |
System |
1 |
The maximum number of rows we should send in a single datbase upsert (merge) statement. Set to 0 for no limit.
MaxUpsertSizeInBytes
Type |
Level Specificity |
Default |
int |
System |
0 |
The maximum size of each upsert (merge) statement in bytes. Set to 0 for no size limit. This setting is usually only necessary for MySQL customers with a very small max_allowed_packet value.
MaxParametersPerDatabaseUpsert
Type |
Level Specificity |
Default |
int |
System |
2100 |
The maximum number of parameters to include in a single database upsert/merge statement. Set to 0 for no limit. The default of 2100 is based on limits inherent to SqlServer.
AttemptInsertBeforeUpsert
Type |
Level Specificity |
Default |
NullableBoolean |
System |
null |
If true, attempt to use inserts before upserts. This can result in a signficant performance gain in systems where inserts would generally be expected to succeed, such as the Engine upgrade tool. The use of this setting is not supported with PostgreSQL and can result in errors.
Tenancy Settings
TenancyEnabled
Type |
Level Specificity |
Default |
bool |
System |
true |
AllTenantNames
Type |
Level Specificity |
Default |
string[] |
System |
empty string |
List of tenants for when Engine needs to iterate over all tenants in a systemless installation.
TenantSettingSyntaxEnabled
Type |
Level Specificity |
Default |
bool |
Base |
true |
Enable tenant setting prefix syntax (tenantName.settingId) for configuring tenant specific settings in the configuration file. Disabling this when not in use can save memory on systems with a large number of tenants.
ProxiedRequests Settings
ForwardedHost
Type |
Level Specificity |
Default |
string |
System |
empty string |
The original (before proxying) value of the "Host" header field in Engine requests (i.e. the targeted host of a request at its origin). As with the "Host" HTTP header, this value may come with a port number appended.
ForwardedProtocol
Type |
Level Specificity |
Default |
string |
System |
empty string |
The original (before proxying) protocl used to send requests to Engine. If the Engine server is behind an SSL Offloading proxy, this value will likely be HTTPS.
Encryption Settings
EncryptionPassword
Type |
Level Specificity |
Default |
string |
Special |
empty string |
This setting gives the secret key used for encryption of configuration settings, and xAPI pipe passwords. If this is set to a 128 bit value expressed as hex in the format '0xABCD...', it will be used as the encryption key. If not, it will be used to generate a key, which will introduce a small delay the first time the key is needed.
PreviousEncryptionPassword
Type |
Level Specificity |
Default |
string |
Special |
empty string |
For use when changing passwords. Set this to the prior value of EncryptionPassword so values encrypted with it can continue to be decrypted until encrypted with the new password. Note: for fallback to a previous password to work, the Encryptor must detect and throw an exception when decryption fails.
Encryptor
Type |
Level Specificity |
Default |
string |
Special |
RusticiSoftware.ScormContentPlayer.Logic.Encryption.AES128bitGCMNoPaddingEncryptor |
An implementation of RusticiSoftware.ScormContentPlayer.Logic.Encryption.IEncryptor to be used for encryption and decryption of configuration settings and/or external IDs.
PreviousEncryptor
Type |
Level Specificity |
Default |
string |
Special |
empty string |
The previously used implementation of RusticiSoftware.ScormContentPlayer.Logic.Encryption.IEncryptor used, so values encrypted with it can continue to be decrypted until encrypted with the new encryptor. Note: for fallback to a previous encryptor to work, the main Encryptor must detect and throw an exception when decryption fails.
ConfigurationEncryptionExceptions
Type |
Level Specificity |
Default |
string[] |
Special |
empty string |
A comma delimited list of setting ids to encrypt or avoid encrypting, ignoring the default for that setting. Prefix settings to encrypt with '+' and settings to avoid encrypting with '-'.
EncryptConfigurationSettings
Type |
Level Specificity |
Default |
bool |
Special |
false |
If true (and encryption passsword is specified), configuration settings of type 'secretString' will be encrypted.
HashAccountPasswords
Type |
Level Specificity |
Default |
bool |
System |
true |
If true then when storing configuration settings of type 'accounts', any passwords provided that are not bcrypt hashes will be converted to bcrypt hashes.
Misc Settings
Plugins
Type |
Level Specificity |
Default |
string[] |
Base |
empty string |
Comma separated list of implementation definitions that dictates which plugins are loaded by Engine if available. Plugins that are loaded by default can be disabled by listing the plugin preceded by '-' (i.e. '-ContentConnector.YouTube').
GenerateTinCanLaunchStatements
Type |
Level Specificity |
Default |
bool |
Registration |
true |
Specifies whether to generate and save 'launched' statements during Tin Can launches
TinCanInteractionsEnabled
Type |
Level Specificity |
Default |
bool |
Registration |
true |
If enabled, Engine will extract runtime interaction details from certain xAPI statements and include them in the progress data reported by the API and the registration postback (in 'full' format).
UseStatementTimestampInRegistrationUpdates
Type |
Level Specificity |
Default |
bool |
Tenant |
true |
Normally the FirstAccessDate and CompletedDate values are set to the current time when the statement is processed and we update the registration state from it. This switches to using the timestamp value from the statement triggering the registration update for these values where applicable.
ValidateManifestsUsingXsd
Type |
Level Specificity |
Default |
bool |
Tenant |
true |
Whether to additionally validate manifests using an XML parser as well as the Engine validation
SSPEnabled
Type |
Level Specificity |
Default |
bool |
System |
true |
Can be disabled if no content is ever going to use SSP. Marginal player performance may be perceived by doing so.
DefaultCommCommitFrequency
Type |
Level Specificity |
Default |
int |
System |
10000 |
RusticiEngineUrl
Type |
Level Specificity |
Default |
string |
Base |
empty string |
Context path to which Engine has been deployed
WebPathToContentRoot
Type |
Level Specificity |
Default |
string |
Tenant |
|
A web path (URL) pointing to the directory that is hosting your course content. If you're hosting the content on the same domain as Engine, then you can exclude the domain in your URL (i.e. "/path/to/content/root").
WebPathToContentRootHistory
Type |
Level Specificity |
Default |
string[] |
Tenant |
empty string |
A list of historical values used for WebPathToContentRoot, which allows the launch links of packages uploaded when these historical values were in effect to be updated so as to reflect the current value. These entries are not required to be in historical order.
ContentAuthCookieFactory
Type |
Level Specificity |
Default |
string |
Tenant |
empty string |
For generating cookies to allow access to content. Definition for an 'ICookieAuthFactory' implementation. Format: 'full.class.name|assembly.name, constuctorarg1, arg2, arg3' (assembly name is not needed for Java, or where class is in RusticiSoftware.Engine). Engine provides an implementation for Amazon CloudFront. Example for CloudFront authentication cookies that will expire in 8 hours: 'RusticiSoftware.ScormContentPlayer.Logic.Utilities.CloudFrontCookieFactory, /fullpath/to/privatekey.pem, keyPairId, 480'
SimpleQueueRetryInitialDelaySeconds
Type |
Level Specificity |
Default |
int |
System |
600 |
How long to mark tasks as ineligible for processing when picking them up. This time will be doubled after each retry.
SimpleQueueMaxRetries
Type |
Level Specificity |
Default |
int |
System |
9 |
How many times to attempt a queued item before giving up. Note that the last retry will have a delay of 2^(n-1) * SimpleQueueRetryInitialDelaySeconds
ApiPostbackProcessorMaxBatchSize
Type |
Level Specificity |
Default |
int |
System |
10 |
Maximum number of rollup registration tasks to dequeue for processing at once.
FilePathToContentRoot
Type |
Level Specificity |
Default |
string |
Tenant |
|
The path to the directory or file store (see file stores) where uploaded and unzipped files should be placed.
FilePathToUploadedZippedPackage
Type |
Level Specificity |
Default |
string |
Tenant |
|
The path or file store (see file stores) where uploaded zip files should be placed. In a future release this may be used to allow different Engine instances to receive an upload and process the import, but for now there is no reason this shouldn't just be set to a temporary directory on the local file system.
StorePlayerDebugLogsInFileStoreOnExit
Type |
Level Specificity |
Default |
bool |
Registration |
false |
Determines whether or not the player debug logs will be saved to the file store automatically when the player exits. With this setting set to true, if PlayerDebugLogsStorageLocation is set, then the player debug logs will be stored in the location configured by that setting.
PlayerDebugLogsStorageLocation
Type |
Level Specificity |
Default |
string |
Tenant |
|
The path to the directory or file store (see file stores) where the player debug logs will be stored. If this setting is configured, then clicking 'Save Debug Log' in the debugger will save the player debug logs to this location.
RedirectOnExitUrlAcceptedRegex
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
This regex will be used to check the RedirectOnExitUrl values passed in the launch URL (not the RedirectOnExitUrl configuration value). If it passes, then the RedirectOnExitUrl value in the launch URL will be used to redirect the user on course exit. If it does not pass, then it uses the configuration value for RedirectOnExitUrl.
RedirectOnExitUrl
Type |
Level Specificity |
Default |
string |
Registration |
|
The URL the application should redirect to when the learner exits a course
DefaultModernPlayerTheme
Type |
Level Specificity |
Default |
string |
Registration |
default |
(Deprecated) See 'ModernPlayerCustomizationStylesheetUrl'. The modern player theme to use unless otherwise specified in the launch URL.
RedactLogs
Type |
Level Specificity |
Default |
bool |
Base |
false |
Redact personally identifiable information and credentials when logging.
SQLDebugLogMinimumExecutionMS
Type |
Level Specificity |
Default |
int |
Base |
0 |
When DEBUG level loging is enabled so Engine's SQL statements are logged, only log statements that take at least this many milliseconds to execute.
RedactedItems
Type |
Level Specificity |
Default |
string[] |
Base |
ExternalRegistrationId, value, .*secret.*, .*ConnectionString.*, object_value, property_value, .*username.*, .*password.*, queue_entry, global_objective_scope, suspended_activity_id, api_learner_id, first_name, last_name, api_registration_id, data,asserter_id, asserter_json, agent |
Comma delimited, case insensitive list of regular expressions (start and end anchors will be added) to match columns, configuration setting ids, or external ID class names to redact, if RedactLogs is enabled (otherwise this list has no effect).
UnRedactedColumns
Type |
Level Specificity |
Default |
string[] |
Base |
engine_tenant_id, scorm_registration_id, tincan_registration_id, update_by, update_dt |
Comma delimited, case insensitive list of regular expressions (start and end anchors will be added) to match columns that should NOT be redacted even though they appear in a table referenced in 'RedactedTables', if RedactLogs is enabled (otherwise this list has no effect).
RedactedTables
Type |
Level Specificity |
Default |
string[] |
Base |
ScormActivity.*, ScormLaunchHistory, ScormRegistrationGlobalObj, TinCanRegistration |
Comma delimited, case insensitive list of regular expressions (start and end anchors will be added) to match tables to redact (all columns that appear in one of these tables are redacted), if RedactLogs is enabled (otherwise this list has no effect).
WhenToRestartRegistration
Type |
Level Specificity |
Default |
Enum |
Registration |
WHEN_EXISTING_REG_IS_COMPLETE_AND_NEWER_PACKAGE_VERSION_EXISTS |
Determines whether or not to restart a registration when launching it.
Value |
Description |
NEVER |
Never restart an existing registration (never increment instance id) |
WHEN_EXISTING_REG_IS_COMPLETE_AND_NEWER_PACKAGE_VERSION_EXISTS |
Restart course (increment instance id) when the overall course when a newer version of the associated course package exists and course status is 'Complete' |
WHEN_NEWER_PACKAGE_VERSION_EXISTS |
Restart course (increment instance id) when a newer version of the associated course package exists |
WHEN_EXISTING_REG_IS_COMPLETE |
Restart course (increment instance id) when the course has been completed, regardless of satisfaction (pass/fail). |
WHEN_EXISTING_REG_IS_SATISFIED |
Restart course (increment instance id) when the overall course status is 'Satisfied' |
WHEN_EXISTING_REG_IS_SATISFIED_AND_NEWER_PACKAGE_VERSION_EXISTS |
Restart course (increment instance id) when the overall course is satisfied and a newer version of the associated course package exists and course status is 'Satisfied' |
WHEN_EXISTING_REG_IS_INCOMPLETE_AND_NEWER_PACKAGE_VERSION_EXISTS |
Restart course (increment instance id) when the overall course is incomplete and a newer version of the associated course package exists. |
WHEN_EXISTING_REG_IS_FAILED |
Restart course (increment instance ID) when the overall course is failed. |
WHEN_EXISTING_REG_IS_FAILED_AND_NEWER_PACKAGE_VERSION_EXISTS |
Restart course (increment instance ID) when the overall course is failed and a newer version of of the associated course package exists. |
AllowedRequests
Type |
Level Specificity |
Default |
string[] |
System |
LAUNCH_PAGE, DELIVER_PAGE, RECORD_AICC_RESULTS_PAGE, RECORD_SCORM_RESULTS_PAGE, SUPPORT_PAGES |
Comma delimited whitelist of non-API request types that are allowed (see documentation for SecureMethod enum for valid entries).
AiccSessionPerLaunch
Type |
Level Specificity |
Default |
bool |
Tenant |
false |
If true, the AICC session ID will be created for each launch, and only valid until that launch session has terminated. Otherwise sessions will be precreated for a registration and valid as long as that registration exists.
UpdateRunTimeDataLockExpireSeconds
Type |
Level Specificity |
Default |
int |
System |
10 |
How many seconds to lock the registration for when updating SCORM runtime data. Specifying 0 disables registration locking.
UpdateRunTimeDataLockWaitSeconds
Type |
Level Specificity |
Default |
int |
System |
11 |
How long to wait for a lock on the registration when updating SCORM runtime data.
ManifestDirPathAcceptedRegex
Type |
Level Specificity |
Default |
string |
System |
empty string |
This regex will be used to check the manifestDirPath in a preview launch. If the manifestDirPath matches this regex, then the manifest will be downloaded and validated. Otherwise preview launch will throw an exception. By default this setting is empty, meaning that nothing will be accepted and preview launch will always throw an exception.
Cmi5EntitlementKeyAlternate
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
Value to be provided to AUs in cmi5 `LMS.LaunchData` as the alternate entitlement key.
EnableRecordingMetrics
Type |
Level Specificity |
Default |
bool |
Base |
false |
If true, Engine will record various metrics and enable an endpoint that exposes those metric values for reporting.
Cmi5RequireLearnerPreferencesReadBeforeInitialized
Type |
Level Specificity |
Default |
bool |
Registration |
true |
The cmi5 spec states, "On startup, the AU MUST retrieve the Learner Preferences document from the Agent Profile." disabling this setting will ignore that requirement.
EnforceStrictCmi5
Type |
Level Specificity |
Default |
bool |
Registration |
true |
If true, Engine will enforce cmi5 requirements strictly.
ApplicationInstanceId
Type |
Level Specificity |
Default |
string |
System |
empty string |
A unique indentifier to be set on a particular instance of Engine, which is probably best done through an environment variable. Currently only used to refer to instances in the 'BackgroundProcessors' setting value.
BackgroundProcessors
Type |
Level Specificity |
Default |
BackgroundProcessorConfigurationList[] |
System |
empty string |
Use this setting to list which background processors will run or not. A background processor will default to its particular setting unless explicitly stated as activated or deactivated. For the 'Instance' value, set and refer to a particular 'ApplicationInstanceId' setting or use 'All' to affect all instances.
BackgroundProcessorManagerSleepSeconds
Type |
Level Specificity |
Default |
int |
System |
300 |
The maximum interval of time at which Engine will check on its background processors.
Caching Settings
ExternalCacheConfiguration
Type |
Level Specificity |
Default |
string |
Base |
empty string |
Configuration for the external cache. For memcache this is a JSON object with a 'servers' property which is the list of cache servers to use in 'hostname:port' format, and 'timeoutMs' (default 2000) and `updateTimeoutMs` (default 4000) properties which are the timeouts in milliseconds for cache read/update requests respectively.
ExternalCacheKeyPrefix
Type |
Level Specificity |
Default |
string |
Base |
RusticiEngine_ |
Prefix for external cache keys to avoid collisions with other systems using the same cache. If multiple Engine installations will share a cache, each one should set this to a different value.
LocalCacheExpiryMilliSeconds
Type |
Level Specificity |
Default |
string[] |
Base |
default|600000, configuration|60000 |
How long items may persist in the local cache, in milliseconds. For typical server farm installations, this should be how old a stale value it is acceptable to use, as cache invalidations will not propogate to local caches. Each entry is in cachedObject|milliseconds format, and default applies to any cached object without its own value. cachedObject|-1 indicates no expiration, which is only appropriate for single-server installations. CachedObject|0 disables the local cache for that object type. If a remote cache is in use, these values should probably be lowered until traffic to the remote cache becomes a bottleneck.
ExternalCacheExpiryMinutes
Type |
Level Specificity |
Default |
string[] |
Base |
default|14400 |
How long items may persist in the external cache, in minutes. Defaults to 10 days. This should generally be set to at least a day, as the only reason to expire external cache items is as a fallback in case an invalidation call fails. cachedObject|-1 indicates no expiration, cachedObject|0 disables the external cache for that object type.
LocalCacheDisableForLowFrequency
Type |
Level Specificity |
Default |
bool |
Base |
false |
For installations with many Engine application servers (particularly with an external cache enabled) it may not be worth the memory usage or locks to store entries that are unlikely to be frequently used in a short time period. Enabling this setting disables the local cache by default for such items. Note that configuring a LocalCacheExpiryMilliSeconds entry for such an item will override this behavior.
LocalCacheMaxEntries
Type |
Level Specificity |
Default |
int |
Base |
10000 |
The maximum number of entries that will be retained in the local memory cache before items will be evicted (currently via TinyLFU on Java).
LocalCacheEnabled
Type |
Level Specificity |
Default |
bool |
Base |
true |
Is the local cache enabled? Disabling the local cache is not recommended unless an extremely fast and reliable external cache is used.
Offline Settings
OfflineContentPathAcceptedRegex
Type |
Level Specificity |
Default |
string |
Tenant |
empty string |
This regex will be used to check the pathToContent parameter when exporting an offline course. If the pathToContent matches this regex, then the offline course will be exported, otherwise the export will throw an exception. By default this setting will deny all paths so is required if the pathToContent param is to be used. Note: 'AllowedRequests' must also be set to include 'OFFLINE_SERVICES' to allow exporting courses for offline use.
OfflinePathToContentRoot
Path to the directory or file store that is the root of where offline package content can be found.
OfflineZipOutputLocation
Type |
Level Specificity |
Default |
string |
Tenant |
|
The path to the directory or file store (see file stores) where offline zip files should be placed.
ConcurrentLaunch Settings
ConcurrentLaunchDetectionEnabled
Type |
Level Specificity |
Default |
bool |
Registration |
true |
Enable or disable concurrent launch detection.
ConcurrentLaunchDetectionHistoryRows
Type |
Level Specificity |
Default |
int |
Registration |
5 |
The number of launch history entries to load when detecting concurrent launches.
ForceExitConcurrentLaunches
Type |
Level Specificity |
Default |
bool |
Registration |
false |
If true, force exit of previous launch without showing concurrent launch detected page.
LaunchHistoryExpiration Settings
ShouldExpireLaunchHistory
Type |
Level Specificity |
Default |
bool |
Tenant |
false |
If true, purge old launch history entries. This can potentially save a lot of DBMS storage space.
ExpireLaunchHistoryAfterDays
Type |
Level Specificity |
Default |
int |
Tenant |
30 |
The minimum number of days that should pass before purging a launch history entry.
xApiStatementPipe Settings
xAPIStatementPipeEnabled
Type |
Level Specificity |
Default |
bool |
System |
false |
If true, enable the statement pipe feature.
xAPIStatementPipeSleepTimeMilliseconds
Type |
Level Specificity |
Default |
int |
System |
10000 |
When no pipes are ready to be processed, the statement pipe thread will sleep for this many milliseconds.
xAPIStatementPipeCooldownMilliseconds
Type |
Level Specificity |
Default |
int |
Tenant |
60000 |
The minimum amount of time, in milliseconds, that the statement pipe thread will wait to poll an endpoint for new statements after running out of new statements.
xAPIStatementPipeMaxBackoffHours
Type |
Level Specificity |
Default |
int |
System |
24 |
When piping statements, we may encounter an error when calling the API of either LRS. If we do, we retry after a set amount of time, that doubles with each successive failure. This value sets a maximum amount of time (in hours) we will wait between retries. If 0 is given, there is no maximum.
xAPIStatementPipeBatchSize
Type |
Level Specificity |
Default |
int |
System |
500 |
The maximum number of statements that we will send at a time when using the statement pipe feature.
xAPIStatementPipeWebTimeoutMilliseconds
Type |
Level Specificity |
Default |
int |
System |
10000 |
The timeout, in milliseconds, we will use when sending GET and POST requests to the LRSes involved in a statement pipe. This number is set fairly high by default to accomodate batches involving many attachments.
xAPIStatementPipeLockTimeSeconds
Type |
Level Specificity |
Default |
int |
System |
600 |
The amount of time, in seconds, a given machine can lock a statement pipe for exclusive use. This value should encompass the 'clock drift' between machines and any delays due to possible slow connections or failed timeouts.
xAPIStatementPipeMaxAttempts
Type |
Level Specificity |
Default |
int |
System |
90 |
The maximum number of times a statement pipe can fail (in a row) before Engine stops trying. With default backoff settings, the time between attempts quickly approaches xAPIStatementPipeMaxBackoffHours. So with default settings, this is roughly the # of days Engine will try a failing pipe for. Saving the pipe configuration again (specifying either the source or target url) will reset the attempt count, and restart the pipe.
DeliverCustomization Settings
RemoteDeliverPageUrl
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
Web path (absolute or relative) location of the deliver HTML and player static files. Must be set to an absolute URL for LTI 1.3 platform support.
Note: As of version 21.1.7.219, there is a file, playerConfigurationUrl.json, in the /player folder that is deployed on the remote server. This will need to be modified to include the appropriate playerConfigurationUrl property value that points back to the PlayerConfiguration page in Engine (e.g., 'https://mydomain.com/RusticiEngine/PlayerConfiguration.jsp'). At runtime, for these remote deployments, Engine will retrieve this JSON file to determine what URL to use to retrieve the player configuration data.
RemoteDeliverPageUrlMap
Type |
Level Specificity |
Default |
string[] |
Registration |
empty string |
Mapping of keys to urls formatted as 'key1|url1, key2|url2'. When a remoteUrlKey in additionalValues matches a key in this list, the URL specified in this list will be used instead of RemoteDeliverPageUrl for that launch.
Note: As of version 21.1.7.219, there is a file, playerConfigurationUrl.json, in the /player folder that is deployed on the remote server. This will need to be modified to include the appropriate playerConfigurationUrl property value that points back to the PlayerConfiguration page in Engine (e.g., 'https://mydomain.com/RusticiEngine/PlayerConfiguration.jsp'). At runtime, for these remote deployments, Engine will retrieve this JSON file to determine what URL to use to retrieve the player configuration data.
ModernPlayerCustomizationScriptUrl
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
Web path (absolute or relative) to a JavaScript file to load during modern player start up to allow for customization of player execution.
ModernPlayerCustomizationStylesheetUrl
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
Web path (absolute or relative) to a CSS file to load during modern player start up to allow for customization of player appearance.
ModernPlayerCustomizationLogo
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
Web path to an image file to show as customization of player appearance.
PrivacyPolicyUrl
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
Web path (absolute or relative) that should be linked to as the privacy policy document.
IntermediatePageLoadAtStart
Type |
Level Specificity |
Default |
bool |
Registration |
true |
Whether to load the intermediate page in the content frame at launch before the loader takes over. Turning this off leads to a small performance optimization, but at the risk of the user not seeing a loading message particularly in multi SCO/AU courses with no automatic first SCO/AU load.
Player Settings
OriginTrialTokens
Type |
Level Specificity |
Default |
string[] |
Registration |
empty string |
Comma separated list of origin trial tokens that you wish to use with Rustici Engine player.
ExitPlayerOnSingleScoClose
Type |
Level Specificity |
Default |
bool |
Registration |
true |
If set to 'false', the player will not exit and redirect on SCORM 'exit' or 'suspend all' requests. If the content window is closed, the player will behave more like a multi-sco course, and the learner can relaunch the sco from the navigation pane.
PlayerIsAvailableOffline
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
Specifies whether the package is available to take offline
RedirectOnRefreshUrl
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
Optional URL the application should redirect to when the learner refreshes the deliver page, which otherwise may result in a the content being re-launched. This can happen when the user deliberately refreshes the page, or uses the back button (except in IE where the back button just shows the existing page from cache and does not reload from the server, or re-run scripts)
Re-launch is a problem if the content was not suspended, as a new attempt will be generated which will not have all the details from the prior attempt (the prior attempt will still be shown in history). So even though the user may have completed the initial attempt, they may appear to be incomplete.
This is an unusual problem, and frequently re-launching after a refresh is the best choice, so for now we only recommend assinging a value to this property if you have run into the problem described above. The redirect page should minimally make it clear to the user how to get back into the content.
RedirectLaunchPageOnExit
Type |
Level Specificity |
Default |
bool |
Registration |
false |
When using any 'New Window' variant for PlayerLaunchType, if this setting is enabled, automatically returns the launch page to the LMS when the player window closes. This setting has no effect if the player launch type is frameset.
SupplementalQueryStringParametersForAllActivities
Type |
Level Specificity |
Default |
string[] |
Registration |
empty string |
Specifies parameter names that, when appended to the launch url, will be forwarded to all content activity pages.
UseDeltaRecordResultsPayload
Type |
Level Specificity |
Default |
bool |
Registration |
true |
If this setting is enabled, the payloads for RecordResults requests will be trimmed to only include data that has been updated since the previous successful RecordResults request. This can greatly reduce the size of the RecordResults payload.
RecordResultsMaxPayloadSizeInBytes
Type |
Level Specificity |
Default |
int |
Registration |
5242880 |
The maximum number of bytes to accept in a RecordResults request before returning an error. The default is 5 megabytes.
PlayerNavigation Settings
PlayerShowFinishButton
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
NO |
MULTISCO: YES
|
Specifies whether the interface should show a button that allows the learner to return to the LMS
PlayerShowCloseItem
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
NO |
cmi5: NO
MULTISCO: YES
|
Specifies whether the interface should show a button that allows the learner to exit the SCO
PlayerShowHelp
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
NO |
MULTISCO: YES
|
Specifies whether the interface should show a help button
PlayerShowProgressBar
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
YES |
AICC: NO
SCORM 2004 All Editions: NO
SINGLESCO: NO
|
Specifies whether the interface should show a progress bar
PlayerUseMeasureProgressBar
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
NO |
SCORM 2004 4th Edition: YES
|
Specifies whether the interface should determine progress bar progress using Measure Rollup or individual SCO completion.
PlayerShowCourseStructure
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
NO |
MULTISCO: YES
|
Specifies whether the interface should show the course outline to the learner
PlayerCourseStructureStartsOpen
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
NO |
MULTISCO: YES
|
Specifies whether the interface should show the course outline when the course loads or if it should initially be collaspsed and hidden. Only valid if ShowCourseStructure is true.
PlayerShowNavBar
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
NO |
MULTISCO: YES
|
Specifies whether the interface should show the navigation bar containing buttons like Prev, Next, Exit, etc
PlayerShowTitleBar
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
NO |
MULTISCO: YES
|
Specifies whether the interface should show the title bar containing the name of the package being delivered
PlayerEnableFlowNav
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
NO |
AICC: NO
MULTISCO: YES
|
Specifies whether the interface should allow the learner to use Previous and Next navigation elements to go through the course
PlayerEnableChoiceNav
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
NO |
MULTISCO: YES
|
Specifies whether the interface should allow the learner to choose specific parts to the course to take in any order from the course outline
PlayerPreventRightClick
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
Specifies whether the player should allow the learner to right click within its frames. This setting can add a small measure of security to the application by making it harder to view the source.
PlayerInvalidMenuItemAction
Type |
Level Specificity |
Default |
Enum |
Registration |
DISABLE |
Specifies the method of disabling items in the course outline which for which a request would not succeed.
Value |
Description |
SHOW |
Show the menu item and have it fully enabled |
HIDE |
Hide the menu item completely |
DISABLE |
Show the menu item, but disable its link |
SuppressNavbarWhenForcedFrameset
Type |
Level Specificity |
Default |
bool |
Registration |
false |
When enabled, prevents the navbar from showing for requests with the forceFrameset parameter
PlayerLaunchBehavior Settings
PlayerDesiredWidth
Type |
Level Specificity |
Default |
Conditional Defaults |
int |
Registration |
960 |
MULTISCO: 660
|
The number of pixels in width the course would like to have available, if possible, during delivery.
PlayerDesiredHeight
Type |
Level Specificity |
Default |
int |
Registration |
600 |
The number of pixels in height the course would like to have available, if possible, during delivery.
PlayerDesiredFullScreen
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
Specifies that the course is best experienced when it occupies the full screen.
PlayerRequiredWidth
Type |
Level Specificity |
Default |
int |
Registration |
0 |
The number of pixels in width the course must occupy to function correctly.
PlayerRequiredHeight
Type |
Level Specificity |
Default |
int |
Registration |
0 |
The number of pixels in height the course must occupy to function correctly.
PlayerRequiredFullScreen
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
Specifies that the course must be experienced in full screen mode to function correctly.
PlayerScoLaunchType
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
NEW_WINDOW |
AICC: NEW_WINDOW
MULTISCO: FRAMESET
|
Specifies how the individual parts of the course should be launched
Value |
Description |
FRAMESET |
Display the player or SCO in a child frameset. |
NEW_WINDOW |
Display the player or SCO in a popup window. |
NEW_WINDOW_AFTER_CLICK |
Display the player or SCO in a popup window after prompting the user to click a link to avoid popup blocker restrictions. |
NEW_WINDOW_WITHOUT_BROWSER_TOOLBAR |
Display the player or SCO in a popup window (without toolbar). |
NEW_WINDOW_AFTER_CLICK_WITHOUT_BROWSER_TOOLBAR |
Display the player or SCO in a popup window (without toolbar) after prompting the user to click a link to avoid popup blocker restrictions. |
PlayerLaunchType
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
FRAMESET |
xAPI: NEW_WINDOW
|
Specifies how the player as a whole should be launched for this course.
Value |
Description |
FRAMESET |
Display the player or SCO in a child frameset. |
NEW_WINDOW |
Display the player or SCO in a popup window. |
NEW_WINDOW_AFTER_CLICK |
Display the player or SCO in a popup window after prompting the user to click a link to avoid popup blocker restrictions. |
NEW_WINDOW_WITHOUT_BROWSER_TOOLBAR |
Display the player or SCO in a popup window (without toolbar). |
NEW_WINDOW_AFTER_CLICK_WITHOUT_BROWSER_TOOLBAR |
Display the player or SCO in a popup window (without toolbar) after prompting the user to click a link to avoid popup blocker restrictions. |
ForceFramesetUserAgentRegex
Type |
Level Specificity |
Default |
Regex |
Registration |
empty string |
The regex used to determine if a learner's User-Agent should force the course to launch as though the PlayerScoLaunchType were set to FRAMESET, ignoring the configured value. The default value of this setting will not match any User-Agent. This check can be disabled by setting ForceFramesetByRegex to false.
ForceFramesetByRegex
Type |
Level Specificity |
Default |
bool |
Registration |
true |
If a learner's User-Agent matches the regex defined by ForceFramesetByRegex, then the SCO will be launched in a frameset, ignoring the PlayerScoLaunchType. These settings can be used to force a package to launch within a frameset on mobile devices while launching the SCO in a new window for desktops.
PlayerPreventWindowResize
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
Specifies whether the player should allow the learner to resize its windows.
UseLegacyMobileFramesetBehavior
Type |
Level Specificity |
Default |
bool |
Registration |
false |
Determines how to handle mobile launches. When set to true, then Engine will use the old behavior (where forceFrameset is needed to do a frameset launch, and SuppressNavbarWhenForcedFrameset is needed to hide the navbar). When set to false, mobile launches will be treated the same way as desktop launches.
Scorm2004EditionOverride
Type |
Level Specificity |
Default |
Enum |
Registration |
NONE |
Modifies which edition of SCORM 2004 the content is treated as in the player
Value |
Description |
NONE |
Treat the content as the learning standard it was imported as |
SCORM_2004_2ND_EDITION |
Treat the content as a SCORM 2004 2nd edition course |
SCORM_2004_3RD_EDITION |
Treat the content as a SCORM 2004 3rd edition course |
SCORM_2004_4TH_EDITION |
Treat the content as a SCORM 2004 4th edition course |
PlayerRudimentarySequencing Settings
PlayerIntermediateScoSatisfiedNormalExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
GO_TO_NEXT_SCO |
AICC: DO_NOTHING
SCORM 2004 All Editions: DISPLAY_MESSAGE
|
The navigation behavior the SCP should display when a SCO that has been satisfied in the middle of a course exits with an exit type of normal.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerIntermediateScoSatisfiedSuspendExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
DISPLAY_MESSAGE |
AICC: DO_NOTHING
|
The navigation behavior the SCP should display when a SCO that has been satisfied in the middle of a course exits with an exit type of suspend.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerIntermediateScoSatisfiedTimeoutExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
DISPLAY_MESSAGE |
AICC: DO_NOTHING
|
The navigation behavior the SCP should display when a SCO that has been satisfied in the middle of a course exits with an exit type of timeout.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerIntermediateScoSatisfiedLogoutExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
EXIT_COURSE_AFTER_CONFIRM |
AICC: DO_NOTHING
SCORM 2004 All Editions: DISPLAY_MESSAGE
|
The navigation behavior the SCP should display when a SCO that has been satisfied in the middle of a course exits with an exit type of logout.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerIntermediateScoNotSatisfiedNormalExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
DISPLAY_MESSAGE |
AICC: DO_NOTHING
|
The navigation behavior the SCP should display when a SCO in the middle of a course that has not been satisfied exits with an exit type of normal.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerIntermediateScoNotSatisfiedSuspendExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
DISPLAY_MESSAGE |
AICC: DO_NOTHING
|
The navigation behavior the SCP should display when a SCO that has not been satisfied in the middle of a course exits with an exit type of suspend.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerIntermediateScoNotSatisfiedTimeoutExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
DISPLAY_MESSAGE |
AICC: DO_NOTHING
|
The navigation behavior the SCP should display when a SCO that has not been satisfied in the middle of a course exits with an exit type of timeout.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerIntermediateScoNotSatisfiedLogoutExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
EXIT_COURSE_AFTER_CONFIRM |
AICC: DO_NOTHING
SCORM 2004 All Editions: DISPLAY_MESSAGE
|
The navigation behavior the SCP should display when a SCO that has not been satisfied in the middle of a course exits with an exit type of logout.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerFinalScoCourseSatisfiedNormalExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
EXIT_COURSE |
AICC: DISPLAY_MESSAGE
MULTISCO: DISPLAY_MESSAGE
|
The navigation behavior the SCP should display when a SCO at the end of the course that has been satisfied exits with an exit type of normal.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerFinalScoCourseSatisfiedSuspendExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
EXIT_COURSE |
AICC: DO_NOTHING
MULTISCO: DISPLAY_MESSAGE
|
The navigation behavior the SCP should display when a SCO at the end of the course that has been satisfied exits with an exit type of suspend.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerFinalScoCourseSatisfiedTimeoutExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
EXIT_COURSE |
AICC: DO_NOTHING
MULTISCO: DISPLAY_MESSAGE
|
The navigation behavior the SCP should display when a SCO at the end of the course that has been satisfied exits with an exit type of timeout.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerFinalScoCourseSatisfiedLogoutExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
EXIT_COURSE |
AICC: DO_NOTHING
|
The navigation behavior the SCP should display when a SCO at the end of the course that has been satisfied exits with an exit type of logout.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerFinalScoCourseNotSatisfiedNormalExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
EXIT_COURSE |
AICC: DO_NOTHING
MULTISCO: DISPLAY_MESSAGE
|
The navigation behavior the SCP should display when a SCO at the end of the course that has not been satisfied exits with an exit type of normal.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerFinalScoCourseNotSatisfiedSuspendExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
EXIT_COURSE |
AICC: DO_NOTHING
MULTISCO: DISPLAY_MESSAGE
|
The navigation behavior the SCP should display when a SCO at the end of the course that has not been satisfied exits with an exit type of suspend.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerFinalScoCourseNotSatisfiedTimeoutExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
EXIT_COURSE |
AICC: DO_NOTHING
MULTISCO: DISPLAY_MESSAGE
|
The navigation behavior the SCP should display when a SCO at the end of the course that has not been satisfied exits with an exit type of timeout.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerFinalScoCourseNotSatisfiedLogoutExitAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
EXIT_COURSE |
AICC: DO_NOTHING
|
The navigation behavior the SCP should display when a SCO at the end of the course that has not been satisfied exits with an exit type of logout.
Value |
Description |
EXIT_COURSE |
Exit the entire course player |
EXIT_COURSE_AFTER_CONFIRM |
Exit the entire course player after asking the learner's permission |
GO_TO_NEXT_SCO |
Immediately go to the next SCO |
DISPLAY_MESSAGE |
Display a status message to the learner |
DO_NOTHING |
Do not take any action |
PlayerRudimentaryRollup Settings
PlayerStatusDisplayPreference
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
COMBINED |
SCORM 2004 All Editions: SEPARATE
|
Specifies how the player should display the completion and success status of individual SCOs.
Value |
Description |
SUCCESS_ONLY |
Only display an icon to represent the success status of the activity. |
COMPLETION_ONLY |
Only display an icon to represent the completion status of the activity. |
SEPARATE |
Display two icons, one to represent the completion status of the activity, another to represent the success status. |
COMBINED |
Display a single icon that represents both the success and completion status of an activity. |
NONE |
Do not display any status representation icons. |
PlayerScoreRollupModeValue
Type |
Level Specificity |
Default |
Enum |
Registration |
AVERAGE_SCORE_OF_ALL_UNITS_WITH_SCORES |
Specifies how the player should rollup scores from individual SCOs to aggregations in SCORM 1.2
Value |
Description |
SCORE_PROVIDED_BY_COURSE |
For use with single SCO courses, uses whatever score is provided by the SCO. |
AVERAGE_SCORE_OF_ALL_UNITS |
Adds up all reported scores and divides by the number of SCOs in the course. |
AVERAGE_SCORE_OF_ALL_UNITS_WITH_SCORES |
Adds up all reported scores and divides by the number of SCOs that actually reported a score. |
FIXED_AVERAGE |
Adds up all reported scores and divides by a fixed number. |
AVERAGE_SCORE_OF_ALL_UNITS_WITH_NONZERO_SCORES |
Adds up all reported scores and divides by the number of SCOs that reported a score greater than zero. |
LAST_SCO_SCORE |
Use the score of the last SCO. |
PlayerScoreRollupModeNumberOfScoringObjects
Type |
Level Specificity |
Default |
int |
Registration |
-2147483648 |
Specifies how the player should rollup scores from individual SCOs to aggregations in SCORM 1.2
PlayerStatusRollupModeValue
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
COMPLETE_WHEN_ALL_UNITS_COMPLETE_AND_NOT_FAILED |
AICC: COMPLETE_WHEN_ALL_UNITS_COMPLETE
|
Specifies how the player should rollup completion status from individual SCOs to aggregations in SCORM 1.2
Value |
Description |
STATUS_PROVIDED_BY_COURSE |
For use with single SCO courses, just takes whatever status is reported by the course. |
COMPLETE_WHEN_ALL_UNITS_COMPLETE |
Marks the course complete whenever all of the SCOs are complete, even if the SCO is failed. |
COMPLETE_WHEN_ALL_UNITS_COMPLETE_AND_NOT_FAILED |
Marks the course complete whenever all of the SCOs are complete and not failed. |
COMPLETE_WHEN_THRESHOLD_SCORE_IS_MET |
Marks the course complete whenever a certain score has been obtained as calculated by the Score Rollup Method. |
COMPLETE_WHEN_ALL_UNITS_COMPLETE_AND_THRESHOLD_SCORE_IS_MET |
Marks the course complete whenever all of the SCOs are complete and not failed and a certain score has been obtained as calculated by the Score Rollup Method. |
COMPLETE_WHEN_ALL_UNITS_ARE_PASSED |
Marks the course complete whenever all of the SCOs are satisfied(passed). In 1.2, any SCO that is passed will also be complete (but not necessarily the other way around). |
PlayerStatusRollupModeThresholdScore
Type |
Level Specificity |
Default |
double |
Registration |
0 |
Specifies how the player should rollup completion status from individual SCOs to aggregations in SCORM 1.2
PlayerApplyRollupStatusToSuccess
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
Specifies whether the success status should be updated based on the rudimentary status rollup rules.
PlayerFirstScoIsPretest
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
Specifies whether the first SCO in the course should be considered a pretest. If true and the first SCO is passed, the rest of the course will be marked as completed.
PlayerCompatibility Settings
PlayerWrapScoWindowWithApi
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
When a SCO is launched in a new window, this specifies whether the window should be wrapped with a shell window containing a copy of the SCORM API. This setting allows content with errors in the use of its API finder algorithm to still be delivered in a new window. Essentially, this mimics the structure of the ADL Test Suite.
PlayerFinishCausesImmediateCommit
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
YES |
This setting forces data to be sent to the server immediately upon the call of LMSFinish or Terminate by the SCO. Can be useful for SCOs that are not completing because of timing issues related to window closing.
PlayerAlwaysFlowToFirstSco
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
YES |
SCORM 1.2: YES
MULTISCO: NO
|
Should the SCP always launch the first SCO when the course is launched regardless of sequencing rules.
PlayerLogoutCausesPlayerExit
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
YES |
Should the SCP allow a cmi.exit request of logout to exit the entire player
PlayerResetRunTimeData
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
NEVER |
SCORM 2004 All Editions: WHEN_EXIT_IS_NOT_SUSPEND
|
Should the SCP always persist runtime data when the exit type is suspend, or should this be left up to the sequencer?
Value |
Description |
NEVER |
Never reset the runtime data |
WHEN_EXIT_IS_NOT_SUSPEND |
Use the RunTime data's exit flag to determine when to reset the data |
ON_EACH_NEW_SEQUENCING_ATTEMPT |
Reset the data whenever a new sequencing attempt begins |
PlayerValidateInteractionResponses
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
YES |
Determines whether the interaction responses are validated for expected SCORM format. Use this setting when you want to include descriptive text in addition to the single number/character allowed by SCORM 1.2. This affects both the user response and the correct response
PlayerLookaheadSequencerMode
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
ENABLED |
SCORM 1.2: REALTIME
|
Determines how the Lookahead Sequencer should function on the client side. The Lookahead Sequencer is used intelligently enable/disable activities and controls within the Scorm Content Player based on possible future paths.
Value |
Description |
DISABLED |
Completely Disabled |
ENABLED |
Fully Enabled |
REALTIME |
Enabled, with real-time status updates |
PlayerScoreOverridesStatus
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
NO |
AICC: YES
|
Determines whether or not the status derived from a score should override the actual status.
PlayerAllowCompleteStatusChange
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
Determines whether or not the lesson status can be modified once it has been set to complete.
PlayerScaleRawScore
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
In SCORM 2004 content, if a SCO sets a raw score but not a scaled score, should the raw score count as the normative score for the SCO?
PlayerRollupEmptySetToUnknown
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
In SCORM 2004, determines whether a set of child activities in an unknown state rollup to "unknown" or "complete/satisfied"
PlayerReturnToLmsAction
Type |
Level Specificity |
Default |
Conditional Defaults |
Enum |
Registration |
Legacy |
SCORM 2004 4th Edition: Selectable
|
Defines what happens when a user click "Return To LMS"
Value |
Description |
Legacy |
Legacy - The behavior matches Engine 2008.1 and prior |
SuspendAll |
SUSPEND ALL Navigation Request |
ExitAll |
EXIT ALL Navigation Request |
Selectable |
Selectable by the user |
PlayerUseQuickLookaheadSequencer
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
YES |
In SCORM 2004 4th Edition and later, determines whether or not to use the Quick Lookahead Sequencer
PlayerForceDisableRootChoice
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
Disables the Root menu item Choice option. This is to prevent new attempts being initiated on the course.
PlayerRollupRuntimeAtScoUnload
Type |
Level Specificity |
Default |
Conditional Defaults |
bool * API v1: YES/NO |
Registration |
NO |
SCORM 1.2: YES
|
Initiates rollup and transfer of runtime data at ScoUnload for all SCOs.
PlayerForceObjectiveCompletionSetByContent
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
Override the manifest settings for "Objective Set By Content" and "Completion Set By Content" with true values.
PlayerInvokeRollupAtSuspendAll
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
Initiates rollup when SuspendAll is invoked.
PlayerCompletionStatOfFailedSuccessStat
Type |
Level Specificity |
Default |
Enum |
Registration |
Unknown |
Specifies the Completion Status value to apply in the case of a Failed Success Status. Only applied if set to "completed" or "incomplete"
Value |
Description |
Unknown |
The completion status is unknown and has not been set yet. Note this is a different than the enumeration being undefined, which indicates that the enumeration itself is 'null' |
Completed |
The learner has completed the activity |
Incomplete |
The learner has started, but not finished the activity |
Browsed |
The learner viewed the activity, but just to browse it, not as an attempt |
Not_Attempted |
The learner has not started the activity |
PlayerSatisfiedCausesCompletion
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
Determines whether or not activity Satisfaction will set completion
PlayerMakeStudentPrefsGlobalToCourse
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
NO |
When a student makes a preference (audio volume, etc) the preference should be applied to all SCOs
PlayerLaunchCompletedRegsAsNoCredit
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
YES |
Determines whether an AICC or SCORM 1.2 registrations goes into "no credit" mode upon completion
PlayerSuspendDataMaxLength
Type |
Level Specificity |
Default |
Conditional Defaults |
int |
Registration |
64000 |
AICC: 4096
SCORM 1.2: 4096
SCORM 2004 2nd Edition: 4000
|
Maximum suspend data length in bytes.
PlayerTimeLimit
Type |
Level Specificity |
Default |
int |
Registration |
0 |
Time limit of the course in minutes, 0 for unlimited (no time limit)
PlayerIsCompletionTracked
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
YES |
Does this course package actually report completion in a meaningful way?
PlayerIsSatisfactionTracked
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
YES |
Does this course package actually report satisfaction (pass/fail) in a meaningful way?
PlayerIsScoreTracked
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
YES |
Does this course package actually report its score in a meaningful way?
PlayerIsIncompleteScoreMeaningful
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
YES |
If the course is incomplete, is the score still meaningful?
PlayerIsIncompleteSatisfactionMeaningful
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
YES |
If the course is incomplete, is its satisfaction (pass/fail) still meaningful?
PromptOnPlayerClose
Type |
Level Specificity |
Default |
bool |
Registration |
false |
Constant value used by the default integration implementation that represents the key used in the configuration repository to specify whether the SCORM Player should prompt the user for confirmation before unloading due to the browser window being closed
PlayerDebug Settings
PlayerDebugControlAudit
Type |
Level Specificity |
Default |
bool |
Registration |
true |
Should the debugger capture control data at the audit level
PlayerDebugControlDetailed
Type |
Level Specificity |
Default |
bool |
Registration |
true |
Should the debugger capture control data at the detailed level
PlayerDebugRteAudit
Type |
Level Specificity |
Default |
bool |
Registration |
true |
Should the debugger capture RunTime data at the audit level
PlayerDebugRteDetailed
Type |
Level Specificity |
Default |
bool |
Registration |
true |
Should the debugger capture RunTime data at the detailed level
PlayerDebugSequencingAudit
Type |
Level Specificity |
Default |
Conditional Defaults |
bool |
Registration |
true |
SCORM 2004 4th Edition: false
|
Should the debugger capture Sequencing data at the audit level
PlayerDebugSequencingDetailed
Type |
Level Specificity |
Default |
Conditional Defaults |
bool |
Registration |
true |
SCORM 2004 4th Edition: false
|
Should the debugger capture Sequencing data at the detailed level
PlayerDebugSequencingSimple
Type |
Level Specificity |
Default |
Conditional Defaults |
bool |
Registration |
false |
SCORM 2004 4th Edition: true
|
Capture sequencing debugging information in a more human readable fashion than the very technical Audit or Detailed level
PlayerDebugLookAheadAudit
Type |
Level Specificity |
Default |
bool |
Registration |
true |
Should the debugger capture LookAhead Sequencing data at the audit level
PlayerDebugLookAheadDetailed
Type |
Level Specificity |
Default |
bool |
Registration |
false |
Should the debugger capture LookAhead Sequencing data at the detailed level (use care when setting this to true, it can have a noticable performance impact)
PlayerDebugIncludeTimestamps
Type |
Level Specificity |
Default |
bool |
Registration |
true |
Should debug information include timestamps and measurements of how long individual functions are taking for performance monitoring
EnableClientDebugger
Type |
Level Specificity |
Default |
bool |
Registration |
false |
If true, enables activating the debugger by typing ?????. This setting will also cause the user to be prompted whether they wish to see the debugger if an error occurs.
PlayerCaptureHistory
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
YES |
Specifies if the course should return attempt information to the server
PlayerCaptureHistoryDetailed
Type |
Level Specificity |
Default |
bool * API v1: YES/NO |
Registration |
YES |
Specifies if the course should return detailed attempt information to the server
PlayerCommunication Settings
PlayerCommMaxFailedSubmissions
Type |
Level Specificity |
Default |
int |
Registration |
2 |
Specifies the maximum number of times the client to server communication can fail before the system stops trying and the learner is notified that there is an error.
PlayerCommCommitFrequency
Type |
Level Specificity |
Default |
int |
Registration |
10000 |
The frequency (in milliseconds) with which the application will check for dirty data and try to send it to the server.
MaxPersistRuntimeDataAttempts
Type |
Level Specificity |
Default |
int |
Registration |
1 |
Maximum number of attempts to save course runtime data.
Dispatch Settings
DispatchTitle
Type |
Level Specificity |
Default |
string |
Dispatch |
empty string |
Title to use in exported packages for a particular dispatch.
DispatchDescription
Type |
Level Specificity |
Default |
string |
Dispatch |
empty string |
Description to use in exported packages for a particular dispatch.
DispatchBaseUrl
Type |
Level Specificity |
Default |
string |
System |
|
The fully-qualified URL to the '/dispatch' path under the Engine application. This value is used when building dispatch packages for export, so the URL *must* be fully-qualified and accessible from client LMSs. If this value ever changes, then all dispatch packages must be re-exported!
DispatchPollingBaseUrl
The fully-qualified URL to the '/dispatch' path under the Engine application. This is the value that will be used to poll Engine when a non-SCORM course is launched.
DispatchLtiSessionTimeSeconds
Type |
Level Specificity |
Default |
int |
Tenant |
2592000 |
The maximum amount of time for an LTI session. This affects the lifetime of the LTI reporter objects, which are created per-launch and eventually deleted, so this setting should be high. The default is 30 days.
DispatchStatusAuthoritativeSource
Type |
Level Specificity |
Default |
Enum |
Tenant |
Root_Preferred |
Use this setting to control how Dispatch status updates in the player behave with respect to determining success, completion, and score based on the root activity, the lookahead sequencer, or a combination.
Value |
Description |
Root_Preferred |
Intended to be the original default of how Dispatch worked prior to this Enum existing, treats the root activity as the authoritative source unless it's values are null in which case it falls back to the lookahead sequencer's state. |
Lookahead_Preferred |
Treats the lookahead sequencer as the authoritative source unless it's values are null in which case it falls back to the root activity's state. |
Learner_Preferred |
Looks for the most advantageous result for the learner in the root activity and the lookahead sequencer and uses it. |
Root_Only |
Uses only the root activity to determine the status to be sent, ignores the lookahead sequencer. |
DispatchLaunchStateOverride
Type |
Level Specificity |
Default |
Enum |
Registration |
Learner_Preferred |
When launching (or re-launching) dispatched content, should the status (completion, success, score) passed from Engine be pushed as an update to the dispatch target?
Value |
Description |
Never |
Intended to be the original default of how Dispatch worked prior to this Enum existing. The launch state will never trigger a status update. |
Learner_Preferred |
When processing the initial launch state from Engine, only trigger an update of the LMS in cases where the status (completion, success, score) passed by Engine is an improvement to what the learner currently has in the LMS. |
Content_Root_Preferred |
When processing the initial launch state from Engine, always trigger an update to the LMS with the status (completion, success, score) passed by Engine. |
DispatchHideGetRegistrationErrorDuringTeardown
Type |
Level Specificity |
Default |
bool |
Registration |
false |
Controls if an error should be shown to the learner if the browser cancels a GetRegistration request while the page is being torn down. This most commonly happens when a Tin Can, AICC, or cmi5 is dispatched and launched in an iframe, and the iframe is torn down in the middle of a GetRegistration request.
DispatchLaunchTokenExpiry
Type |
Level Specificity |
Default |
int |
Tenant |
60 |
Number of seconds from pre-launch configuration URL retrieval until launch token expiration.
DispatchCommitDataCondition
Type |
Level Specificity |
Default |
Enum |
Registration |
Immediate |
Tell dispatch when to send updates on score/success
Value |
Description |
Immediate |
Default behavior, commit data as soon as it is available. |
WaitForScoreAndSuccess |
Wait until both Score and Success are available. Best used when dispatching as cmi5. |
ContentConnectors Settings
Go1ApiKey
Type |
Level Specificity |
Default |
string |
Tenant |
|
The API consumer key for this Go1 integration
Go1ApiSecret
Type |
Level Specificity |
Default |
secretString |
Tenant |
|
The API secret for this Go1 integration
Go1PortalAdminEmail
Type |
Level Specificity |
Default |
secretString |
Tenant |
empty string |
Email for an existing Go1 user to add as a portal admin when creating portals, to allow Engine to re-connect to the created portal. This user ideally is not a real user, but just created for Engine to use, as the password will need to be saved in Engine
Go1PortalAdminPassword
Type |
Level Specificity |
Default |
secretString |
Tenant |
empty string |
Password for the Go1PortalAdmin
Go1PartnerPortalId
Type |
Level Specificity |
Default |
int |
System |
-1 |
Partner portal ID to send to Go1 when provisioning a new portal. -1 (or any negative value) indicates there is no partner portal to associate, and no value will be sent.
ContentConnectorRemoteSearchTimeoutMS
Type |
Level Specificity |
Default |
int |
System |
5000 |
Time to wait for content connector remote searches before returning results from whichever connectors have returned results. Where multiple connectors are used, this setting is a trade off between limiting how long the user has to wait for search results and ensuring complete results.
MediaContent Settings
MediaContentCompletionThreshold
Type |
Level Specificity |
Default |
int |
Registration |
95 |
The percentage of media that must be consumed before a media course can be considered 'Complete'.
WebContentForceNewWindow
Type |
Level Specificity |
Default |
bool |
Registration |
false |
If true, opens webpage media content in a new window/tab rather than inside the AU. This gets around websites that are configured to not load in an iframe (see 'X-Frame-Options' response header).
MediaContentStylesheetPath
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
Web path (absolute or relative) to a CSS file that allows for customization of elements in the Media Content AU that are not specific to a certain content type.
AudioVideoContentStylesheetPath
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
Web path (absolute or relative) to a CSS file that allows for customization of elements in the Media Content AU that are specific to Audio/Video content types.
PDFContentStylesheetPath
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
Web path (absolute or relative) to a CSS file that allows for customization of elements in the Media Content AU that are specific to PDF content.
PDFContentPageDurationThreshold
Type |
Level Specificity |
Default |
int |
Registration |
5 |
Number of seconds the user must view a document page before the page will be counted towards progress/completion calculation.
ContentLangToUrl
Type |
Level Specificity |
Default |
ContentLanguageDefinition[] |
Registration |
[] |
JSON string that represents a list of ContentLanguageDefinition objects. The ContentLanguageDefinition obj contains the following keys: label (required string - The displayed string that specifies the language), srclang (string - The ISO language code associated with the language), src (required string - The URL to the .vtt file content), default (bool - Is this the default language), and kind (string - Specifies the type of support file. Expected values include "captions" and "subtitles")
PDFContentScaling
Type |
Level Specificity |
Default |
Enum |
Registration |
Page_Width |
Determines how the player will initially scale or fit the PDF document in the viewer.
Value |
Description |
Page_Actual |
Renders the PDF according to its original dimensions. |
Page_Width |
Scales the PDF by width. |
Page_Height |
Scales the PDF by height. |
Page_Fit |
Scales the PDF by either height or width until it fits the available size of the viewer. |
Auto |
For pages in portrait mode, fits by height unless the page is too wide to fit horizontally. Otherwise, fits by width. |
PDFDownloadButton
Type |
Level Specificity |
Default |
bool |
Registration |
false |
Display button for user to download pdf.
AudioVideoPlayer
Type |
Level Specificity |
Default |
Enum |
Registration |
Native |
Specifies whether the video player should be a native html5 or video.js player.
Value |
Description |
Native |
Video content should be loaded and played back in a native Html5 video element. |
VideoJS |
Video content should be loaded and played back in a video.js player. |
AudioVideoPlayerQualitySourceList
Type |
Level Specificity |
Default |
MultiQualitySource[] |
Registration |
[] |
JSON string representing different quality levels of video source available for playback. AudioVideoPlayer has to be set to VideoJS for quality switching to work.
AudioVideoPlayerSeekForward
Type |
Level Specificity |
Default |
int |
Registration |
0 |
Number of seconds the forward seek button on the Video.js player's control should fast forward. AudioVideoPlayer has to be set to VideoJS for the button to be displayed
AudioVideoPlayerSeekBackward
Type |
Level Specificity |
Default |
int |
Registration |
0 |
Number of seconds the backward seek button on the Video.js player's control should rewind. AudioVideoPlayer has to be set to VideoJS for the button to be displayed
AudioVideoPlayerPlaybackRates
Type |
Level Specificity |
Default |
string[] |
Registration |
empty string |
List of playback rates the Video.js player will offer. AudioVideoPlayer has to be set to VideoJS for the rates to be displayed
AudioVideoPlayerPosterImage
Type |
Level Specificity |
Default |
string |
Registration |
empty string |
Path to an image that will be displayed by the video player prior to hitting play.
LTI Settings
LtiConsumerProductFamily
Type |
Level Specificity |
Default |
string |
Tenant |
empty string |
Company or brand name of the product providing LTI support.
LtiConsumerVersion
Type |
Level Specificity |
Default |
string |
Tenant |
empty string |
Version of the instance of the product providing LTI support. Should have a major release number followed by a period, the format of minor releases is flexible.
LtiConsumerName
Type |
Level Specificity |
Default |
string |
Tenant |
empty string |
Short, user-friendly name for the product providing LTI support.
LtiConsumerIdentifier
Type |
Level Specificity |
Default |
string |
Tenant |
|
A unique identifier for the product providing LTI support. This identifier is required and should not change once set. Must be no larger than 255 ASCII characters in length. A UUID is recommended.
LtiConsumerDescription
Type |
Level Specificity |
Default |
string |
Tenant |
empty string |
One-line description of the product providing LTI support.
LtiConsumerUrl
Type |
Level Specificity |
Default |
string |
Tenant |
empty string |
Url to the website of the product providing LTI support.
LtiConsumerEmail
Type |
Level Specificity |
Default |
string |
Tenant |
empty string |
Url to a support email address for the product providing LTI support.
LtiJsonWebTokenExpiry
Type |
Level Specificity |
Default |
int |
Tenant |
300 |
Number of seconds from now that JSON Web Tokens sent as part of the LTI launch process should expire in.
LtiPlatformIssuer
Type |
Level Specificity |
Default |
string |
System |
|
A case-sensitive URL identifying the LTI 1.3 platform. Needs to be an HTTPS scheme that must contain: scheme and host, may contain port number and path components and may not contain query or fragment components. Required for LTI 1.3.
LtiBaseUrl
Type |
Level Specificity |
Default |
string |
Tenant |
|
The fully-qualified URL to the '/api' path under the Engine application. This value is used for determining absolute URLs for endpoints LTI 1.1 and 1.3 tools need to access, so the URL *must* be fully-qualified and accessible from LTI tools. If this value ever changes, then LTI tools may need to be re-configured.
Lti11PrivacySettings
Type |
Level Specificity |
Default |
Enum |
Registration |
LEARNER_NAME_ONLY |
Determines which user-identifying information will be sent during launch.
Value |
Description |
LEARNER_NAME_ONLY |
The learner's first name, last name, and full name will be sent to the tool during launch. The full name is determined by concatenating the first and last name with a space in between. |
LEARNER_NAME_AND_EMAIL |
The learner's first name, last name, full name, and email will be sent to the tool during launch. The full name is determined by concatenating the first and last name with a space in between. The email should be passed in the id property of the learner schema when a registration is created. |
NO_LEARNER_INFO |
No identifying information about the user will be sent to the tool during launch. |
Lti13PrivacySettings
Type |
Level Specificity |
Default |
Enum |
Registration |
LEARNER_NAME_ONLY |
Determines which user-identifying information will be sent during launch.
Value |
Description |
LEARNER_NAME_ONLY |
The learner's first name, last name, and full name will be sent to the tool during launch. The full name is determined by concatenating the first and last name with a space in between. |
NO_LEARNER_INFO |
No identifying information about the user will be sent to the tool during launch. |
Lti11Roles
Type |
Level Specificity |
Default |
string |
Registration |
Learner |
A comma-separated list of roles to associate with a registration. The value of this setting will be sent during launch in the 'roles' field. Changing this value has no other effect on platform behavior.
Lti13Roles
Type |
Level Specificity |
Default |
string[] |
Registration |
http://purl.imsglobal.org/vocab/lis/v2/institution/person#Student |
A comma/whitespace delimited list of roles to associate with a registration. The value of this setting will be sent during launch in the 'https://purl.imsglobal.org/spec/lti/claim/roles' claim. Changing this value has no other effect on platform behavior.
ContentVault Settings
ContentVaultEnabled
Type |
Level Specificity |
Default |
bool |
Registration |
false |
Whether to use content vault to authenticate access to the content
ContentVaultAuthExpiry
Type |
Level Specificity |
Default |
int |
Registration |
28800 |
An integer value greater than 300 seconds and less than 31540000 seconds that defines the number of seconds content should be made available for a launch
ContentVaultSlidingAuthExpiryEnabled
Type |
Level Specificity |
Default |
bool |
Registration |
false |
Whether content vault's sliding expiry window is enabled
ContentVaultSlidingAuthExpiry
Type |
Level Specificity |
Default |
int |
Registration |
60 |
An integer value greater than 60 seconds and less than 31540000 seconds that defines how large the 'sliding window' of content should be available
ContentVaultAuthFingerprintValidationEnabled
Type |
Level Specificity |
Default |
bool |
Registration |
true |
Tells if fingerprint validation should be enabled or disabled
ContentVaultIpAddressValidationEnabled
Type |
Level Specificity |
Default |
bool |
Registration |
true |
Tells if IP address validation should be enabled or disabled
ContentVaultPathModifyingPrefix
Type |
Level Specificity |
Default |
string |
Registration |
/vault |
Prefix the path modifying content vault plugin will add to content paths