[ 
https://issues.apache.org/jira/browse/GUACAMOLE-2064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17949731#comment-17949731
 ] 

Nick Couchman commented on GUACAMOLE-2064:
------------------------------------------

[~phuleratribhuwan]: Thanks for putting in this feature request, and I agree 
that this would be great to have. One minor thing - I don't think the protocol 
selection actually needs to invoke the binary, it just needs to make use of the 
C-based libraries for the various database options and make use of Guacamole's 
terminal facility for presenting a prompt to the user and sending the commands 
to the back-end database.

If you're able to contribute to this, feel free to start on it and submit pull 
requests!

> 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
>            Priority: Minor
>
> 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