PRIME PRODUCTS · MISSION CONTROL
AI-first transformation · by TPL · vanos.tpl.one

Docs / 08-transformation/05-technical/security-and-operations

Security & Operations

Security model, monitoring/logging stack, backup & DR with RTO/RPO targets, runbook pointers, and patching cadence for the AI platform.

type: blueprint updated: 2026-07-03 owner: kotsalidis

Security & Operations

Security model

Network zoning

  • Dedicated AI VLAN for all platform VMs, firewalled from the office LAN; only the reverse proxy (Caddy/Traefik, TLS-terminating) is reachable from the user VLAN. Management (Proxmox, IPMI) on a separate admin VLAN, VPN/bastion-only.
  • Egress default-deny. The serving and data VMs have no internet access except during scheduled update windows (package mirrors, model downloads through a proxy allowlist). Models run effectively air-gapped — this is both a security control and the confidentiality story for tender/defense customers.
  • Internal TLS everywhere via a private CA (step-ca or smallstep), certs automated.

Identity & access

Role (Entra group)Open WebUIRestricted RAG collectionsn8nGrafana/LangfuseProxmox/SSH
All staffchat, default collections
Department user (per dept)+ dept collectionown dept only
Tenders/finance/HR (restricted)+ restricted collectionown restricted set
Power user / flow builder+ workspacesper grantedit own flowsview
Platform adminadminall (audited)adminadminyes (MFA, logged)
TPL engineerscoped adminper engagement scopeadminadminbastion, time-boxed
  • Per-document ACLs in RAG: enforced as Qdrant payload filters at query time from the user’s live group memberships — see rag-and-data-pipeline.md. Access reviews monthly (joiners/leavers) and quarterly (full matrix).

AI-specific

  • Prompt injection: any agent that touches external content (inbound email, supplier docs, web) treats that content as untrusted data: it is delimited and never granted tool authority; tool-using agents run with least-privilege credentials; irreversible actions always sit behind human approval (../08-ai-portfolio/ai-agent-registry.md). Injection test cases go into the M4 eval set.
  • System prompts and tool schemas are code-reviewed in Git like any other artifact.

GDPR

  • DPIA recommended before go-live (large-scale processing of employee + customer data with novel tech) — TPL drafts, Prime Products DPO/counsel signs.
  • Processing-register entries for: RAG index, meeting transcription, email triage, ERP semantic layer. Retention and erasure mechanics per rag-and-data-pipeline.md. Chat logs retained 12 months (troubleshooting + audit), then purged; users are told this in the UI.

Monitoring & logging

LayerToolingWhat we watch
InfraPrometheus + node_exporter, DCGM exporter (GPU util, VRAM, temp, ECC), Proxmox metricsGPU saturation/thermals, disk fill, backup job status
ServicesGrafana dashboards per stack; blackbox probes on user-facing endpointsAvailability, latency P50/P95
LogsLoki + promtail from all containersErrors, auth failures, ingestion failures
LLMLiteLLM request logs → Langfuse (user, model, latency, tokens in/out, cost-equivalent, trace) + Open WebUI analyticsUsage by team/use case (feeds ../02-program/kpi-framework.md), slow prompts, error rates, quota burn
AlertingAlertmanager → Teams channel (IT-ops)Paging tiers: P1 platform down, P2 degraded, P3 job failed

Baseline alerts: GPU > 90 °C or ECC errors, VRAM sustained > 95%, request P95 > 30 s, backup missed, ingestion failed twice, disk > 80%, cert expiry < 14 d, auth-failure spikes.

Backup & DR

What is backed up (3-2-1 mechanics in hardware-and-sizing.md): PostgreSQL (nightly dump + WAL archiving), Qdrant snapshots (nightly), Open WebUI + n8n + LiteLLM + Grafana configs (in Git + nightly VM backup), model-registry manifest (Git), full VM images via Proxmox Backup Server (nightly, immutable offsite copy). The Obsidian vault’s DR is its git remotes.

AssetRPORTORestore path
PostgreSQL≤ 1 h≤ 4 hWAL point-in-time restore
Qdrant≤ 24 h (re-derivable from sources)≤ 8 hSnapshot restore or full re-ingest
Chat/RAG core (user-visible service)≤ 24 h≤ 4 hVM restore + alias flip
Full platform≤ 24 h≤ 1 business dayPBS restore, runbook-driven

Restore drills quarterly: restore the full stack from backup into staging, run the smoke suite + 10 eval questions, log the drill in the vault. An untested backup is a rumor.

Runbooks (to be created)

As the platform lands, each procedure gets a runbook in ../../07-Runbooks/ (TPL runbook format): daily checks; model update & rollback; user onboarding/offboarding; ingestion-source addition; incident response (P1 comms template incl. who tells management); restore drill; update-window procedure. Runbook creation is part of each build milestone’s definition of done — tracked in ../07-mission-control/mission-control-blueprint.md.

Update & patching cadence

WhatCadencePath
OS security patchesWeekly (unattended-upgrades on non-serving VMs; serving VM in monthly window)dev → staging → prod
Container images (apps)Monthly, pinned tags bumped via Git PRstaging soak ≥ 1 week
vLLM / CUDA / NVIDIA driverQuarterly maintenance window; driver+CUDA+vLLM as one tested bundlestaging eval-set run first
ModelsVia lifecycle gate (llm-serving-stack.md)staging eval → alias flip
Firmware (BIOS/BMC/GPU)Quarterly window, vendor-advised onlywith restore point

No unpinned latest tags anywhere in prod. Every change is a Git commit; every window ends with the smoke suite green.