2.8 KiB
layout | title |
---|---|
page | Configuring a File Base |
Configuring a File Base
ENiGMA½ offers a powerful and flexible file base. Configuration of file the file base and areas is handled via the fileBase
section of config.hjson
.
ENiGMA½ File Base Key Concepts
First, there are some core concepts you should understand:
- Storage Tags
- Areas (and Area Tags)
Storage Tags
Storage Tags define paths to physical (file) storage locations that are referenced in a file Area entry. Each entry may be either a fully qualified path or a relative path. Relative paths are relative to the value set by the areaStoragePrefix
key (defaults to /path/to/enigma-bbs/file_base
).
Below is an example defining some storage tags using the relative and fully qualified forms:
storageTags: {
retro_pc_dos: "dos" // relative
retro_pc_bbs: "pc/bbs" // still relative!
bbs_stuff: "/path/to/bbs_stuff_storage" // fully qualified
}
ℹ️ On their own, storage tags don't do anything — they are simply pointers to storage locations on your system.
Areas
File base Areas are configured using the fileBase::areas
configuration block in config.hjson
. Valid members for an area are as follows:
Item | Required | Description |
---|---|---|
name |
👍 | Friendly area name. |
desc |
👎 | Friendly area description. |
storageTags : |
👍 | An array of storage tags for physical storage backing of the files in this area. If uploads are enabled for this area, first ** storage tag location is utilized! |
sort |
👎 | If present, provides the sort key for ordering. name is used otherwise. |
Example areas section:
areas: {
retro_pc: {
name: Retro PC
desc: Oldschool PC/DOS
storageTags: [ "retro_pc_dos", "retro_pc_bbs" ]
}
}
The above example defines an area called "Retro PC" which is referenced via the area tag of retro_pc
. Two storage tags are used: retro_pc_dos
, and retro_pc_bbs
. These storage tags can be seen in the Storage Tags example above.
Example Configuration
This combines the two concepts described above. When viewing the file areas from ENiGMA½ a user will only see the "Retro PC" area, but the files in the area are stored in the two locations defined in the storageTags
section. We also show a uploads area. Uploads are allowed do to the ACS block. See Uploads for more information.
fileBase: {
areaStoragePrefix: /enigma-bbs/file_base
storageTags: {
retro_pc_dos: "dos"
retro_pc_bbs: "pc/bbs"
}
areas: {
retro_pc: {
name: Retro PC
desc: Oldschool PC/DOS
storageTags: [ "retro_pc_dos", "retro_pc_bbs" ]
}
uploads: {
name: Uploads
desc: User uploads
acs: {
// allow any user to upload here
write: GM[users]
}
storageTags: [ "user_uploads" ]
}
}
}