enigma-bbs/WHATSNEW.md

8.3 KiB

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!

0.0.10-alpha

  • New ACS codes for new 2FA/OTP: AR and AF. See ACS 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:
{
    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.
  • 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:
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
  • 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 for more information.
  • oputil.js user rm and oputil.js user info are in! See oputil CLI.
  • 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 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)! See UPGRADE.md for details.
  • Switch to pure JS xxhash instead of farmhash. Too many issues on ARM and other less popular CPUs with farmhash (Dave Stephens)
  • Native CombatNet support! (Dave Stephens)
  • 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!
  • 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