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
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
- for entity meta file format see entity json schema
- for application config (ubConfig) file format see server config json schema
- for a list of supported nodejs core modules see
buildin
- method marked as api is available from the client
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.