Skip to content

Added Oracle database connector with node-oracledb thin mode#5162

Closed
anjumsohail wants to merge 10 commits intoMintplex-Labs:masterfrom
anjumsohail:feature/oracle-thin-support
Closed

Added Oracle database connector with node-oracledb thin mode#5162
anjumsohail wants to merge 10 commits intoMintplex-Labs:masterfrom
anjumsohail:feature/oracle-thin-support

Conversation

@anjumsohail
Copy link

Pull Request Type

  • ✨ feat (New feature)
  • 🐛 fix (Bug fix)
  • ♻️ refactor (Code refactoring without changing behavior)
  • 💄 style (UI style changes)
  • 🔨 chore (Build, CI, maintenance)
  • 📝 docs (Documentation updates)

Relevant Issues

N/A

Description

This PR introduces Oracle database support for AnythingLLM by implementing an Oracle connector using the node-oracledb driver in Thin mode.

The implementation allows users to connect to Oracle databases without requiring the Oracle Instant Client, making it compatible with containerized deployments such as Docker.

Key features:

  • Oracle database connector implementation
  • node-oracledb Thin mode support (no native client dependency)
  • Compatible with the existing SQL connector architecture
  • Supports standard Oracle connection strings

Tested against:

  • Oracle Database 19c
  • Oracle Database 21c

The implementation follows the existing database connector structure used by other supported databases to maintain consistency and backward compatibility.

Visuals (if applicable)

anythingllm1 anythingllm2

Additional Information

Oracle support is implemented using class-based connector OR node-oracledb Thin mode to avoid requiring Oracle Instant Client libraries, which simplifies deployment in Docker and air-gapped environments.

The implementation does not affect existing database connectors and keeps Oracle support optional.

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

@anjumsohail
Copy link
Author

  • Added OracleConnector implementation
  • Integrated oracledb (Thin mode)
  • Extended SQLEngine typedef
  • Updated frontend engine enum and UI selector
  • Registered connector in getDBClient()
  • Added Oracle metadata queries
  • Docker compatible (no Instant Client required)
  • Will not bloat the docker image

},

/**
/***
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/** opens JS multi-line comment, no need for an extra!

import PostgreSQLLogo from "./icons/postgresql.png";
import MySQLLogo from "./icons/mysql.png";
import MSSQLLogo from "./icons/mssql.png";
import OracleLogo from "./icons/oracle.png";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PNG needs a white bg and be 330x330px if not already

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes are made in the Review PR

Removed unnecessary comment block above isOnboardingComplete function.
Uploaded Resized 330x330 Oracle Logo , in place of the previous small sized logo
Load the Oracle driver on demand in the constructor and log thin mode status. Set global output format for each instance created.
Deleted the Previous Readme.md and Restore the Original README.md from Base Repository
@anjumsohail anjumsohail deleted the feature/oracle-thin-support branch March 15, 2026 10:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants