Genatron has you covered with everything from role-based access controls (RBAC) to reports and widgets. It builds on the core concepts and these capabilities are all built the same way: describing what's needed.
Role-based restrictions can be used to control the ability of users to add/edit, update and delete data at different levels. It is possible to restrict access to entire areas, to specific fields, as well as reports and widgets.
For example, given the roles: Admin, Manager, Associate, it is possible to use language like "Assets can only be viewed by Associates" to make the entire Assets area read-only to associates or "Only Admins or Managers can edit" when referring to the Asset Cost field.
It's important when listing the list of roles to do so in the order of highest ranking to lowest ranking. When roles are used the highest ranking role will have access to areas like the built-in Settings area by default.
For reports and dashboard items language like "Only Admins have access to this report" will limit the desired reports or widgets to only be usable by certain roles.
Roles are enforced at the API-request level and it is possible to assign specific roles to API tokens for non-user access.
Reports can be generated by pulling data stored for any of the entities in the system. The relationships between various entities can be used to list records, aggregate values, apply filters and more.
When describing reports it helps to list the columns needed in the output. Columns can be fields that exist on entities or can be newly derived values computed from existing fields. The expressions support all arithmetic operations. Aggregate functions like count, sum, average, minimum and maximum are supported.
The dashboard is made up of any requested widgets using the same query generation capabilities as reports. The widgets supported are outlined below: