- Update
application.properties
Application name
spring.application.name=<your app name>Database connection
spring.datasource.url=jdbc:mysql://<ip>:<port>/<default_schema>?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=round&useSSL=true spring.datasource.username= spring.datasource.password=Auto create/update base tables - On initial run, keep this
true. After base tables are created you can set this tofalse.template.app.autoUpdateTables=true
Essential information about each user, including their username, password, full name, and email address. It serves as the primary table for user authentication and identification.
| Column | Description |
|---|---|
| id | Primary key |
| username | Unique, used for login |
| password | Encrypted, used for login |
| full_name | Full name |
| Email Address | |
| permission | Values: ROLE = Uses role specific resource permission USER = Uses user specific resource permission |
| relation_id | Foreign key to sys_relation.id. This is the current role & group of the user |
| enabled | Values: 1 = Enabled 0 = Disabled |
Defines various user roles within the system. These roles help manage user permissions and access control.
| Column | Description |
|---|---|
| id | Primary key |
| name | Name of the role |
| description | (Optional) Brief description about the role |
| enabled | Values: 1 = Enabled 0 = Disabled |
Contains the organizational structure of the system. It is used to group users based on hierarchical or functional divisions within the system.
| Column | Description |
|---|---|
| id | Primary key |
| name | Name of the group |
| parent_id | Foreign key relates to the id of this table. If null it means the group is top-level |
| type | 1 = Top-level 2 = 2nd level ...and so on |
| enabled | Values: 1 = Enabled 0 = Disabled |
| path | The group's hierarchy in the format of concatenated ids. Example value: 1.2 which means the group's id is 2 where it's parent id is 1 |
Relation between the user, role, and group.
| Column | Description |
|---|---|
| id | Primary key |
| user_id | Foreign key to user.id |
| role_id | Foreign key to role.id |
| group_id | Foreign key to group.id |
| enabled | Values: 1 = Enabled 0 = Disabled |
Defines modules within the system, menus and buttons are stored here that can be toggled
| Column | Description |
|---|---|
| id | Primary key |
| parent_id | Foreign key relates to the id of this table. If null it means the group is top-level |
| type | 1 = Top-level 2 = 2nd level ...and so on |
| category | Values: MENU = The resource is a menu BUTTON = A functional resource like the 'Add' or 'Export' buttons |
| icon | (Optional) Icon that will show beside the resource (For MENU resources only) |
| resource_path | Path of the page in the frontend project (For MENU resources only) |
| path | The resource's hierarchy in the format of concatenated ids. Example value: 1.2 which means the resource's id is 2 where it's parent id is 1 (For MENU resources only) |
| sort | (Optional) Number indicating the order of the resource (For MENU resources only) |
User/Role related resource permissions
| Column | Description |
|---|---|
| id | Primary key |
| user_id | Foreign key to user.id. Note: user_id and role_id cannot have value at the same time |
| role_id | Foreign key to role.id. Note: role_id and user_id cannot have value at the same time |
| resource_id | Foreign key to sys_resource.id |
| type | Values: 1 = Role based permission 2 = User specific permission |
