Every component chosen for production Oracle environments.

Self-hostable, security-first, and designed from the ground up for the constraints of enterprise Oracle ERP infrastructure. This page documents the full technology stack across all four platform phases.

⚙️

Orchestration — n8n

n8n is the workflow engine at the center of the platform. Every incident — from the moment it enters via webhook to the moment the audit record is written — is orchestrated by an n8n workflow. The choice of n8n over alternatives like Zapier, Make, or custom Python is deliberate: n8n is the only workflow platform with a self-hosted Docker deployment option, native OracleDB node support, encrypted credential storage, and a visual workflow editor that non-engineers can audit and understand.

n8n's Code nodes (JavaScript or Python) handle the data transformation layer between raw Oracle diagnostic output and LLM-ready structured JSON. The HITL (Human-in-the-Loop) node manages the Safe-Stop sequence for High-Risk actions — serializing workflow state, sending the Decision Tower notification, and waiting for the JWT-signed approval signal before resuming.

Deployment

Self-Hosted Docker

Runs entirely behind the corporate firewall or on-premise VPN. No data transits the public internet during workflow execution. PostgreSQL backend for workflow state and audit records.

DockerSelf-hosted
Connectivity

Native OracleDB Node

Built-in Oracle Database node connects via JDBC with configurable schema restrictions. The diagnostic connection uses a read-only schema; the execution connection is gated by the approval workflow.

JDBCRead-only schema
Security

Encrypted Credentials

All Oracle DB credentials, MOS credentials, and API keys are stored in n8n's encrypted credential vault. Zero plaintext storage in workflow definitions, scripts, or environment files.

AES-256Vault integration
Version: n8n Community Edition v1.x or later. The platform does not require n8n Cloud — the self-hosted version supports all required nodes including OracleDB, HTTP Request, Code, and Wait (HITL).

🧠

Intelligence — Claude & GPT-4o

The platform uses LLMs for three distinct tasks: incident triage and domain classification, root cause analysis from structured diagnostic output, and knowledge base article generation. Claude is the preferred model for root cause analysis — its large context window (200K tokens) handles verbose Oracle diagnostic output like SQLHC reports and TKPROF traces without truncation, and its structured reasoning performance on technical content is strong.

Primary — Root Cause Analysis

Claude (Anthropic)

Claude 3.5 Sonnet or Claude 3 Opus for root cause identification, resolution synthesis, and knowledge base article drafting. Preferred for large-context Oracle diagnostic analysis. Called via Anthropic API from n8n's HTTP Request node.

200K contextAPI accessStructured output
Alternative — Triage & Classification

GPT-4o (OpenAI)

GPT-4o used for incident triage and domain classification where speed matters more than context depth. Also serves as a hot-swap alternative to Claude for root cause analysis in deployments where the OpenAI API is already provisioned and approved.

128K contextFunction callingHot-swap capable
Prompting Strategy

Evidence-Constrained Prompting

All LLM calls use a structured prompting strategy that constrains the model's output to the evidence presented — retrieved RAG cases, Oracle Support Note content, and diagnostic script output. The model is explicitly instructed not to suggest resolution steps not grounded in the retrieved evidence. This prevents hallucinated Oracle fix paths that could cause production damage. Every LLM call includes the Oracle version, module, and current diagnostic context in the system prompt to ensure version-appropriate analysis.


🌐

Browser Automation — Playwright

The Playwright browser agent is a Node.js application running a Chromium instance inside a dedicated Docker container, separate from the n8n deployment. It exposes a simple REST API that n8n calls with an error code and ERP version — and returns structured JSON containing the Symptoms, Cause, and Solution sections from the top-ranked My Oracle Support knowledge article. The agent handles Oracle SSO authentication via session persistence, bot detection evasion via playwright-extra Stealth Plugin, and session expiry detection with automatic admin alerting.

Runtime

Node.js + Chromium

Headless Chromium controlled by Playwright's Node.js API. Runs in a dedicated Docker container separate from n8n to prevent browser failures from cascading into workflow failures.

Node.js 20+ChromiumDocker
Authentication

storageState Persistence

One-time manual MFA login captured via Playwright's storageState into an encrypted auth.json file. All subsequent runs load this session — no MFA re-challenge. Session expiry triggers an admin alert and graceful workflow pause.

storageStateEncrypted volume
Anti-Detection

playwright-extra Stealth

Stealth Plugin masks the navigator.webdriver fingerprint, randomizes User-Agent strings, and adds human-like timing and interaction patterns to prevent MOS bot detection flagging over time.

playwright-extraStealth plugin

🗄️

Vector Storage — Milvus & pgvector

The vector database stores vectorized Oracle diagnostic outputs, resolution summaries, and Oracle Support Note excerpts — enabling the platform to retrieve semantically similar prior resolutions for every new incident. The metadata filtering capability is critical: raw vector similarity alone cannot distinguish an ORA-01652 resolution for EBS R11i from one for R12.2.10. Every stored chunk carries oracle_error_code, erp_module, erp_version, and environment_id metadata that scopes retrieval precisely.

Production — Large Scale

Milvus

Open-source vector database designed for billion-scale vector workloads. Self-hosted via Docker Compose or Kubernetes. Supports advanced compound metadata filtering — query by error code AND module AND ERP version simultaneously. Recommended for environments with 50+ active users or multi-environment Oracle deployments.

Self-hostedBillion-scaleCompound filtering
Alternative — Small Scale

pgvector

PostgreSQL extension adding vector search to the existing Postgres instance used for n8n workflow state. Eliminates a separate vector database service for smaller deployments. Recommended when the knowledge base is expected to stay under 10 million vectors and the Oracle environment has fewer than 50 active users.

PostgreSQL extensionSingle DB<10M vectors
Embedding Models

OpenAI text-embedding-3-small / HuggingFace

The n8n Embeddings node generates vector embeddings from structured diagnostic analysis output before storage and retrieval. OpenAI's text-embedding-3-small is the default — cost-effective at $0.02/million tokens and sufficient for Oracle diagnostic content. For air-gapped environments where data cannot leave the network, a locally-hosted HuggingFace sentence-transformers model (all-MiniLM-L6-v2) provides equivalent performance without external API calls.


🔗

Oracle ERP Connectivity

EBS R12.x

JDBC + SQL*Plus

Direct Oracle database connectivity via JDBC for all EBS diagnostic queries. The diagnostic connection uses a restricted read-only schema. SQL*Plus handles scripts that require the full SQL*Plus interface. n8n's OracleDB node manages both connection types.

JDBCSQL*PlusRead-only schema
Fusion Cloud

Oracle REST APIs

Oracle Fusion Cloud does not expose direct database access. The platform uses Oracle Fusion REST APIs — OTBI for reporting, BIP for scheduled reports, ESS for job history, and module-specific REST endpoints for AP, AR, GL, and HCM diagnostics.

OTBIBIPESS API
System Level

SSH + OS Commands

Application tier diagnostics — concurrent manager logs, spool file analysis, application-level configuration — require SSH access to the EBS application server. n8n's SSH node handles authenticated connections for log retrieval and system-level diagnostic commands.

SSHApp tierCM logs

📜

Diagnostic Foundation — 65 Scripts

The platform's diagnostic capability is built on the same 65 production-grade scripts published at scripts.williamagreen.com. These are not illustrative examples — they are the actual scripts used by Oracle consultants in production EBS and Fusion environments, peer-reviewed, versioned, and tested across 11 Oracle modules. The AI platform wraps these scripts with LLM interpretation — the scripts provide the evidence, the LLM provides the analysis.

AP — 12 scripts
Invoice holds, payment processing, supplier matching, period close
AR — 8 scripts
Receipt application, aging analysis, revenue recognition, customer aging
GL — 7 scripts
Period close, journal posting, revaluation, intercompany reconciliation
FA — 5 scripts
Depreciation run, mass additions, asset retirement, calendar setup
PO — 6 scripts
Approval workflows, receiving discrepancies, requisition processing
INV — 5 scripts
Transaction costing, lot control, cycle count discrepancies, on-hand
HCM — 5 scripts
Payroll processing, time entry errors, absence management, costing
SYS — 8 scripts
Tablespace, concurrent manager, performance, AWR, session analysis
OM / WIP / PA — 9 scripts
Order booking errors, WIP completion, project costing, revenue capture
Browse All 65 Scripts →

Built for enterprise security requirements.

Network

Zero Public Internet Exposure

n8n, Milvus, and PostgreSQL run behind the corporate firewall or connect via VPN to Oracle EBS. No Oracle data transits the public internet during diagnostic execution or fix approval.

Credentials

Zero Hardcoding Policy

All credentials stored in n8n's encrypted vault or HashiCorp Vault. Oracle DB, MOS, and LLM API credentials are retrieved at runtime — never written to disk, never embedded in workflow definitions.

Approval

JWT-Secured Approval Signals

Every high-risk fix approval carries a JWT token tied to the specific Request ID. n8n validates the token before executing — preventing replay attacks and ensuring the approval was issued for this exact incident.

Database Access

Schema-Level Restriction

The diagnostic Oracle connection uses a restricted read-only schema — SELECT privileges only. The execution connection for approved fixes uses a separate schema with precisely scoped write privileges. No single connection has both diagnostic and unrestricted write access.

Explore the Platform

Start the Conversation → Browse the Script Library →

Ready to discuss the technology in depth?

We're happy to walk through any component of the stack in detail — architecture reviews, security assessments, or proof-of-concept scoping.

Get in Touch →