admin

Dq Overview

Counts of open data-quality cases across the 4 case tables.

P2 fix, 2026-08-29 (RELEASE_BLOCKERS.md): this endpoint had two compounding defects, both verified:

  1. _count_safe caught bare except Exception: return 0 — a missing table or a failed query was indistinguishable from "0 open cases", the exact silent-zero failure mode that let 626 ungeocoded safe_places stay invisible (see admin_data_quality.py).
  2. It did NOT wrap each query in a SAVEPOINT, unlike the begin_nested() pattern used elsewhere in this same file. This function issues 10 sequential _count_safe calls in ONE request — without isolation, the first failure poisons the whole transaction, so every count AFTER it also throws and also returned 0. One broken query made the entire dashboard read "all clean".

Fixed with a per-query SAVEPOINT (async with db.begin_nested()) so one failure can't poison the rest of the request, and by reporting an explicit unavailable list + all_counts_available flag rather than ever silently substituting 0 for "unknown". The existing flat integer fields (open_location_cases etc.) are UNCHANGED in shape — DqTab.jsx reads them directly with || 0 — so a genuine failure still surfaces as 0 in that field for backward compatibility, but it is no longer indistinguishable from health: unavailable names exactly which counts failed, and the frontend must check it before treating any 0 as "clean".

get/api/admin/dq/overview

Request

  • Base URL: https://api.activitia.net (the document declares no server; this is the origin it was published from)
  • URL: https://api.activitia.net/api/admin/dq/overview
  • Auth: none declared

Headers

authorizationstring

Response

Successful Response

unknown required

Changes

No recorded changes to this operation across all 1 revision of this API.