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)