16 KiB
16 KiB
Whats New
This document attempts to track major changes and additions in ENiGMA½. For details, see GitHub.
0.0.14-beta
- The Web Server has made some possibly breaking changes:
/static/prefixes are no longer required. This was a ugly hack.- Some internal routes such as those used for password resets live within
/_internal/. - Routes for the file base now default to
/_f/prefixed instead of just/f/. If/f/is in yourconfig.hjsonyou are encouraged to update it! - Finally, the system will search for
index.htmlandindex.htmin that order, if another suitable route cannot be established.
- CombatNet has shut down, so the module (
combatnet.js) has been removed. - The Menu Flag
popParenthas been removed andnoHistoryhas been updated to work as expected. In general things should "Just Work", but check yourmenu.hjsonentries if you see menu stack issues. - Various New User Application (NUA) properties are now optional. If you would like to reduce the information users are required, remove optional fields from NUA artwork and collect less. These properties will be stored as "" (empty). Optional properties are as follows: Real name, Birth date, Sex, Location, Affiliations (Affils), Email, and Web address.
- Art handling has been changed to respect the art width contained in SAUCE when present in the case where the terminal width is greater than the art width. This fixes art files that assume wrapping at 80 columns on wide (mostly new utf8) terminals.
0.0.13-beta
- Note for contributors: ENiGMA has switched to Prettier for formatting/style. Please see CONTRIBUTING and the Prettier website for more information.
- Removed terminal
cursor position reportsfrom most locations in the code. This should greatly increase the number of terminal programs that work with Enigma 1/2. For more information, see Issue #222. This may also resolve other issues, such as Issue #365, and Issue #320. Anyone that previously had terminal incompatibilities please re-check and let us know! - Bumped up the minimum Node.js version to v14. This will allow more expressive Javascript programming syntax with ECMAScript 2020 to improve the development experience.
- New Waiting For Caller (WFC) support via the
wfc.jsmodule. - Added new configuration options for
term.checkUtf8Encoding,term.checkAnsiHomePosition,term.cp437TermList, andterm.utf8TermList. More information on these options is available in UPGRADE. - Many new system statistics available via the StatLog such as current and average load, memory, etc.
- Many new MCI codes:
MB,MF,LA,CL,UU,FT,DD,FB,DB,LC,LT,LD, and more. See MCI. - SyncTERM style font support detection.
- Added a system method to support setting the client encoding from menus,
@systemMethod:setClientEncoding. - Many additional backward-compatible bug fixes since the first release of 0.0.12-beta. See the project repository for more information.
- Deprecated Gopher's
messageConferencesconfiguration key in favor of a easier to deal withexposedConfAreasallowing wildcards and exclusions. See Gopher. - NNTP write (aka POST) access support for authenticated users over TLS.
- Advanced MCI formatting!
- Additional options in the
abracadabramodule for launching doors. See Local Doors
0.0.12-beta
- The
masterbranch has become mainline. What this means to users isgit pullwill always give you the latest and greatest. Make sure to read Updating and keep an eye onWHATSNEW.md(this file) and UPGRADE! See also ticket #276. - Development now occurs against Node.js 14 LTS.
- The default configuration has been moved to config_default.js.
- A full configuration revamp has taken place. Configuration files such as
config.hjson,menu.hjson, andtheme.hjsoncan now utilize includes via theincludesdirective, reference 'self' sections using@reference:and import environment variables with@environment. - An explicit prompt file previously specified by
general.promptFileinconfig.hjsonis no longer necessary. Instead, this now simply part of thepromptssection inmenu.hjson. The default setup still creates a separate prompt HJSON file, but it isincludesed inmenu.hjson. With the removal of prompts thePromptsChangedevent will no longer be fired. - New
PVACS check for arbitrary user properties. See ACS for details. - The
messagearg used bymsg_listhas been deprecated. Please starting usingmessageIndexfor this purpose. Support formessagewill be removed in the future. - A number of new MCI codes (see MCI)
- Added ability to export/download messages. This is enabled in the default menu. See
messageAreaViewPostin the default message base template and look for the download options (@method:addToDownloadQueue, etc.) for details on adding to your system! - The Gopher server has had a revamp! Standard
gophermapfiles are now served along with any other content you configure for your Gopher Hole! A default gophermap can be found in the misc directory that behaves like the previous implementation. See Gopher docs for more information. - Default file browser up/down/pageUp/pageDown scrolls description (e.g. FILE_ID.DIZ). If you want to expose this on an existing system see the
fileBaseListEntriesin the defaultfile_base.in.hjsontemplate. - File base search has had an improvement to search term handling.
./oputil user group -groupto now accepts~groupremoving the need for special handling of the "-" character. #331- A fix has been made to clean up old
file.dbentries when a file is removed. Previously stale records could be left or even recycled into new entries. Please see UPGRADE.md for details on applying this fix (look fortables_update_2020-11-29.sql). - The ./docs/modding/onelinerz.md module can have
dbSuffixset in it'sconfigblock to specify a separate DB file. For example to use as a requests list. - Default hash tags can now be set in file areas. Simply supply an array or list of values in a file area block via
hashTags. - Added ability to pass an
envvalue (map) toabracadabradoors. See Local Doors. dropFileTypeis now optional when launching doors withabracadabra. It can also be explicitly set tonone.- FSE in view mode can now stylize quote indicators. Supply
quoteStyleLevel1in theconfigblock. This can be a single string or an array of two strings (one to style the quotee's initials, the next for the '>' character, and finally the quoted text). See themessageAreaViewPostmenuconfigblock in the defaultluciano_blocktronicstheme.hjsonfile for an example. An additional level style (e.g. for nested quotes) may be added in the future. - FSE in view mode can now stylize tear lines and origin lines via
tearLineStyleandoriginStyleconfigvalues in the same manor asquoteStyleLevel.
0.0.11-beta
- Upgraded from
alphatobeta-- 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
oputil fb scan *areaTagWildcard*scans all areas in which wildcard is matched.- The archiver configuration
escapeTelnethas been renamedescapeIACs. Support for the old value will be removed in the future.
0.0.10-alpha
oputil.js user rename USERNAME NEWNAMEmy_messages.jsmodule (defaulted to "m" at the message menu) to list public messages addressed to the currently logged in user. Takes into account their username andreal_nameproperty.- SSH Public Key Authentication has been added. The system uses a OpenSSH style public key set on the
ssh_public_keyuser property. - 2-Factor (2FA) authentication is now available using RFC-4266 - HOTP: HMAC-Based One-Time Password Algorithm), RFC-6238 - TOTP: Time-Based One-Time Password Algorithm, or Google Authenticator. QR codes for activation are available as well. One-time backup aka recovery codes can also be used. See Security for more info!
- New ACS codes for new 2FA/OTP:
ARandAF. See ACS for details.
oputil.js user 2fa USERNAME TYPEenables 2-factor authentication for a user.
oputil.js user info USERNAME --securitycan now display additional security information such as 2FA/OTP.oputil.js fb scan --quickis 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
}
]
}
idleLogoutSecondsandpreAuthIdleLogoutSecondscan now be set to0to fully disable the idle monitor.- Switched default archive handler for zip files from 7zip to InfoZip (
zipandunzip) 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) andwrite(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
justifyproperties:leftandrightvalues were formerly swapped (oops!) - Menu items can now be arrays of objects not just arrays of strings.
- The properties
itemFormatandfocusItemFormatallow you to supply the string format for items. For example if a menu object is{ "userName" : "Bob", "age" : 35 }, aitemFormatmight be|04{userName} |08- |14{age}. - If no
itemFormatis supplied, the default formatter is{text}. - Setting the
datamember of an object will cause form submissions to use this value instead of the selected items index. - See the default
luciano_blocktronicsmatrixmenu for example usage.
- The properties
- You can now set the
sortproperty on a menu to sort items. Iftrueitems are sorted bytext. 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
autoScalehas 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.sqlite3user_event_logtable for up to 90 days. An example usage can be found in the updatedlast_callersmodule where events are turned into Ami/X style actions. Please seeUPGRADE.md! - New MCI codes including general purpose movement codes. See MCI codes
install.shwill now attempt to use NPM's--build-from-sourceoption when ARM is detected.oputil.js config newwill now generate a much more complete configuration file with comments, examples, etc.oputil.js config catdumps 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.failedLogininconfig.hjson. - NNTP support! See NNTP docs for more information.
oputil.js user rmandoputil.js user infoare in! See oputil CLI.- Performing a file scan/import using
oputil.js fb scannow recognizes variousFILES.BBSformats. - Usernames found in the
config.users.badUserNamesare 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.hjsoncan now be omitted from submission handlers usingomit: 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:
noHistorynow works as expected, and a new addition ofpopParent. See the defaultmenu.hjsonfor 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 asaName @ address(Foo Bar@123:123/123) oputil.js: Addedmb areafixcommand 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|deletefunctionality to remove file base entries.oputil.js fb descfor setting/updating a file entry description.- Users can now (re)set File and Message base pointers
- Add
--updateoption tooputil.js fb scan - Fix @watch path support for event scheduler including FTN, e.g. when looking for a
toss!.nowfile produced by Binkd.
...LOTS more!
Pre 0.0.8-alpha
See GitHub