Source refs, JSON uploads and de-duplication #28

Closed
opened 2026-10-28 15:12:48 +00:00 by Gilles · 0 comments
Owner

Part of the monitoring plan (phase 1.3): make it easy for scripts and other tools to push reports.

Scope

  • New ref_kind=source (ref_value = machine or tool name, e.g. garion, kuma). Allowed on any project.
  • The upload endpoint also accepts a JSON body without a file: {"report_type": "custom", "custom_type_name": "...", "ref_kind": "source", "ref_value": "garion", "report": {...}}. The report object is stored as the raw file. commit_sha, run_url and actor become optional.
  • "Format maison" additions: an optional stable key per metric (used by threshold rules) and an optional report-level expect_every (90s, 15m, 1h, 7d, …) announcing how often the source reports (used by the silent-source trigger).
  • De-duplication for source refs: a report identical to the previous one of the same stream (same status and summary) is not kept; the previous report's new last_seen_at is updated instead. History then only holds changes.
Part of the monitoring plan (phase 1.3): make it easy for scripts and other tools to push reports. ## Scope - New `ref_kind=source` (`ref_value` = machine or tool name, e.g. `garion`, `kuma`). Allowed on any project. - The upload endpoint also accepts a JSON body without a file: `{"report_type": "custom", "custom_type_name": "...", "ref_kind": "source", "ref_value": "garion", "report": {...}}`. The `report` object is stored as the raw file. `commit_sha`, `run_url` and `actor` become optional. - "Format maison" additions: an optional stable `key` per metric (used by threshold rules) and an optional report-level `expect_every` (`90s`, `15m`, `1h`, `7d`, …) announcing how often the source reports (used by the silent-source trigger). - De-duplication for `source` refs: a report identical to the previous one of the same stream (same status and summary) is not kept; the previous report's new `last_seen_at` is updated instead. History then only holds changes.
Sign in to join this conversation.
No description provided.