Background
Error responses leak implementation detail.
Problem
Multiple handlers return raw Error.message to clients (K8s discovery, OPA/policy, jobs, tenants, SBOM) — exposing cluster URLs, kube errors, driver strings.
Proposed solution
- Shared
toPublicError(err) mapping to stable codes + generic messages
- Log full error server-side only
- Audit handlers for
err.message passthrough
Acceptance criteria
Priority
P1 / Medium
Complexity
Small
Evidence
server/handlers/k8sDiscoveryHandlers.ts, policyHandlers.ts, jobHandlers.ts, tenantHandlers.ts, sbomHandlers.ts
Background
Error responses leak implementation detail.
Problem
Multiple handlers return raw
Error.messageto clients (K8s discovery, OPA/policy, jobs, tenants, SBOM) — exposing cluster URLs, kube errors, driver strings.Proposed solution
toPublicError(err)mapping to stable codes + generic messageserr.messagepassthroughAcceptance criteria
Priority
P1 / Medium
Complexity
Small
Evidence
server/handlers/k8sDiscoveryHandlers.ts,policyHandlers.ts,jobHandlers.ts,tenantHandlers.ts,sbomHandlers.ts