Skip to content

scireum/sirius-biz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sirius Build Status

Welcome to the business module of the SIRIUS OpenSource framework created by scireum GmbH. To learn more about what SIRIUS is please refer to documentation of the kernel module.

SIRIUS Business Module

Provides a foundation for creating web based SaaS solutions. This module contains frameworks which permit to create rock solid business applications that can easily be clustered to achieve high availability. Also a lot of common data objects and frameworks (multi tenancy, code lists, background jobs, storage, data import) are provided.

Important files of this module:

Using sirius-biz

If sirius-biz is used in a custom project, the docker-compose.yml and develop.conf are a good starting point for getting to pace quickly. Note that you can use the Setup class provided by sirius-kernel to start SIRIUS in your IDE locally.

Default UI

Using the configuration provided above will enable a default user manager (and even create a default user "system" with password "system"). After logging in, you can examine the built-in functions like the Console, SQL Debugger, SQL Schema Tool. You can also inspect the cluster state using Cluster. Note that you can also access the tooling provided by sirius-web.

Frameworks

  • HTTP/WebUI Helpers
    Provides a set of base classes for generating CRUD controllers for JDBC Databases, MongoDB and Elasticsearch.
  • Model Helpers
    Provides commonly used composites to be embedded in database entities.
  • JDBC Helpers
    Provides a set of base classes for JDBC entities and a controller to view and update the database schema and to directly perform SQL queries.
  • MongoDB Helpers
    Provides a set of base entities to be used with MongoDB.
  • Elasticsearch Helpers
    Contains base entities for Elasticsearch. Also, index maintenance jobs are provided to manage schema migrations which are not supported by Elasticsearch directly.
  • Cluster Management Facility
    Provides an interconnect facility which is used to discover and to communicate with other cluster nodes. Also provides an orchestration layer for caches, cluster health and distributed cluster tasks.
  • Isenguard
    Provides a clusterwide firewall and rate limiting facility based on Redis.
  • Global Locks
    Contains a framework to manage cluster wide locks. Various strategies are provided to best match the system topology.
  • Analytics Framework
    Provides a collection for frameworks for acquiring, aggregating and reporting analytical data.
  • Jobs Frameworks
    Permits to define jobs which can be started by users of the system. These are dispatched and executed via the distributed tasks facility and can be monitored using processes.
  • Process Facility
    Provides a management and report facility for background activities performed for the system or individual users.
  • Data Import Facility
    Contains a framework to load, convert and store data into database entities. Depending on the underlying database it permits to maximize performance by using prepared statements and batch updates.
  • System Protocol Facility
    Provides various facilities which record and store system events like log messages, sent mails, service incidents or security related events.
  • Multi Tenant User Management
    Provides a database independent model to represent multiple tenants and users which have access to the system. Currently implementations for JDBC and for MongoDB are available.
  • Sequence Generators
    Provides sequence generators for JDBC databases and MongoDB.
  • Storage System
    Contains a facility which stores files / objects in an object store but keeps all metadata in either a JDBC database or MongoDB for efficient access. Also provides a management and maintenance UI.
  • Virtual File System Layer
    Provides an abstraction layer for virtual file systems which can be accessed via remote protocols like FTP(S).
  • ObjectStore access
    Contains a thin abstraction layer for AWS compatible S3 object stores.
  • Code lists
    Permits to manage and access code lists which are either stored in JDBC databases or MongoDB.