Database#

This project uses expanded Apache Guacamole’s PostgreSQL Database.

Deployed tables#

administrators#

This table contains data of the administrative users.

FieldTypeConstraintsDefault
uuidUUIDPRIMARY KEYRANDOM UUID
usernameVARCHAR(24)UNIQUE NOT NULL-
passwordVARCHAR(60)NOT NULL-
nameVARCHAR(50)--
surnameVARCHAR(50)--
emailVARCHAR(255)UNIQUE-
creation_dateDATENOT NULLCURRENT DATE
last_activeTIMESTAMP--
disabledBOOLEAN-FALSE

clients#

This table contains data of the client users.

FieldTypeConstraintsDefault
uuidUUIDPRIMARY KEYRANDOM UUID
usernameVARCHAR(24)UNIQUE NOT NULL-
passwordVARCHAR(60)NOT NULL-
nameVARCHAR(50)--
surnameVARCHAR(50)--
emailVARCHAR(255)UNIQUE-
creation_dateDATENOT NULLCURRENT DATE
last_activeTIMESTAMP--
disabledBOOLEAN-FALSE

roles#

This table contains data of administrative roles deployed in the application and the permissions they grant.

FieldTypeConstraintsDefault
uuidUUIDPRIMARY KEYRANDOM UUID
nameVARCHAR(50)UNIQUE-
permissionsINT-0

groups#

This table contains data of groups of client users.

FieldTypeConstraintsDefault
uuidUUIDPRIMARY KEYRANDOM UUID
nameVARCHAR(50)UNIQUE-

administrators_roles#

This table links the administrators to the roles they are granted with.

FieldTypeConstraintsDefault
administrator_uuidUUIDPRIMARY KEY, FOREIGN KEY β†’ administrators(uuid)-
role_uuidUUIDPRIMARY KEY, FOREIGN KEY β†’ roles(uuid)-

clients_groups#

This table matches the clients with the groups they belong to.

FieldTypeConstraintsDefault
client_uuidUUIDPRIMARY, FOREIGN KEY β†’ clients(uuid)-
group_uuidUUIDPRIMARY, FOREIGN KEY β†’ groups(uuid)-

deployed_machines_owners#

This table links the machines with their owners (administrative accounts).

FieldTypeConstraintsDefault
machine_uuidUUIDPRIMARY KEY-
owner_uuidUUIDFOREIGN KEY β†’ administrators(uuid)-
started_atTIMESTAMP--

deployed_machines_clients#

This table links the clients with the machines they were assigned to by the machines’ owners.

FieldTypeConstraintsDefault
machine_uuidUUIDPRIMARY KEY, FOREIGN KEY β†’ deployed_machines_owners(machine_uuid)-
client_uuidUUIDPRIMARY KEY, FOREIGN KEY β†’ clients(uuid)-

network_panel_states#

This table stores the node positions within the network panel, enabling users to reopen the panel and restore their customized layout.

FieldTypeConstraintsDefault
owner_uuidUUIDPRIMARY KEY, FOREIGN KEY β†’ administrators(uuid)-
positionsJSONBNOT NULL-

network_snapshots#

This table contains saved snapshots of the network panel.

  • positions field is responsible for saving the positions of nodes in the network panel
  • intnets saves the actual machine - intnet connections
FieldTypeConstraintsDefault
uuidUUIDPRIMARY KEYRANDOM UUID
owner_uuidUUIDFOREIGN KEY β†’ administrators(uuid)-
nameVARCHAR(24)UNIQUE NOT NULL-
created_atTIMESTAMPNOT NULLCURRENT TIMESTAMP
intnetsJSONBNOT NULL-
positionsJSONBNOT NULL-

iso_files#

This table contains records of ISO files uploaded to the system.

FieldTypeConstraintsDefault
uuidUUIDPRIMARY KEYgen_random_uuid()
nameVARCHAR(24)UNIQUE, NOT NULLβ€”
remoteBOOLEANβ€”β€”
file_nameTEXTβ€”β€”
file_locationTEXTβ€”β€”
file_size_bytesBIGINTβ€”0
last_usedTIMESTAMPβ€”β€”
imported_byUUIDFOREIGN KEY β†’ administrators(uuid)β€”
imported_atTIMESTAMPβ€”β€”
last_modified_byUUIDFOREIGN KEY β†’ administrators(uuid)β€”
last_modified_atTIMESTAMPβ€”β€”

machine_templates#

This table contains saved machine templates. These templates can be later used for setting configuration data during machine creation.

FieldTypeConstraintsDefault
uuidUUIDPRIMARY KEYgen_random_uuid()
owner_uuidUUIDNOT NULL, FOREIGN KEY β†’ administrators(uuid)β€”
nameVARCHAR(24)UNIQUE, NOT NULLβ€”
ramINTNOT NULL0
vcpuINTNOT NULL0
created_atTIMESTAMPNOT NULLNOW()

machine_snapshots#

This table contains saved machine snapshots. These snapshots can be later used during creation of the new virtual machines.

FieldTypeConstraintsDefault
uuidUUIDPRIMARY KEYRANDOM UUID
owner_uuidUUIDFOREIGN KEY β†’ administrators(uuid)-
nameVARCHAR(24)UNIQUE NOT NULL-
created_atTIMESTAMPNOT NULLCURRENT TIMESTAMP
sizeBIGINT-0

machine_snapshots_shares#

This table links saved machine snapshots to the administrators they are shared with.

FieldTypeConstraintsDefault
snapshot_uuidUUIDPRIMARY KEY, FOREIGN KEY β†’ machine_snapshots(uuid)-
recipient_uuidUUIDPRIMARY KEY, FOREIGN KEY β†’ administrators(uuid)-