Skip to content

Datastream-scoped observation queries return cross-datastream results (observation scope leak) #3

@Sam-Bolling

Description

@Sam-Bolling

GET /datastreams/{id}/observations returns observations belonging to other datastreams, identified by mismatched datastream@id values in the response. The contamination affects sibling datastreams under the same system and, in at least one case, crosses system boundaries entirely.

Evidence

System 0420 (AZ-MA-1) has 8 datastreams including:

  • 04c0 — AZ-MA-1 LOB (bearing observations, high volume)
  • 04dg — AZ-MA-1 Detection Capabilities (1 static range config observation)

Querying the detection capabilities datastream:

GET /datastreams/04dg/observations?limit=10

Returns 10 LOB observations — all with datastream@id: "04c0", not "04dg":

id=040t1jkupk32bemg80  datastream@id=04c0  keys=bearingTrue,bearingStdDev,...
id=040tbjkupk32bemg80  datastream@id=04c0  keys=bearingTrue,bearingStdDev,...
(all 10 are LOB data from DS 04c0)

The actual detection range observation exists (verified via GET /observations/040uvjsupk30000000datastream@id: "04dg", minRange_m: 667) but only appears as 1 out of 50 results in a bulk query.

Scope

Queried DS Parent System Foreign DS (datastream@id) Foreign Parent Same System?
04dg (MA-1 Det Caps) 0420 04c0 (MA-1 LOB) 0420 Yes
04e0 (MA-2 Det Caps) 0490 04cg (MA-2 LOB) 0490 Yes
04eg (MA-3 Det Caps) 049g 04f0 (Localizer) 04n0 No

MA-3 contamination crosses system boundaries — DS 04eg (system 049g) returns observations from DS 04f0 (system 04n0).

Contamination is unidirectional: LOB datastreams queried directly return only their own observations.

Impact

  • resultTime=latest on a low-volume DS returns a foreign observation with a later timestamp, making the real data effectively unreachable
  • Detection range rings disappeared 3 times during development because the query consistently returned LOB data instead of range config
  • No error indication — HTTP 200 with valid-looking data; only datastream@id inspection reveals the mismatch

Detailed probe report

OSH_Datastream_Observation_Scope_Leak.md"

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions