The Arc.settings table stores settings for the arcology that can be configured by the administrator. This table is managed by the Hyperion engine.
The primary key has two parts: name and type. Name is the name of the object that owns the setting. The name must start with a package name prefix (or Arc for arcology objects). If the name is a service (e.g., "AI2.api") then the setting if for that service.
The type is either a well-known setting type or is a custom type defined by the package. See below for a list of types.
The value depends on the type.
Setting Types
host
This defines a host (and optional port) for a service. The value is string representing the host. If a port is specified (with :port syntax) then we use this port. Otherwise, we use the port defined in the service or the default port for the protocol.
For HTTP services, if the host is prefixed with http:// or https:// then we only allow that type of connection for the given host. Otherwise, we accept either HTTP or HTTPS connections (depending on the TLS setting).
We support multiple host
records per service. At arcology start-up time we see if a given service has one or more host
records. If they do, then we use those in preference to the ones in the service definition. Otherwise, we add records to Arc.settings from the service definition defaults.
sendMail
This stores the credentials required to send mail from the arcology. The name must either be defined by the package (and prefixed by the package name)
tls
This defines the TLS setting for an HTTP service. The value can be one of the following strings:
- none
- optional
- required