Commit Graph

19 Commits

Author SHA1 Message Date
rcourtman ddc480ff3c Recalibrate resource sensitivity: ordinary workloads aren't secret
User on a cloud model saw 'redacted by policy' everywhere. Root cause: the
default classification (classifyResourceSensitivity) treated every VM, container,
pod, k8s workload, and docker service as 'Sensitive', which redacts their
hostname/IP/alias/path for cloud models. For Pulse's homelab/SMB audience that
crippled the cloud Assistant — a workload named 'grafana' isn't a secret, and its
private LAN IP isn't either.

Recalibrate: compute workloads classify as 'Internal' (cloud-summary, no
redaction) so cloud models can see their names/IPs. Escalation to
Sensitive/Restricted is by tag (database, backup, customer-data, secret, ...) or
by genuinely sensitive TYPE: storage/data-at-rest (storage, PBS, Ceph,
physical-disk, network-share, network, k8s PV/PVC/StorageClass), configuration
(docker-config, k8s-configmap), and security (k8s RBAC, secrets, PMG). Secrets
and PMG stay Restricted; the tag-based escalation is unchanged.

Tests: new TestRefreshPolicyMetadata_PlainComputeWorkloadsAreInternalNotRedacted
+ TestComputeWorkloadPolicyIsInternalUnlessEscalated lock it in. ~13 AI-subsystem
redaction tests that assumed plain compute = Sensitive updated to tag their
fixtures so they still exercise redaction on a genuinely-sensitive resource (no
assertions weakened). Contract: unified-resources Extension Points documents the
recalibrated classification. internal/ai/... + internal/unifiedresources/... green.
2026-06-08 15:21:51 +01:00
rcourtman dc8208cc00 Enforce data handling in AI context 2026-04-25 20:41:13 +01:00
rcourtman a6c0386069 feat(ai): expose canonical truenas resources to pulse query 2026-03-29 18:25:39 +01:00
rcourtman 06fe58144d Extract AI resource context policy owner 2026-03-23 16:05:38 +00:00
rcourtman 14f004c2ff Broaden governed AI-safe summaries 2026-03-19 17:18:18 +00:00
rcourtman 8927ca7b78 Derive cloud summary routing from scope 2026-03-19 15:10:48 +00:00
rcourtman e536c635bf Remove dead cloud raw signals field 2026-03-19 15:07:31 +00:00
rcourtman 65c39cb8a4 Centralize resource cluster/IP presentation helpers 2026-03-19 06:01:18 +00:00
rcourtman 071da2c189 Centralize canonical resource metadata refresh 2026-03-19 05:33:25 +00:00
rcourtman f12d6b2838 Route resource IP summaries through policy helper 2026-03-19 04:09:26 +00:00
rcourtman aafa76ea01 Centralize resource display naming 2026-03-19 03:20:11 +00:00
rcourtman ab44a5d09b Centralize governed label helpers 2026-03-19 03:17:54 +00:00
rcourtman 1d1c7bf636 Centralize aiSafeSummary policy decisions 2026-03-19 02:37:13 +00:00
rcourtman 401e2c0df4 Move policy count formatting into unified resources 2026-03-19 02:20:30 +00:00
rcourtman dcbfd8c76c Label policy counts canonically 2026-03-19 02:18:49 +00:00
rcourtman b0cbc45864 Canonicalize policy posture ordering 2026-03-19 02:16:26 +00:00
rcourtman 4ea83e39c1 Surface canonical policy governance posture 2026-03-19 00:53:18 +00:00
rcourtman 778a2577b6 feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
rcourtman c6bd8cb74c Improve internal package test coverage 2025-12-29 17:25:21 +00:00