[PR #5043] [CLOSED] feat(sql-agent): add Oracle database support via class-based connector #4872

Closed
opened 2026-02-22 18:36:42 -05:00 by yindo · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Mintplex-Labs/anything-llm/pull/5043
Author: @anjumsohail
Created: 2/22/2026
Status: Closed

Base: masterHead: feature/oracle-sql-support


📝 Commits (2)

  • c55d79c feat(sql-agent): add Oracle database support via class-based connector
  • 5e9585a feat: add Oracle SQL connector support with Docker and libaio fixes

📊 Changes

12 files changed (+412 additions, -3 deletions)

View changed files

📝 README.md (+2 -0)
build.txt (+16 -0)
📝 docker/Dockerfile (+28 -0)
extras/oracle-support.md (+240 -0)
📝 frontend/src/models/system.js (+1 -1)
📝 frontend/src/pages/Admin/Agents/SQLConnectorSelection/DBConnection.jsx (+3 -0)
📝 frontend/src/pages/Admin/Agents/SQLConnectorSelection/SQLConnectionModal.jsx (+7 -0)
frontend/src/pages/Admin/Agents/SQLConnectorSelection/icons/oracle.png (+0 -0)
📝 server/package.json (+1 -0)
server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/Oracle.js (+104 -0)
📝 server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/index.js (+5 -2)
📝 server/yarn.lock (+5 -0)

📄 Description

Added OracleConnector for Oracle Database Support

Pull Request Type

  • feat (New feature)
  • 📝 docs (Documentation updates)

Relevant Issues

resolves #

Description

This PR adds Oracle Database support to the SQL Agent using the existing class-based connector architecture. The implementation follows the same pattern as existing SQL connectors (MySQL, PostgreSQL, MSSQL) and allows the agent to connect to Oracle databases without modifying core logic.

Key changes include:

  • Added OracleConnector class implementing runQuery, validateConnection, and metadata methods.
  • Integrated oracledb driver in Thin mode (no Instant Client required).
  • Extended SQLEngine typedef to include "oracle".
  • Updated frontend engine enum and SQL engine selector UI to support Oracle.
  • Registered OracleConnector in getDBClient() for runtime selection.
  • Implemented Oracle-specific metadata queries for tables and columns.
  • Fully Docker-compatible, works in Alpine images without native libraries.

This feature makes Oracle a first-class SQL engine in AnythingLLM while preserving polymorphism and database-agnostic execution for the agent.

Visuals (if applicable)

oracle1 oracle2

Additional Information

Connection string format:

oracle://username:password@host:1521/SERVICENAME

  • Service Name is used instead of SID.
  • No changes were made to existing engines; backward compatibility is preserved.
  • Local Docker build verified with new connector.

Developer Validations

  • I ran yarn lint from the root of the repo & committed changes
  • Relevant documentation has been updated (if applicable)
  • I have tested my code functionality
  • Docker build succeeds locally

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Mintplex-Labs/anything-llm/pull/5043 **Author:** [@anjumsohail](https://github.com/anjumsohail) **Created:** 2/22/2026 **Status:** ❌ Closed **Base:** `master` ← **Head:** `feature/oracle-sql-support` --- ### 📝 Commits (2) - [`c55d79c`](https://github.com/Mintplex-Labs/anything-llm/commit/c55d79c07572c260747ebd87ad458c43a5bdbb70) feat(sql-agent): add Oracle database support via class-based connector - [`5e9585a`](https://github.com/Mintplex-Labs/anything-llm/commit/5e9585a1aab0bee160b27f5abcc42a271cbd290a) feat: add Oracle SQL connector support with Docker and libaio fixes ### 📊 Changes **12 files changed** (+412 additions, -3 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+2 -0) ➕ `build.txt` (+16 -0) 📝 `docker/Dockerfile` (+28 -0) ➕ `extras/oracle-support.md` (+240 -0) 📝 `frontend/src/models/system.js` (+1 -1) 📝 `frontend/src/pages/Admin/Agents/SQLConnectorSelection/DBConnection.jsx` (+3 -0) 📝 `frontend/src/pages/Admin/Agents/SQLConnectorSelection/SQLConnectionModal.jsx` (+7 -0) ➕ `frontend/src/pages/Admin/Agents/SQLConnectorSelection/icons/oracle.png` (+0 -0) 📝 `server/package.json` (+1 -0) ➕ `server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/Oracle.js` (+104 -0) 📝 `server/utils/agents/aibitat/plugins/sql-agent/SQLConnectors/index.js` (+5 -2) 📝 `server/yarn.lock` (+5 -0) </details> ### 📄 Description Added OracleConnector for Oracle Database Support ### Pull Request Type <!-- For change type, change [ ] to [x]. --> - [x] ✨ feat (New feature) - [x] 📝 docs (Documentation updates) ### Relevant Issues <!-- Use "resolves #xxx" to auto resolve on merge. Otherwise, please use "connect #xxx" --> resolves # ### Description This PR adds Oracle Database support to the SQL Agent using the existing class-based connector architecture. The implementation follows the same pattern as existing SQL connectors (MySQL, PostgreSQL, MSSQL) and allows the agent to connect to Oracle databases without modifying core logic. Key changes include: - Added OracleConnector class implementing runQuery, validateConnection, and metadata methods. - Integrated oracledb driver in Thin mode (no Instant Client required). - Extended SQLEngine typedef to include "oracle". - Updated frontend engine enum and SQL engine selector UI to support Oracle. - Registered OracleConnector in getDBClient() for runtime selection. - Implemented Oracle-specific metadata queries for tables and columns. - Fully Docker-compatible, works in Alpine images without native libraries. This feature makes Oracle a first-class SQL engine in AnythingLLM while preserving polymorphism and database-agnostic execution for the agent. ### Visuals (if applicable) <img width="737" height="797" alt="oracle1" src="https://github.com/user-attachments/assets/f812534f-5dfa-4925-82e6-594cf47c2e07" /> <img width="1329" height="621" alt="oracle2" src="https://github.com/user-attachments/assets/7cd97b06-1a07-44ae-96f8-4efb8c6e016b" /> ### Additional Information Connection string format: oracle://username:password@host:1521/SERVICENAME - Service Name is used instead of SID. - No changes were made to existing engines; backward compatibility is preserved. - Local Docker build verified with new connector. ### Developer Validations <!-- All of the applicable items should be checked. --> - [x] I ran `yarn lint` from the root of the repo & committed changes - [x] Relevant documentation has been updated (if applicable) - [x] I have tested my code functionality - [x] Docker build succeeds locally --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
yindo added the pull-request label 2026-02-22 18:36:42 -05:00
yindo changed title from [PR #5043] feat(sql-agent): add Oracle database support via class-based connector to [PR #5043] [CLOSED] feat(sql-agent): add Oracle database support via class-based connector 2026-06-05 15:20:49 -04:00
yindo closed this issue 2026-06-05 15:20:49 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Mintplex-Labs/anything-llm#4872