Overview endpoint: every stream by severity #43

Merged
Gilles merged 3 commits from feat/41-overview into master 2026-10-29 22:36:02 +00:00
Owner

Closes #41

Monitoring plan, phase 6. Stacked on #42 (base feat/22-publish-report): merge #42 first.

Changes

  • GET /api/overview/ (apps/reports/overview.py), for the projects the user can read:
    • each source stream (latest processed report per ref, type, custom name, variant): status, headline, last reception max(uploaded_at, last_seen_at), expect_every, silent (same rule as the stale trigger) and report_id;
    • each other project: the persisted aggregate of its master / main branch per report type.
    • severity = silent for a silent stream that isn't failing, else its status; rows sorted fail, silent, warn, ok, then project and stream.
  • apps.reports.durations.silence_tolerance() / is_silent(): the silence rule, now shared by the stale trigger (behaviour unchanged) and the overview.
  • README, feature catalog; tests in apps/reports/test_overview.py.

Checks

pytest (243 passed), pylint 10/10, autopep8, bandit clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_014BSmBtGWeFBD9z4mYm9SjA

Closes #41 Monitoring plan, phase 6. **Stacked on #42** (base `feat/22-publish-report`): merge #42 first. ## Changes - `GET /api/overview/` (`apps/reports/overview.py`), for the projects the user can read: - each `source` stream (latest processed report per ref, type, custom name, variant): status, headline, last reception `max(uploaded_at, last_seen_at)`, `expect_every`, `silent` (same rule as the stale trigger) and `report_id`; - each other project: the persisted aggregate of its `master` / `main` branch per report type. - `severity` = `silent` for a silent stream that isn't failing, else its status; rows sorted fail, silent, warn, ok, then project and stream. - `apps.reports.durations.silence_tolerance()` / `is_silent()`: the silence rule, now shared by the stale trigger (behaviour unchanged) and the overview. - README, feature catalog; tests in `apps/reports/test_overview.py`. ## Checks pytest (243 passed), pylint 10/10, autopep8, bandit clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_014BSmBtGWeFBD9z4mYm9SjA
feature: overview endpoint, every stream by severity
All checks were successful
ci / test (pull_request) Successful in 3m30s
ci / e2e (pull_request) Has been skipped
ci / docker (pull_request) Has been skipped
ci / deploy (pull_request) Has been skipped
e5a5384e60
GET /api/overview/: every source stream the user can read (latest
report, last reception, expected period, silent or not) and, for the
other projects, the aggregate of their main branch per report type --
sorted fail, silent, warn, ok. The silence rule (period + max(10 min,
10 %)) moves to apps.reports.durations, shared with the stale trigger.

Closes #41

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014BSmBtGWeFBD9z4mYm9SjA
Author
Owner
<!-- argus-link-bot:argus/backend --> 📊 [Rapports Argus pour cette PR](https://reports.stationmyr.net/argus/backend/pr/43)
Gilles changed target branch from feat/22-publish-report to master 2026-10-29 22:20:45 +00:00
Merge remote-tracking branch 'origin/master' into feat/41-overview
All checks were successful
ci / test (pull_request) Successful in 3m27s
ci / e2e (pull_request) Has been skipped
ci / docker (pull_request) Has been skipped
ci / deploy (pull_request) Has been skipped
3a5fe2d11a
# Conflicts:
#	README.md
Gilles scheduled this pull request to auto merge when all checks succeed 2026-10-29 22:21:31 +00:00
Gilles merged commit 476683b923 into master 2026-10-29 22:36:02 +00:00
Gilles deleted branch feat/41-overview 2026-10-29 22:36:02 +00:00
Gilles referenced this pull request from a commit 2026-10-29 23:03:54 +00:00
Sign in to join this conversation.
No description provided.