Skip to main content

Basic Features of Hexabase

Hexabase Feature Hierarchy

Hexabase, the backend of the system, has the following functional hierarchy.

Overview of data structures

Workspace

A "workspace" is an area where Hexabase applications are grouped. Multiple applications can be grouped together in each workspace. You can also separate users and groups by workspace.

Hexabase workspaces provide a kind of tenant functionality. Each workspace separates users and provides applications.

Workspace and application

Application

In Hexabase, databases, data reports, dashboards, etc. are grouped for each "application(project)". When you create a new workspace, an application named "New Application" is created.

Role based access control

Hexabase controls access to functions and data by user, group, and role. The API return values are automatically filtered according to this setting.

Users and groups belong to workspaces, and roles belong to applications. In Hexabase system development, each function of the application sets availability for roles and assigns roles to users and groups.

User-group-role relationship

Select workspace

Here is an image of the front-end implementation for selecting workspace and application. When a user belongs to multiple workspaces, the workspace and application selection page is displayed after login.

Select workspace

Hexabase Data store

Hexabase's data store implements a relational database based on NoSQL DB.

Database settings and operations are performed from API, command line tools (CLI), and admin panel. SQL is not available, but a query builder is provided for administrative data reports.

Developers may design and operate relational databases without needing to learn how to use individual NoSQL databases.

Components of a database

Concept of Data store

The data store is 1 database = 1 table.

Each piece of data in the data store is called an "item". One horizontal row in the table is an item. This corresponds to a general RDB record. Also, the "item" column is called "field" or "item".

  • 1 database = 1 table
  • Record → Item

Concept of data store

Implementation of Header-Detail Format

Hexabase can realize header/detail formats through database associations. For example, a header on a voucher could represent a parent-child relationship to an item description for quoting, invoicing, or sales management.

The developer can operate the database as a general RDB, and the table design can be described in terms of a general E-R diagram. The results of database associations can be obtained via data reports.

Implementation of header details format

How the Hexabase data store works

The Hexabase datastore operates like a relational database, but in practice, items are stored as mongoDB documents, and relationships are managed in ArangoDB. Hexabase has the following entity data representing relationships: 

  • Database relationships: define the relationship between databases
  • Data links: links to related items

How the data store works

Each relationship/link has a direction, and is set as the source database ⇒ the destination database. To have a bidirectional relationship, settings must be made in each DB.

Action

Hexabase performs specified operations on items by means of "actions" on the data store. Basic operations such as creating, updating, and deleting items are prepared in advance as actions.

Action

Actions can be classified into two types:

  • Database actions: Operate items in the database (create new, update, delete)
  • Status Actions: Perform status operations and item operations at the same time.

In addition, you can register common operations for items (e.g. calling external APIs). This makes it possible to standardize database operations.

Hexabase API

In Hexabase, actions and data reports that manipulate items can be called from the API. Simply assign an ID to an action or data report to call the target operation.

Calling an action with API

Status

In Hexabase, if there is a field named "status" (status) in the database, it will automatically be available as a status name for BPM workflows.

To change the status of a workflow, perform an "action" that updates the "status" field (e.g., advance to next status).

Status

System development using Hexabase realizes a state-transition-based BPM workflow by combining item states (statuses) and status actions that cause state changes.

By realizing the workflow in a state transition diagram (state chart), efficient and versatile page design is possible.

Status flow

ActionScript

In Hexabase, operations on database items are called actions. Javascript code can be assigned to these actions. This is ActionScript.

In ActionScript, calling an action executes the assigned code.

Simple business logic can be implemented with ActionScript.

ActionScript

Backend Extension

In addition to ActionScript, Hexabase can extend its backend with external integration through Webhooks.

To use Webhook, set the URL and Secret information to call the corresponding action as needed.

In batch processing, call the Hexabase function using AWS Lambda or AzureFunction's "Timer Trigger".

Data report

Hexabase allows you to use "Data Reports" to create tables for reports. This data report is then used as the basis for creating dashboard charts.

In addition, once a data report is created, the consolidated and aggregated data can be retrieved at the front end using the GetReportData API.

Database association

Dashboard

The "Dashboard" is an area where multiple graphs (charts) are combined. Charts displayed on the "Dashboard" are created based on "data reports".

Dashboards render and display charts on the server side. It is mainly intended for use on the administration panel to grasp the status of the system.

If you want to display charts on the frontend side, you can use your own graph display library with data reports as the source.