Merge branch 'master' of ssh://numinibsd/git/base/enigma-bbs
This commit is contained in:
2
.eslintignore
Normal file
2
.eslintignore
Normal file
@@ -0,0 +1,2 @@
|
||||
# ACS parser is generated
|
||||
core/acs_parser.js
|
||||
@@ -3,11 +3,13 @@
|
||||
"es6": true,
|
||||
"node": true
|
||||
},
|
||||
"extends": "eslint:recommended",
|
||||
"extends": [
|
||||
"eslint:recommended"
|
||||
],
|
||||
"rules": {
|
||||
"indent": [
|
||||
"error",
|
||||
"tab",
|
||||
4,
|
||||
{
|
||||
"SwitchCase" : 1
|
||||
}
|
||||
@@ -24,6 +26,7 @@
|
||||
"error",
|
||||
"always"
|
||||
],
|
||||
"comma-dangle": 0
|
||||
"comma-dangle": 0,
|
||||
"no-trailing-spaces" :"warn"
|
||||
}
|
||||
}
|
||||
4
.github/ISSUE_TEMPLATE.md
vendored
4
.github/ISSUE_TEMPLATE.md
vendored
@@ -3,8 +3,8 @@ For :bug: bug reports, please fill out the information below plus any additional
|
||||
**Short problem description**
|
||||
|
||||
**Environment**
|
||||
- [ ] I am using Node.js v6.x or higher
|
||||
- [ ] `npm install` reports success
|
||||
- [ ] I am using Node.js v10.x LTS or higher
|
||||
- [ ] `npm install` or `yarn` reports success
|
||||
- Actual Node.js version (`node --version`):
|
||||
- Operating system (`uname -a` on *nix systems):
|
||||
- Revision (`git rev-parse --short HEAD`):
|
||||
|
||||
12
.gitignore
vendored
12
.gitignore
vendored
@@ -2,7 +2,13 @@
|
||||
*.pem
|
||||
|
||||
# Various directories
|
||||
logs/
|
||||
config/
|
||||
db/
|
||||
dropfiles/
|
||||
node_modules/
|
||||
drop/
|
||||
file_base/
|
||||
logs/
|
||||
mail/
|
||||
node_modules/
|
||||
docs/_site/
|
||||
docs/.sass-cache/
|
||||
.vscode/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Copyright (c) 2015-2017, Bryan D. Ashby
|
||||
Copyright (c) 2015-2020, Bryan D. Ashby
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
||||
71
README.md
71
README.md
@@ -1,6 +1,6 @@
|
||||
# ENiGMA½ BBS Software
|
||||
|
||||

|
||||

|
||||
|
||||
ENiGMA½ is a modern BBS software with a nostalgic flair!
|
||||
|
||||
@@ -8,38 +8,40 @@ ENiGMA½ is a modern BBS software with a nostalgic flair!
|
||||
## Features Available Now
|
||||
* Multi platform: Anywhere [Node.js](https://nodejs.org/) runs likely works (known to work under Linux, FreeBSD, OpenBSD, OS X and Windows)
|
||||
* Unlimited multi node support (for all those BBS "callers"!)
|
||||
* **Highly** customizable via [HJSON](http://hjson.org/) based configuration, menus, and themes in addition to JavaScript based mods
|
||||
* [MCI support](docs/mci.md) for lightbars, toggles, input areas, and so on plus many other other bells and whistles
|
||||
* **Highly** customizable via [HJSON](http://hjson.org/) based configuration, menus, and themes in addition to JavaScript based [mods](docs/modding/existing-mods.md)
|
||||
* [MCI support](docs/art/mci.md) for lightbars, toggles, input areas, and so on plus many other other bells and whistles
|
||||
* Telnet, **SSH**, and both secure and non-secure [WebSocket](https://en.wikipedia.org/wiki/WebSocket) access built in! Additional servers are easy to implement
|
||||
* [CP437](http://www.ascii-codes.com/) and UTF-8 output
|
||||
* [SyncTerm](http://syncterm.bbsdev.net/) style font and baud emulation support. Display PC/DOS and Amiga style artwork as it's intended! In general, ANSI-BBS / [cterm.txt](http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/src/conio/cterm.txt?content-type=text%2Fplain&revision=HEAD) / [bansi.txt](http://www.bbsdocumentary.com/library/PROGRAMS/GRAPHICS/ANSI/bansi.txt) are followed for expected BBS behavior
|
||||
* Full [SAUCE](http://www.acid.org/info/sauce/sauce.htm) support
|
||||
* Renegade style pipe color codes
|
||||
* [SQLite](http://sqlite.org/) storage of users, message areas, and so on
|
||||
* Strong [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2) backed password encryption
|
||||
* [Door support](docs/doors.md) including common dropfile formats for legacy DOS doors. Built in [BBSLink](http://bbslink.net/), [DoorParty](http://forums.throwbackbbs.com/), and [Exodus](https://oddnetwork.org/exodus/) support!
|
||||
* [Bunyan](https://github.com/trentm/node-bunyan) logging
|
||||
* [Message networks](docs/msg_networks.md) with FidoNet Type Network (FTN) + BinkleyTerm Style Outbound (BSO) message import/export
|
||||
* [Gazelle](https://github.com/WhatCD/Gazelle) inspirted File Bases including fast fully indexed full text search (FTS), #tags, and HTTP(S) temporary download URLs using a built in [web server](docs/web_server.md). Legacy X/Y/Z modem also supported!
|
||||
* [SyncTERM](http://syncterm.bbsdev.net/) style font and baud emulation support. Display PC/DOS and Amiga style artwork as it's intended! In general, ANSI-BBS / [cterm.txt](http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/src/conio/cterm.txt?content-type=text%2Fplain&revision=HEAD) / [bansi.txt](http://www.bbsdocumentary.com/library/PROGRAMS/GRAPHICS/ANSI/bansi.txt) are followed for expected BBS behavior.
|
||||
* Full [SAUCE](http://www.acid.org/info/sauce/sauce.htm) support.
|
||||
* Renegade style [pipe color codes](/docs/configuration/colour-codes.md).
|
||||
* [SQLite](http://sqlite.org/) storage of users, message areas, etc.
|
||||
* Strong [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2) backed password encryption.
|
||||
* Support for 2-Factor Authentication with One-Time-Passwords
|
||||
* [Door support](docs/modding/door-servers.md) including common dropfile formats for legacy DOS doors. Built in [BBSLink](http://bbslink.net/), [DoorParty](http://forums.throwbackbbs.com/), [Exodus](https://oddnetwork.org/exodus/) and [CombatNet](http://combatnet.us/) support!
|
||||
* [Bunyan](https://github.com/trentm/node-bunyan) logging!
|
||||
* [Message networks](docs/messageareas/message-networks.md) with FidoNet Type Network (FTN) + BinkleyTerm Style Outbound (BSO) message import/export. Messages Bases can also be exposed via [Gopher](docs/servers/gopher.md), or [NNTP](docs/servers/nntp.md)!
|
||||
* [Gazelle](https://github.com/WhatCD/Gazelle) inspired File Bases including fast fully indexed full text search (FTS), #tags, and HTTP(S) temporary download URLs using a built in [web server](docs/servers/web-server.md). Legacy X/Y/Z modem also supported!
|
||||
* Upload processor supporting [FILE_ID.DIZ](https://en.wikipedia.org/wiki/FILE_ID.DIZ) and [NFO](https://en.wikipedia.org/wiki/.nfo) extraction, year estimation, and more!
|
||||
* ANSI support in the Full Screen Editor (FSE), file descriptions, and so on
|
||||
|
||||
* ANSI support in the Full Screen Editor (FSE), file descriptions, etc.
|
||||
* A built in achievement system. BBSing gamified!
|
||||
|
||||
## Documentation
|
||||
[Browse the docs online](https://nuskooler.github.io/enigma-bbs/). Be sure to checkout the [/docs/](/docs/) folder as well for the latest and greatest documentation.
|
||||
|
||||
## In the Works
|
||||
* More ES6+ usage, and **documentation**!
|
||||
* More ACS support coverage
|
||||
* SysOp dashboard (ye ol' WFC)
|
||||
* A lot more! Feel free to request features via [the issue tracker](https://github.com/NuSkooler/enigma-bbs/issues)
|
||||
Many more features are in the pipeline. Checkout the [the issue tracker](https://github.com/NuSkooler/enigma-bbs/issues) and feel free to request features (or contribute!) features.
|
||||
|
||||
## Known Issues
|
||||
As of now this is considered **alpha** code! Please **expect bugs** :bug: -- and when you find them, log issues and/or submit pull requests. Feature requests, suggestions, and so on are always welcome! I am also **looking for semi dedicated testers, artists, etc**!
|
||||
As of now this is considered **alpha** code! Please **expect bugs** :bug: -- and when you find them, log issues and/or submit pull requests. With that said, the code is actually quite stable and is used by a number of boards.
|
||||
|
||||
See [the issue tracker](https://github.com/NuSkooler/enigma-bbs/issues) for more information.
|
||||
|
||||
## Support
|
||||
* Use [the issue tracker](https://github.com/NuSkooler/enigma-bbs/issues)
|
||||
* **Discussion on a ENiGMA BBS!** (see Boards below)
|
||||
* IRC: **#enigma-bbs** on **chat.freenode.net**
|
||||
* Discussion on [fsxNet](http://bbs.geek.nz/#fsxNet) available on many boards
|
||||
* IRC: **#enigma-bbs** on **chat.freenode.net** ([webchat](https://webchat.freenode.net/?channels=enigma-bbs))
|
||||
* FSX_ENG on [fsxNet](http://bbs.geek.nz/#fsxNet) available on many boards
|
||||
* Email: bryan -at- l33t.codes
|
||||
* [Facebook ENiGMA½ group](https://www.facebook.com/groups/enigmabbs/)
|
||||
|
||||
@@ -49,21 +51,25 @@ ENiGMA has been tested with many terminals. However, the following are suggested
|
||||
* [SyncTERM](http://syncterm.bbsdev.net/)
|
||||
* [EtherTerm](https://github.com/M-griffin/EtherTerm)
|
||||
* [NetRunner](http://mysticbbs.com/downloads.html)
|
||||
* [MagiTerm](https://magickabbs.com/index.php/magiterm/)
|
||||
|
||||
## Boards
|
||||
* WQH: :skull: [Xibalba](https://l33t.codes/xibalba-bbs) :skull: (**telnet://xibalba.l33t.codes:44510** or via SSH secure on port 44511)
|
||||
* [Exotica](https://exoticabbs.com/): (**telnet://exoticabbs.com:8888**)
|
||||
* [force9](http://bbs.force9.org/): (**telnet://bbs.force9.org**)
|
||||
|
||||
## Some Boards
|
||||
* :skull: [Xibalba - ENiGMA WHQ](https://l33t.codes/xibalba-bbs) :skull: (**ssh://xibalba.l33t.codes:44511** or **telnet://xibalba.l33t.codes:44510**)
|
||||
* [fORCE9](http://bbs.force9.org/): (**telnet://bbs.force9.org**)
|
||||
* [Undercurrents](https://undercurrents.io): (**ssh://undercurrents.io**)
|
||||
* [PlaneT Afr0](https://planetafr0.org/): (**ssh://planetafr0.org:8889**)
|
||||
* [Goblin Studio](https://goblin.strangled.net): (**ssh://goblin.strangled.net:8889**)
|
||||
|
||||
## Installation
|
||||
On *nix type systems:
|
||||
```
|
||||
curl -o- https://raw.githubusercontent.com/NuSkooler/enigma-bbs/master/misc/install.sh | bash
|
||||
curl -o- https://raw.githubusercontent.com/NuSkooler/enigma-bbs/0.0.11-beta/misc/install.sh | bash
|
||||
```
|
||||
|
||||
Please see the [Quickstart](docs/index.md) for more information.
|
||||
Please see [Installation Methods](https://nuskooler.github.io/enigma-bbs/installation/installation-methods.html) for Windows, Docker, and so on...
|
||||
|
||||
## Special Thanks
|
||||
* [Dave Stephens aka RiPuk](https://github.com/davestephens) for the awesome [ENiGMA website](https://enigma-bbs.github.io/) and [KICK ASS documentation](https://nuskooler.github.io/enigma-bbs/), code contributions, etc.
|
||||
* [Daniel Mecklenburg Jr.](https://github.com/codewar65) for the awesome VTX terminal and general coding talk
|
||||
* [M. Brutman](http://www.brutman.com/), author of [mTCP](http://www.brutman.com/mTCP/mTCP.html) (Interwebs for DOS!)
|
||||
* [M. Griffin](https://github.com/M-griffin), author of [Enthral BBS](https://github.com/M-griffin/Enthral), [Oblivion/2 XRM](https://github.com/M-griffin/Oblivion2-XRM) and [EtherTerm](https://github.com/M-griffin/EtherTerm)!
|
||||
@@ -71,14 +77,17 @@ Please see the [Quickstart](docs/index.md) for more information.
|
||||
* [Luciano Ayres](http://www.lucianoayres.com.br/) of [Blocktronics](http://blocktronics.org/), creator of the "Mystery Skulls" default ENiGMA½ theme!
|
||||
* Sudndeath for Xibalba ANSI work!
|
||||
* Jack Phlash for kick ass ENiGMA½ and Xibalba ASCII (Check out [IMPURE60](http://pc.textmod.es/pack/impure60/)!!)
|
||||
* Avon of [Agency BBS](http://bbs.geek.nz/) and [fsxNet](http://bbs.geek.nz/#fsxNet)
|
||||
* Avon of [Agency BBS](http://bbs.geek.nz/) and [fsxNet](http://bbs.geek.nz/#fsxNet) for putting up with my experiments to his system and for FSX_ENG!
|
||||
* Maskreet of [Throwback BBS](http://www.throwbackbbs.com/) hosting [DoorParty](http://forums.throwbackbbs.com/)!
|
||||
* [Apam](https://github.com/apamment) of HappyLand BBS and [HappyNet](http://andrew.homeunix.org/doku.php?id=happynet)!
|
||||
* [Apam](https://github.com/apamment) of [Magicka](https://magickabbs.com/)
|
||||
* [nail/blocktronics](http://blocktronics.org/tag/nail/) for the [sickmade Xibalba logo](http://pc.textmod.es/pack/blocktronics-420/n-xbalba.ans)!
|
||||
* [Whazzit/blocktronics](http://blocktronics.org/tag/whazzit/) for the amazing Mayan ANSI pieces scattered about Xibalba BBS!
|
||||
* [Smooth](https://16colo.rs/tags/artist/smooth)/[fUEL](https://fuel.wtf/) for lots of dope art. Why not [snag a T-Shirt](https://www.redbubble.com/people/araknet/works/39126831-enigma-1-2-software-logo-design-by-smooth-of-fuel?p=t-shirt)?
|
||||
|
||||
## License
|
||||
Released under the [BSD 2-clause](https://opensource.org/licenses/BSD-2-Clause) license:
|
||||
|
||||
Copyright (c) 2015-2017, Bryan D. Ashby
|
||||
Copyright (c) 2015-2020, Bryan D. Ashby
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
||||
192
UPGRADE.md
192
UPGRADE.md
@@ -1,65 +1,127 @@
|
||||
# Introduction
|
||||
This document covers basic upgrade notes for major ENiGMA½ version updates.
|
||||
|
||||
|
||||
# Before Upgrading
|
||||
* Always back up your system!
|
||||
* At least back up the `db` directory and your `menu.hjson` (or renamed equivalent)
|
||||
|
||||
|
||||
# General Notes
|
||||
Upgrades often come with changes to the default `menu.hjson`. It is wise to
|
||||
use a *different* file name for your BBS's version of this file and point to
|
||||
it via `config.hjson`. For example:
|
||||
|
||||
```hjson
|
||||
general: {
|
||||
menuFile: my_bbs.hjson
|
||||
}
|
||||
```
|
||||
|
||||
After updating code, use a program such as DiffMerge to merge in updates to
|
||||
`my_bbs.hjson` from the shipping `menu.hjson`.
|
||||
|
||||
|
||||
# Upgrading the Code
|
||||
Upgrading from GitHub is easy:
|
||||
|
||||
```bash
|
||||
cd /path/to/enigma-bbs
|
||||
git pull
|
||||
rm -rf npm_modules # do this any time you update Node.js itself
|
||||
npm install
|
||||
```
|
||||
|
||||
|
||||
# Problems
|
||||
Report your issue on Xibalba BBS, hop in #enigma-bbs on Freenet and chat, or
|
||||
[file a issue on GitHub](https://github.com/NuSkooler/enigma-bbs/issues).
|
||||
|
||||
|
||||
# 0.0.1-alpha to 0.0.4-alpha
|
||||
## Node.js 6.x+ LTS is now **required**
|
||||
You will need to upgrade Node.js to [6.x+](https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V6.md). If using [nvm](https://github.com/creationix/nvm) (you should be!) the process will go something like this:
|
||||
```bash
|
||||
nvm install 6
|
||||
nvm alias default 6
|
||||
```
|
||||
|
||||
### ES6
|
||||
Newly written code will use ES6 and a lot of code has started the migration process. Of note is the `MenuModule` class. If you have created a mod that inherits from `MenuModule`, you will need to upgrade your class to ES6.
|
||||
|
||||
## Manual Database Upgrade
|
||||
A few upgrades need to be made to your SQLite databases:
|
||||
|
||||
```bash
|
||||
rm db/file.sqltie3 # safe to delete this time as it was not used previously
|
||||
sqlite3 db/message.sqlite
|
||||
sqlite> INSERT INTO message_fts(message_fts) VALUES('rebuild');
|
||||
```
|
||||
|
||||
## Archiver Changes
|
||||
If you have overridden or made additions to archivers in your `config.hjson` you will need to update them. See [Archive Configuration](docs/archive.md) and `core/config.js`
|
||||
|
||||
## File Base Configuration
|
||||
As 0.0.4-alpha contains file bases, you'll want to create a suitable configuration if you wish to use the feature. See [File Base Configuration](docs/file_base.md).
|
||||
# Introduction
|
||||
This document covers basic upgrade notes for major ENiGMA½ version updates.
|
||||
|
||||
# Before Upgrading
|
||||
* Always back up your system!
|
||||
* Seriously, always back up your system!
|
||||
* At least back up the `db` directory and your `menu.hjson` (or renamed equivalent)
|
||||
|
||||
# General Notes
|
||||
## Configuration File Updates
|
||||
In general, look at the `menu_template.in.hjson`, and `config_template.in.hjson` as well as the default `luciano_blocktronics/theme.hjson` files when you update. These files may come with new sections you wish to merge into your system!
|
||||
|
||||
### menu.hjson
|
||||
Upgrades often come with changes to the default `menu_template.in.hjson`. It is wise to use a *different* file name for your BBS's version of this file and point to it via `config.hjson`. For example:
|
||||
|
||||
```hjson
|
||||
general: {
|
||||
menuFile: my_bbs.hjson
|
||||
}
|
||||
```
|
||||
|
||||
After updating code, use a program such as DiffMerge to merge in updates to
|
||||
`my_bbs.hjson` from the shipping `menu.hjson`.
|
||||
|
||||
### theme.hjson
|
||||
Any custom themes you have created may now be missing features as well. Take a look at the default `luciano_blocktronics/theme.hjson` file. You can use missing sections in your `theme.hjson` (which will generally correspond to sections you've also merged in to your `menu.hjson`).
|
||||
|
||||
|
||||
# Upgrading the Code
|
||||
Upgrading from GitHub is easy:
|
||||
|
||||
```bash
|
||||
cd /path/to/enigma-bbs
|
||||
git pull
|
||||
rm -rf npm_modules # do this any time you update Node.js itself
|
||||
npm install
|
||||
```
|
||||
|
||||
# Problems
|
||||
Report your issue on Xibalba BBS, hop in #enigma-bbs on FreeNode and chat, or
|
||||
[file a issue on GitHub](https://github.com/NuSkooler/enigma-bbs/issues).
|
||||
|
||||
# 0.0.10-alpha to 0.0.11-beta
|
||||
* Node.js 12.x LTS is now in use. Follow standard Node.js upgrade procedures (e.g.: `nvm install 12 && nvm use 12`).
|
||||
|
||||
# 0.0.9-alpha to 0.0.10-alpha
|
||||
* Security related files such as private keys and certs are now looked for in `config/security` by default.
|
||||
* Default archive handler for zip files has switched to InfoZip due to a bug in the latest p7Zip packages causing "volume not found" errors. Ensure you have the InfoZip `zip` and `unzip` commands in ENiGMA's path. You can switch back to 7Zip by overriding `archiveHandler` for `application/zip` in your `config.hjson` under `fileTypes` to `7Zip`.
|
||||
|
||||
# 0.0.8-alpha to 0.0.9-alpha
|
||||
* Development is now against Node.js 10.x LTS. Follow your standard upgrade path to update to Node 10.x before using 0.0.9-alpha!
|
||||
* The property `justify` found on various views previously had `left` and `right` values swapped (oops!); you will need to adjust any custom `theme.hjson` that use one or the other and swap them as well.
|
||||
* Possible breaking changes in FSE: The MCI code `%TL13` for error indicator is now `%TL4`. This is part of a cleanup and standardization on "custom ranges". You may need to update your `theme.hjson` and related artwork.
|
||||
* Removed view width auto-size: Some views still can auto-size their height, but in general you should be explicit in your themes
|
||||
* More standardization using "custom ranges" and `itemFormat` / `focusItemFormat` semantics. Update your themes!
|
||||
* In addition to using `itemFormat`, the `onelinerz` module uses `userName` vs `username` (note the case) to match other modules
|
||||
* `loginServers.webSocket` configuration block has changed to be more consistent with other servers. Example:
|
||||
```
|
||||
webSocket: {
|
||||
ws: {
|
||||
enabled: true
|
||||
}
|
||||
wss: {
|
||||
enabled: true
|
||||
port: 1234
|
||||
}
|
||||
proxied: true // X-Forwarded-Proto: https support
|
||||
}
|
||||
```
|
||||
* The module export `registerEvents` has been deprecated. If you have a module that depends on this, use the new more generic `moduleInitialize` export instead.
|
||||
* The `system.db` `user_event_log` table has been updated to include a unique session ID. Previously this table was not used, but you will need to perform a slight maintenance task before it can be properly used. After updating to `0.0.9-alpha`, please run the following: `sqlite3 db/system.db DROP TABLE user_event_log;`. The new table format will be created and used at startup.
|
||||
* If you have art configured for message conference or area selection via the `art` configuration value, you will need to include a `show_art` menu reference. Defaulted to `changeMessageConfPreArt` for conferences and `changeMessageAreaPreArt` for areas & included in the example `menu.hjson`.
|
||||
* Config `defaults` section was theme related and as such, has been renamed to `theme`. `defaults.theme` is now `theme.default`, and `preLoginTheme` is now `theme.preLogin`. See `config.js` if this isn't clear as mud.
|
||||
* Similar to the last item, `defaults.general.passwordChar` in `theme.hjson` is now just `defaults.passwordChar`.
|
||||
|
||||
|
||||
# 0.0.7-alpha to 0.0.8-alpha
|
||||
ENiGMA 0.0.8-alpha comes with some structure changes:
|
||||
* Configuration files are defaulted to `./config`. Related, the `--config` option now points to a configuration **directory**
|
||||
* `./mods/art` has been moved to `./art/general`
|
||||
* `./mods` is now reserved for actual user addon modules
|
||||
* Themes have been moved from `./mods/themes` to `./art/themes`
|
||||
|
||||
With the change to the `./mods` directory, `@systemModule` is now implied for `module` declarations in `menu.hjson`. To use a user module in `./mods` you must specify `@userModule`!
|
||||
|
||||
With the above changes, you'll need to to at least:
|
||||
* Move your `~/.config/enigma-bbs/config.hjson` to `./config/config.hjson` or utlize the `--config` option.
|
||||
* Move your `prompt.hjson` and `menu.hjson` (e.g. `myboardname.hjson`) to `./config`
|
||||
* Move any non-theme art files, and theme directories to their appropriate locations mentioned above
|
||||
* Move any module directories such as `message_post_evt` to `./mods/`
|
||||
* Move any certificates, pub/private keys, etc. from `./misc` to `./config`
|
||||
* Specify user modules as `@userModule:my_module_name`
|
||||
|
||||
# 0.0.6-alpha to 0.0.7-alpha
|
||||
No issues
|
||||
|
||||
# 0.0.5-alpha to 0.0.6-alpha
|
||||
No issues
|
||||
|
||||
# 0.0.4-alpha to 0.0.5-alpha
|
||||
No issues
|
||||
|
||||
# 0.0.1-alpha to 0.0.4-alpha
|
||||
## Node.js 6.x+ LTS is now **required**
|
||||
You will need to upgrade Node.js to [6.x+](https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V6.md). If using [nvm](https://github.com/creationix/nvm) (you should be!) the process will go something like this:
|
||||
```bash
|
||||
nvm install 6
|
||||
nvm alias default 6
|
||||
```
|
||||
|
||||
### ES6
|
||||
Newly written code will use ES6 and a lot of code has started the migration process. Of note is the `MenuModule` class. If you have created a mod that inherits from `MenuModule`, you will need to upgrade your class to ES6.
|
||||
|
||||
## Manual Database Upgrade
|
||||
A few upgrades need to be made to your SQLite databases:
|
||||
|
||||
```bash
|
||||
rm db/file.sqltie3 # safe to delete this time as it was not used previously
|
||||
sqlite3 db/message.sqlite
|
||||
sqlite> INSERT INTO message_fts(message_fts) VALUES('rebuild');
|
||||
```
|
||||
|
||||
## Archiver Changes
|
||||
If you have overridden or made additions to archivers in your `config.hjson` you will need to update them. See [Archive Configuration](docs/archive.md) and `core/config.js`
|
||||
|
||||
## File Base Configuration
|
||||
As 0.0.4-alpha contains file bases, you'll want to create a suitable configuration if you wish to use the feature. See [File Base Configuration](docs/file_base.md).
|
||||
|
||||
109
WHATSNEW.md
Normal file
109
WHATSNEW.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# Whats New
|
||||
This document attempts to track **major** changes and additions in ENiGMA½. For details, see GitHub.
|
||||
|
||||
## 0.0.11-beta
|
||||
* Upgraded from `alpha` to `beta` -- The software is far along and mature enough at this point!
|
||||
* Development is now against Node.js 12.x LTS. Other versions may work but are not currently supported!
|
||||
* [QWK support](/docs/messageareas/qwk.md)
|
||||
* `oputil fb scan *areaTagWildcard*` scans all areas in which wildcard is matched.
|
||||
* The archiver configuration `escapeTelnet` has been renamed `escapeIACs`. Support for the old value will be removed in the future.
|
||||
|
||||
## 0.0.10-alpha
|
||||
+ `oputil.js user rename USERNAME NEWNAME`
|
||||
+ `my_messages.js` module (defaulted to "m" at the message menu) to list public messages addressed to the currently logged in user. Takes into account their username and `real_name` property.
|
||||
+ SSH Public Key Authentication has been added. The system uses a OpenSSH style public key set on the `ssh_public_key` user property.
|
||||
+ 2-Factor (2FA) authentication is now available using [RFC-4266 - HOTP: HMAC-Based One-Time Password Algorithm)](https://tools.ietf.org/html/rfc4226), [RFC-6238 - TOTP: Time-Based One-Time Password Algorithm](https://tools.ietf.org/html/rfc6238), or [Google Authenticator](http://google-authenticator.com/). QR codes for activation are available as well. One-time backup aka recovery codes can also be used. See [Security](/docs/configuration/security.md) for more info!
|
||||
* New ACS codes for new 2FA/OTP: `AR` and `AF`. See [ACS](/docs/configuration/acs.md) for details.
|
||||
+ `oputil.js user 2fa USERNAME TYPE` enables 2-factor authentication for a user.
|
||||
* `oputil.js user info USERNAME --security` can now display additional security information such as 2FA/OTP.
|
||||
* `oputil.js fb scan --quick` is now the default. Override with `--full`.
|
||||
* ACS checks can now be applied to form actions. For example:
|
||||
```hjson
|
||||
{
|
||||
value: { command: "SEC" }
|
||||
action: [
|
||||
{
|
||||
// secure connections can go here
|
||||
acs: SC
|
||||
action: @menu:securityMenu
|
||||
}
|
||||
{
|
||||
// non-secure connections
|
||||
action: @menu:secureConnectionRequired
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
* `idleLogoutSeconds` and `preAuthIdleLogoutSeconds` can now be set to `0` to fully disable the idle monitor.
|
||||
* Switched default archive handler for zip files from 7zip to InfoZip (`zip` and `unzip`) commands. See [UPGRADE](UPGRADE.md).
|
||||
* Menu submit `action`'s can now in addition to being a simple string such as `@menu:someMenu`, or an array of objects with ACS checks, be a simple array of strings. In this case, a random match will be made. For example:
|
||||
```hjson
|
||||
submit: [
|
||||
{
|
||||
value: { command: "FOO" }
|
||||
action: [
|
||||
// one of the following actions will be matched:
|
||||
"@menu:menuStyle1"
|
||||
"@menu:menuStyle2"
|
||||
]
|
||||
}
|
||||
]
|
||||
```
|
||||
* Added `read` (list/view) and `write` (post) ACS support to message conferences and areas.
|
||||
* Many new built in modules adding support for things like auto signatures, listing "my" messages, top stats, etc. Take a look in the docs for setting them up!
|
||||
* Built in MRC support!
|
||||
* Added an customizable achievement system!
|
||||
|
||||
|
||||
## 0.0.9-alpha
|
||||
* Development is now against Node.js 10.x LTS. While other Node.js series may continue to work, you're own your own and YMMV!
|
||||
* Fixed `justify` properties: `left` and `right` values were formerly swapped (oops!)
|
||||
* Menu items can now be arrays of *objects* not just arrays of strings.
|
||||
* The properties `itemFormat` and `focusItemFormat` allow you to supply the string format for items. For example if a menu object is `{ "userName" : "Bob", "age" : 35 }`, a `itemFormat` might be `|04{userName} |08- |14{age}`.
|
||||
* If no `itemFormat` is supplied, the default formatter is `{text}`.
|
||||
* Setting the `data` member of an object will cause form submissions to use this value instead of the selected items index.
|
||||
* See the default `luciano_blocktronics` `matrix` menu for example usage.
|
||||
* You can now set the `sort` property on a menu to sort items. If `true` items are sorted by `text`. If the value is a string, it represents the key in menu objects to sort by.
|
||||
* Hot-reload of configuration files such as menu.hjson, config.hjson, your themes.hjson, etc.: When a file is saved, it will be hot-reloaded into the running system
|
||||
* Note that any custom modules should make use of the new Config.get() method.
|
||||
* The old concept of `autoScale` has been removed. See https://github.com/NuSkooler/enigma-bbs/issues/166
|
||||
* Ability to delete from personal mailbox (finally!)
|
||||
* Add ability to skip file and/or message areas during newscan. Set config.omitFileAreaTags and config.omitMessageAreaTags in new_scan configuration of your menu.hjson
|
||||
* `{userName}` (sanitized) and `{userNameRaw}` as well as `{cwd}` have been added to param options when launching a door.
|
||||
* Any module may now register for a system startup initialization via the `initializeModules(initInfo, cb)` export.
|
||||
* User event log is now functional. Various events a user performs will be persisted to the `system.sqlite3` `user_event_log` table for up to 90 days. An example usage can be found in the updated `last_callers` module where events are turned into Ami/X style actions. Please see `UPGRADE.md`!
|
||||
* New MCI codes including general purpose movement codes. See [MCI codes](docs/art/mci.md)
|
||||
* `install.sh` will now attempt to use NPM's `--build-from-source` option when ARM is detected.
|
||||
* `oputil.js config new` will now generate a much more complete configuration file with comments, examples, etc. `oputil.js config cat` dumps your current config to stdout.
|
||||
* Handling of failed login attempts is now fully in. Disconnect clients, lock out accounts, ability to auto or unlock at (email-driven) password reset, etc. See `users.failedLogin` in `config.hjson`.
|
||||
* NNTP support! See [NNTP docs](/docs/servers/nntp.md) for more information.
|
||||
* `oputil.js user rm` and `oputil.js user info` are in! See [oputil CLI](/docs/admin/oputil.md).
|
||||
* Performing a file scan/import using `oputil.js fb scan` now recognizes various `FILES.BBS` formats.
|
||||
* Usernames found in the `config.users.badUserNames` are now not only disallowed from applying, but disconnected at any login attempt.
|
||||
* Total minutes online is now tracked for users. Of course, it only starts after you get the update :)
|
||||
* Form entries in `menu.hjson` can now be omitted from submission handlers using `omit: true`
|
||||
|
||||
## 0.0.8-alpha
|
||||
* [Mystic BBS style](http://wiki.mysticbbs.com/doku.php?id=displaycodes) extended pipe color codes. These allow for example, to set "iCE" background colors.
|
||||
* File descriptions (FILE_ID.DIZ, etc.) now support Renegade |## pipe, PCBoard, and other less common color codes found commonly in BBS era scene releases.
|
||||
* New menu stack flags: `noHistory` now works as expected, and a new addition of `popParent`. See the default `menu.hjson` for usage.
|
||||
* File structure changes making ENiGMA½ much easier to maintain and run in Docker. Thanks to RiPuk ([Dave Stephens](https://github.com/davestephens))! See [UPGRADE.md](UPGRADE.md) for details.
|
||||
* Switch to pure JS [xxhash](https://github.com/mscdex/node-xxhash) instead of farmhash. Too many issues on ARM and other less popular CPUs with farmhash ([Dave Stephens](https://github.com/davestephens))
|
||||
* Native [CombatNet](http://combatnet.us/) support! ([Dave Stephens](https://github.com/davestephens))
|
||||
* Fix various issues with legacy DOS Telnet terminals. Note that some may still have issues with extensive CPR usage by ENiGMA½ that will be addressed in a future release.
|
||||
* Added web (http://, https://) based download manager including batch downloads. Clickable links if using [VTXClient](https://github.com/codewar65/VTX_ClientServer)!
|
||||
* General VTX hyperlink support for web links
|
||||
* DEL vs Backspace key differences in FSE
|
||||
* Correctly parse oddball `INTL`, `TOPT`, `FMPT`, `Via`, etc. FTN kludge lines
|
||||
* NetMail support! You can now send and receive NetMail. To send a NetMail address a external user using `Name <address>` format from your personal email menu. For example, `Foo Bar <123:123/123>`. The system also detects other formats such asa `Name @ address` (`Foo Bar@123:123/123`)
|
||||
* `oputil.js`: Added `mb areafix` command to quickly send AreaFix messages from the command line. You can manually send them from personal mail as well.
|
||||
* `oputil.js fb rm|remove|del|delete` functionality to remove file base entries.
|
||||
* `oputil.js fb desc` for setting/updating a file entry description.
|
||||
* Users can now (re)set File and Message base pointers
|
||||
* Add `--update` option to `oputil.js fb scan`
|
||||
* Fix @watch path support for event scheduler including FTN, e.g. when looking for a `toss!.now` file produced by Binkd.
|
||||
|
||||
...LOTS more!
|
||||
|
||||
## Pre 0.0.8-alpha
|
||||
See GitHub
|
||||
BIN
art/general/NEWSCAN.ANS
Normal file
BIN
art/general/NEWSCAN.ANS
Normal file
Binary file not shown.
Binary file not shown.
BIN
art/themes/luciano_blocktronics/2FACONFSCR.ans
Normal file
BIN
art/themes/luciano_blocktronics/2FACONFSCR.ans
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/2FAOTP.ans
Normal file
BIN
art/themes/luciano_blocktronics/2FAOTP.ans
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/2FAOTPSECREQ.ans
Normal file
BIN
art/themes/luciano_blocktronics/2FAOTPSECREQ.ans
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/ACCOUNTINACTIVE.ANS
Normal file
BIN
art/themes/luciano_blocktronics/ACCOUNTINACTIVE.ANS
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/ACCOUNTLOCKED.ANS
Normal file
BIN
art/themes/luciano_blocktronics/ACCOUNTLOCKED.ANS
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/CHANGE.ANS
Normal file
BIN
art/themes/luciano_blocktronics/CHANGE.ANS
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
art/themes/luciano_blocktronics/FBLISTEXP.ANS
Normal file
BIN
art/themes/luciano_blocktronics/FBLISTEXP.ANS
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/FBLISTEXPSEARCH.ANS
Normal file
BIN
art/themes/luciano_blocktronics/FBLISTEXPSEARCH.ANS
Normal file
Binary file not shown.
Binary file not shown.
BIN
art/themes/luciano_blocktronics/FORGOTPWSENT.ANS
Normal file
BIN
art/themes/luciano_blocktronics/FORGOTPWSENT.ANS
Normal file
Binary file not shown.
Binary file not shown.
BIN
art/themes/luciano_blocktronics/FWDLMGR.ANS
Normal file
BIN
art/themes/luciano_blocktronics/FWDLMGR.ANS
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/MATRIX.ANS
Normal file
BIN
art/themes/luciano_blocktronics/MATRIX.ANS
Normal file
Binary file not shown.
Binary file not shown.
BIN
art/themes/luciano_blocktronics/MSEARCH.ANS
Normal file
BIN
art/themes/luciano_blocktronics/MSEARCH.ANS
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/MSGDELPMPT.ANS
Normal file
BIN
art/themes/luciano_blocktronics/MSGDELPMPT.ANS
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
art/themes/luciano_blocktronics/MSGMNU.ANS
Normal file
BIN
art/themes/luciano_blocktronics/MSGMNU.ANS
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/MSGVHLP.ANS
Normal file
BIN
art/themes/luciano_blocktronics/MSGVHLP.ANS
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/MSRCHLST.ANS
Normal file
BIN
art/themes/luciano_blocktronics/MSRCHLST.ANS
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/MSRCNORES.ANS
Normal file
BIN
art/themes/luciano_blocktronics/MSRCNORES.ANS
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/MYMSGLST.ANS
Normal file
BIN
art/themes/luciano_blocktronics/MYMSGLST.ANS
Normal file
Binary file not shown.
Binary file not shown.
BIN
art/themes/luciano_blocktronics/NODEMSG.ANS
Normal file
BIN
art/themes/luciano_blocktronics/NODEMSG.ANS
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/NODEMSGFTR.ANS
Normal file
BIN
art/themes/luciano_blocktronics/NODEMSGFTR.ANS
Normal file
Binary file not shown.
BIN
art/themes/luciano_blocktronics/NODEMSGHDR.ANS
Normal file
BIN
art/themes/luciano_blocktronics/NODEMSGHDR.ANS
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user