Appweb Changelog

What's new in Appweb 6.2.0

Nov 30, 2015
  • Support loading esp.json files for stand-alone ESP pages
  • Improve esp loading diagnostics
  • Add esp.app and http.pipeline configuration properties
  • Simplify ESP loading code
  • Optimize loading ESP applications

New in Appweb 5.4.0 (Apr 15, 2015)

  • Appweb 5.4 is a major feature release and the ESP web framework is significantly upgraded. Configuration for ESP applications now contained in a dedicated esp.json file and the routing of ESP URLs has been simplified and made more uniform. Appweb now includes support for the Expansive web site generator.
  • WARNING: This release has breaking changes that will require modifications to existing applications. Please expect some time to adapt your application. Our goal is to synchronize these changes between version 5 and 6 so there will be fewer changes going forward. See below for more details.

New in Appweb 5.2.0 (Nov 3, 2014)

  • Changes:
  • SSL POODLE fix
  • New documentation layout and design using Expansive for layout
  • Improved Windows nmake and Visual Studio projects
  • Various cleanup, improved tests and documentation updates
  • MakeMe 0.8.4 support with plugins

New in Appweb 5.1.0 (Jul 31, 2014)

  • Minor Features:
  • Simplify log and trace output to the console via --trace and --log switches [issue 371].
  • Add unit tests using TestMe [issue 372].
  • Fixes:
  • Fix race condition with mprWaitForEvent [issue 373].
  • Fix JSON config file parsing [issue 374].
  • The fixes from version 4.6.2 are applied.

New in Appweb 5.0.0 (Jul 31, 2014)

  • Notes:
  • The Appweb 5 API is substantially backwards compatible with Appweb 4 applications. If Legacy Appweb 4 APIs are not being used, there should be minimal code change to migrate to Appweb 5 from Appweb 4.
  • Major Changes:
  • Deprecated APIs and Legacy code in Appweb 4 has been removed. [issue 341].
  • The ESP web framework has been extracted as a stand-alone product, but Appweb still includes the full ESP framework. [issue 342].
  • Appweb uses the MakeMe build tool. This was previously called Bit. [issue 343].
  • Convert Appweb dependencies into Pak packages [issue 344].
  • Split error log and request log [issue 352].
  • Minor Changes:
  • Generated Makefiles are more configurable. [issue 345].
  • Fixes and changes since rc1:
  • Parsing corrupted cookies of the form "name=" and mulitple cookie handling [issue 366].
  • Improve bit packing in Mpr and Http structures [issue 367].
  • Update Ejscript JSON parsing to detect missing commas [issue 368].
  • Fix for ESP to load fix.css when using all.less [issue 369].
  • Fix httpAuthenticate being run multiple times [issue 370].
  • Fixes and changes since rc0:
  • Fix testing of XSRF token. Only re-create in views. [issue 346].
  • Update ESP to fix client.mappings timeouts [issue 353].
  • ESP upgrade should not overwrite overwrite files by default. [issue 354].
  • ESP command updated to create users and roles. [issue 355].
  • The fixes from version 4.6.0 are applied in release candidate rc1.
  • The fixes from version 4.6.1 are applied in release candidate rc2.
  • Incompatible Changes:
  • Configuring for Ejscript now requires "--with ejs" instead of "--with ejscript"
  • Since Bit is rebranded as MakeMe, conditional definitions are using the "ME_" prefix instead of "BIT_"
  • Also, configured components are described using "ME_COM_" instead of "BIT_PACK"
  • APIs previously nominated in 4.X as deprecated are now removed. This includes the ESP legacy mvc framework.
  • ESP Package.json format is changed for many properties. Regenerate the application to get a new package.json file.
  • ESP applications have a different package.json property layout. Upgrade all relevant paks. See ESP Configuration Sample for details.
  • With separating the error log and request log, the mprLog, mprTrace, mprError APIs, and the MprLogHandler type have revised signatures. The mprLog API is the primary error logging API and mprError should not be used. The mprLog API takes a tag words argument that can specify severity levels and classification tags for filtering the error log.

New in Appweb 4.6.1 (Jun 25, 2014)

  • Fix old reference to bit in package/service.es [issue 356].
  • Fix esp -V to display just a pure version number [issue 357].
  • Fix ESP package.json "app.http.keep" property [issue 358].
  • Fix exporting ESP paks to have version numbers that match Appweb [issue 356].
  • Fix finding appweb.conf when executing outside the Appweb installation directory. [issue 361].
  • Fix loading the esp module when appesp is run inside /etc/appweb or appweb binary installation directory. [issue 362].
  • Fix EST write blocking [issue 363].
  • Fix printf format strings. Enable compiler printf format checking. [issue 364].

New in Appweb 4.6.0 (Jun 3, 2014)

  • Fixes:
  • Switch to use MakeMe, previously called Bit. See the GitHub issue for details of the change. [issue 343].
  • UploadFilter with packet-spanning boundary in the last packet. [issue 348].
  • Redirection for virtual hosts to HTTPS [issue 349].

New in Appweb 5.0.0 RC (May 17, 2014)

  • Major Changes;
  • Deprecated APIs and Legacy code in Appweb 4 has been removed. [issue NN].
  • The ESP web framework has been extracted as a stand-alone product, but Appweb still includes the full ESP framework. [issue NN].
  • Appweb uses the MakeMe build tool. This was previously called Bit. [issue NN].
  • Appweb is more modular by using the Pak package manager tool . [issue NN].
  • Minor Changes:
  • Generated Makefiles are more configurable. [issue NN].
  • Incompatible Changes:
  • Configuring for Ejscript now requires "--with ejs" instead of "--with ejscript"
  • Since Bit is rebranded as MakeMe, conditional definitions are using the "ME_" prefix instead of "BIT_"
  • Also, configured components are described using "ME_COM_" instead of "BIT_PACK"
  • APIs previously nominated in 4.X as deprecated are now removed. This includes the ESP legacy mvc framework.
  • ESP Package.json format is changed for many properties. Regenerate the application to get a new package.json file.
  • ESP Angular applications have a different Esp.config property layout. Upgrade all relevant paks.

New in Appweb 4.5.6 (May 17, 2014)

  • Fixes:
  • Remove unwanted assert for WebSockets Ping requests in httpSendBlock [issue 328].
  • Supplemental group membership on Unix when using UserAccount [issue 329].
  • Add mp4 mime type [issue 330].
  • Fix hang on exit [issue 334].
  • Add "mov" mime type to defaults. [issue 335].
  • XP compilation fails [issue 336].
  • Must flush session state earlier [issue 338].
  • Range filter not handling bad range values [issue 339].
  • CgiProgram content length overflow [issue 333].

New in Appweb 4.5.2 (Mar 15, 2014)

  • Fixed:
  • httpDigestParse incorrect parsing [issue 320].

New in Appweb 4.5.1 (Mar 13, 2014)

  • Minor Features:
  • Add esp --debug and --release switches to control compilation mode for symbols or optimization
  • Fixes:
  • WebSockets default request timeout. [issue 310].
  • Preserve HttpRx.originalUri when using ErrorDoc responses. [issue 311].
  • ESP package.json esp.redirectSecure property to apply only to ESP application. [issue 312].
  • httpCheckSecurityToken when token is defined but empty. [issue 313].
  • ESP package.json esp.login.name for auto-login in dev mode. [issue 314].
  • ESP scripts() and stylesheets() to emit cleaner relative URIs. [issue 315].
  • Revert naming of httpUri to previous httpLink. httpUri deprecated but supported. [issue 316].
  • httpGetCookie with multiple cookies of intersecting names. [issue 317].

New in Appweb 4.5.0 (Mar 4, 2014)

  • Major Features:
  • Big upgrade for ESP application frameworks. [issue 237]. Changes include:
  • Complete support for ESP AngularJS MVC applications.
  • New simplified support for server-side ESP MVC (esp-html-mvc) applications.
  • Add support for Pak extension packages
  • Enhanced ESP application generator with install, uninstall and upgrade options.
  • Universal configuration file for ESP applications in "package.json".
  • Updated and extended samples.
  • Simplify generated client-side controllers
  • Add routePrefix to package.json and update esp.js to automatically parse and include in all routes
  • Add esp-click attribute for elements without hrefs
  • Add esp-resource to communicate with ESP server-side controllers
  • Add esp-confirm for modal confirmations
  • New JSON parser
  • Minor Features:
  • VirtualHost directives can now take multiple endpoints
  • Add CgiPrefix directive to use in front of URI parameters and form variables in CGI programs. [issue 282]
  • Add CgiEscape directive to escape shell special characters [issue 283]
  • Make DigestData struct public [issue 275]
  • MprStealConn - need more flexibility [issue 278]
  • Add more session hijack protection [issue 283]
  • Add IPv6 conditional directive IPv6 [issue 284]
  • Shutdown Issues [issue 285]
  • Change SessionCookie to allow defining the cookie name [issue 291]
  • Add support for single-login enforcement. [issue 292]
  • Add MakeDir directive [issue 293]
  • Add httpBorrowConn and httpReleaseConn to make it easier to use mprCreateEventOutside
  • [issue 302]
  • Increase default WebSockets inactivity timeout to five minutes [issue 307]
  • Add mprGetKey and mprSetKey APIs for generic object reference storage [issue 308]
  • Fixes:
  • Add Reroute directive. Revert Route directive to not open previously defined routes. [issue 238]
  • Add BIT_MPR_SSL_RENEGOTIATE option (config: mpr.ssl.renegotiate) to control SSL renegotiation. Renegotiation is enabled by default. [issue 240]
  • JSON parser handling of embedded quotes and backslashes
  • Mdb database saving of field values in JSON with embedded quotes and backslashes
  • Improve XSRF security token handling adding transparent regeneration if possible.
  • Early detection of bad characters in URIs. This tightens request URI validation of invalid URIs that were previously permitted.
  • Add missing bower.json [issue 253]
  • Return 401 for bad authentication scheme [issue 254]
  • Add documentation on new httpWriteBlock behavior [issue 255]
  • Update conn->lastActivity in readEvent [issue 256]
  • Use 401 when user fails authorization [issue 257]
  • Return valid authentication domain [issue 258]
  • Fix off-by-one in httpFilterChunkData [issue 259]
  • Free Win32 resources on shutdown and error [issue 260]
  • Fixing crash on disconnect [issue 261]
  • Allow module-defined AuthStores [issue 262]
  • Reject unknown methods in fileHandler with 405 [issue 263]
  • Use original URI to build trailing slash redirects [issue 264]
  • Don't chunk HTTP/1.0 responses [issue 265]
  • Use full URI path in dirHandler index titles [issue 266]
  • Send 404 from the errorHandler instead of 501 [issue 267]
  • Always increment module refcount when loading [issue 268]
  • Use case-insensitive keys for the MIME types table [issue 269]
  • Fix mprWaitForCond with no timeout [issue 271]
  • Remove extra httpError format specifie [issue 272]
  • Fixing WNDPROC declaration [issue 273]
  • Make DigestData struct public [issue 275]
  • Remove accesses to CRITICAL_SECTION's SpinCount [issue 276]
  • Document when and where mprYield will occur [issue 277]
  • Delay LimitRequestBody test after routing [issue 279]
  • Enable serving files outside document root [issue 280]
  • mprCreateEventOutside needs to work when MPR is shutting down [issue 281]
  • Fixes since RC3:
  • Fix httpSetCookie for IPv6 addresses. Also add option to suppress domain by setting cookieDomain parameter to an empty string. [issue 287]
  • Redirection for numerical IPv6 addresses broken [issue 288]
  • Fix the ESP package.json timeout.session property. [issue 289]
  • Fix and update samples [issue 290]
  • Fix signal handling for default and ignored signals [issue 294]
  • Fix ErrorDocument response request packet creation. [issue 295]
  • Fix mprWarn to say warning instead of error [issue 296]
  • Fix memory exception handling [issue 297]
  • CONNECT verb IP address parsing [issue 299]
  • Compiling SDB with va_list [issue 300]
  • Fixes since RC4:
  • Remove duplicate zlib code in ejsLib.c [issue 303]
  • Command line mode without an appweb.conf file. [issue 304]
  • Compiler unreachable code warnings. [issue 305]
  • Disable Secure-Transport as default for "Redirect secure" [issue 309]

New in Appweb 4.5.0 RC1 (Jan 4, 2014)

  • MAJOR FEATURES:
  • Big upgrade for ESP application frameworks:
  • Complete support for ESP AngularJS MVC applications.
  • New simplified support for server-side ESP MVC (esp-html-mvc) applications.
  • Add support for Pak extension packages
  • Enhanced ESP application generator with install, uninstall and upgrade options.
  • Universal configuration file for ESP applications in "package.json".
  • Updated and extended samples.
  • Simplify generated client-side controllers
  • Add routePrefix to package.json and update esp.js to automatically parse and include in all routes
  • Add esp-click attribute for elements without hrefs
  • Add esp-resource to communicate with ESP server-side controllers
  • Add esp-confirm for modal confirmations
  • New JSON parser
  • FIXES:
  • Add Reroute directive. Revert Route directive to not open previously defined routes. [issue 238]
  • Add BIT_MPR_SSL_RENEGOTIATE option (config: mpr.ssl.renegotiate) to control SSL renegotiation. Renegotiation is enabled by default. [issue 240]
  • JSON parser handling of embedded quotes and backslashes
  • Mdb database saving of field values in JSON with embedded quotes and backslashes
  • Improve XSRF security token handling adding transparent regeneration if possible.
  • Early detection of bad characters in URIs. This tightens request URI validation of invalid URIs that were previously permitted.
  • INCOMPATIBLE CHANGES:
  • Rename libsqlite3 to libsql to avoid clashing with existing SQLite libraries. [issue 242]
  • Rename readRecsWhere to readWhere to be consistent with EDI API. [issue 236]
  • Add body argument to mprRunCmd to write data to spawned command. [issue 239]
  • Rename config.json to package.json
  • Deprecate the prior ESP MVC skeleton. It is renamed to esp-legacy-mvc.
  • Move views by default under client/app. The EspDir directive can be used to modify the views directory.
  • Move layouts under client/layouts. The Espdir directive can be used to modify the layouts directory.
  • Renamed the old ESP pack from angular-mvc to esp-angular-mvc. All ESP packs now take an "esp-" prefix.
  • Changed default generated application skeleton from "esp-legacy-mvc" to "server". This permits the generation of non-MVC applications that consist only of server-side controllers.
  • Fix calls to renderFlash with incorrect arg count
  • Change ESP server-side controller entry point from esp_module_NAME, to esp_controller_APP_CONTROLLER. Also, ESP application source modules include the app name in the entry point. This is to resolve init entry point name clashes when hosting multiple applications.
  • Rename APIs that send JSON from renderResult, renderGrid, renderRec to use a send prefix instead of render. This is to clarify which APIs send HTML and which send JSON. The render* APIs send HTML and raw data. The send* APIs send JSON.

New in Appweb 4.4.0-0 (Oct 1, 2013)

  • Major Features:
  • Major performance optimizations. [issue 224]
  • Added security defensive counter measures. Added Monitor and Defense directives. [issue 213]
  • Add Angularjs support in ESP. [issue 196]
  • Enhance "esp" generator application to generate application components including Angular applications. [issue 197]
  • Change password hashing algorithm to use Blowfish encryption [issue 198]
  • Minor Features:
  • Update ESP jquery support [issue 179]
  • Update EspApp directive with new syntax. [issue 180]
  • Add ESP src/app.c. This is invoked at Appweb startup. [issue 181]
  • Add lessjs support for ESP. Replace old layout/theme style sheets with a theme.less. [issue 182]
  • Add ESP html5shiv for generated apps [issue 183]
  • Add support for multi-line strings in ESP templates via back-tick. [issue 185]
  • Add StreamInput directive to control request body input streaming or buffering. [issue 199]
  • Add Map directive for transparent content extension mapping. Deprecate Compress directive. [issue 200]
  • Add httpLogout API. [issue 201]
  • Add httpAddAuthStore and HttpAddAuthType APIs to permit overriding the password verification scheme. [issue 202]
  • Add httpAddParamsFromJsonBody API. [issue 203]
  • Enhanced MPR APIs for: mprGetRandomString, mprGetCacheStats, mprCryptPassword, mprMakeSalt, mprAddKeyWithType, mprQueryJsonString, mprQueryJsonValue, stitle, mprGlobPathFiles. [issue 204]
  • Replace Method, PutMethod and TraceMethod directives with AddMethods, RemoveMethods and SetMethods. [issue 208]
  • Add SessionCookie directive to control the visibility of the session cookie. Default now is "httponly". [issue 210]
  • Rename EspShowErrors as ShowErrors to make available to all handlers. [issue 211]
  • Added Stealth directive to control stealth mode. Stealth mode hides the Server header in responses. [issue 212]
  • Added Header directive to define response headers. [issue 215]
  • Used "Header set" to define important security directives to the default appweb.conf. [issue 216]
  • Optimized file upload. [issue 218]
  • Tightened WebSockets compliance. Passing Autobahn test suite. [issue 217]
  • Add palloc APIs for permanent memory allocations [issue 226]
  • Add JSON query API [issue 230]
  • Enhance esp generator to generate applications using different client-side frameworks. [issue 231]
  • Fixes:
  • Fixes for ESP controls. [issue 184]
  • Update ESP tabs to fix tab order [issue 186]
  • Update ESP flash messages - were not clearing. [issue 187]
  • Remove EspLoad directive. Now integrated into EspApp. [issue 188]
  • Remove leading "-" from all ESP CSS classes. [issue 189]
  • Fix HTTP streaming request body input in http core engine. [issue 205]
  • Fix Http sessions. Aggregate all session state data in one object. [issue 206]
  • Make loading SSL provider thread-safe. [issue 207]
  • Make loading SSL provider thread-safe. [issue 207]
  • Fix Socket and SSL return codes when socket is full. [issue 214]
  • Fix Source directive to be relative to route home rather than route documents. [issue 219]
  • Fix for windows when time goes backwards [issue 227]
  • Fix esp recompiling on windows [issue 228]
  • Modify ESP cache module naming to include the appname as an ingredient into the MD5 name. This is necessary to support multiple applications with controllers of the same name. [issue 234]

New in Appweb 4.3.6-0 (Sep 27, 2013)

  • Fixes:
  • Add yield points to reduce memory footprint for back-to-back requests. [issue 232]
  • Fix route templates if a route has a trailing $. [issue 233]

New in Appweb 4.3.5 (Sep 27, 2013)

  • Fixes:
  • Fix recalculating MDB index after deleting items. [issue 194]
  • Fix SSL write blocking with OpenSSL. Caused increased memory consumption for large file downloads over SSL. [issue 195]
  • Content-Range end byte is one too big. [issue 178]
  • Fix parsing range header. [issue 209]
  • Fix WebSocket compliance with continuation frames [issue 223]
  • Fix mprYield and GC deadlock [issue 221]
  • Update License.md [issue 222]

New in Appweb 4.3.4 (Sep 27, 2013)

  • Fixes:
  • Fix incorrect http session max exceeded limit message [issue 191]
  • Fix static compilation error in espHandler. [issue 192]
  • Update jquery and jquery.esp to support jQuery 1.9 [issue 193]

New in Appweb 4.3.3-0 (Apr 24, 2013)

  • Minor Features:
  • Add ESP template directive @! to access C variables [issue NN]
  • Fixes:
  • Fix ESP MVC apps serving static/*.esp [issue 164]
  • ESP generate with SDB fails [issue 165]
  • Fix resolving appweb.conf relative to the appweb.conf file [issue 166]
  • Fix client HTTP Host header. Should not include :443. [issue 167]
  • Fix esp generate table | migration [issue 168]
  • Improve esp generated appweb.conf [issue 169]
  • Fix EspApp to reuse suitable existing routes if possible [issue 170]
  • Fix ESP setting {controller} parameter for singleton resource routes [issue 171]
  • Generate dummy data favicon for error pages and ESP icon(0, 0) [issue 172]
  • Fix missing EspControl documentation and add ESP API stability classifications [issue 173]
  • Update to jQuery 1.9 for ESP [issue 174]
  • Use HTML5 data-esp prefix for ESP data attributes [issue 175]
  • Add SO_REUSEADDR for VxWorks [issue 176]

New in Appweb 3.3.0-2 (Mar 19, 2011)

  • Minor Features:
  • Added Chroot directive
  • Support filtering shebang lines in PHP scripts
  • Add missing extensions for PHP/CGI requests to allow requests for PHP files without .php extension
  • Support graceful exit
  • Add prototype module unloading for PHP via UnloadModule directive
  • Add request timing to log file at level 5
  • Add ASN1 certificate parsing for SSL
  • Add on-demand initialization for PHP
  • Prototype inactive PHP module unloading
  • Key Fixes:
  • Fix CGI output parsing when gateways omit headers
  • Bad timezone on HTTP headers in certain locales
  • Potential bad free of connection input buffer
  • Formatted printing of floating point numbers
  • Fixed --chroot switch
  • Ensure handlers match() routine is always invoked if required
  • FreeBSD linking fixes
  • CGI for long running requests and requests with large post data
  • Bad reference for req->pathInfo
  • ActionProgram directive for CGI
  • REDIRECT_STATIC compat env var for PHP
  • Inheriting AuthName, Require and CustomLog directives
  • Building with configure --disable-all
  • Ejscript: Windows 7 support and VS 10.0
  • Add missing msvcrt version 10 DLL
  • Update Ejscript documentation
  • Premature exit with large forwad time changes
  • CGI with file upload
  • Return status of 401 instead of 404 when missing file and authentication
  • Rewriting the request URI. Now updates filename, alias, location, extension etc.
  • Configure for vxworks on Linux
  • Ejscript: Array.slice with negative indicies
  • Ejscript: Date/Time calculations for pre 1970 dates
  • Ejscript: Cygwin Math.pow Infinity results
  • Ejscript: Allow JSON encoded arrays in Http form data
  • Ejscript: memory fragmentation
  • Ejscript: exception stack handling
  • Ejscript: parsing XML characters > 127
  • Ejscript: GC issue with new Function()
  • Ejscript: XSS issue with embedded script in URLs - thanks Gjoko Krstic at Zero Science Lab
  • Ejscript: Compiler spin with }; construct
  • Ejscript: escape(quote)

New in Appweb 3.2.1 (May 4, 2010)

  • Key Fixes:
  • Fix missing linkup script for packaging
  • Fix timedout requests
  • Update Ejscript to fix some ejscript issues
  • Fix building with va_list on some systems
  • Fix parsing IPv6 addresses in the config file
  • Ejscript loading modules fix for ARM
  • Fix for large requests when using the fileHandler

New in Appweb 3.2.0.7 (Apr 9, 2010)

  • Minor Features:
  • Updated Ejscript with enhanced Math, Date and Number classes
  • Improved Ejscript library API documentation
  • Improved configure diagnostics with the --verbose switch
  • Many small fixes
  • Fixes:
  • Optimize make install/package when using svn
  • SimpleModule sample
  • Loading modules with a "." in the name
  • Single threaded page reload when using remote command execution
  • Improve configure diagnostics
  • Ejs: TextStream::read() with unterminated last line
  • Ejs: Http requests with credentials
  • Ejs: JSON parsing and encoding
  • Ejs: Math, Number and Date methods
  • Ejs: Documentation
  • Ejs: ByteArray.copyIn
  • Ejs: Parsing XML literals
  • API Changes:
  • New MPR mprDtoa C API
  • Enhanced Ejscript Number, Date and Math APIs
  • API documentation corrections

New in Appweb 3.1.2.1 (Dec 9, 2009)

  • Minor fixes for the Windows project files and bugfixes for Ejscript TextStream and XML classes.

New in Appweb 3.0 Beta 2.1 (May 14, 2009)

  • Enhanced embedding with support for VxWorks and the OpenWrt platform. Includes changes to the Ejscript server-side JavaScript framework with improved File I/O and Path APIs. Also... includes many fixes and improved packaging