From zero to a working SELECT against Fusion in five minutes.
- macOS (Apple Silicon), Windows (x86_64), or Linux (x86_64).
- Chrome / Chromium on
PATH(only needed for SSO auth mode). - A Fusion Cloud tenant with the
RP_ARB.xdoBI Publisher report deployed (download from krokozyab/ofjdbc/otbireport) — typically under/Custom/sql/RP_ARB.xdoor/Custom/Financials/RP_ARB.xdo. - At least one PG-wire client:
psql, DBeaver, or anything else from the client recipes.
Grab them from the latest GitHub release. Two zip files, double-click to extract on macOS Finder or Windows Explorer — no tar, no zstd.
| Download | Contents |
|---|---|
ofpgproxy_<version>_darwin_arm64.zip (macOS), ofpgproxy_<version>_windows_amd64.zip (Windows), or ofpgproxy_<version>_linux_amd64.zip (Linux, incl. WSL) |
The binary, .env.example, LICENSE, mini-README |
ofpgproxy-catalog_<version>.zip |
metadata.db — pre-built Fusion catalog (~30 000 tables, ~160 MB uncompressed). Same file across platforms. |
Drop both extracted folders into the same working directory; move metadata.db next to the binary. On macOS, run chmod +x ofpgproxy if Finder dropped the executable bit, and xattr -d com.apple.quarantine ofpgproxy to clear the Gatekeeper flag on first run.
Verify the download (optional but recommended) — SHA256SUMS is on the same release page:
shasum -a 256 -c SHA256SUMS --ignore-missing # macOS / Linux
Get-FileHash *.zip -Algorithm SHA256 # Windows PowerShell
Create .env alongside the binary:
# Tenant
FUSION_HOST=fa-xxxx.oraclecloud.com
FUSION_SQL_REPORT_PATH=/Custom/sql/RP_ARB.xdo
# Auth mode: sso | password | token-file
FUSION_AUTH_TYPE=sso
# Only needed for FUSION_AUTH_TYPE=password
# FUSION_USER=your.user
# FUSION_PASSWORD=...
Full reference: Configuration · Authentication
set -a; source .env; set +a
./ofpgproxy --metadata-path ./metadata.dbPowerShell doesn't source .env files natively — load the variables first, then launch:
Get-Content .env | ForEach-Object {
if ($_ -match '^\s*([^#=]+)=(.*)$') { Set-Item "Env:$($Matches[1].Trim())" $Matches[2].Trim() }
}
.\ofpgproxy.exe --metadata-path .\metadata.dbExpected output:
time=... level=INFO msg="pg_catalog emulation enabled, reading ./metadata.db (SIGHUP reloads)"
time=... level=INFO msg="SSO: opening Chrome for Fusion login (300s timeout)"
time=... level=INFO msg="ofpgproxy listening on 127.0.0.1:5433"
On first SSO run the Chrome window points at your IdP — log in as you normally would. The captured token is held in-process until the proxy exits.
psql -h localhost -p 5433 -U anyone -d anySELECT period_name, period_year
FROM gl_periods
WHERE period_year = 2024
LIMIT 5;Username and database are placeholders — the proxy accepts any values.
- New Connection → PostgreSQL (built-in driver).
- Host
127.0.0.1, Port5433, Databaseany, User / Password any. - Driver properties →
preferQueryMode=simple. (Optional but avoids binary-format parameter edge cases.) - Test connection, finish.
- Schema tree: tables appear under
public(or per-module schemas —fscm,hcm,crm— when the module is present inmetadata.db). - Double-click any table → rows stream into the result grid.
- postgres_fdw — expose Fusion tables inside another PG
- dblink — ad-hoc cross-database queries
- pgx / psycopg / pgJDBC — code integration
- SQL compatibility — see which PG idioms get auto-rewritten and what edge cases to watch for.
- Troubleshooting — for the first time you hit an
ORA-…message. - Configuration — every flag and env var the proxy honours.