UNPKG

bedrock

Version:

A core foundation for rich Web applications.

400 lines (296 loc) 12.8 kB
# bedrock ChangeLog ## 3.0.0 - 2019-11-08 ### Changed - **BREAKING**: Update Node.js requirement to v10.12.0. - **BREAKING**: `bedrock.start()` now returns a promise instead of using a callback. Top-level code using the callback should change to `async`/`await` or `then`/`catch` as needed. - **BREAKING**: Update `async-node-events` dependency and update events API. - `emit` is now an async function and used instead of passing a callback for completion. User code **must** be updated for this change. It is suggested to await the `emit` calls and use async listeners or Promises. - **BREAKING**: `runOnce` callback form is removed in favor of the `runOnceAsync` implementation. `runOnceAsync` remains as an alias for `runOnce` but is deprecated. Quick fix is to wrap the new `runOnce` with `callbackify` and the `fn` param with `promisify`. - Use master/worker child loggers. ### Removed - `bedrock.events.emit` wrapper. Using default from `async-node-events`. - **BREAKING**: Deprecated event object style. ## 2.0.0 - 2019-10-22 ### Changed - **BREAKING**: Remove mocha unit test framework. The test framework now resides entirely in the bedrock-test module@4. - **BREAKING**: Remove `bedrock.jsonld` and related configuration. A jsonld document loader is now available in bedrock-jsonld-document-loader@1. ### Added - `bedrock.util.hasValue` helper API to replace `jsonld.hasValue`. ## 1.18.1 - 2019-07-24 ### Fixed - Fix memory leak and improve error handling in `runOnce` and `runOnceAsync`. ## 1.18.0 - 2019-07-16 ### Changed - Update lodash to 4.17.14. - Switch to eslint. - **BREAKING**: Update Node.js engine requirement to >= 8. Note this is due to the use of async/await when runOnceAsync was added in 1.16.0. ## 1.17.0 - 2019-05-06 ### Changed - Improve callback function detection in `events.emit` API. ## 1.16.0 - 2019-04-30 ### Added - `bedrock.runOnceAsync` API which is a promise based version of `bedrock.runOnce`. ## 1.15.0 - 2019-03-18 ### Added - `bedrock.util.delay` API which is used to create a promise which resolves after the specified milliseconds. ### Changed - Use `uuid-random` for `bedrock.util.uuid`. ## 1.14.0 - 2018-11-29 ### Changed - Change default value of `bedrock.config.jsonld.strictSSL` from `false` to `true`. This means that the `jsonld` library's document loader will refuse to retrieve documents from sites without proper SSL certificates. This change will impact unit tests in Bedrock modules. The `strictSSL` flag will need to be set to `false` in the `test.config.js` files for affected modules. ## 1.13.0 - 2018-09-20 ### Added - Add `bedrock-cli.parsed` event. ### Changed - Update copyright notices. - Style fixes. ## 1.12.1 - 2018-05-10 ### Changed - Update async-node-events to 1.0.0. ## 1.12.0 - 2018-05-08 ### Added - Return Promise from `events.emit` and `events.emitLater` that resolves to `undefined` once the event has been emitted to all listeners or to `false` if it was canceled. ## 1.11.0 - 2018-05-08 ### Added - Add `util.callbackify` helper to produce functions that can be called with a callback function or that will return a Promise if the callback function is omitted. This utility function is used in bedrock modules that are written using Promises internally and that expose Promise-based public APIs that also support legacy callback patterns. ## 1.10.0 - 2018-04-06 ### Added - `--log-exclude` option to eliminate logging from certain modules. ## 1.9.2 - 2018-03-28 ### Changed - Update to newer worker API. - Improve errors in runOnce calls. - Use logger to handle uncaught error formatting. ## 1.9.1 - 2018-03-07 ### Changed - Update from istanbul to nyc for coverage. ## 1.9.0 - 2018-03-01 ### Changed - Update jsonld to 1.0.0. ## 1.8.0 - 2018-02-13 ### Changed - Update jsonld to 0.5.x. - Update many other dependencies. ### Added - `--log-only` option to log only certain modules. ## 1.7.1 - 2017-11-13 ### Fixed - Update mocha dependency which addresses multiple security vulnerabilities. ## 1.7.0 - 2017-08-10 ### Added - Add `assertNoError(err)` global test helper which makes an assertion that `err` should be falsy. If an error does occur, the full error will be logged to the console. The additional logging is helpful when troubleshooting tests that are failing due to a regression. This helper should be used in place of the commonly used `should.not.exist(err)` assertion. ## 1.6.0 - 2017-07-27 ### Changed - Upgrade test related dependencies: mocha, chai, chai-as-promised. ## 1.5.0 - 2017-07-24 ### Added - Add `child(meta)` method to create a child logger with common metadata for each logging call. The special `module` meta key can be used to prefix messages with `[module] ` and is removed from the message details. `child(name)` is a shortcut for `child({module: name})`. ## 1.4.1 - 2017-02-02 ### Changed - Deprecated default values for `config.paths`. A warning will be printed. A future major version will force values to be set by applications. ## 1.4.0 - 2016-12-09 ### Added - Add `config.paths` with `log` and `cache` entries. This is designed to be a simple single point of configuration for the root logging and cache paths. ### Changed - Use computed configs: - Add common cache and log paths to config.paths. - Use common log path for default log files. ## 1.3.0 - 2016-12-07 ### Added - Add `bedrock.util.config` utilities: - Add `bedrock.util.config.Config` OO wrapper API. - Common `bedrock.util.config.main` Config wrapper for `bedrock.config`. - See README for usage details. - ci-test target with tap mocha reporter. ### Changed - Updated dependencies. - Updated to node >= 6. ## 1.2.5 - 2016-07-29 ### Fixed - Fix chown bug when posix doesn't exist and usernames are used. ## 1.2.4 - 2016-06-09 ### Changed - Improve logging of simple object unhandled errors. ## 1.2.3 - 2016-06-01 ### Changed - Use improved common uncaught exception handler. ## 1.2.2 - 2016-05-30 ### Changed - Update docs. - Update jscs linter rules. ## 1.2.1 - 2016-04-04 ### Fixed - `enableChownDir` check typo. ## 1.2.0 - 2016-03-30 ### Added - `bedrock.config.loggers.*.bedrock` for bedrock specific options. - Add `...bedrock.enableChownDir` boolean option to control `chown`ing file logger directory to runtime userId. ## 1.1.1 - 2016-02-22 ### Fixed - Check `config.loggers` properties are Objects before accsesing sub-properties. Fixes older configs that set other non-Object meta-data along with loggers. ## 1.1.0 - 2016-02-11 ### Added - Add simpler and more explicit mechanism for adding new winston transports. Now a call to `bedrock.loggers.addTransport` can be made in event listeners handling the `bedrock-loggers.init` event. ## 1.0.10 - 2016-01-31 ### Changed - Updated dependencies. ## 1.0.9 - 2015-10-27 ### Changed - Updated jsonld.js to 0.4.2 to get URDNA2015 support. ## 1.0.8 - 2015-10-15 ### Changed - Initialize jsonld document loader in `bedrock.init` event phase. Done to allow access to fully setup config. Warn if default document loader is used before jsonld initialized. ### Fixed - `bedrock.config.jsonld.strictSSL` used if available to configure jsonld document loader. ## 1.0.7 - 2015-10-15 ### Changed - `exit` now calls worker kill() vs disconnect() and process.exit(). Appears to be more correct and works around a bug in node 4.x. ## 1.0.6 - 2015-09-15 ### Changed - Update posix version to be compatible with node 4.0.0. ## 1.0.5 - 2015-09-14 ### Changed - Updated jsonld and other versions. ## 1.0.4 - 2015-08-27 ### Changed - Updated async to version 1.4.x. ## 1.0.3 - 2015-07-16 ### Fixed - Bug that caused workers to not be restarted. ## 1.0.2 - 2015-07-12 ### Fixed - Handle cycles in log message meta data. ## 1.0.1 - 2015-05-07 ### Changed - Update dependencies. ## 1.0.0 - 2015-04-08 ### Changed - **BREAKING**: A new event `bedrock.admin.init` was introduced that emits prior to `bedrock.init`. This new event is emitted while the process has any elevated privileges and after it is handled, elevated privileges are dropped. This changes `bedrock.init` so that it runs without elevated privileges. This only affected `bedrock.server` in a negative way; this module has been updated to comply with the change. Also, `bedrock.init` should no longer be used to emit custom events; these should be deferred to `bedrock.start` to prevent scenarios where a listener of an event emitted by one module can't use the API of another unrelated module because it hasn't been initialized yet. Deferring custom event emitting to `bedrock.start` as a best practice avoids this scenario. - Updated JSCS rules. ## 0.3.2 - 2015-02-24 ### Fixed - Fixed default command after upgrade to commander 2.6. ## 0.3.1 - 2015-02-23 ### Changed - Updated commander to version 2.6.0. ## 0.3.0 - 2015-02-16 ### Breaking Changes - Major package reorganization: - Files split into many sub-projects. - Bedrock server split into `bedrock-*` modules. - Bedrock frontend components split into `bedrock-angular-*` modules. - Infrastructure changed to make composing a project from modules much easier. - **bedrock**: - New event system for module initialization and communication. - Removed old bedrock.modules API. - `config.app.*` changed to `config.core.*`. - `config.server.workers` changed to `config.core.workers`. - Various code moved to modules or removed (`iso8601` library, etc) - `bedrock.security` API removed. Other libraries such as `jsonld-signatures` can be used. - `bedrock.tools` renamed to `bedrock.util`; `bedrock.tools` is deprecated. - Config files: - Most files moved as examples in `bedrock-seed`. - Some values added as defaults in appropriate modules. - `configs` dir removed. - Development uses defaults. - Testing uses `lib/test.config.js`. - Removed `config.environment` in favor of feature flags. - `config.core.starting.groupId` and `config.core.starting.userId` used for master before logging initialized. - `config.core.running.groupId` and `config.core.running.userId` used for master and workers after logging initialized. - `config.core.errors.showStack` used to control general error stack traces. - `config.jsonld.strictSSL` used to control strict SSL of jsonld library. - `config.views.serviceUnavailable` to control 503 Service Unavailable for all requests. - `config.core.masterTitle` changed to `config.core.master.title`. - `config.core.workerTitle` changed to `config.core.worker.title`. - `config.core.restartWorkers` changed to `config.core.worker.restart`. - Remove uses of `MODULE_NS`. - Remove prefixes from errors and use simpler names. - Change many `*NotFound` error types to just `NotFound`. - **mail**: - Per-module mapper files removed. - Modules push event handlers to `bedrock.config.mail.events` array: - `{type: 'EVENT-TYPE', template: 'TEMPLATE-HANDLER-ID'}` - Modules set config objects in `bedrock.config.mail.templates.config[ID]`: - `{filename: 'FULL-FILENAME', [disabled: true]}` - **express**: - `config.server.cache.*` renamed to `config.express.cache.*`. - `config.server.session.*` renamed to `config.express.session.*`. - `config.server.static` renamed to `config.express.static`. - `config.server.staticOptions` renamed to `config.express.staticOptions`. - `config.express.useSession` to control session support. - `config.express.dumpExceptions` to control error exceptions. - `config.express.showStack` to control error stack traces. - **i18n**: - `config.website.i18nPaths` renamed to `config.i18n.localePath`. - `config.website.writeLocales` renamed to `config.i18n.writeLocales`. - **schemas**: - Schemas moved to `bedrock-validation` and other modules. - Modules push paths to `bedrock.config.validation.schemas.paths` array. - **mongodb**: - `config.database` changed to `config.mongodb`. - `bedrock-mongodb` module now uses version 2.x of the Node.js driver, see [Migrating to 2.X](http://mongodb.github.io/node-mongodb-native/2.0/tutorials/changes-from-1.0/). - Support for mongodb 2.2 has been dropped. - **cli**: - `-R/--reporter` changed to `--mocha-reporter`. - **views**: - `config.website.views` moved to `config.views`. - `config.views.vars` are now shared between client and server templates except for any vars under `_private` which are server-only. - `config.views.vars.clientData` has been removed. - `config.views.vars.session` moved to `config.views.vars.idp.session`. - A number of unused keys in `config.views.vars` have been removed: `session.auth`, `session.loaded`, `serviceHost`, `serviceDomain`, `productionMode`. ## 0.2.0 (up to early 2015) - See git history for changes.