A private, localhost-only workspace for cataloging verified Huawei technical evidence and comparing tender requirements against solution configurations. The application does not call an AI service: it generates strict prompts for an external LLM, validates the returned JSON, and performs every comparison deterministically on your computer.
- Ten OceanStor Pacific models: 9928, 9920, 9926, 9550, 9546, 9540, 9340, 9346, 9350 from V800R001C20 datasheet pages 6–9, plus 9520 from the Huawei product-page Unstructured/Structured table.
- Twelve OceanStor Dorado per-model stubs (New-Gen 3000/5000/6000/8000/18000, V6 equivalents, 2000, 2100) ready for datasheet evidence later.
- Two OceanStor AI Storage systems, A800 and A600, with official Huawei PDF and current product-page evidence for AI training and inference.
- Eight Huawei Data Protection products across five distinct portfolio lines: OceanProtect E8000; OceanProtect X3000/X6000/X8000/X9000; OceanCyber 300; OceanProtect DataBackup; and OceanStor BCManager.
- Nineteen Huawei IdeaHub screen-size SKUs across ES3, ES2 Plus, ES2, S2, K3, B3, and Board 3 Pro, normalized from their model-specific specification tables.
- More than 300 source-linked model facts covering file/object/HDFS, video file/object, and block service profiles without mixing profile-specific values.
- The supplied object-storage tender normalized into 36 atomic technical requirements.
- Versioned canonical schema shared by Datasheet and Tender extraction prompts.
- Product catalog with model-, group-, and series-scoped source evidence.
- Solution configuration builder for chassis, nodes, sites, support, and solution-level evidence.
- Deterministic MATCH / FAIL / UNKNOWN / NOT APPLICABLE engine.
- Mandatory compliance, weighted technical match, data coverage, ranking, override audit history, JSON/CSV export, and full local backup/restore.
| Page | Path |
|---|---|
| Dashboard | /dashboard |
| OceanStor Pacific | /storage/pacific |
| OceanStor AI Storage | /storage/ai-storage |
| Data Protection (all lines) | /storage/data-protection |
| OceanProtect E8000 | /storage/data-protection/e8000 |
| OceanProtect Backup Storage | /storage/data-protection/backup-storage |
| OceanCyber | /storage/data-protection/oceancyber |
| OceanProtect DataBackup | /storage/data-protection/databackup |
| OceanStor BCManager | /storage/data-protection/bcmanager |
| Dorado New-Gen | /storage/new-gen |
| Dorado V6 | /storage/v6 |
| Dorado Entry | /storage/entry |
| All Dorado | /storage/dorado |
| IdeaHub | /ideahub |
| Solutions | /solutions |
| Tenders | /tenders |
| Comparison | /comparison |
| History | /history |
| Schema & Settings | /settings |
/ redirects to /dashboard.
- macOS, Windows, or Linux
- Node.js 22.13 or newer
- npm (included with Node.js)
- About 1 GB free disk space for dependencies and build output
No Docker, cloud account, API key, or online database is required.
-
Download or clone this repository.
-
Open Terminal (macOS/Linux) or PowerShell (Windows) in the project folder.
-
Install dependencies:
npm install
-
Start the local development server:
npm run dev
-
Open http://localhost:3000 in a browser.
The first request creates data/huawei-ebg-tool.sqlite and loads the Pacific, Dorado, AI Storage, Data Protection, and IdeaHub catalogs plus the initial object-storage tender automatically.
Run:
npm run devKeep that terminal window open while using the tool. Stop it with Ctrl+C.
The intended workflow is:
- Open Tenders and copy the schema-generated Tender Prompt.
- Attach the tender and prompt to ChatGPT, Claude, Gemini, or another capable LLM.
- Paste or upload the returned JSON in the tool.
- Review and edit the extracted requirements before scoring.
- Create a Solution Configuration and add verified product/solution evidence.
- Run Comparison, review UNKNOWN items, and record any justified human override.
- Export the result as JSON or CSV.
For a future product datasheet, use Copy Datasheet Prompt from Product Catalog or Solutions. Datasheet and Tender prompts are always generated from the same live canonical field registry.
Build once:
npm run buildThen start the optimized local server:
npm startOpen http://localhost:3000. Rebuild after pulling code updates.
Run deterministic engine and schema tests:
npm testRun tests and a complete production build:
npm run test:allThe tests cover unit conversion, raw-versus-usable capacity separation, unknown evidence, mandatory failures, prompt/schema alignment, strict import validation, duplicate canonical fields, Data Protection product taxonomy, official-source evidence completeness, and committed PDF checksums.
- Catalog schema version
1.4.0keeps hardware, appliance, and software product forms explicit. The X3000/X6000/X8000/X9000 entries remain separate integrated-appliance profiles rather than being merged with software products. - Every seeded Data Protection fact is marked verified and records an official Huawei URL, document title, exact source excerpt, evidence scope, and a page number for PDF-backed facts.
- Values not explicitly supported by the cited source are left absent; for example, X3000 does not inherit the X6000-and-above ransomware-detection claim.
- Official source PDFs and their SHA-256 checksums are recorded in
datasheets/oceanprotect/SOURCES.txt. Product imagery is intentionally omitted because redistribution permission was not established. - Existing local state is migrated to schema
1.4.0on startup. Seed facts refresh from the audited catalog, manually entered evidence is preserved, custom categories/fields/products remain intact, and saved comparison caches are recalculated.
The SQLite database is stored at:
data/huawei-ebg-tool.sqlite
SQLite WAL files may appear next to it while the server is running. The entire data/ directory is excluded from Git.
Recommended backup method:
- Open Schema & Settings.
- Select Download backup.
- Store the resulting JSON file somewhere safe.
To restore, use Restore backup on the same page. This portable JSON backup includes categories, canonical fields, products, evidence, solution configurations, tenders, comparison history, and human overrides.
You may also copy the SQLite file while the server is stopped. JSON backup/restore is safer between app versions.
- On the current computer, download a JSON backup from Schema & Settings.
- Clone or copy the repository to the new computer. Do not copy
node_modulesor.next. - Install Node.js 22.13+.
- In the project folder, run
npm installand thennpm run dev. - Open the tool and restore the JSON backup.
Original PDF/DOCX documents and the local SQLite database are excluded from Git by default. The normalized seed data contains short evidence excerpts and source-page references, not the original source files.
The default database path can be overridden:
DATABASE_PATH=/absolute/path/my-database.sqlite npm run devOn Windows PowerShell:
$env:DATABASE_PATH="C:\data\my-database.sqlite"
npm run dev- Mandatory weight: 5; Preferred: 3; Optional: 1.
- Technical Match uses verified MATCH/FAIL weight only.
- Data Coverage shows how much applicable weight has verified evidence.
- Any mandatory FAIL makes the solution NOT COMPLIANT.
- Mandatory UNKNOWN produces NEEDS REVIEW.
- Decimal TB/PB and MB/s/GB/s convert automatically. Binary TiB/PiB/GiB/s remain distinct.
- Raw capacity is never compared with usable capacity.
- Maximum or generic bandwidth is never treated as sustained read/write throughput.
- Unverified manual values remain UNKNOWN.
- A human override preserves the calculated result and requires a reason.
The app has no authentication because it only listens on your local machine by default. Do not expose port 3000 to the public internet. Prompts are copied to your clipboard, but documents and results are never uploaded by the app.