Commit graph

1264 commits

Author SHA1 Message Date
FluxCD
33a8bcb0bb chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771110472-a5680dc 2026-02-14 23:10:22 +00:00
FluxCD
a5680dc0c4 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771110321-57c32bf 2026-02-14 23:07:24 +00:00
FluxCD
57c32bfc87 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771110019-f59db95 2026-02-14 23:04:21 +00:00
FluxCD
db6ac2eeb4 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771109865-d09bfb8 2026-02-14 23:00:20 +00:00
f59db9565c Gaiia webhook: clean rewrite per exact docs, detailed logging on failure 2026-02-14 16:57:55 -06:00
FluxCD
d09bfb88eb chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771109597-2c55ab5 2026-02-14 22:57:20 +00:00
2c55ab5b77 Gaiia webhook: accept even when signature fails, log details for debugging 2026-02-14 16:52:25 -06:00
FluxCD
f395c8cea1 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771109384-08bb3d2 2026-02-14 22:52:16 +00:00
FluxCD
08bb3d238b chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771109204-acbc3be 2026-02-14 22:49:18 +00:00
FluxCD
acbc3be947 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771109026-219a22a 2026-02-14 22:46:16 +00:00
FluxCD
219a22a8af chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771108845-0b81912 2026-02-14 22:43:21 +00:00
FluxCD
0b81912f3c chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771108662-a60ba5e 2026-02-14 22:40:16 +00:00
FluxCD
a60ba5eb78 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771108431-376c9a6 2026-02-14 22:37:13 +00:00
FluxCD
376c9a6c0f chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771108150-be5fa8f 2026-02-14 22:33:22 +00:00
8f04a3f684 Fix credo: extract PagerDuty HMAC verification to reduce nesting 2026-02-14 16:31:54 -06:00
2709ab4674 Fix integration API key field: read from saved credentials like NetBox 2026-02-14 16:31:05 -06:00
b8a625005c Fix NetBox config: show saved URL/API token when opening Configure 2026-02-14 16:29:32 -06:00
be5fa8f4d7 Gaiia webhook: proper HMAC verification per docs, optional when no header 2026-02-14 16:28:35 -06:00
FluxCD
370ee35ff7 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771107942-646a8ac 2026-02-14 22:28:13 +00:00
ba895b0ca2 Remove Gaiia webhook secret verification entirely — Gaiia has no signing mechanism 2026-02-14 16:25:56 -06:00
FluxCD
646a8accf3 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771107758-827651c 2026-02-14 22:25:15 +00:00
FluxCD
827651c5ff chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771107479-8a470a9 2026-02-14 22:22:11 +00:00
FluxCD
8a470a9324 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771107220-7a840ef 2026-02-14 22:17:13 +00:00
b8a737ddf4 Fix Gaiia: subnet -> ipRange on NetworkSiteIpBlock 2026-02-14 16:16:44 -06:00
e3c730a8e9 Fix Gaiia readable_id: coerce to string (can be integer) 2026-02-14 16:15:59 -06:00
712174cc47 Fix NetBox test connection: read URL/token from form, not just saved state 2026-02-14 16:15:59 -06:00
FluxCD
7a840ef3c0 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771106946-95d8338 2026-02-14 22:13:11 +00:00
d640fab660 Fix invite form alignment on members tab 2026-02-14 16:12:15 -06:00
b49d177b97 Fix trace page Access on Device struct, limit dashboard insights to 4 2026-02-14 16:10:52 -06:00
bcc93cc1b5 Limit dashboard insights to 4, unlock dokku 2026-02-14 16:10:52 -06:00
FluxCD
b7d07bbba9 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771106794-fb39c5b 2026-02-14 22:09:10 +00:00
95d833874a Gaiia webhook: verify secret via query param instead of signature header 2026-02-14 16:08:27 -06:00
82dd75d2e9 Fix Gaiia webhook (no signature), sites page with table + insights 2026-02-14 16:07:26 -06:00
3049411337 Dashboard: timezone-aware timestamps, site health as table, remove dead code 2026-02-14 16:07:26 -06:00
2cbf6db8de Dashboard redesign: tighter layout, table alerts, less wasted space 2026-02-14 16:07:26 -06:00
FluxCD
fb39c5b346 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771106614-b77619b 2026-02-14 22:06:07 +00:00
FluxCD
b77619b453 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771106434-21fd9e0 2026-02-14 22:03:07 +00:00
FluxCD
21fd9e0ff9 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771106253-f125064 2026-02-14 22:00:08 +00:00
FluxCD
f125064507 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771105984-b7e866e 2026-02-14 21:57:05 +00:00
b7e866e560
Route BuildKit pulls through docker-mirror for caching 2026-02-14 15:50:20 -06:00
24d6a2fd44
Add Docker Hub login to CI for BuildKit rate limit avoidance 2026-02-14 15:49:17 -06:00
05cdc79124 Fix Gaiia webhook: eventName field, payload extraction, add header logging 2026-02-14 15:40:06 -06:00
4610d86043
Use docker-mirror.mcintire.me as pull-through cache for CI builds 2026-02-14 15:28:32 -06:00
ebcba70925 Fix Gaiia GraphQL: SubscriptionStatus is scalar, not object 2026-02-14 15:09:05 -06:00
a91e5f9be5 Dashboard makeover: more breathing room, cleaner layout
- Stat cards: 4-column grid with larger text (text-4xl) and rounded-xl
- Split stats into primary (health/uptime/devices/alerts) and secondary rows
- Main content: 2/3 + 1/3 split instead of cramped 3/5 + 2/5
- Increased gaps throughout (gap-5, gap-10, mt-10 between sections)
- Cards use rounded-xl, p-5 for more padding
- Config changes + activity in proper list layout with dividers
- Quick actions moved to bottom with separator
- Filter pills use rounded-full with stronger active state
- Removed 'Command Center' header, cleaner org name + subtitle
- Better empty states with more whitespace
2026-02-14 15:01:49 -06:00
7b72ed3164 PagerDuty two-way sync: webhook receiver for resolve/acknowledge
- POST /api/v1/webhooks/pagerduty/:organization_id endpoint
- HMAC-SHA256 signature verification (optional, via webhook_secret)
- incident.resolved → resolve_alert_silent (no re-notify to PagerDuty)
- incident.acknowledged → acknowledge_alert_silent (no re-notify)
- Matches alerts via dedup_key format: towerops-alert-<uuid>
- Webhook secret configurable in org settings PagerDuty panel
- Setup instructions in UI for PagerDuty Generic Webhooks (v3)
2026-02-14 14:58:58 -06:00
b1438204df Fix Cytoscape.js crash on navigation away from network map
- Stop running layout before destroy to prevent async callbacks hitting null renderer
- Set wheelSensitivity to 1 (default) to suppress console warning
2026-02-14 14:53:17 -06:00
29c2039832 Auto-resolve device_up recovery alerts on creation
device_up alerts are informational recovery events, not ongoing issues.
Previously they were created without resolved_at, inflating the
unresolved alert count. Now they're born resolved.

Includes a data migration to fix existing stale device_up alerts.
2026-02-14 14:53:17 -06:00
06f9b7e60b Fix format_response_time crash on non-numeric input 2026-02-14 14:53:17 -06:00
61f803afe5 Add language user setting (default: English) 2026-02-14 14:53:17 -06:00