Form

The system performs certain actions before and after any CRUD operation. The overview is shown in the image below. We will explain each part in this section.

Pre-CRUD actions of the system

The system performs three kinds of Access Control before any CRUD operation:

  1. Entity Based Access Control

  2. Row Based Access Control

  3. Column Based Access Control

Entity Based Access Control

Entity based checks if user has view access to a table. If user doesn't have view access, then the system throws an exception. And if user has view access, then the system checks which of the INSERT, UPDATE, and DELETE accesses does the user have.

Row Based Access Control

Row based checks which of the view, INSERT, UPDATE, and DELETE accesses does the user have for the rows of a table. User can have view access for a table but he may not have view access for some rows of that table (they can see only 10 out of 12 rows for example). Developer can do this by configuring access controls of a table.

Column Based Access Control

Column based check which of the view, INSERT, UPDATE, and DELETE accesses does the user have for the columns of a table. User can have UPDATE access for one row but may not have update access for one of the columns (let's say 2nd column) of that row. So, user can update all the columns in that row except that 2nd one. This can be done by configuring access controls of a table field.

Basic Column Validation

The system performs basic column validation such as

  • Type: String, Integer,etc.

  • Not null constraint: can it be null or not?

  • Length constraint: is it in range of min and max length?

  • Value constraint: is it in range of min and max value?

Pre-CRUD and After-CRUD Operations

The system checks if user added table events. Pre-CRUD operations: before insert, before delete, and before update. After-CRUD operations: after insert, after delete, and after update. If there is any operation, the system runs the table event script that user wrote.

After-CRUD actions of the system

Log Control

The system can log every single action of a user. Like git commits you can see who did what and when. This is important in a business application for security reasons.

Detail CRUD Control

In Master-Detail relationship, the system performs all of the actions (in diagram) for detail component as well.

Workflow Control

The system has built-in workflow engine that provides certain procedural rules for actions. For example, in order to perform an action x first it needs to perform actions y and z.

Conversion Control

The system does conversion from a data source to another data source. For example, when user converts a table to a form. The system takes data from table table and inserts into form table.

Notifications Control

User can configure the system to send email or SMS messages to certain users after actions like update, insert, and delete.

Other Controls

The system creates a message like "user created a table tbl_product" in activity feed. And since our VCS tracks all the metadata, the system shows plus signs next to modified components to let user know that they can commit their changes.