Skip to content

The External Modules

Spera Alfredo Jeshoua edited this page May 14, 2025 · 3 revisions

VM Lab Development Badge

The system architecture consists of four modules that interact with each other.

graph TD
    User(User) --> WebApp[Web Application<br/>Module]:::webapp
    WebApp --> DB[Database<br/>Module]:::db
    WebApp --> SSH[SSH<br/>Module]:::ssh
    WebApp --> SFTP[SFTP<br/>Module]:::sftp
    SFTP --> RemoteSFTP[Remote Servers]
    SSH --> RemoteSSH[Remote Servers]

    classDef webapp fill:#5296b8,stroke:#c2e5f5,color:black;
    classDef db fill:#b8a752,stroke:#f5ecc2,color:black;
    classDef ssh fill:#b87452,stroke:#f5d2c2,color:black;
    classDef sftp fill:#5263b8,stroke:#c2cbf5,color:black;
Loading

Database module

This module is used to store information about users, their VM credentials, and their bookmarks.

Tip

It's basically the database itself.

The module is used exclusively by the web application, specifically the backend, which is responsible for performing database operations.

SSH module

The SSH Module is designed to emulate an SSH terminal within a Web page, allowing users to interact with a session already connected to a remote machine, without the need to manually enter connection parameters.

This allows its integration into more complex web applications via HTML iframe components.

The module is used only by the web application:

  • backend: responsible for sending credentials.
  • frontend: displays the terminal.

Tip

The requests are made in utils/terminal_connection.py and used in pages/terminal.py.

SFTP module

The SFTP Module is designed similarly to the SSH module described above, to emulate an SFTP file explorer within a web page. The main objective is to allow users to interact with an already configured file explorer connected to a remote machine within a web page, without the need to manually enter connection parameters.

Just as with the SSH module, this type of design allows the use of the web page offered by the module within HTML iframe components.

The module is used only by the web application:

  • backend: responsible for sending credentials.
  • frontend: displays the file explorer.

Tip

The requests are made in utils/terminal_connection.py and used in pages/terminal.py.

Clone this wiki locally