Project: Time-Travel Data Access and Versioning UI for istSOS Web Administration
Organization: OSGeo / istSOS4
Contributor: Bhudev Bhanpuriya
Mentors: Massimiliano Cannata, Daniele Strigaro, Claudio Primerano
I performed the following tasks during this week. This work is complete in the working tree but not yet pushed, so it is not yet visible in the pull request:
-
Observation quality lane and legend: Added a quality strip beneath the observation chart showing each series’ readings collapsed into runs of a single class, with a legend and a pass-rate summary. Runs are collapsed so that a large window draws a handful of shapes rather than one per point, and the lane is hidden entirely when nothing in the window carries a quality value, which is the common case in a stock deployment.
-
A single place that decides what resultQuality means: The API stores the field as raw
jsonbwith no validation, default or declared scale, so the reading applied is the istSOS quality index from the tutorial and the API examples — 100 is a pass, lower values are flag codes. That reading is a convention rather than something the record asserts, and other senders in this project use different scales, so the assumption now lives in one module and can be changed there rather than throughout the chart code. Values the module cannot place on the index are reported as “not checked” rather than given a guessed verdict, and are excluded from the pass rate. -
Reading details rail: Added a panel beside the plot showing the commit that produced a selected reading — message, author, action type, and both the measured and committed instants — alongside its value and quality. It stays open across clicks so a run of readings can be walked, which a tooltip cannot do, and selecting a reading no longer resets the viewer’s zoom.
-
Quality-aware snapshot comparison: Where two snapshots hold identical measurements but different quality verdicts, the chart previously reported them as agreeing, because nothing in the plotted lines shows that kind of change. It now reports how many readings changed quality flag, and reports both counts separately where values changed as well.
-
Supporting changes: The observations request now carries
$expand=Commit, which works in live mode and under$as_ofalike. Added the commit and quality fields to the domain types, addedresultQualityto the spreadsheet export as the stored value rather than a derived verdict, and added the corresponding English and Italian translations.
Verification and testing: The working tree type-checks cleanly with tsc --noEmit, and the chart, details rail and comparison verdict were exercised against a running istSOS4 backend, including the case where no observation carries a quality value. Behaviour against a deployment that actively writes resultQuality remains to be verified before this work is committed.
Details can be found in:
- Pull Request: feat: add As-Of time-travel UI for viewing historical snapshots by bhudevbhanpuriya · Pull Request #37 · istSOS/istSOS4-gui · GitHub
The changes above will appear on that branch once the remaining verification is done.
What do I plan to do next week?
Address any further review comments on the As-Of pull request.
Am I blocked on anything?
No, currently I do not have any blocking issues. One open question for the mentors: since resultQuality is stored as untyped jsonb with no declared scale and the interpretations in this project disagree, the interface has had to assume the tutorial’s index — confirming which scale is authoritative, or declaring one on the backend, would remove that assumption.
--
Regards,