Data workbench & EDA studio (/data · /studio)
Shipping since v0.7.70. Both surfaces share the same line-level permissions: charts are not data proxies — every read goes back through the server-authorized query path.
- /data workbench — look at data: line-scoped live mirror, MES console, export/batch ledger;
- /studio EDA workbench — use data: charts, pipeline post-processing, grid dashboards and a set of enterprise-grade EDA analyzers.
Data workbench (/data)
Three tabs, always line-scoped:
| Tab | What it shows |
|---|---|
| Mirror | WS live mirror by line + time window (15 min / 1 h / 4 h / custom) + aggregation; scalars, array profiles and CCD images side by side |
| MES | MES console: interface messages and receipts per line |
| Ledger | Bulk export job ledger: every export produces manifest + merged.csv with trackable job status |
EDA studio (/studio)
Charts, templates, dashboards
- Seven chart types:
trend / bar / scatter / table / kpi / histogram / pipeline(kpi and table are single-series); - Two visibility levels:
private(owner only) andline(bound to a line, read governed by line grants); - Templates save a query configuration as a reusable asset; the board (/studio/board) arranges charts into a grid cockpit;
- Board cards re-query on every render; pipeline snapshot charts are read-only replays on the board.
Golden phase reference
Build a reference profile on a 0–100% phase axis from historical good batches, overlay the running batch and output a deviation score — "how close does this batch run to the golden sample", in one number.
FDC / SPC / OCAP / VM
| Analyzer | What it does |
|---|---|
| FDC reference bands | Extract per-batch features and judge against reference bands, as background jobs (run + jobs query) |
| SPC control charts | Nelson rules 1–8 / I-MR / EWMA / CUSUM, with recompute |
| Commonality | Cross-batch common-factor search |
| OCAP dispositions | Disposition workflow records after an out-of-limit event |
| Virtual metrology (VM) | Model-predicted quality values; OOD (out-of-distribution) is rejected outright instead of guessed |
| Derived datasets | Freeze cleaned/aggregated results into new datasets for downstream analysis |
Runs support labels, giving the analyzers human anchors for good/bad batches.
Pipeline charts (/studio/pipeline)
Pipeline charts chain "fetch → code post-process → plot" into one step:
- Online fetch (same authorization as
/daq/query) or CSV import; - Code post-processing: transform in the browser (filter, derived columns, resampling);
- Plot & online viewer: rendered with ECharts; the viewer supports zoom and PNG export;
- Save: as a template (configuration only), or as a pipeline snapshot chart (see the B4 boundary below).
B4: charts store parameters, not data
Ordinary charts store only query parameters (nodes, time window, aggregation…); every open re-queries through the same authorization as /daq/query — no data copies, no way around line permissions.
The single exception is the pipeline snapshot, a deliberately bounded escape hatch:
privatevisibility only, must carry aline_idthat matches the chart;- the
rowsinoptionsare a client-supplied saved view, capped at 2000 rows; - reads still go through the chart's owner / line visibility; Studio shows snapshots with a read-only badge and no overwrite;
- non-pipeline charts allow only
template-style configuration references inoptions— any other data/extension key is a 400.
REST & agent surface
Everything the studio does is exposed as /api/workshop/eda/** REST routes (charts / dashboards / templates / golden / features / spc / ocap / commonality / vm / derived / run-segments / runs). On the agent side, data tools such as daq_query / daq_export read the same data plane, with references (nodes, lines, batches) passing the unified preflight (tool-verify: argument shape + reference ownership).
Acceptance
- End-to-end:
scripts/e2e-eda-pipeline.mjs, 24/24, including B4 negatives (non-pipeline chart carrying data keys → 400; snapshotline_idmismatch → 400; missing rows → 400); - Unit:
tests/chart-pipeline.test.ts(series-to-rows reduction, dual-shape point compatibility).