Commit graph

1247 commits

Author SHA1 Message Date
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
1cfe306373
format 2026-02-14 14:52:08 -06:00
d1cd608ae9 feat: actionable insights with fix-it buttons, proper pluralization via gettext
- Gaiia 'not tracked' insight: Map to Gaiia inventory + View reconciliation buttons
- Gaiia 'ghost' insight: Clean up stale mappings button
- Gaiia 'mismatch' insight: Review mismatches button
- Fixed device(s) → proper ngettext pluralization
- Fixed Towerops → TowerOps capitalization
2026-02-14 14:46:19 -06:00
44e9d20d35 fix: NetBox sync direction cards now clickable via phx-click instead of hidden radio buttons 2026-02-14 14:41:30 -06:00
FluxCD
eb120807b6 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771100872-3190f07 2026-02-14 20:31:53 +00:00
47f9ee703f fix: NetBox sync direction/checkboxes now reactive - track config in socket assigns instead of reading from saved credentials 2026-02-14 14:30:46 -06:00
FluxCD
5327c5fb58 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771100714-2ed6cfb 2026-02-14 20:27:51 +00:00
3190f07ee5 ui: major integrations tab polish - accent bars, brand colors, better status display, cleaner configure panels 2026-02-14 14:25:53 -06:00
FluxCD
2ed6cfb3a4 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771100532-444d159 2026-02-14 20:24:48 +00:00
FluxCD
444d15974d chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771100353-d18f8ee 2026-02-14 20:21:48 +00:00
FluxCD
d18f8ee2cd chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771100169-10ec67f 2026-02-14 20:18:49 +00:00
FluxCD
10ec67f6f6 chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771099899-db40a3e 2026-02-14 20:15:46 +00:00
db40a3e5b7 feat: show human-readable sync status messages for integrations
- Added last_sync_message field to integrations schema
- Gaiia sync: shows item counts on success, friendly error on failure
- Preseem sync: shows AP/device counts on success, friendly error on failure
- Error messages translated from technical errors to user-friendly text
- Message displayed on integration card next to status badge
- Exposed in REST API response
2026-02-14 14:11:02 -06:00
FluxCD
ddae90f06c chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771099595-0f7e91a 2026-02-14 20:10:45 +00:00
5917190efe feat: add NetBox integration with sync direction, entity selection, and filtering
- Three sync modes: NetBox→TowerOps (pull), TowerOps→NetBox (push), Bidirectional
- Configurable entity sync: devices, sites, IP addresses, interfaces
- Optional filters by device role, site, and tag (comma-separated)
- NetBox client with test connection, CRUD operations
- Radio card UI for sync direction, checkbox cards for entity selection
- Credentials stored encrypted (URL, API token, sync config)
2026-02-14 14:09:01 -06:00
FluxCD
880259874c chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771099404-7d38958 2026-02-14 20:06:43 +00:00
0f7e91af0c ui: remove Agents from top-level nav, accessible via org settings tab 2026-02-14 14:03:49 -06:00
FluxCD
7d3895817b chore: update towerops image to git.mcintire.me/graham/towerops-web:main-1771099096-a028695 2026-02-14 20:02:58 +00:00