UnityBase

Unitybase is a full stack JavaScript framework for Enterprise. It's main purpose is to provide a set of modules for rapid development of RMS / EDRMS class software.

From the low level point of view UnityBase is a asynchronous non-blocking HTTP(S) server with a:

  • build-in synchronous multi-thread JavaScript engine SpiderMonkey
  • build-in Database access for a most known RDBMS
  • build-in file systems access

UB4 Server Architecture

Form a business logic developer point of view UnityBase is:

  • an DBMS agnostic ORM what work over application Domain metadata
  • a set of tools for
    • synchronizing a physical database structure with Domain metadata
    • generating REST API based on Domain metadata
    • generating developer documentation from Domain metadata
  • authorization, authentication, role based access control, row level security, audit trail, etc
  • a set of ready to use entities appropriate for the majority of enterprise systems
  • automatically generated admin UI based on Domain

About this documentation

Available server-side modules

Many of nodejs modules are compatible with UnityBase. We are constantly working on enhancing the compatibility with nodejs.

Below is a short list of the modules available in the UnityBase standard distribution:

  • @unitybase/ub: main entry point for the most of the applications
  • @unitybase/ubcli: command line utils for database initialization, synchronizing domain metadata with physical database structure, auto tests, generation of documentation and IDE code insight stubs, etc.
  • @unitybase/base: working with command line args, connecting to UnityBase server, bulk data loading
  • @unitybase/uba: UnityBase Administrative model. Defines entities for the users, roles and permissions. See tutorial 02 Security
  • @unitybase/ubq: Asynchronous task queue persisted into the database. See tutorials 03 Delayed operations and Schedulers. This module contains the methods for sending e-mails and updating FTS indexes.
  • @unitybase/ubs: Reports, User messages (notifications), Settings (aka about:config), Counters
  • @unitybase/cdn: Set of the dictionaries appropriate for the majority of enterprise systems:
    • Organizations (departments, persons, contacts, bank accounts etc.)
    • Regions (countries, cities, streets, buildings etc)
  • @unitybase/ubm: Set of the entities for constructing a dynamically generated UnityBase UI
    • enumerations
    • navigation desktops & shortcuts ( can be used for the dynamic routing generation for portalUI)
    • forms definitions (used by adminUI for dynamic forms' generation)
    • ER diagrams
  • @unitybase/org: an internal organization structure
    • includes organizations, departments, staffs, positions, employees, professions
    • can store hierarchical organization charts
    • all entities are historical and support safe delete
  • @unitybase/xlsx package for creating MS Excel files
  • @unitybase/pdf package for creating PDFs

The complete list of available modules is in UnityBase packages registry

Get Started

Read about UnityBase application initialization process in @unitybase/ub module documentation.

Check out UnityBase Getting Started guide and other guides.

Explore the project WiKi.