Fixes #27443: add OCI Autonomous Database support for Oracle connector#27508
Fixes #27443: add OCI Autonomous Database support for Oracle connector#27508hassaansaleem28 wants to merge 46 commits intoopen-metadata:mainfrom
Conversation
…ctor Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com>
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
Signed-off-by: Muhammad Hassaan Saleem <iamhassaans@gmail.com>
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
There was a problem hiding this comment.
Pull request overview
Adds Oracle Autonomous Database (OCI) support to the Oracle connector to enable a wallet-based, UI-driven configuration path (no host-level TNS/WALLET provisioning required), spanning UI docs, connector schema, ingestion runtime, and unit tests.
Changes:
- Extend Oracle connection JSON schema with an
OracleAutonomousConnectionoption (tnsAlias + walletPath/walletContent + optional walletPassword). - Update Oracle ingestion connection logic to accept wallet-based Autonomous config, including safe zip extraction and temp-dir lifecycle handling.
- Add unit tests for Autonomous URL building, connection-argument setup, walletContent extraction reuse, and Zip Slip rejection.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| openmetadata-ui/src/main/resources/ui/public/locales/en-US/Database/Oracle.md | Documents the new Autonomous connection mode and wallet fields. |
| openmetadata-spec/src/main/resources/json/schema/entity/services/connections/database/oracleConnection.json | Adds OracleAutonomousConnection to the connector config schema and updates the connection type description. |
| ingestion/src/metadata/ingestion/source/database/oracle/connection.py | Implements wallet-based Autonomous connection handling (args wiring + wallet extraction + reuse/cleanup). |
| ingestion/tests/unit/test_source_connection.py | Adds unit tests covering Autonomous URL/args behavior and wallet zip safety checks. |
…tion.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…tion.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
…tion.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
Signed-off-by: hassaansaleem28 <iamhassaans@gmail.com>
|
The Python checkstyle failed. Please run You can install the pre-commit hooks with |
A recent automated suggestion replaced `str | None` with `Optional[str]` on the wallet temp-dir attribute. Ruff's UP007/UP045 rule (enabled in pyproject.toml without an `ignore`) treats Optional as legacy syntax and fails py-checkstyle on this file. Switch back to the union form to satisfy CI; behaviour is identical at runtime. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
The Python checkstyle failed. Please run You can install the pre-commit hooks with |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
The Python checkstyle failed. Please run You can install the pre-commit hooks with |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
The Python checkstyle failed. Please run You can install the pre-commit hooks with |
The Optional[str] form re-appeared on this attribute and again tripped ruff's UP045 (use-pep604-annotation) rule, which is enabled in ingestion/pyproject.toml without an ignore. Other Optional uses in the file are on the Pydantic-touching test_connection signature and carry explicit `# noqa: UP045` markers; this attribute has no such reason to keep the legacy form, so use the union syntax. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Code Review ✅ Approved 7 resolved / 7 findingsAdds OCI Autonomous Database support to the Oracle connector, enabling UI-driven configuration. Resolved multiple security and logic issues including zip-slip vulnerabilities, unreliable temp directory cleanup, and insecure directory creation. ✅ 7 resolved✅ Security: Zip extraction vulnerable to zip-slip path traversal
✅ Edge Case: Temp directory cleanup relies on __del__, which is unreliable
✅ Bug: Repeated _get_client calls duplicate wallet connection args
✅ Bug: list_all_entities for Table missing fields=["columns"]
✅ Bug: Duplicate host assignment; second line accesses wrong model field
...and 2 more resolved from earlier reviews OptionsDisplay: compact → Showing less information. Comment with these commands to change:
Was this helpful? React with 👍 / 👎 | Gitar |
|
|



Describe your changes:
Fixes #27443
I worked on OCI Autonomous Oracle connector support because the existing Oracle flow required manual host-level wallet and TNS setup, which prevented a complete UI-driven configuration experience.
Screencast.from.2026-04-20.20-20-59.webm
Why migration scripts are not needed:
This change updates connector configuration schema and ingestion runtime behavior only.
It does not introduce database table/entity schema changes in OpenMetadata persistence layers.
Type of change:
Checklist:
Fixes #27443: add OCI Autonomous Database support for Oracle connectoror decision-making process is reflected in the issue.
Summary by Gitar
_wallet_temp_dirfromOptional[str]back tostr | Noneto comply with ruff UP045.createIngestionPipeline.ts,ingestionPipeline.ts, andworkflow.tsto support new OCI Autonomous Database connector parameters.testSuitePipeline.tsfor automated ingestion workflow validation.This will update automatically on new commits.