09 Operations Runbook
Pre-deployment checklist
-
Ensure all required environment variables are set.
-
Run preflight validation:
sh defense_center/scripts/preflight-env.sh defense_center/.env -
Confirm PostgreSQL, Redis, OpenSearch, and InfluxDB endpoints are reachable.
-
If analytics chat threat intel is required, confirm
AnalyticsChatEnrichment:MispBaseUrl,AnalyticsChatEnrichment:MispApiKey, andAnalyticsChatEnrichment:MispEnabled=trueare set. -
Confirm the local playbook file exists at
AnalyticsChatEnrichment:PlaybookPathwhen playbooks are enabled.
Startup expectations
Successful startup should include:
- Configuration validation success log
- Dependency health checks passed log
- Migration success log when auto-migrate is enabled
- If analytics chat is enabled, no startup validation should report missing enrichment configuration placeholders
Analytics chat + MISP smoke checks
- Call
GET /api/analytics/chat/statuswith an authenticated user session. - Verify
enabledistruewhen Ollama-backed chat is configured. - Verify
capabilities.threatIntel,capabilities.historicalEnrichment, andcapabilities.playbooksmatch the intended deployment. - Start a chat from an analytics snapshot that contains source IPs, destination IPs, or CVE-like strings.
- Verify a MISP hit produces a citation with
sourceType = "misp"and an eventurl. - Temporarily make MISP unreachable or disable
MispEnabled, then verify chat still streams with historical/playbook or analytics-only context.
If startup fails
Configuration validation failure
- Fix missing or placeholder environment values.
- Re-run preflight script.
Dependency healthcheck failure
- Verify service credentials and network routing.
- Verify dependency service health independently.
Migration failure
- Verify database connectivity and migration state.
- Check migration retry configuration values.
Analytics chat reports no ThreatIntel capability
- Verify
AnalyticsChatEnrichment:Enabled=true. - Verify
AnalyticsChatEnrichment:MispEnabled=true. - Verify
AnalyticsChatEnrichment:MispBaseUrlis an absolute URL. - Verify
AnalyticsChatEnrichment:MispApiKeyis set and valid. - Remember that threat intel can be unavailable while chat itself remains healthy.
MISP SSL verification errors
- If the MISP instance uses a self-signed or privately issued certificate, either install the issuing CA in the runtime image or set
AnalyticsChatEnrichment:MispVerifySsl=falseonly in trusted environments. - Re-test
GET /api/analytics/chat/statusand a live chat request after changing SSL handling.
Playbook file missing
- Verify
AnalyticsChatEnrichment:PlaybookPathpoints to a file deployed with the backend image. - Check backend logs for playbook load warnings from
PlaybookGuidanceProvider. - Chat should still run without playbooks, but the capability flag will remain false.
CI pipeline summary
Current backend CI includes:
- Sonar scanner stage on main
- Docker image build and push on develop/main
File reference: ravenxcope-backend/.gitlab-ci.yml