MV PIPE is a desktop application built with Electron + React (Vite) to monitor heavy data load operations in Oracle databases. It provides a real-time dashboard focused on active sessions, performance impact, and resource consumption.
- Multi-connection management (one tab per database).
- Real-time dashboard for active load sessions and performance metrics.
- Summary cards for sessions, volume estimates, locks, and top tables.
- Detailed session table (SID, owner, operation, duration, estimated MB, impact).
- Client-side filtering by owner, operation, duration, impact, or table.
- Secure: passwords are kept in memory only (never written to disk).
- Fallback queries when access to
v$sqlis not available.
- Electron (main process)
- React + TypeScript (renderer)
- Vite (build)
- Oracle connectivity via
oracledb(thick mode)
- Node.js (LTS recommended).
- Oracle Instant Client (required by
node-oracledb).
This app uses a bundled Instant Client. You must download and place it inside the project before running or building.
- Create the directory:
/vendor/instantclient
- Download Oracle Instant Client (Basic or Basic Light).
- Extract all files directly into
vendor/instantclient(do not create an extra subfolder).
/vendor/instantclient
adrci.exe
BASIC_README
oci.dll
ociw32.dll
oraociei19.dll
...
Note: vendor/ is ignored by Git and must not be committed.
- Install dependencies:
npm install- Run in development mode:
npm run devnpm run buildArtifacts are generated in dist/:
dist/MV Pipe Setup 1.0.0.exe(installer to publish)dist/latest.yml(only needed if you later enable auto-update)dist/win-unpacked/(unpacked app, useful for debugging)
To publish a manual release, share only the .exe installer. For auto-update in the future, publish the .exe and latest.yml (and any .blockmap files if present).
The repository includes a workflow at .github/workflows/versioning.yml to update app version and create a Git tag.
- Open Actions in GitHub.
- Select Versioning.
- Click Run workflow and provide a version in
x.y.zformat (example:2.0.0).
The workflow will:
- update
package.jsonandpackage-lock.json - commit the change to the selected branch
- create tag
v<version> - push commit and tag to
origin
To help organize larger features, this repository includes:
- issue draft example:
docs/planning/v2-lock-screen-issue-drafts.md - bulk issue creation script:
scripts/create_lock_feature_issues.sh
Example usage:
./scripts/create_lock_feature_issues.sh TDamiao/MVPipeThis script requires authenticated GitHub CLI (gh auth login).
- Launch the app.
- Click New Connection.
- Fill in the Oracle connection details (prefer read-only access to
v$views). - Click Connect & Monitor.
- A new tab opens and the dashboard starts polling.
