- Add header
x-process-name
to all responses, with uniqueProcessName as content, to simplify checking which process replied. - Export
processTitle
, giving access to process title helper, which prefixes message with app name. - Accept WORKER_NAME environment variable, to be used when server starts "child" processes. It modifies logs field name, process title, statsd prefix and unique process name
- Fix installation on Node.js below version 18.
- Upgrade Terser to v5. See all bug fixes in the changelog.
- Fix ignored 'pugify' option in bundle configuration
- Send all errors own properties in the logs (only visible in the GELF output).
- The root directory where the
public
,views
andjs
are now correctly located at the project root directory instead of the main file directory.
- The
pugify
option can now take an object, containing the Pug compiler options, allowing for example to set the default doctype.
- Downgrade express error handler log from fatal to error
- Export
buildBundles
to generate bundles files - Load bundles from files if they are available, for production mode only
- Skip dyno in process unique name when not provided
- Use secure git protocol for GitHub dependencies
- Switch back to official
bunyan
- Accept environment variables
APP_INSTANCE_NAME
(used as a unique process name, that stays the same over successive deployments, and to identify app in logging, defaults toappname_hostname_dyno
) andSTATSD_APPNAME
(used to identify app in statsd and graphite, defaults tostatsDPrefix.appname-dyno
wherestatsDPrefix
is either envSTATSD_PREFIX
, or etcd/server/statsd/prefix
or hostname)
- Fix broken 4.5.1 release.
- Log the HTTP method and url with the request/response logger.
- Fix ignored error when failing to read the Stylus files list.
- Disable Stylus compression and let clean-css handle it.
- Export
uniqueProcessName
to be able to uniquely identify a dokku process When starting processes on many hosts, with dokku scale, we sometimes need a unique name for locks and synchronization.
- Use DYNO when defined to replace DYNO_TYPE_NUMBER (dokku scaling) in statsd and logger data
- Add
res.logger
logger. - Add
res.setError
to set an error to be logged with the end of request log.
- Fix logged css sizes
- Ensure dyno identifier used for sdc is usable
- Require full lodash module instead of single modules
- Update node-etcd to version 7.0.0 for node 10 compatibility (due to deasync dependency). This should work for node 6 and above.
- Minify CSS in production mode with clean-css.
- Upgraded bunyan-gelf to 0.3.0 to use only one socket for all logs, avoiding a crash when sending too many logs at once and running out of available ports
- Upgraded Babel to v7.3.
- Bundle entry points can now be specified with the file extension.
- The bundles configuration is now correctly used in factored bundles.
- Export all i18n methods (except redefined ones)
- Use our jquery in i18next.
- Fixed logged file sizes.
- Enable babel on browser files for old browsers like ie10 / phantomjs
- Upgraded Browserify to v16.
- Upgraded Babel to v7.
- babelify can now be disabled by setting the option
babelify
tofalse
. - Removed deprecated
jadeify
andbabelifyIgnore
options. - Removed aliasify transform.
- Removed deprecated crossdomainMiddleware middleware. Use cors instead.
- Removed cookie-parser middleware.
- Removed express-session middleware.
- Removed globalpassword middleware.
- Removed etagify middleware (included with express).
- Removed dataurify middleware.
- Removed stringify middleware.
- Removed multipart middleware.
- Allow transform options:
{transform: Function, options: Object}
. - Transforms are not global anymore by default.
- Pug files are now babelified.
- Removed stylus debug info.
- Configurable i18next back via
backend
option.
- Removed i18n options
ajaxGlobal
andajaxCache
. - Forward
fack.i18n.init
options to i18next.
- Added
preListen
andpostListen
callbacks.
- i18next cookie is no longer secure.
- Removed Font Awesome dependency on nib: in you need vendor prefix in Font Awesome, import nib in your project before Font Awesome.
- Upgraded nib to import nib normalize instead of bootstrap one.
- Added resolve function in stylus to allow @import to look in node_modules.
- Removed vendor prefixes from bootstrap stylus since they're handled by nib anyway.
- Updated express from 4.10.7 to 4.15.3 to get sendFile fixes
- Do not resolve log server host at startup
- added dnscache to speed up all dns calls (including calls in request)
- Expose
fack.hostname
.
- Switched from jade to pug.
- avoid localhost ip in logs ips
- using custom nib version to allow stylus to really be a peer dependency
- renamed mixins & variables from font awesome to allow importing bootstrap ones
- Fixed crash when setting old i18n options.
- Added
babelify
global and per bundle options (deprecatesbabelifyIgnore
bundle option).
- Fixed crash when i18n options for expressWrapper is not defined
- Better handling of i18n options for expressWrapper
- Wait for logs using callback
- Never replace fields with dash in logs
- Added user agent and referrer in request logger
- give more time for network logging on Uncaught exception
- accept conf along with jsEntry
- Send ips in logs as array, not as string
- Log unhandled express errors using custom logger
- Updated to socket.io 1.4.8
- Fixed sourcemaps
- Reverted global Babel transform (too slow)
- Enabled Babel transform for all node modules
- Added Babel transform with ES 2015 preset
- Replaced invalid status code 0 with 499 when the client close the connection
- Requires Node.js >=4.0.0
- added res.logger.ignore() to ignore automatic request logger
- add DYNO_TYPE_NUMBER (dokku scaling) to statsd and logger data
- Pass
app
topreconfigure
function.
- Fixed urls of JS files in subdirectories on Windows.
- moved browserify code to its own file and no longer uses custom browserify fork
- generate js file even with "?" in the url
- Fixed encoded cacheforever paths (with spaces for example).
- cacheforever and options now added only when required
- properly check buildBundleOnFirstRequest for factorBundle
- Support for factor-bundle and requires/external bundles
- Added
CacheForever#getFingerprints
.
- Fixed i18n path.
- Wait only 10ms before exit on uncaught exception.
- Fixed fatal message not sent on crash.
- Fixed fingerprints aggressive caching.
- Set Cache-Control to avoid caching if requested md5 and registered md5 are different
- Fixed debug log level with
--debug
command line option.
- Catch and log uncaught exceptions.
- Never prettify html generated by jade.
- Added
size
field to compilation logs.
- Fixed npm broken release.
- Fixed
fullPaths
option.
- Removed jade debug instrumentation if in release.
- Added
fullPaths
option: forwarded to browserify.
- appname : search into parents directory for a package.json file to get the appname
- Allow to log an Error with additional fields.
- Added
timeInMs
field to compilation logs
- Allow to minify per file to optimize compile time
- Add cache to optimize js compile when watchify is disabled
- Added mandatory watchify configuration
- Added sourcemaps
- updated browserify to version 11.0.0 and associated libs
- Fix overwritten logger component on multiple
sub
calls - Return bunyan logger with added methods instead of a wrapper
- Fix lost message when logging an Error object
- Don't expose fontawesome *.styl files
- Fix incompatibility between bootstrap-stylus and nib (use custom nib version)
- Give name to logger streams
- Expose logger
.level()
and.levels()
- Fix compatibility with node 0.10.x
- Improve logger, resolve gelf hostname on start, avoid crash on gelf error
- Read LOG_HOSTNAME and STATSD_PREFIX env vars
- [email protected]
- Fack answers on /__healthcheck, configurable with option healthCheckUrl
- Allow list of hosts in ETCD_HOST
- Fix default max-age in CacheForever
- CacheForever options customizable
- Fix crash on start
- Expose i18n
- Remove debug log
- Allow to configure ajax.global and cache in translation download (default cache=true)
- Removed CSS live reload
- Expose logger.fields
- removed etcd errors. everything required in fack is optional anyway
- removed jade & stylus dependencies versions
- only log etcd errors in productions (these are expected during dev)
- jade & stylus back in peer dependencies
- synchronous etcd to avoid init problems, and to ensure logger children get correct options
- bunyan logger can now get hostname from etcd
- Add extension automatically on
jsUrl
andcssUrl
parameter
- Fixed WOFF fonts on IE
- Fixed
socket.io
conflicts
- Fixed missing
socket.io
peer dependency
- Added
jsUrl
andcssUrl
functions besideresourceUrl
- Added CSS live reload: call
fack.watch()
on the client
- Fixed CSS compilation
- Expose application name
- js bundles, stylus and views now somehow accept multiple entries
- Upgraded express to ~4.10.7
- Expose cross domain tools in app.crossDomain
- Expose cross domain middleware in app.crossDomain
- Force [email protected] (1.7.6 has wrong server-side dependency on jQuery)
- Allow to delay build of some javascript files even on prod
- Log css compile time and file size
- Allow to customize bundles configuration
- Added process state in process title (starting or listening)
- Fix IE11 opening eot files on dev environment
- Use
jquery
>= 2.0.0 npm package instead ofjquery-browserify
- Use f4-express-middlewares 0.0.4 (Cache-Control in allow headers)
- Added noParse option
- Fix incompatibility with browserify 5
- Require at least socket.io-client 1.0.0
- fix i18n preload
- Can set option i18n:false to disable i18next initialisation
- i18n cookie disabled by default
- Upgraded Bootstrap to 3.1.1
- font awesome updated to 4.1 and using resourceUrl (allowing for use in sub directories)
- IE <= 7 is not supported anymore (trailing commas are not removed)
- Can require('fack:i18n') on client for fack translation module
- Use i18next ~1.7.3
- Fixed bundles on Windows
- Fixed URL for bundles in sub-directories
- Fixed critical bug
- Find JS entry points recursively
- using /server/gelf/host provided by etcd
- Fixed child method (broken in 0.9.1)
- using etcd if ETCD_HOST envionment variable is set
- Upgraded Express to 4.0.x