Fork me on GitHub

Message Base

General Information

In ENiGMA½, a message base is divided into two logical grouping components: Message Conferences and Areas. Message conferences are top level containers while areas are for a specific topic. Messages are always stored internally with a area tag.

Conferences

Message Conferences are the top level container for 1:n Message Areas via the messageConferences block in config.hjson. A common setup may include a local conference and one or more conferences each dedicated to a particular message network such as fsxNet, ArakNet, etc.

Each conference is represented by a entry under messageConferences. Each entries top level key is it’s conference tag.

:bulb: It is highly recommended to use snake_case style message conference tags and area tags!

Config Item Required Description
name :+1: Friendly conference name
desc :+1: Friendly conference description.
sort :-1: Set to a number to override the default alpha-numeric sort order based on the name field.
default :-1: Specify true to make this the default conference (e.g. assigned to new users)
areas :+1: Container of 1:n areas described below
acs :-1: A standard ACS block. See ACS below.

ACS

An optional standard ACS block can be supplied with the following rules:

  • read: ACS required to read (see) this conference. Defaults to GM[users].
  • write: ACS required to write (post) to this conference. Defaults to GM[users].

Example

{
  messageConferences: {
    local: { // conference tag
      name: Local
      desc: Local discussion
      sort: 1
      default: true
      acs: {
        read: GM[users] // default
      }
    }
  }
}

Message Areas

Message Areas are topic specific containers for messages that live within a particular conference. The top level key for an area sets it’s area tag. For example, “General Discussion” may live under a Local conference while an fsxNet conference may contain “BBS Discussion”.

Config Item Required Description
name :+1: Friendly area name.
desc :+1: Friendly area description.
sort :-1: Set to a number to override the default alpha-numeric sort order based on the name field.
default :-1: Specify true to make this the default area (e.g. assigned to new users)
acs :-1: A standard ACS block. See ACS below.
autoSignatures :-1: Set to false to disable auto-signatures in this area.
realNames :-1: Set to true to use real names in this area.

ACS

An optional standard ACS block can be supplied with the following rules:

  • read: ACS required to read (see) this area. Defaults to GM[users].
  • write: ACS required to write (post) to this area. Defaults to GM[users].

Example

messageConferences: {
  local: {
    // ... see above ...
    areas: {
      enigma_dev: { // Area tag - required elsewhere!
        name: ENiGMA 1/2 Development
        desc: ENiGMA 1/2 development and discussion!
        sort: 1
        default: true
        acs: {
          read: GM[users] // default
          write: GM[l33t] // super elite ENiGMA 1/2 users!
        }
      }
    }
  }
}

Importing

FidoNet style .na files as well as legacy AREAS.BBS files in common formats can be imported using oputil.js mb import-areas. See The oputil CLI for more information and usage.