Tribhuwan Phulera created GUACAMOLE-2064:
--------------------------------------------

             Summary: Feature Request – Add Guacamole Protocol Module for 
Secure CLI-Based Access to Relational Databases with Full Session Logging
                 Key: GUACAMOLE-2064
                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-2064
             Project: Guacamole
          Issue Type: New Feature
          Components: guacamole
    Affects Versions: 1.5.5
            Reporter: Tribhuwan Phulera


I would like to propose the development of a *custom protocol module* within 
Apache Guacamole to enable interactive access to various relational database 
systems (e.g., MySQL, PostgreSQL, MariaDB) through their respective 
command-line clients (e.g., {{{}mysql{}}}, {{{}psql{}}}, etc.), executed inside 
a secure pseudo-terminal (PTY) and fully integrated into the Guacamole web 
session.
----
h3. {*}Key Objectives{*}:
 # Enable users to launch CLI-based database sessions via Guacamole for 
operational and administrative access.

 # The backend should dynamically spawn the appropriate database client (e.g., 
{{{}mysql{}}}, {{{}psql{}}}) within a PTY session, routed through the Guacamole 
protocol.

 # All user inputs (SQL commands) and terminal outputs (query results, 
messages) must be {*}recorded{*}, with support for file-based or remote logging.

 # Support basic protocol parameters such as {{{}hostname{}}}, {{{}port{}}}, 
{{{}username{}}}, {{{}password{}}}, and {{{}database{}}}.

 # Implement protocol identification at runtime or during configuration to 
route to the correct CLI binary.

----
h3. {*}Expected Features{*}:
 * {*}Supported Clients (initial){*}:

 ** {{mysql}} (MySQL/MariaDB)

 ** {{psql}} (PostgreSQL)

 ** Others (e.g., {{sqlcmd}} for SQL Server) can be considered for later phases.

 * {*}Configuration Parameters{*}:

 ** {{{}protocol{}}}: {{{}mysql{}}}, {{{}postgres{}}}, etc.

 ** {{{}host{}}}, {{{}port{}}}, {{{}username{}}}, {{{}password{}}}, 
{{database}} – securely passed, not logged.

 * {*}Session Recording{*}:

 ** Capture full terminal interaction including timestamps.

h3. {*}Acceptance Criteria{*}:
 * Users can configure and launch CLI database sessions through Guacamole UI or 
via backend DB configuration.

 * The correct binary ({{{}mysql{}}}, {{{}psql{}}}) is invoked based on 
selected protocol.

 * Full interaction (commands and responses) is logged securely.

 * Sessions gracefully handle disconnection, resizing, and cleanup.

 * Implementation adheres to Guacamole coding and packaging standards and is 
deployable via {{{}guacd{}}}.

----
h3. {*}Rationale{*}:

This enhancement will extend Guacamole's capabilities beyond SSH/Telnet to 
support *auditable, web-based access to database CLIs* in secure enterprise 
environments. It will reduce the need for direct terminal/VPN access while 
improving observability for database operations.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to