This website requires JavaScript.
f48fc750f2
feat(ui/alerts): ScopeStep (name, severity, env/app/route/agent selectors)
hsiegeln
2026-04-20 13:58:21 +02:00
334e815c25
feat(ui/alerts): rule editor wizard shell + form-state module
hsiegeln
2026-04-20 13:57:30 +02:00
7e91459cd6
feat(ui/alerts): RulesListPage with enable/disable, delete, env promotion
hsiegeln
2026-04-20 13:52:14 +02:00
269a63af1f
feat(ui/alerts): AllAlertsPage + HistoryPage
hsiegeln
2026-04-20 13:49:52 +02:00
8d8bae4e18
feat(ui/alerts): InboxPage with ack + bulk-read actions
hsiegeln
2026-04-20 13:49:23 +02:00
891dcaef32
feat(ui/alerts): mount NotificationBell in TopBar
hsiegeln
2026-04-20 13:47:16 +02:00
54e4217e21
feat(ui/alerts): Alerts sidebar section with Inbox/All/Rules/Silences/History
hsiegeln
2026-04-20 13:46:49 +02:00
167d0ebd42
feat(ui/alerts): register /alerts/* routes with placeholder pages
hsiegeln
2026-04-20 13:44:44 +02:00
019e79a362
feat(ui/alerts): MustacheEditor component (CM6 shell with completion + linter)
hsiegeln
2026-04-20 13:41:46 +02:00
ac2a943feb
feat(ui/alerts): CM6 completion + linter for Mustache templates
hsiegeln
2026-04-20 13:39:10 +02:00
18e6dde67a
fix(ui/alerts): align ALERT_VARIABLES registry with NotificationContextBuilder
hsiegeln
2026-04-20 13:35:42 +02:00
5ddd89f883
feat(ui/alerts): Mustache variable metadata registry for autocomplete
hsiegeln
2026-04-20 13:31:55 +02:00
38083d7c3f
fix(ui/alerts): remove dead usePageVisible subscription; align alerts test mock with DTO
hsiegeln
2026-04-20 13:30:07 +02:00
197c60126c
feat(ui/alerts): NotificationBell with Page Visibility poll pause
hsiegeln
2026-04-20 13:26:58 +02:00
31ee974830
feat(ui/alerts): AlertStateChip + SeverityBadge components
hsiegeln
2026-04-20 13:21:37 +02:00
51bc796bec
feat(ui/alerts): silence + notification query hooks
hsiegeln
2026-04-20 13:16:57 +02:00
c6c3dd9cfe
feat(ui/alerts): alert rule query hooks (CRUD, enable/disable, preview, test-evaluate)
hsiegeln
2026-04-20 13:13:07 +02:00
82c29f46a5
fix(ui/alerts): bulk-read body uses instanceIds to match BulkReadRequest DTO
hsiegeln
2026-04-20 13:08:22 +02:00
83a8912da6
feat(ui/alerts): TanStack Query hooks for /alerts endpoints
hsiegeln
2026-04-20 13:07:16 +02:00
1a8b9eb41b
feat(ui/alerts): shared env helper for alerting query hooks
hsiegeln
2026-04-20 13:00:49 +02:00
b2066cdb68
chore(ui): regenerate openapi.json + schema.d.ts from deployed Plan 02 backend
hsiegeln
2026-04-20 10:56:43 +02:00
1260cbe674
chore(ui): add CodeMirror 6 + Playwright config
hsiegeln
2026-04-20 12:55:57 +02:00
0aa1776b57
chore(ui): add Vitest + Testing Library scaffolding
hsiegeln
2026-04-20 12:16:22 +02:00
2942025a54
docs(alerting): Plan 03 — UI + backfills implementation plan
hsiegeln
2026-04-20 12:12:21 +02:00
99c3cab84a
Merge pull request 'chore(ui): regenerate openapi schema for Plan 02 alerting endpoints' (#143 ) from chore/openapi-regen-post-plan02 into main
hsiegeln
2026-04-20 11:02:13 +02:00
c861482c9e
Merge pull request 'test(alerting): decentralize @MockBean + add SpringContextSmokeIT (follow-up to #141 )' (#142 ) from fix/alerting-test-hygiene into main
hsiegeln
2026-04-20 10:57:57 +02:00
39a134a0db
chore(ui): regenerate openapi.json + schema.d.ts from deployed Plan 02 backend
hsiegeln
2026-04-20 10:56:43 +02:00
94e941b026
test(alerting): decentralize @MockBean from AbstractPostgresIT + add SpringContextSmokeIT
hsiegeln
2026-04-20 10:51:46 +02:00
5373ac6541
Merge pull request 'fix(alerting): ClickHouseSearchIndex bean registered as concrete type (hotfix: production crashloop)' (#141 ) from fix/alerting-searchindex-bean-type into main
hsiegeln
2026-04-20 10:24:49 +02:00
c9c93ac565
fix(alerting): declare ClickHouseSearchIndex bean as concrete type
hsiegeln
2026-04-20 09:11:47 +02:00
ca78aa3962
Merge pull request 'feat(alerting): Plan 02 — backend (domain, storage, evaluators, dispatch)' (#140 ) from feat/alerting-02-backend into main
claude
2026-04-20 09:03:15 +02:00
b763155a60
Merge pull request 'feat(alerting): Plan 01 — outbound HTTP infra + admin-managed outbound connections' (#139 ) from feat/alerting-01-outbound-infra into main
hsiegeln
2026-04-20 08:57:40 +02:00
aa9e93369f
docs(alerting): add V11-V13 migration entries to CLAUDE.md
hsiegeln
2026-04-20 08:27:39 +02:00
b0ba08e572
test(alerting): rewrite AlertingFullLifecycleIT — REST-driven rule creation, re-notify cadence
hsiegeln
2026-04-20 08:26:38 +02:00
2c82b50ea2
fix(alerting/B-1): AlertStateTransitions.newInstance() propagates rule targets to AlertInstance
hsiegeln
2026-04-20 08:26:25 +02:00
7e79ff4d98
fix(alerting/I-2): add unique partial index on alert_instances(rule_id) for open states
hsiegeln
2026-04-20 08:26:07 +02:00
424894a3e2
fix(alerting/I-1): retry endpoint resets attempts to 0 instead of incrementing
hsiegeln
2026-04-20 08:25:59 +02:00
d74079da63
fix(alerting/B-2): implement re-notify cadence sweep and lastNotifiedAt tracking
hsiegeln
2026-04-20 08:25:50 +02:00
3f036da03d
fix(alerting/B-1): PostgresAlertRuleRepository.save() now persists alert_rule_targets
hsiegeln
2026-04-20 08:25:39 +02:00
8bf45d5456
fix(alerting): use ALTER TABLE MODIFY SETTING to enable projections on executions ReplacingMergeTree
hsiegeln
2026-04-20 07:36:55 +02:00
f1abca3a45
refactor(alerting): rename P95_LATENCY_MS → AVG_DURATION_MS to match what stats_1m_route exposes
hsiegeln
2026-04-20 07:36:43 +02:00
144915563c
docs(alerting): whole-branch final review report
hsiegeln
2026-04-20 07:25:33 +02:00
c79a6234af
test(alerting): fix duplicate @MockBean after AbstractPostgresIT centralised mocks + Plan 02 verification report
hsiegeln
2026-04-19 23:27:19 +02:00
63669bd1d7
docs(alerting): default config + admin guide
hsiegeln
2026-04-19 22:16:38 +02:00
840a71df94
feat(alerting): observability metrics via micrometer
hsiegeln
2026-04-19 22:16:30 +02:00
1ab21bc019
feat(alerting): AlertingRetentionJob daily cleanup
hsiegeln
2026-04-19 22:16:21 +02:00
118ace7cc3
docs(alerting): update app-classes.md for Phase 9 REST controllers (Task 36)
hsiegeln
2026-04-19 22:08:38 +02:00
e334dfacd3
feat(alerting): AlertNotificationController + SecurityConfig matchers + fix IT context (Task 35)
hsiegeln
2026-04-19 21:29:17 +02:00
77d1718451
feat(alerting): AlertSilenceController CRUD with time-range validation + audit (Task 34)
hsiegeln
2026-04-19 21:29:03 +02:00
841793d7b9
feat(alerting): AlertController in-app inbox with ack/read/bulk-read (Task 33)
hsiegeln
2026-04-19 21:28:55 +02:00
c1b34f592b
feat(alerting): AlertRuleController with attribute-key SQL injection validation (Task 32)
hsiegeln
2026-04-19 21:28:46 +02:00
d3dd8882bd
feat(alerting): InAppInboxQuery with 5s unread-count memoization
hsiegeln
2026-04-19 20:25:00 +02:00
6b48bc63bf
feat(alerting): NotificationDispatchJob outbox loop with silence + retry
hsiegeln
2026-04-19 20:24:54 +02:00
466aceb920
feat(alerting): WebhookDispatcher with HMAC + TLS + retry classification
hsiegeln
2026-04-19 20:24:47 +02:00
6f1feaa4b0
feat(alerting): HmacSigner for webhook signature
hsiegeln
2026-04-19 20:24:39 +02:00
bf178ba141
fix(alerting): populate AlertInstance.rule_snapshot so history survives rule delete
hsiegeln
2026-04-19 20:09:28 +02:00
15c0a8273c
feat(alerting): AlertEvaluatorJob with claim-polling + circuit breaker
hsiegeln
2026-04-19 19:58:27 +02:00
657dc2d407
feat(alerting): AlertingProperties + AlertStateTransitions state machine
hsiegeln
2026-04-19 19:58:12 +02:00
f8cd3f3ee4
feat(alerting): EXCHANGE_MATCH evaluator with per-exchange + count modes
hsiegeln
2026-04-19 19:40:54 +02:00
89db8bd1c5
feat(alerting): JVM_METRIC evaluator
hsiegeln
2026-04-19 19:38:48 +02:00
17d2be5638
feat(alerting): LOG_PATTERN evaluator
hsiegeln
2026-04-19 19:37:33 +02:00
07d0386bf2
feat(alerting): ROUTE_METRIC evaluator
hsiegeln
2026-04-19 19:36:22 +02:00
983b698266
feat(alerting): DEPLOYMENT_STATE evaluator
hsiegeln
2026-04-19 19:34:47 +02:00
e84338fc9a
feat(alerting): AGENT_STATE evaluator
hsiegeln
2026-04-19 19:33:13 +02:00
55f4cab948
feat(alerting): evaluator scaffolding (context, result, tick cache, circuit breaker)
hsiegeln
2026-04-19 19:32:06 +02:00
891c7f87e3
feat(alerting): silence matcher for notification-time dispatch
hsiegeln
2026-04-19 19:27:18 +02:00
1c74ab8541
feat(alerting): NotificationContextBuilder for template context maps
hsiegeln
2026-04-19 19:27:12 +02:00
92a74e7b8d
feat(alerting): MustacheRenderer with literal fallback on missing vars
hsiegeln
2026-04-19 19:27:05 +02:00
c53f642838
chore(alerting): add jmustache 1.16
hsiegeln
2026-04-19 19:26:57 +02:00
7c0e94a425
feat(alerting): ClickHouse projections for alerting read paths
hsiegeln
2026-04-19 19:18:58 +02:00
7b79d3aa64
feat(alerting): countExecutionsForAlerting for exchange-match evaluator
hsiegeln
2026-04-19 19:18:49 +02:00
44e91ccdb5
feat(alerting): ClickHouseLogStore.countLogs for log-pattern evaluator
hsiegeln
2026-04-19 19:18:41 +02:00
59354fae18
feat(alerting): wire all alerting repository beans
hsiegeln
2026-04-19 19:05:06 +02:00
f829929b07
feat(alerting): Postgres repositories for silences, notifications, reads
hsiegeln
2026-04-19 19:05:01 +02:00
45028de1db
feat(alerting): Postgres repository for alert_instances with inbox queries
hsiegeln
2026-04-19 19:04:51 +02:00
930ac20d11
fix(outbound): wire rulesReferencing to AlertRuleRepository (Plan 01 gate)
hsiegeln
2026-04-19 18:51:36 +02:00
f80bc006c1
feat(alerting): Postgres repository for alert_rules
hsiegeln
2026-04-19 18:48:15 +02:00
1ff256dce0
feat(alerting): core repository interfaces
hsiegeln
2026-04-19 18:43:36 +02:00
e7a9042677
feat(alerting): core domain records (rule, instance, silence, notification)
hsiegeln
2026-04-19 18:43:03 +02:00
56a7b6de7d
feat(alerting): sealed AlertCondition hierarchy with Jackson deduction
hsiegeln
2026-04-19 18:42:04 +02:00
530bc32040
feat(alerting): core enums + AlertScope
hsiegeln
2026-04-19 18:36:29 +02:00
5103dc91be
feat(alerting): add ALERT_RULE_CHANGE + ALERT_SILENCE_CHANGE audit categories
hsiegeln
2026-04-19 18:34:08 +02:00
a80c376950
fix(alerting): harden V12 migration IT against shared container state
hsiegeln
2026-04-19 18:32:35 +02:00
59e76bdfb6
feat(alerting): V12 flyway migration for alerting tables
hsiegeln
2026-04-19 18:28:09 +02:00
087dcee5df
docs(alerting): Plan 02 — backend (domain, storage, evaluators, dispatch)
hsiegeln
2026-04-19 18:24:16 +02:00
cacedd3f16
fix(outbound): null-guard TRUST_PATHS check; add RBAC test for probe endpoint
hsiegeln
2026-04-19 17:19:37 +02:00
7358555d56
test(outbound): add @AfterEach cleanup to avoid leaking user/connection rows
hsiegeln
2026-04-19 17:10:25 +02:00
609a86dd03
docs: admin guide for outbound connections
hsiegeln
2026-04-19 17:03:18 +02:00
1dd1f10c0e
docs(rules): document http/ and outbound/ packages + admin controller
hsiegeln
2026-04-19 17:02:09 +02:00
0c5f1b5740
feat(ui): outbound connection editor — TLS config, test action, env restriction
hsiegeln
2026-04-19 16:59:19 +02:00
e7fbf5a7b2
feat(ui): admin page for outbound connections list + navigation
hsiegeln
2026-04-19 16:55:35 +02:00
3c903fc8dc
feat(ui): tanstack query hooks for outbound connections
hsiegeln
2026-04-19 16:52:40 +02:00
87b8a71205
feat(outbound): admin test action for reachability + TLS summary
hsiegeln
2026-04-19 16:47:36 +02:00
ea4c56e7f6
feat(outbound): admin CRUD REST + RBAC + audit
hsiegeln
2026-04-19 16:43:48 +02:00
a3c35c7df9
feat(outbound): request + response + test-result DTOs with Bean Validation
hsiegeln
2026-04-19 16:37:00 +02:00
94b5db0f5b
feat(outbound): service with uniqueness + narrow-envs + delete-if-referenced guards
hsiegeln
2026-04-19 16:34:09 +02:00
642c040116
feat(outbound): Postgres repository for outbound_connections
hsiegeln
2026-04-19 16:23:51 +02:00
380ccb102b
fix(outbound): align user FK with users(user_id) TEXT schema
hsiegeln
2026-04-19 16:18:12 +02:00
b8565af039
feat(outbound): SecretCipher - AES-GCM with JWT-derived key for at-rest secret encryption
hsiegeln
2026-04-19 16:13:57 +02:00
46b8f63fd1
feat(outbound): core domain records for outbound connections
hsiegeln
2026-04-19 16:10:17 +02:00