AI Preview
AI Preview failures
Status: PREVIEW (off by default). Not dedicated GA AI. Not autonomous enforcement.
Symptom
- No AI screens or
GET /api/v1/ai/statusshows disabled - Provider connection test fails
- Analysis/explain refused
- Recommendation “approved” but no live rule
- Concern that a provider key appeared in the browser
Community has no AI Preview product path. Do not look for Community AI routes.
Likely verified causes
ai.enabled: false(example default) or license/entitlement missing.- Provider class is not
openai_compatible(only supported provider class). ai.modelempty while enabled (validation requires a model whenai.enabled=true).offline_mode: true(example default): v1 model endpoint validation is loopback-only.allow_private_provider_networksstill false while the endpoint is non-loopback private (high-risk override, default false; requiresoffline_mode=false).- Hosting sources used as analysis input — Hosting is ineligible for automatic/provider AI.
- SSRF / URL policy rejected the endpoint.
- Rate limit (
rate_limit_per_admin_per_minute: 10,max_concurrent_requests: 2in example). - Operator expected approval to apply a rule. Approval records review intent only. There is no apply/enforce/create-rule AI route.
EnforcementAppliedis not a live apply path. ai.require_human_approvalorai.redact.enabledset false — Manager refuses to enable AI (must be true when ai.enabled=true). Same formask_usernames,mask_private_ips,mask_hostnames,ai.audit.enabled.
Do not diagnose via internal AI development endpoints. Those exist in source, default off, and are not customer GA features.
Diagnostic commands/endpoints
Admin auth.
GET /api/v1/ai/status
GET /api/v1/ai/providers
POST /api/v1/ai/providers
POST /api/v1/ai/providers/:id/test-connection
POST /api/v1/ai/security-logs/:id/explain
POST /api/v1/ai/incidents/analyze
GET /api/v1/ai/recommendations
POST /api/v1/ai/recommendations/:id/approve
POST /api/v1/ai/recommendations/:id/reject
POST /api/v1/ai/rules/draftManual analysis: /api/v1/ai/manual-analysis/*.
Do not call internal AI development endpoints, or publicize credential-custody APIs as unauthenticated website material.
Config example (configs/manager.example.yml):
ai:
enabled: false
provider: "openai_compatible"
base_url: "http://127.0.0.1:8000/v1"
require_human_approval: true
offline_mode: true
allow_private_provider_networks: false
redact:
enabled: true
mask_usernames: true
mask_private_ips: true
mask_hostnames: trueProvider keys: Manager-side only (systemd credential / Manager secret source). Browser must not hold the key.
What each result means
Scroll sideways to see the full table. Use the arrow keys when focused.
| Result | Meaning |
|---|---|
| Community / no AI routes | Edition. AI Preview is Enterprise. |
Status disabled / ai.enabled false | Expected until explicitly enabled after operator approval. |
Config fatal ai.require_human_approval must be true | Product-enforced. Cannot run AI without human approval. |
Config fatal ai.redact.enabled must be true (or mask flags) | Product-enforced redaction. Do not disable. |
Config fatal ai.training_export.enabled | Deferred/non-production; runtime rejects it. |
Connection test fail on http://127.0.0.1:8000/v1 with no local server | Offline-mode loopback policy: start a local compatible server or complete owner approval to change policy. |
Connection test fail to a public HTTPS provider while offline_mode: true | Endpoint is not loopback; policy denies it. |
| Explain/analyze refused on Hosting events | Hosting sources excluded from automatic/provider analysis. |
| 429 / rate messages | Example 10 requests/admin/minute, 2 concurrent. |
| Approve 200 but no dataplane change | Expected. Apply a real rule through RULES. |
| Provider key in browser or in a ticket | Incident: stop; keys are Manager-side only. |
License 403 LicenseErrorResponse | Entitlement gate. Do not invent SKU text. |
Safe remediation
- Confirm Enterprise Manager and license features (no public SKU names).
- Keep AI off until provider, data-handling, and retention are approved.
- Use an OpenAI-compatible endpoint. In default offline mode, that is loopback.
- Store the key in Manager-side custody, never YAML, never the browser.
- Keep
require_human_approval: trueand redaction flags true. - Analyze eligible (non-Hosting) events.
- After approval of a recommendation, create/assign a rule on a Virtualization Agent through the ordinary rule path.
- If a provider key was observed in a browser: rotate the provider credential; treat as a security incident.
Do-not-do warnings
- Do not document internal AI development endpoints as customer features.
- Do not claim autonomous blocking or “AI-powered SOC.”
- Do not disable redaction or human approval to “make it work.”
- Do not send Hosting raw or category events to a provider automatically.
- Do not put API keys in example curl argv or frontend storage.
- Do not treat approval as enforcement.
- Do not enable
allow_private_provider_networkswithout an explicit owner review (SSRF/privacy). - Do not document first-class xAI/Claude/Gemini/Azure OpenAI product integrations.
Escalation condition
Escalate when:
- AI is enabled with a loopback compatible server, redaction on, human approval on, eligible events selected, and
test-connectionstill fails without an SSRF/policy reason in Manager logs (redact secrets before sending logs) - a provider key is observed outside Manager-side storage
- anyone requests documentation of internal AI development endpoints as GA — refuse; those endpoints are not customer features
Related documentation
- AI status and scope
- Operator control
- Data path
- Limitations
- Provider keys stay Manager-side. Custody details are provided separately to Enterprise customers.
- API AI Preview
- Log sensitivity
- Enforcement
Edition
ENTERPRISE_ONLY. Community: not applicable.
Status
PREVIEW. Advisory only. Product-enforced: human approval and redaction when enabled. NOT_SUPPORTED: autonomous apply, or treating internal AI development endpoints as customer features.