---
name: Dataforth Test Datasheet Pipeline - Rebuilt 2026-03-27
description: Full pipeline from DOS test stations to website. New server-side generation replaces DFWDS/Uploader. 72/73 Quatronix datasheets generated. AD2 crypto wipe recovery.
type: project
---

## Background
AD2 (192.168.0.6) was wiped in a crypto/ransomware attack months ago. The test datasheet pipeline was broken. Customer Quatronix (China) blocking shipment of 328 modules (whittled to 54) without datasheets.

## Pipeline (5 stages, rebuilt 2026-03-27)

### Stage 1: DOS Test Stations (64 stations)
- QuickBASIC programs generate test data -> C:\STAGE on each DOS PC
- DAT files (raw test data) + TXT files (formatted datasheets)
- CTONW.BAT copies DAT files to NAS (working)
- CTONWTXT.BAT copies TXT files (NOT called in current AUTOEXEC v4.1 since 2026-03-12)
- TXT files piling up in C:\STAGE since Sept 2025

### Stage 2: NAS <-> AD2 Sync
- Script: C:\Shares\test\scripts\Sync-FromNAS-rsync.ps1 (every 15 min, WORKING)
- Rsync daemon on NAS: port 873, module "test", user rsync / IQ203s32119
- PULL: DAT files from NAS -> AD2, triggers database import
- PUSH: Software updates from AD2 -> NAS for DOS machines

### Stage 3: TestDataDB (Node.js/SQLite, WORKING)
- App: C:\Shares\testdatadb\ (Windows service "testdatadb", auto-start)
- API: http://192.168.0.6:3000
- Database: C:\Shares\testdatadb\database\testdata.db (2.27M records)
- Import: database/import.js (post-import hook calls export)
- **NEW: Spec parser** (parsers/spec-reader.js) - reads binary spec DATs, 1470 models
- **NEW: Exact-match formatter** (templates/datasheet-exact.js) - reverse-engineered from QB
- **NEW: Auto-export** (database/export-datasheets.js) - generates TXT to X:\For_Web

### Stage 4: WebShare (X: = \\ad2\webshare = C:\Shares\webshare)
- X:\Test_Datasheets - incoming (staging for old DFWDS)
- X:\For_Web - validated datasheets (501K+ files, pre-2026 archived to year subfolders)
- X:\For_Web_PDF - PDF versions (4.7K files)
- X:\Bad_Datasheets - invalid files (18K)
- X:\Datasheets_Log - DFWDS logs

### Stage 5: Website Upload (BROKEN)
- Old endpoints: dataforth.com/Services/{Uploader,DirectoryManifest,DeleteFile}.aspx - ALL 404
- Credentials: DataforthWebShare / Data6277
- TestDataSheetUploader (VB.NET, Hoffman) - not running, config pointed to dev paths
- Legacy site: legacy.dataforth.com/TestDataReport_Print.aspx (still works, no auth)
- New site: dataforth.com/TestDataReport (requires OIDC login)

## What Was Eliminated by Rebuild
- CTONWTXT.BAT (DOS TXT transfer) - no longer needed, server generates from DAT data
- DFWDS.exe (VB6 filename decoder) - no longer needed
- TestDataSheetUploader (VB.NET web uploader) - endpoints dead anyway

## Key File Encoding
H-prefix decode: A=10, B=11, C=12, D=13, E=14, F=15, G=16, H=17, I=18, J=19
Example: H8601-6.TXT -> serial 178601-6
New pipeline extracts SN from DAT record data directly, not filenames.

## Open Items
1. Website upload replacement (old ASP.NET endpoints dead)
2. 7B datasheet formatting (specs loaded, needs 7B-specific layout, ~830K records)
3. SCM5B49 spec file empty - need from John Lehman
4. Service permissions (runs as SYSTEM, causes SHM/WAL conflicts)
5. New product lines: MAQ20/PWRM (XLS), 10D (JSON, ~May 2026), DSCMHV

## Key Contacts
- John Lehman (jlehman@dataforth.com) - Engineering, QB code, specs
- Peter Iliya (pIliya@dataforth.com) - Applications Engineer, manual datasheet retrieval
- Ken Hoffman - TestDataSheetUploader author (VB.NET), DFWDS author, unresponsive
- Georg Haubner (ghaubner@dataforth.com) - D: drive has pre-crypto backup of network shares
- Ginger (gy@quatronix-cn.com) - Quatronix China, customer requesting datasheets

**Why:** Critical business issue - customer refusing shipments without datasheets.
**How to apply:** Pipeline is mostly rebuilt. Priority: website upload replacement, then 7B support.
