[ 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)