Skip to content
This repository has been archived by the owner on Nov 14, 2019. It is now read-only.

Latest commit

 

History

History
207 lines (128 loc) · 8.58 KB

CHANGELOG.md

File metadata and controls

207 lines (128 loc) · 8.58 KB

Changelog

Breaking Changes

Added

Changed

Fixed

Removed

Breaking Changes

  • (#141) Remove core APIs.
  • (#143) Remove service.Delete API.

Added

  • (#134) Add credential system.
  • (#142) Add ownership APIs.
  • (#143) Add service.Hash and service.Exists APIs.

Added

  • (#132) Add support for constants for map.
  • (#133) Add account api.
  • (#135) New api namespace, prefix all the API with mesg to avoid conflicts.

Changed

  • (#136) Normalize naming of the api (everything singular).

Changed

  • (#130) Use MESG struct instead of proto.

Breaking Changes

  • (#124) Switch from string to byte for hashes. You can use the function decode from lib/util/base58 to convert the hashes from string.

Added

Fixed

  • (#116) Fix missing support for big number with proto structs.

Breaking Changes

  • (#114) Support of proto Structs type that replace JSON strings.

Changed

  • (#112) Automatic type generation.

Experimental

  • (#113) Add workflow APIs.

Added

  • (#104) Resolve instance hash from Service SID.

Fixed

  • (#108) Move filter on Execution's status from executeTaskAndWaitResult to listenResult.

Breaking Changes

  • (#102) Update internal logic to the new Engine's APIs of v0.11.0. The Service side stay the same (except a few types) but the application side have some modifications on the parameters of the functions. Check the release notes on the forum for more detail.

Breaking Changes

  • (#90) Service task output simplification. (#91). (#99).
  • (#101) Rename executionID to executionHash.

Changed

  • (#81) Service: throw an error when task's output functions are called without any data.
  • (#82) Service: show a warning instead of throwing an error when tasks are defined in mesg.yml but not implemented.
  • (#84) Service: throw an error when emit event functions are called without any data.
  • (#86) Update proto files with latest version from MESG Core.

Fixes

  • Export more types and classes from service and application.
  • High level application APIs has changed.
    • Added/updated listenEvent(), listenResult(), executeTask(), executeTaskAndWaitResult().
    • Previous ones removed.
  • application() constructor accepts options to configure Core's endpoint.
  • TS types updated to be more precise.
  • Possibility to associate tags for executions.
  • Update client side filter to be more precise and support executionTags filter.
  • Prevent the issue generated by core while starting the same service at the same time.
  • Add filter: (key: string, data: Object) => boolean on whenEvent and whenResult. This way it's now possible to filter by event key, event data on events and output key, output data on results.
  • Normalize the api, use:
    • taskKey instead of task.
    • outputKey instead of output.
    • eventKey instead of event.
  • Update documentation.
  • Fix whenResult callback execution
  • Update new API that normalize the inputs for tasks
  • Update latest API changes that removes error field
  • Export api for application to be able to access any api from the core
  • Use better communication system between service and MESG Core
  • Fix issue with input conversion for tasks
  • Add library for applications accessible with require('mesg-js').application()
    • whenEvent(eventDetails, taskDetails) that triggers a task when an event occurs
    • whenResult(resultDetails, taskDetails) that triggers a task when a result occurs
require('mesg-js')
  .application()
  .whenEvent({ serviceID: 'xxx', filter: 'request' }, {
    serviceID: 'yyy',
    task: 'taskX',
    inputs: (x, event) => ({
      ...
    })
  })
  • Add library for services accessible with require('mesg-js').service()
    • listenTask(map<task, function(inputs, outputs)>) that takes a map of task handlers that are functions with the following signature taskX(inputs, outputs)
MESG.listenTask({
  taskX: (inputs, outputs) => {
    outputs.outputX({ foo: inputs.valueX })
  }
})
  • emitEvent(event, data) that takes the name of the event and the associated data
MESG.emitEvent('eventX', { foo: 'bar' })