Jarvis uses Conga for TCP/IP communications. Jarvis's Conga settings are used to configure the Conga's operation. See the Conga User Guide for more detailed information on specific settings.
Once started, Jarvis maintains a reference to to Conga library in the LDRC field. This enables you to manage query and/or manage Conga settings directly if you need to. For instance, j.LDRC.Tree '.' will return the entire Conga object tree.
AcceptFrom
Description
AcceptFrom allows you to limit Jarvis incoming connections to a specific set of IP address ranges. AcceptFrom is either one or two character vectors that specify IPV4 and/or IPV6 address ranges. Each vector is a comma-delimited set of IP ranges.
Default
''
Examples
j.AcceptFrom←'192.168.1.1/127,10.17.221.67/75'
Notes
This setting is documented as AllowEndPoints in the Conga User Guide. Unlike AllowEndPoints, you do not need to specify 'IPV4' or 'IPV6' as Jarvis can automatically determine which IP version is intended.
BufferSize
Description
BufferSize specifies the maximum HTTP headers length that Jarvis will accept. The intent is to block malicious requests that attempt to overwhelm the server by sending huge requests.
Default
10000
Examples
j.BufferSize←5000 ⍝ allow up to 5000 bytes of HTTP header data
Notes
BufferSize can be used in conjunction with DOSLimit to mitigate Denial of Service (DOS) attacks.
DenyFrom
Description
Similar to AcceptFrom, DenyFrom allows you to deny incoming connections from a specific set of IP address ranges. DenyFrom is either one or two character vectors that specify IPV4 and/or IPV6 address ranges. Each vector is a comma-delimited set of IP ranges.
Default
''
Examples
j.DenyFrom←'192.168.1.1/127,10.17.221.67/75'
Notes
This setting is documented as DenyEndPoints in the Conga User Guide. Unlike DenyEndPoints, you do not need to specify 'IPV4' or 'IPV6' as Jarvis can automatically determine which IP version is intended.
DOSLimit
Description
To reduce possible Denial Of Service (DOS) attacks, DOSLimit is used to limit the size of HTTP payloads that Jarvis will accept.
Default
¯1 which indicates to use the Conga default value of 10485760
Examples
j.DOSLimit←100000 ⍝ assumes no message will exceed 100000 bytes
Notes
You should specify a DOSLimit large enough to accept the largest message you anticipate receiving.
FIFO
Description
FIFO controls how Conga will process incoming requests. Setting FIFO to 1 will cause Conga to process requests in a "First In, First Out" order. Setting FIFO to 0 will cause Conga to process requests according to Conga's ReadyStrategy setting.
Default
1
Examples
j.FIFO←0 ⍝ turn FIFO mode off
Notes
This setting is documented as EnableFifo in the Conga User Guide.
Port
Description
Port is port number that Jarvis will listen on.
Default
8080
Examples
j.Port←22361
Notes
Allocating ports below 1024 on Linux typically requires root privileges due to security reasons.
RootCertDir
Description
When running Jarvis over HTTPS, RootCertDir is the path to a folder containing public root certificates.
Default
''
Examples
Set RootCertDir to the public root certificates folder installed with Dyalog. dir←1 1⊃1 ⎕NPARTS 2 ⎕NQ '.' 'GetCommandLineArgs' j.RootCertDir←dir,'PublicCACerts'
Notes
This setting is documented as RootCertDir in the Conga User Guide. See Security for more information.
Priority
Description
Priority is the GnuTLS priority string when using secure communications. Priority specifies the TLS session's handshake algorithms when negotiating a secure connection.
Default
'NORMAL:!CTYPE-OPENPGP'
Examples
j.Priority←'NORMAL:-MD5' ⍝ use the default without HMAC-MD5
Notes
Setting Priority to something other than the default requires an in-depth understanding of TLS session negotiation. Don't change it unless you know know what you're doing.
Secure
Description
Secure is a Boolean setting that controls whether Jarvis will use TLS. Valid settings are:
0 - do not use TLS
1 - attempt to use TSL (see notes below)
Default
0
Examples
j.Secure←1 ⍝ enable secure communications
Notes
Using TLS requires configuring several settings, see Using TLS.
ServerCertSKI
Description
Under Windows, when using the Microsoft Certificate Store to obtain the server certificate for Jarvis to use, ServerCertSKI is the Server Certificate Subject Key Identifier of the certificate.
ServerKeyFile is the name of the file containing the server's private key.
Default
''
Examples
j.ServerKeyFile←'/etc/mycerts/privatekey.pem'
Notes
Never share your private key file. For more information, see Using TLS.
ServerName
Description
ServerName is the Conga name for the Jarvis server. You can specify the name or have it Conga assign it.
Default
Assigned by Conga in the format 'SRVnnnnnnnn' where nnnnnnnn begins at 00000000 and is incremented when a Jarvis server using the same Conga instance is started.
ServerName can be useful when interacting with Conga, particularly when debugging. For example: j3.(LDRC.Describe ServerName) 0 MyJarvis Server Listen LDRC is Jarvis's local reference to the Conga library.
SSLValidation
Description
SSLValidation is employed as part of the certificate checking process and is more fully documented in the Conga User Guide.
Default
64 - request but do not require a client certificate
WaitTimeout is the number of milliseconds that Jarvis will wait in its listening loop before timing out.
Default
15000 - 15 seconds
Examples
j.WaitTimeout←60000 ⍝ wait a minute before timing out
Notes
Conga servers sit in a "wait" loop listening for communications from clients. If no communications occur before WaitTimeout has passed, Conga will signal a "Timeout" event and reiterate the "wait" loop.