Skip to content

An open framework for building digital services.

License

Notifications You must be signed in to change notification settings

wmfs/tymly-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tymly

Tymly Package npm (scoped) CircleCI codecov CodeFactor Dependabot badge Commitizen friendly JavaScript Style Guide license FOSSA Status

A framework for building and sharing workflows in Node.js.

Install

$ npm install tymly --save

Usage

const tymly = require('tymly')

const tymlyServices = await tymly.boot(
  {
    // Blueprints are structured directories that describe a business function.
    // They contain 'state-machines' (e.g. Finite State Machines expressed in JSON as per Amazon State Machine specification: http://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-state-machine-structure.html)
    // along with the resources required for those state-machines to run (e.g. data
    // model definitions, images, form-layouts, templates etc.)
    // This is just a simple list of directories where blueprints can be found...
    blueprintPaths: [
      '/tymly/blueprints/hr',      // Some flows for HR-related things
      '/tymly/blueprints/payroll'  // Some flows for payroll-related activities
    ],
    excludeBlueprints: 'the-thing-that-should-not-be-blueprint'
    // Tymly is extended via plugins, each in-turn offer 'services' and other components...
    pluginPaths: [
      '/tymly/plugins/tymly-express-plugin',  // For accessing Tymly over HTTP/REST etc.
      '/tymly/plugins/tymly-etl-plugin',   // Adds import-from-CSV capabilities
      '/tymly/plugins/tymly-pg-plugin'   // Persist to PostgreSQL instead of the default in-memory solution
    ],
    excludePlugins: 'the-thing-that-should-not-be-plugin'
  }
)

// Do something with those services...
// (e.g. the 'tymly-express-plugin' provides an Express-powered 'server' service)
const port = 3000
services.server.listen(port, () => {
  console.log(`Example app listening on port ${port}`);
})

Why?

Tymly has been developed as an alternative for organisations (especially non-profits and Government departments) who need continually-evolving business software - but can do without the complexity, expense and vendor lock-in that usually accompanies it.

Documentation

For documentation, please visit http://www.tymly.io/

Tests

$ npm test

License

MIT

FOSSA Status