Commit Graph

285 Commits

Author SHA1 Message Date
Jason Staack
ddcea97dd0 blog: add "What You Can Do With It Today (And What You Can't)"
Third blog post covering current capabilities, limitations, and
design philosophy. Factual inventory of what works, what's rough,
and what's missing entirely.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 19:06:22 -05:00
Jason Staack
517eb944d7 docs: update for Helm chart and telemetry changes
Add Kubernetes/Helm deployment section to DEPLOYMENT.md, telemetry
environment variables to CONFIGURATION.md, telemetry privacy details
to SECURITY.md, telemetry bullet to README quick start, and fix Go
version from 1.24 to 1.25 in docs/README.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 19:00:46 -05:00
Jason Staack
aef94329f4 fix(helm): correct secret name references and add migration env var
- Secret resource now named with -secrets suffix to match all template refs
- Add CREDENTIAL_ENCRYPTION_KEY to migration init container (VPN migration needs it)
- Fix postgres secretKeyRef to use -secrets suffix

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:54:47 -05:00
Jason Staack
4d3eadd1df feat(helm): add values-local.yaml for Docker Desktop testing
Local override values with pullPolicy: Never, dev environment,
disabled ingress/wireguard, and placeholder secrets. File is gitignored
since it contains dev credentials; exists only on local machines.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:48:21 -05:00
Jason Staack
8755595e60 feat(helm): add NOTES.txt with OpenBao init instructions and access info
Post-install notes cover OpenBao initialization/unseal workflow,
ingress or port-forward access, admin credentials, and health check.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:48:10 -05:00
Jason Staack
dc1d994f84 feat(helm): add Ingress template with API, docs, metrics, and frontend routes
Routes /api, /docs, /metrics to API service and / to frontend,
with optional TLS and annotation support.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:48:06 -05:00
Jason Staack
491f314b7d feat(helm): add WireGuard deployment and service templates
Privileged deployment with NET_ADMIN, sysctl ip_forward, tun device
mount, and UDP LoadBalancer service on port 51820.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:48:02 -05:00
Jason Staack
e3130059b6 feat(helm): add poller deployment template
Go poller with NET_ADMIN capability, configmap envFrom, and secret
refs for DATABASE_URL (poller_user), OPENBAO_TOKEN, and encryption key.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:45:53 -05:00
Jason Staack
c5175b0ea4 feat(helm): add frontend deployment and service templates
Simple nginx-based deployment serving the React SPA on port 80,
no runtime env or volumes required.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:45:49 -05:00
Jason Staack
04f6d46082 feat(helm): add API deployment and service templates
Includes two init containers (VPN route setup, Alembic migrations),
secret refs for JWT/encryption/OpenBao/SMTP, and PVC mounts for
git-store, firmware-cache, and wireguard config.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:45:45 -05:00
Jason Staack
d2b75bdae8 feat(helm): add OpenBao StatefulSet with config ConfigMap and service
File-backed storage, IPC_LOCK capability for mlock, startup/liveness/
readiness probes. Config mounted via subPath from ConfigMap.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:44:07 -05:00
Jason Staack
a2de7e7482 feat(helm): add NATS JetStream StatefulSet with headless and client services
Runs nats-server with --jetstream and monitoring on port 8222.
Headless service for StatefulSet DNS, ClusterIP service for app connections.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:44:02 -05:00
Jason Staack
d785aadad7 feat(helm): add Redis Deployment and ClusterIP Service
Ephemeral cache with no PVC. Includes redis-cli ping probes for
liveness and readiness.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:43:58 -05:00
Jason Staack
e79588a9b6 feat(helm): add PostgreSQL StatefulSet with init SQL and headless service
Includes ConfigMap for init.sql (TimescaleDB extension, app_user and
poller_user role creation), StatefulSet with liveness/readiness probes,
and headless Service for stable DNS.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:43:54 -05:00
Jason Staack
321ce548ea feat(helm): add standalone PVC templates for git-store, firmware-cache, wireguard
Three PVCs with configurable size and storageClass. Wireguard PVC is
conditional on wireguard.enabled.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:41:48 -05:00
Jason Staack
be11959d7c feat(helm): add secrets and configmap templates
Single Secret with all sensitive values (JWT, encryption keys, DB
passwords, SMTP credentials, poller DB URL). Single ConfigMap with
all non-sensitive config including URL helpers and optional value guards.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:41:25 -05:00
Jason Staack
fdf1735531 feat(helm): rewrite values.yaml and update Chart.yaml for v1.0.0
Complete values.yaml with all config sections: API, frontend, poller,
postgres, redis, NATS, OpenBao, WireGuard, storage, ingress, SMTP,
secrets, telemetry, backup, and storage paths.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:40:57 -05:00
Jason Staack
c8dbada606 feat(helm): add _helpers.tpl with naming, labels, and URL builders
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:39:53 -05:00
Jason Staack
ab560df532 chore(helm): remove old chart templates for rewrite
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:39:30 -05:00
Jason Staack
ecbefae9ab feat: add opt-in anonymous setup telemetry
Instruments setup.py to send per-step diagnostic events to the TOD
telemetry collector when the user opts in. Uses a shared static token
with no registration flow — fully anonymous.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 20:04:26 -05:00
Jason Staack
21563132e1 feat: replace Cloudflare analytics with self-hosted pixel, clarify privacy
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 19:19:58 -05:00
Jason Staack
f6283cff7c fix(lint): remove unused FleetDevice import in traffic page
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 19:03:31 -05:00
Jason Staack
c455fe4ed5 feat(ui): sweep remaining components for Deep Space consistency
Replace old design tokens and hardcoded colors across 29 files:
- bg-primary/text-primary-foreground -> bg-accent/text-white
- text-muted-foreground -> text-text-muted
- text-destructive/bg-destructive -> text-error/bg-error
- bg-muted -> bg-elevated (background usage)
- Hardcoded green/red/yellow/emerald/amber/slate -> semantic tokens
- Remove shadow-md/lg from cards, tooltips, topology nodes
- rounded-xl -> rounded-lg on cards/panels
- focus:ring-1 focus:ring-ring -> focus:border-accent on inputs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 19:00:36 -05:00
Jason Staack
25d4a80b73 feat(ui): polish command palette and login page for Deep Space
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 18:42:07 -05:00
Jason Staack
4924580a4b feat(ui): polish remaining pages with Deep Space tokens
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 18:40:48 -05:00
Jason Staack
1a463cfa84 chore: add demo data seeder and config editor smoke test
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 18:37:28 -05:00
Jason Staack
133e6e50e4 feat(ui): wire Wireless and Traffic pages to live data
Replace placeholder "coming soon" pages with functional implementations
that query the fleet APIs and display real-time wireless issues and
resource consumption data.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 18:36:44 -05:00
Jason Staack
1800330545 feat: expand config editor menu tree and add WiFi wave2 template
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 18:27:38 -05:00
Jason Staack
b8797c9b79 chore: remove deprecated Header component (replaced by ContextStrip)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:45:49 -05:00
Jason Staack
bdff65b9cf chore: remove Geist font files and dependency
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:45:26 -05:00
Jason Staack
64dc6beb11 feat(ui): polish Config Editor with Deep Space styling
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:44:18 -05:00
Jason Staack
8fadfc4d7d feat(ui): polish device table with Deep Space styling
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:43:31 -05:00
Jason Staack
06ac1b73b6 feat(ui): polish Fleet Overview with Deep Space styling
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:42:44 -05:00
Jason Staack
bea80b354f feat(ui): add placeholder Wireless and Traffic routes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:39:51 -05:00
Jason Staack
99215810a9 feat(ui): replace AppLayout with ContextStrip + rebuilt Sidebar
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:39:31 -05:00
Jason Staack
b9bbcf4a45 feat(ui): rebuild Sidebar with Fleet/Config/Admin structure
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:39:12 -05:00
Jason Staack
a10e609c02 feat(ui): add ContextStrip with org switcher, status, and user controls
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:38:24 -05:00
Jason Staack
76d7f5561d feat(ui): restyle DropdownMenu and Popover
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:34:01 -05:00
Jason Staack
627c5af8da feat(ui): restyle Select, Badge, Tabs, Checkbox
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:33:56 -05:00
Jason Staack
d5eaaafcfc feat(ui): restyle Dialog with Deep Space overlay and borders
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:33:52 -05:00
Jason Staack
038a988c55 feat(ui): restyle Card — borders over shadows
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:33:48 -05:00
Jason Staack
b347d4bb89 feat(ui): restyle Input with Deep Space focus behavior
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:33:43 -05:00
Jason Staack
eea3321e7d feat(ui): restyle Button with Deep Space variants
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:33:38 -05:00
Jason Staack
267724ccb6 feat(ui): add Deep Space transition defaults
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:30:52 -05:00
Jason Staack
304844c3ff feat(ui): update Tailwind theme for Deep Space tokens
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:30:34 -05:00
Jason Staack
e7a5567f0c feat(ui): replace color tokens with Deep Space palette
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:30:23 -05:00
Jason Staack
258a8fe8b4 feat(ui): swap Geist for Manrope + IBM Plex Mono
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:29:26 -05:00
Jason Staack
79cc0ad793 chore: add Manrope and IBM Plex Mono font files
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:28:57 -05:00
Jason Staack
5717b3deb4 docs: add Deep Space UI redesign implementation plan
22 tasks across 4 phases: tokens/fonts, component restyling, layout
restructure (ContextStrip + sidebar), page-level polish. Includes
responsive spot-check and WCAG contrast audit.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:13:57 -05:00
Jason Staack
d191ac2be3 blog: add "This Is Not Stable Software" post
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:03:12 -05:00