Skip to content

IDG panel and entity popup read the old enhanced query, which can send bare dbIds #762

Open

Description

@adamjohnwright

Found while looking into #760. /ContentService/data/query/enhanced/{id} (v1) writes each object in full only once in an answer, and after that as its bare dbId. Two readers on the site take lists from v1 and keep only objects, so they can lose items without any error:

  • The IDG panel (projects/website-angular/src/app/idg/idg.service.ts, around line 314) reads summation[0].text. In v1, summation comes after eventOf, precedingEvent, followingEvent and literatureReference. A summation shared with a parent or neighbouring event would arrive as a number, and the panel would show none.
  • The entity popup (projects/pathway-browser/src/app/diagram/entity-popup/entity-popup.component.ts, around lines 204–212) reads hasComponent, hasMember and hasCandidate from v1. A component already written elsewhere in the answer would be dropped.

No live case has been seen yet. The fix is to read v2 through JSOGDeserializer, as the details pages do, or to resolve bare dbIds against the objects in the same answer. Each fix should come with a test that fails on an answer holding a bare dbId.

Activity

  1. adamjohnwright commented on Oct 30, 2026

    @adamjohnwright
    ContributorAuthor

    From #763's review: the bare dbIds come from asking without includeRef=true, on /enhanced and /enhanced/v2 alike. With includeRef=true, either version answers with JSOG @id/@ref, which JSOGDeserializer resolves. So the smallest fix may be to add includeRef=true and the deserializer to these two readers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions