fix: Docker Compose missing migrations, network scan []int crash, demo seed data

Three bugs fixed:
- Docker Compose only mounted migration 000001; migrations 000002-000007
  (profiles, agent groups, revocation, discovery, network scans) never ran,
  breaking half the demo features. Now mounts all 7 migrations in order.
- Network Scans page crashed with pq.Array scan error because lib/pq
  doesn't support []int, only []int64. Changed Ports field accordingly.
- Dashboard pie chart displayed "RenewalInProgress" without spaces.
  Added formatStatus() helper for PascalCase → spaced display.

Also adds first-run demo experience improvements:
- 9 discovered certificates (filesystem + network scan mix)
- 3 discovery scans with recent timestamps
- 2 AwaitingApproval renewal jobs for approval workflow demo
- CERTCTL_NETWORK_SCAN_ENABLED=true in Docker Compose
- Network scan targets seeded with last_scan results
- Version badge updated to v2.0.5
- Docs updated (quickstart, advanced demo) to reference seeded data

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Shankar
2026-03-27 18:33:50 -04:00
parent 7028629acd
commit 1444aba08d
11 changed files with 156 additions and 23 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ type NetworkScanTarget struct {
ID string `json:"id"`
Name string `json:"name"`
CIDRs []string `json:"cidrs"`
Ports []int `json:"ports"`
Ports []int64 `json:"ports"`
Enabled bool `json:"enabled"`
ScanIntervalHours int `json:"scan_interval_hours"`
TimeoutMs int `json:"timeout_ms"`
+2 -2
View File
@@ -10,7 +10,7 @@ func TestNetworkScanTarget_Defaults(t *testing.T) {
ID: "nst-test",
Name: "Test Target",
CIDRs: []string{"10.0.0.0/24"},
Ports: []int{443},
Ports: []int64{443},
Enabled: true,
ScanIntervalHours: 6,
TimeoutMs: 5000,
@@ -35,7 +35,7 @@ func TestNetworkScanTarget_WithScanResults(t *testing.T) {
ID: "nst-prod",
Name: "Production Network",
CIDRs: []string{"192.168.1.0/24", "10.0.0.0/16"},
Ports: []int{443, 8443, 636},
Ports: []int64{443, 8443, 636},
Enabled: true,
ScanIntervalHours: 1,
TimeoutMs: 3000,