Skip to content

Python: Forward Oracle pool configuration settings - #9233

Merged
Eduard van Valkenburg (eavanvalkenburg) merged 4 commits into
microsoft:mainfrom
eavanvalkenburg:oracle-connector-config
Oct 12, 2026
Merged

Eduard van Valkenburg (eavanvalkenburg) merged 4 commits into
microsoft:mainfrom
eavanvalkenburg:oracle-connector-config

Conversation

@eavanvalkenburg

Copy link
Copy Markdown
Member

Motivation & Context

The Oracle vector store resolved only the core DSN, user, and password settings and did not forward additional Oracle connection and pool options. This prevented wallet configuration and other scalar python-oracledb settings from reaching create_pool_async(). The package documentation also still used the former Oracle Database 23ai product name.

Description & Review Guide

  • What are the major changes? Expanded the public OracleSettings contract with supported scalar pool options, added pool_parameters to OracleStore and OracleCollection, defined the precedence order for named credentials, typed mappings, dotenv files, environment variables, and defaults, and forwarded resolved options to create_pool_async(). Added type conversion, secret masking, installed-driver parameter validation, focused tests, and Oracle AI Database 26ai terminology updates.
  • What is the impact of these changes? Users can configure wallet authentication and other supported pool settings through typed constructor parameters, selected dotenv files, or environment variables while preserving lazy pool creation, borrowed-client ownership, and the existing min=0/max=4 defaults.
  • What do you want reviewers to focus on? The public configuration precedence, the OracleSettings field surface, and the filtering of options against the installed python-oracledb version.

Related Issue

N/A - trivial change. This is a scoped correction to the new alpha Oracle connector's configuration forwarding and product terminology, reviewed directly without a separate tracking issue.

AI Assistance

  • No material AI assistance was used.
  • This is an AI-assisted contribution. I reviewed, understood, and verified all submitted content and accept responsibility for it.

AI assistance details: GitHub Copilot assisted with implementation, tests, documentation, and this PR description.

Contribution Checklist

  • The code builds clean without any errors or warnings
  • All unit tests pass, and I have added new tests where possible
  • The PR follows the Contribution Guidelines
  • This PR links to an agreed issue with no competing open PR, or the Related Issue section documents a trivial-change or repository-automation exception.
  • This is not a breaking change. If it is a breaking change, add the breaking change label (or add "[BREAKING]" to the title prefix, before or after any language prefix) — a workflow keeps the label and the title prefix in sync automatically.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Explicit unknown pool parameters are silently discarded instead of rejected.

1 open finding
What changed in this PR

Adds forwarding and validation for Oracle async pool settings while updating Oracle 26ai terminology.

Changes:

  • Expands OracleSettings and forwards resolved pool options.
  • Adds precedence, conversion, masking, and compatibility tests.
  • Updates documentation and product naming.
File Description
python/​packages/​oracle/​agent_framework_oracle/​_vector_store.py Implements pool configuration forwarding.
python/​packages/​oracle/​agent_framework_oracle/​__init__.py Updates package description.
python/​packages/​oracle/​tests/​oracle/​test_settings.py Tests pool settings and precedence.
python/​packages/​oracle/​tests/​oracle/​test_integration.py Updates integration-test terminology.
python/​packages/​oracle/​samples/​oracle_vectors.py Updates sample terminology.
python/​packages/​oracle/​README.md Documents pool configuration and 26ai.
python/​packages/​oracle/​pyproject.toml Updates package and test metadata.

🧠 Review effort: Balanced


💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Comment thread python/packages/oracle/agent_framework_oracle/_vector_store.py Outdated

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

MAF Automated Review — Iteration 1

Result: Findings reported
Scope: full PR (1 commit(s)): d5d70fcfee9d
Model: gpt-5.6-sol

Overview

The change expands OracleSettings, resolves typed pool options through the existing settings loader, and forwards them while preserving lazy pool creation, ownership, secret masking, and default pool bounds. Tests cover precedence, conversion failures, installed-driver compatibility, and pool lifecycle behavior. One residual configuration defect remains: unknown keys supplied through the new explicit mapping are silently discarded, which can leave production pools running with unintended defaults.

Reviewed the supplied pull-request change set across correctness, security/reliability, architecture, and failure behavior.
1 verified finding remained after source verification (1 medium) across 1 file. Details are attached to the affected lines below.

Affected areas: python/packages/oracle/agent_framework_oracle/_vector_store.py

Comment thread python/packages/oracle/agent_framework_oracle/_vector_store.py Outdated

@jpalvarezl Jose Alvarez (jpalvarezl) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Two configuration paths added to the public settings surface are still rejected before python-oracledb receives them; details are inline.

Comment thread python/packages/oracle/agent_framework_oracle/_vector_store.py Outdated
Comment thread python/packages/oracle/agent_framework_oracle/_vector_store.py

@jpalvarezl Jose Alvarez (jpalvarezl) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Verified the follow-up commit addresses both prior findings: access-token authentication now preserves python-oracledb's string, IAM tuple, and callable forms without requiring user/password, and host/service_name or sid can be forwarded without a DSN. The added regression coverage and documentation match the implementation.

Merged via the queue into microsoft:main with commit 8183661 Oct 12, 2026
46 checks passed
@eavanvalkenburg
Eduard van Valkenburg (eavanvalkenburg) deleted the oracle-connector-config branch October 12, 2026 08:25

This branch was previously deployed

1 inactive deployment
github-app-auth — f56e61e6 Deployed Oct 12, 2026 by eavanvalkenburg via add_label #24949
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Usage: [Issues, PRs], Target: documentation in the code base and learn docs python Usage: [Issues, PRs], Target: Python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants