Basic Features of Hexabase
Hexabase Feature Hierarchy
Hexabase, the backend of the system, has the following functional hierarchy.
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.
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.
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.
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.
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
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.
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
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.
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.
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).
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.
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 basic
- External API integration from ActionScript
- ActionScript sample
- Save and load ActionScript
- Log output by CLI
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.
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.