feat(oracledb): add Oracle Database integration - #7378
feat(oracledb): add Oracle Database integration#7378BillLeoutsakosvl346 wants to merge 5 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Greptile SummaryAdds an Oracle Database integration with query, mutation, execution, and schema-introspection operations.
Confidence Score: 5/5The PR appears safe to merge based on the reviewed implementation and its coordinated runtime packaging. No concrete changed-code failure remained after tracing SQL execution, connection and redirect validation, worker lifecycle, secret transport, result bounds, and deployment artifact resolution.
|
| Filename | Overview |
|---|---|
| apps/sim/lib/internal/oracledb/connect-proxy.ts | Adds a request-scoped CONNECT proxy that validates and pins every initial or redirected Oracle target while bounding tunnel use. |
| apps/sim/lib/internal/oracledb/client.ts | Adds bounded worker admission, cancellation, timeout handling, proxy lifecycle management, and child-process protocol execution. |
| apps/sim/lib/internal/oracledb/oracle-worker.cjs | Implements Thin-mode connection setup, runtime patch verification, statement execution, LOB streaming, normalization, limits, and secret-safe error projection. |
| apps/sim/lib/internal/oracledb/query.ts | Adds Oracle-aware SQL scanning, operation validation, identifier quoting, structured DML generation, and WHERE-expression safeguards. |
| apps/sim/lib/internal/oracledb/introspection.ts | Adds bounded dictionary-view introspection for visible schemas, tables, columns, constraints, and indexes. |
| apps/sim/lib/internal/oracledb/schema.ts | Defines strict bounded contracts for connection settings, credentials, wallet data, SQL, binds, and structured operations. |
| patches/oracledb@7.0.1.patch | Extends the pinned driver to preserve proxy trust across redirects, support controlled TCP tunneling, and reject transport changes. |
| docker/app.Dockerfile | Packages Node 24, the complete patched Oracle driver, worker, and verification scripts into the production image. |
| apps/sim/trigger.config.ts | Selects Node 24 and includes the worker, verification scripts, driver package, and package metadata in Trigger.dev artifacts. |
| apps/sim/blocks/blocks/oracledb.ts | Defines the Oracle workflow block, six operations, protected connection fields, operation-specific inputs and outputs, templates, and skills. |
Sequence Diagram
sequenceDiagram
participant C as Workflow or Agent
participant T as Oracle Tool
participant P as CONNECT Proxy
participant W as Node 24 Worker
participant O as Oracle Database
C->>T: Invoke query, execute, mutation, or introspection
T->>P: Start request-scoped loopback proxy
T->>W: Send credentials and statements over stdin
W->>P: CONNECT initial Oracle target
P->>P: Resolve, validate, and pin target IP
P->>O: Open TCP or TCPS tunnel
opt Listener redirect
W->>P: CONNECT redirected target
P->>P: Revalidate and pin redirected IP
P->>O: Open replacement tunnel
end
W->>O: Execute bounded statement batch
O-->>W: Rows or affected count
W-->>T: Bounded normalized JSON
T-->>C: Structured tool result
T->>P: Close proxy and tunnels
Reviews (1): Last reviewed commit: "feat(oracledb): add Oracle Database inte..." | Re-trigger Greptile
There was a problem hiding this comment.
All reported issues were addressed across 56 files
Heads up: you’re close to your included review allowance. Set a flex budget so reviews don’t pause.
Re-trigger cubic
…gration # Conflicts: # apps/sim/tools/generated/tool-metadata.ts
|
@cubic-dev-ai review this PR again after commit 7c247da. The six prior threads have been addressed and resolved; please perform a fresh review of the updated diff. |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 58 files
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
|
@cubic-dev-ai please review this PR again after b28b751. The prior constant-only Oracle WHERE finding is fixed, independently validated, and its thread is resolved. |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 58 files
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
|
@cubic-dev-ai please review this PR again at b28b751. The latest function-tautology thread was reproduced, answered with repository-contract and cross-database evidence, and resolved as intentionally out of scope; please perform a fresh review and account for that rationale. |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
Summary
Adds a direct Oracle Database integration under the
oracledbnamespace with six operations: Query, Execute, Insert, Update, Delete, and Introspect.The connector uses exact
oracledb@7.0.1in Thin mode inside a request-scoped Node 24 child process. Credentials and optional PEM wallet data travel over private stdin only. TCP and verified TCPS are supported with service-name or SID descriptors.Security and packaging highlights:
validateDatabaseHost()on every initial and redirected target, numeric-IP pinning, TCPS hostname/SNI preservation, bounded tunnels, and cleanupDocumentation includes connection setup, wallet usage, Oracle semantics and limits, eight templates, and suggested skills.
An official Oracle Free
23.26.3.0-liteARM64 image was used for live TCP smoke testing. TCPS, PEM-wallet/mTLS, listener redirects, and older supported Oracle releases remain deferred.Fixes #()
Type of Change
Testing
Passed locally:
FREEPDB1), SID (FREE/CDB$ROOT), all six tools, MERGE, cross-request autocommit, NUMBER/RAW/date normalization, and set-based introspectionstaging: no critical, warning, or suggestion findingsThe live harness encountered Oracle's documented
ORA-01466old-snapshot edge once when querying immediately after synthetic DDL; a fresh read-only operation passed. The integration retainsSET TRANSACTION READ ONLY; no retry or security weakening was added for this test-only timing edge.Reviewer focus:
Checklist
Screenshots/Videos
Not applicable.