Experimental InfluxDB 2 viewer panel¶
Open InfluxDB 2 from the viewer's panel browser (Site group). Load an IFC
model, enter the InfluxDB URL, organization, bucket, measurement, numeric field,
GUID tag key (default ifc_guid) and an optional display unit. Enter a bucket-read token in
the password field, then click Load. Connection settings are saved in browser
localStorage only when no field contains the raw or URI-encoded token. The token stays in the mounted panel's memory and is discarded
when the panel unmounts or the page closes; enter it again when reopening.
Select an IfcSpace or IfcSensor in the loaded model. A unique exact IFC
GlobalId match shows its latest numeric value, timestamp and history line.
Series absent from the model appear under Unmatched. Competing series and
GlobalIds shared by multiple entities or loaded models appear under Ambiguous;
none is chosen automatically. Removing a model recomputes that classification.
Each load requests the last hour and at most 10,000 samples. A 10,001st sample, malformed CSV, nonnumeric value, conflicting reading or InfluxDB error table fails the entire load. Decoded CSV headers or cells containing the token (raw or URI-encoded) also reject the whole response; series tags are never rewritten. Responses are limited to 2 MiB and 15 seconds. Units are display labels; no conversion is performed. Readings are refreshed only by clicking Load. A timestamp is displayed but there is no automatic freshness assessment. The configuration is experimental, not a saved model mapping.
The browser contacts /api/v2/query directly with Authorization: Token ….
There is no ifc-lite proxy. Use HTTPS, or http://localhost for development;
URLs with embedded credentials, query strings or fragments are refused.
For cross-origin InfluxDB OSS 2 queries, use a gateway that allows the viewer
origin; OSS has no CORS configuration. The gateway must have a fixed upstream;
do not deploy an unrestricted URL proxy. HTTP failures omit the upstream body; network failures explain the
CORS requirement. Tokens do not enter viewer exports, URLs or persisted state.
This MVP supports InfluxDB 2 / generated Flux and IFC GlobalId tags only. It adds no scene coloring, manual mappings or property/BMS-ID matching. Follow-ups include connection testing, polling, stale-data indication, configurable lookback and mobile witness coverage. The screenshot witness uses explicitly synthetic data seeded to GlobalIds from the committed SketchUp IFC sample.
To reproduce the desktop witness on an admitted development worker with
Chromium and either Docker or a verified InfluxDB OSS 2 binary, first build the viewer's dependencies and WASM through the root
build graph, then run node scripts/spikes/influx-viewer-live.mjs NEW_OUTPUT_DIR.
The script uses the repository's Playwright workflow so the browser and the
loopback database gateway run on the same host. It records the database image
digest (Docker mode), or binary version and SHA256 (INFLUXD_BIN mode), plus
the source commit, model hash and data checks alongside desktop.png.
No token or browser trace is retained. CHROME_EXECUTABLE can name an installed
Chromium; otherwise Playwright's installed browser is used.
Set INFLUXD_BIN=/absolute/path/to/influxd to use the native binary instead of
Docker. Verify the official archive against the SHA256 published in the
InfluxDB release
before running it. This mode binds to a free loopback port and uses temporary
Bolt, engine and SQLite paths. Both modes use the same fixed-upstream loopback
gateway, stop their owned services, and remove database storage after the run.
The viewer witness and binary provenance are recorded in
the validation manifest.