10160 Commits
Author SHA1 Message Date
Alex Holliday cfe7d2a359 add missing braces, fix type error 2026-09-23 11:06:25 -07:00
Alex Holliday 5fb26367ed reorder docker case 2026-09-23 11:03:33 -07:00
Alex Holliday cd65488cbd add docker branch to incident service, update providers 2026-09-23 10:57:49 -07:00
Alex Holliday 4ea6539a7d build notifications for container breaches 2026-09-23 10:54:35 -07:00
Alex Holliday a75bb5fae6 add docker container alert fields to monitors,checks 2026-09-23 10:16:49 -07:00
fabiangigler 380968472f Allow monitor sort headers to reset to default 2026-09-23 13:35:01 +02:00
fabiangigler 0cb48596a0 Clarify monitor sort fallback 2026-09-23 12:38:57 +02:00
fabiangigler 22d0123966 Reset monitor pages when sorting 2026-09-23 12:37:45 +02:00
fabiangigler 2a45b4d46f Persist monitor list sorting 2026-09-23 12:21:26 +02:00
Malena Aguiar bdd4634a3b feat(dashboard): add currently down and lowest uptime dashboard cards 2026-09-22 16:18:51 -06:00
Alexander Holliday a5e66318b5 Merge pull request #3975 from nikhilsaxena04/feat/status-page-incident-history
feat: add clickthrough incident history to public status page (#3972)
2026-09-22 10:15:57 -07:00
nikhil2004 7ebbb05482 i18n: add errorLoading translation key to all locales 2026-09-22 22:35:15 +05:30
nikhil2004 99c62961cf feat: add keepPreviousData option to useGet in IncidentModal 2026-09-22 22:29:00 +05:30
nikhil2004 40a9f3f1e1 refactor: use Zod date native validation for query date 2026-09-22 22:27:16 +05:30
nikhil2004 b37e4d9083 refactor: replace hardcoded color with theme palette reference 2026-09-22 22:20:03 +05:30
nikhil2004 37dd9fad26 refactor: use global Incident type instead of local interface 2026-09-22 22:18:47 +05:30
nikhil2004 0f51d68ff0 chore: add missing translation key for errorLoading and remove fallback 2026-09-22 22:16:52 +05:30
Alexander Holliday dfc048522d Merge pull request #3982 from bluewave-labs/fix/dashboard-types
fix: Dashboard types
2026-09-22 09:43:58 -07:00
Alex Holliday 1f9072a905 add missing imports 2026-09-22 09:42:15 -07:00
nikhil2004 780ed8147b fix: resolve CORS issue on public status pages and handle UI errors 2026-09-22 22:06:38 +05:30
Alex Holliday b2cfc60387 Move types to dir, div -> Fragment 2026-09-22 09:35:53 -07:00
Alexander Holliday c8f84e9e20 Merge pull request #3976 from bluewave-labs/feat/dashboard-edit-visible-cards
feat(dashboard): add edit visible cards modal
2026-09-22 09:30:13 -07:00
nikhil2004 9434cd8929 fix: allow owners to view incidents on unpublished status pages 2026-09-22 21:57:54 +05:30
Malena Aguiar a277a89bef feat(dashboard): add code refactors 2026-09-21 18:29:48 -06:00
nikhil2004 55184724d0 fix: resolve failing CI checks 2026-09-22 04:42:32 +05:30
nikhil2004 de4c528d55 fix: address PR feedback 2026-09-22 03:33:27 +05:30
nikhil2004 d5e887903e chore: fix formatting for IncidentModal.tsx and openapi.json 2026-09-22 03:31:15 +05:30
nikhil2004 6196b81fe4 fix: resolve client CI build and Prettier formatting errors 2026-09-22 03:31:15 +05:30
nikhil2004 c3598a67fa fix(client): resolve linting warnings in IncidentModal 2026-09-22 03:31:15 +05:30
nikhil2004 2c896a5506 fix(client): resolve TS2769 error in ThemedHeatmap and ThemedHistogram 2026-09-22 03:31:14 +05:30
nikhil2004 97e23e4b3a fix(client): allow clicking empty cells to view historical incidents 2026-09-22 03:31:14 +05:30
nikhil2004 be39ad0bfe fix: add missing dayjs dependency 2026-09-22 03:31:14 +05:30
nikhil2004 7f0e577dd2 feat: clickthrough historical data view for status page downtime (#3972)
This adds the ability for users to click on any day block in the historical uptime chart to see the specific incidents that occurred on that day.

Closes #3972
2026-09-22 03:31:14 +05:30
Alexander Holliday f308325bd6 Merge pull request #3960 from bluewave-labs/feat/scrollbar-style
feat: scrollbar styling
2026-09-21 10:31:42 -07:00
Alexander Holliday c5303add56 Merge pull request #3981 from bluewave-labs/fix/docker-capture-monitors
docker capture fixes
2026-09-21 10:30:16 -07:00
Alex Holliday fe6f755451 add readme 2026-09-21 10:26:53 -07:00
Alex Holliday 4a2429d316 docker capture fixes 2026-09-21 10:22:46 -07:00
Alexander Holliday d7f8bcc9e1 Merge pull request #3973 from fabiangigler/feat/capture-docker-monitors
Support Capture-backed Docker monitors
2026-09-21 10:05:51 -07:00
Alexander Holliday d51fdbd772 Merge pull request #3978 from bluewave-labs/chore/readability-refactor
chore: refactor worker services into a pipeline for readability
2026-09-21 09:38:56 -07:00
Alexander Holliday 199d68e8a2 Merge pull request #3974 from nikhilsaxena04/fix/grpc-monitor-proto-path
fix(network): correctly resolve health.proto path for gRPC monitors and include in build
2026-09-21 09:17:36 -07:00
Alex Holliday 461a5e35dd format openapi 2026-09-21 09:13:45 -07:00
Alex Holliday 8dd57d45e2 port egress to pipeline 2026-09-20 17:37:42 -07:00
Alexander Holliday 01e9655f42 Merge pull request #3977 from bluewave-labs/fix/docker-socket-egress-exemption
fix: exempt local docker sockets
2026-09-20 16:53:21 -07:00
Alex Holliday d4d2735d23 exempt local docker sockets 2026-09-20 16:37:02 -07:00
Alexander Holliday 253642dde9 Merge pull request #3963 from web-engineer/feat/egress-2-check-persistence
Egress self-check (2/4): flag checks taken during degraded egress (#3937)
2026-09-20 16:31:06 -07:00
Malena Aguiar 9d0dc3f330 feat(dashboard): add edit visible cards modal 2026-09-19 14:57:30 -06:00
fabiangigler 2f3de9797d Use network types for Capture responses 2026-09-19 22:51:23 +02:00
Craig Lawson 1b3b8e5312 Clear the status window when a degraded spell starts
The window was carried across a spell, so the results either side of it ended up
adjacent: a monitor at [t, t, t, f, f] when egress dropped resumed at
[t, t, f, f, f] on its first real failure afterwards, crossing the threshold on
results taken before the outage.

Cleared in the producer beside the maintenance gate, which already clears the
window on entering a window, and guarded on its length so it is one write per
spell rather than one per degraded check. The monitor still goes down once the
rebuilt window holds enough real failures.

The two integration tests that asserted the old behaviour are rewritten: one
expected the window preserved through a spell, the other expected failures
either side of a spell to combine.

🔧
2026-09-19 14:43:16 +01:00
Craig Lawson b55560e2f1 Report whether the peer answered from every provider that can tell
An egress spell masked a service on the surviving network going down: with
`peerResponded` set only by the DNS and gRPC providers, every other failure fell
back to the HTTP-status heuristic, which answers "nothing replied" for anything
that is not speaking HTTP. A refused connection on the local network was read as
the instance's own loss of egress, so the check was recorded as degraded and the
monitor stayed up.

`peerAnsweredFromError` holds the errno codes that require the target's own stack
to have replied — a refusal, a reset, a TLS handshake that got as far as a
certificate. Http, Port, WebSocket and Docker use it; Http also treats any status
code as an answer, and Docker any status from the daemon. Hardware and PageSpeed
go through Http and inherit it.

`true` is the claim that costs something, since it blames the target, so it is
only set on evidence. Two cases stay conservative and are commented as such: a
ping that draws no echo reply, and a gamedig query that fails, neither of which
can be told apart from the instance losing its egress. Nor can a proxied HTTP
request that fails with no response, where the refusal may be the proxy's.

🔧
2026-09-19 14:43:11 +01:00
nikhil2004 57ddbc474f fix(network): correctly resolve health.proto path for gRPC monitors and include in build
Fixes #3970 by pointing protoPath to the correct relative directory (../protos) and adding a step in the package.json build script to copy the protos directory to the final dist output.
2026-09-19 01:03:42 +05:30