📌 Active planning has moved (2026-05-12)
This file is the historical record of major-version deliverables (v4 → v8 planned). Day-to-day planning, prioritization, and contributor-facing issue intake now live in the community-feedback-driven Now / Next / Later docs:
docs/community-feedback/2026-05-12/AiSOC_ROADMAP.md— strategic narrativedocs/community-feedback/2026-05-12/AiSOC_Community_Feedback_Synthesis.md— themes (F001–Fxxx)docs/community-feedback/2026-05-12/AiSOC_Proposed_Issues.md— 23 implementation ticketsItems in v7.1+ sections below that overlap with the new docs are flagged inline with
→ Now/Next/Later: [ID]. Where the new docs supersede a deferred item entirely, the entry here is left intact for traceability but reasoned about against the newer plan.
This document captures the planned direction for AiSOC across major versions. All v4 deliverables and items deferred beyond v4 are listed here.
A proof-first, security-first program to make every README claim gate-backed, close four existential agent-security holes, and build the ingest-time-graph + multi-model-router moat. Executed one phase per PR with a mandatory CI gate each. Committed status is the checklist below (per-session working detail is tracked locally in docs/audit/PROGRESS.md, which is gitignored per repo convention). Baseline audit: docs/audit/REALITY_REPORT.md and docs/audit/CLAIM_TO_GATE_MATRIX.md.
- Phase 0 — Reality audit (claim-to-gate matrix, ranked overclaims/untested-paths/circular-gates)
- Phase 1 — Four existential holes (prompt injection, memory poisoning, cross-store tenant isolation, data-exfiltration/redaction, cost DoS, vault)
- Phase 2 — Supply chain + truth (security.yml scanners, claim-gate ratchet, hard-fail insecure prod defaults, TRADEMARK, verifying-releases, license fix; continuation landed: per-image cosign signatures + CycloneDX SBOM attestations + SLSA provenance, all actions SHA-pinned)
- Phase 3 — Integration / E2E / chaos / DR (real-container spine test, backup-restore, chaos, upgrade, cross-store isolation live-replay; heavy-demo-stack Playwright E2E + demo-timing gate tracked as non-blocking 3.5+)
- Phase 4 — Real evals + detection content truth table (third-party-labeled corpus, hallucination/calibration/abstention, model matrix) — 4a/4b landed (de-circularised DAC candidate-rule gate + honest executable-vs-imported truth table); 4c+ live-agent eval / calibration / model matrix pending
- Phase 5 — Data spine correctness (versioned event-schema registry + dead-letter queue + source-event lineage in the fusion consumer; idempotency via AlertSink dedup + event-time watermarking; backfill/replay-from-offset tracked as 5b)
- Phase 6 — Performance + cost (fusion hot-path throughput harness with a generous regression-floor gate; deterministic storage $/TB cost model + drift gate; storage-consolidation ADR-0005)
- Phase 7 — Ingest-time graph + multi-model router — graph-at-ingest already shipped (v8 T1.1,
services/ingest/internal/graph/); 7a landed: unified deterministic→ML→LLM router with tier attribution + theAISOC_DETERMINISTICdeterminism contract (services/agents/app/routing/model_router.py, gated). 7b+ (posture collection, effective-permissions snapshot loader, bi-temporal valid_from/valid_to, fusion-time ContextBundle) tracked indocs/audit/PROGRESS.md - Phase 8 — LLMOps (version+hash-pinned prompt registry with a CI drift gate; model pins + deterministic-terminated provider-fallback chains; content-addressed response cache; fail-closed structured-output validation)
- Phase 9 — Autonomy safety (dry-run-by-default policy, honest bounded rollback-capability contract replacing silent
return True, mandatory post-action verification for unattended containment, break-glass HIGH-blast flag, autonomy scorecard — all gated at the policy layer; live-router wiring + durable approval-SLA timer table tracked as 9b) - Phase 10 — Connector + content quality (runtime-contract conformance suite across all 69 connectors — gates the "live Test connection" capability that had NO gate + secret-field-marking; published
conformance-matrix.mdwith a drift gate; detection lifecycle already gated by Phase 4a DAC + Phase 4b truth table. Live-vendor sandbox smoke + rate-limit/checkpoint durability tracked as 10b) - Phase 11 — API / SDK / release engineering (pure-Python OpenAPI breaking-change detector
scripts/openapi_diff.py+openapi-breaking.ymlgate: PR spec vs base fails on removed endpoint/schema/field, type change, tightened request, or dropped enum value — closes the OpenAPI NO GATE row; per-language SDK generated-client contract-drift tracked as 11b) - Phase 12 — Observability + governance (per-service SLOs in
docs/operations/slos.yamlwith a coverage gate;docs/operations/observability.mddocumenting the four golden signals + single OTel trace across the spine;GOVERNANCE.md+MAINTAINERS.md+ DCO sign-off inCONTRIBUTING.md; governance-completeness gate —governance.yml)
Program status: all 13 hardening phases (0–12) are landed. Building on them, the Fully-Operational AI-SOC roadmap (Phases A1–E1) is now complete — it wired the three end-to-end paths the reality audit found unwired and pushed the platform to competitive parity + beyond:
- Phase A (SIEM foundation): A1 ClickHouse lake writer · A2 live detection-evaluation worker (825 executable rules on the stream) · A3 default-on one-command deploy (connectors + graph on) · A4 UEBA behavioral-model fusion.
- Phase B (SOAR foundation): B1 auto-triage worker (copilot default) · B2 credential resolver +
decide()-governed live dispatch + 10 vendor adapters · B3 real rollback + post-action verification + durable approval-SLA timers · B4 Business Context Rules in the hot path. - Phase C (parity differentiators): C1 Advanced Data Explorer · C2 Effective-Permissions live posture loader · C3 autopilot/copilot posture scorecard · C4 fuse-time attack-chain auto-grouping.
- Phase D (breadth): D1 eight connectors (QRadar/Exabeam/Securonix/Devo/Netskope/Windows-Sysmon/Zeek-Suricata/syslog-CEF) · D2 AI/LLM-usage audit connector +
llm-*detections + hot/cold lake tiering · D3 live-vendor mock-server smoke. - Phase E (prove it): E1 CI-gated benchmark scoreboard tied to a deterministic live-agent MITRE-accuracy run.
The claim-to-gate matrix stands at 33 GATED / 7 PARTIAL / 0 NO GATE — every product claim is now backed by a failing test and the ratchet (MAX_NO_GATE=0) forbids any regression. The 7 remaining PARTIAL rows are honest, named deferrals to phases outside the A–E scope. Per-session working detail is tracked locally in docs/audit/PROGRESS.md.
- Orchestrator (LangGraph state machine) in
services/agents/app/investigator/ - ReconAgent, ForensicAgent, ResponderAgent (dry-run with analyst approval)
- ReportWriterAgent — streaming markdown + branded PDF
- Investigation & Report tabs in Case Workspace UI
- Eval harness: 20 synthetic incidents, ≥80% MITRE-tactic accuracy CI gate
- React Flow playbook editor with full node palette (Trigger, Condition, Action, Loop, Parallel, Human Approval, Wait, Notify)
- DAG playbook engine with retries, idempotency, blast-radius checks
-
playbook.schema.json(JSON Schema 2020-12) for portability and CI linting - Detection-as-Code:
detections/directory with Sigma + AiSOC YAML, GitHub Action deploy-on-merge - 12 starter playbook templates
- Community playbook marketplace (static index v4.0; publishing flow v4.1)
- Plugin SDK in Python (
packages/plugin-sdk-py/) and Go (packages/plugin-sdk-go/) -
plugin.yamlmanifest spec (connector | enricher | responder | detection | widget) - Plugin loader with OCI image support (
oras pull) in api/actions/enrichment/connectors - Public REST API v1 at
/api/v1, OpenAPI 3.1 atdocs/openapi.yaml - GraphQL gateway (Strawberry) proxying REST
- Scoped API tokens (
cases:read,playbooks:run,plugins:install) - Auto-generated client SDKs:
@aisoc/sdk(TypeScript),aisoc-sdk(Python/PyPI),github.com/beenuar/aisoc/sdk-go - Docusaurus docs site at
docs/site/, deployed to GitHub Pages - Demo Lab:
pnpm aisoc:labone-command full-stack + Conti-style ransomware scenario - 4 reference plugins: Okta connector, YARA enricher, Slack quarantine responder, MTTR sparkline widget
- OpenTelemetry traces: agents → actions → api → realtime (Jaeger/Tempo)
- API token scopes (foundation for SSO)
-
docs/upgrade/MIGRATION.mdfor v3 → v4 upgrade path
- Plugin publishing flow (signed community submissions, Ed25519 verification, review endpoints)
- Plugin marketplace UI v2 (ratings, install counts, verified badges, category filter, sort)
- Detection catalog: browse and install community Sigma rules via UI
- Playbook community submissions and curation
-
aisoc-cli— developer CLI for scaffold, validate, publish plugins and detections
- SAML 2.0 + OIDC authentication (Okta, Azure AD, Google Workspace)
- Multi-tenant row-level security (Postgres RLS + SQLAlchemy middleware)
- Granular RBAC with data-class and tenant scopes (
require_permission()dependency) - Full analyst audit log (append-only
audit_logtable + middleware + UI)
- SOC 2 Type II evidence collection dashboard + PDF export
- ISO 27001 control mapping
- NIST CSF / NIST 800-53 control coverage heatmap
- PCI-DSS, HIPAA, DORA module
- MTTD / MTTR / MTTC SLA tracking per tenant
- HA Helm chart with PodDisruptionBudgets and HorizontalPodAutoscalers
- Backup / restore CLI (
scripts/backup.sh,scripts/restore.sh) - Multi-region active-active topology guide (
docs/operations/multi-region.md) - Operator runbook generation from OTel traces (
scripts/generate_runbook.py)
- Per-user, per-host, per-service behavioral baselines (Welford's algorithm)
- Anomaly risk scores feeding the fusion engine (z-score composite scoring)
- Peer-group analysis and deviation scoring
- Kafka integration: consumes
security.events, publishesueba.anomalies
- Token generation (AWS keys, URLs, DNS, file, DB credentials, custom types)
- First-touch alerting via HMAC-SHA256-signed webhooks
- Honeytoken lifecycle management UI (create, revoke, delete, trigger history)
- Atomic Red Team YAML loader and test sync API
- Caldera adversary emulation REST client integration
- ATT&CK coverage heatmap by tactic/technique with detection tracking
- Tabletop incident simulator with findings management UI
- MSSP / parent-tenant console — onboard child tenants, delegate cross-tenant actions, view rollup metrics
- Asset inventory + vuln-to-alert correlation — asset CRUD, vulnerability findings, blast-radius context
- Insider threat module — user risk profiles, behavioural indicators, peer-group deviation scoring
- L0–L4 auto-remediation maturity tiers — per-tenant autonomy gate with audit log and per-action whitelist
- Internal threat intelligence — IOC harvesting, threat actor profiles, STIX/TAXII feed subscriptions
- Cloud security posture management (CSPM/KSPM) — posture findings, drift tracking, suppress/resolve workflows
- Identity-centric correlation graph — identity node/edge graph, alert-to-identity linking, attack-path queries
- Auto-generated board reports — report templates, scheduled PDF/HTML artefacts, email/webhook delivery
- Dashboard metrics API — aggregated KPI endpoint powering frontend dashboard tiles
- Tailscale connector — audit log and policy-change events with cursor-based pagination
- AWS GuardDuty credential-exfiltration Sigma detection rule
A review of G2, Gartner Peer Insights, and customer feedback on AI SOC / SIEM / SOAR platforms drove this release.
- Master autonomous triage agent (
auto_triage_agent.py) — classifies each alert astrue_positive/false_positive/benignwith confidence - Phishing triage sub-agent (
phishing_agent.py) - Identity reasoning sub-agent (
identity_agent.py) - Cloud reasoning sub-agent (
cloud_agent.py) - Insider-threat reasoning sub-agent (
insider_threat_agent.py) - All five exposed via
POST /api/v1/agents/triage
-
/investigate— conversational, multi-turn investigation copilot -
/coverage-advisor— MITRE ATT&CK gap ranking by adversary prevalence -
/shifts— analyst shift-handoff dashboard -
/easm— External Attack Surface Management -
/mssp— MSSP executive dashboard -
/noise-tuning— per-rule false-positive rate and one-click tuning -
/analytics/team— analyst leaderboard, MTTR per analyst, dispositions accuracy
-
shifts.py— shift-handoff CRUD -
stix_taxii.py— STIX 2.1 / TAXII 2.1 publishing -
compliance.py— automated compliance evidence (SOC 2, ISO 27001, NIST CSF, PCI-DSS, HIPAA, DORA) -
deployment.py— deployment / air-gap toggles
- SentinelOne (
sentinelone.py) - Cortex XDR (
cortex_xdr.py) - Wiz (
wiz.py) - Snyk (
snyk.py) - Zscaler (
zscaler.py) - Proofpoint (
proofpoint.py) - ServiceNow (
servicenow.py) - Jira (
jira.py) - 1Password (
1password.py) - Duo Security (
duo_security.py)
- AI-generated incident reports — one-click "Export Report" generates PDF from the Investigation Ledger
- Air-gap deployment configuration — per-tenant toggles disable external feeds
All items below were shipped as part of the v1.0 buyer-value plan. Implemented and reviewed by Beenu Arora beenu@cyble.com.
- WCAG AA full accessibility pass (axe-core CI gate —
apps/web/src/test/a11y.test.tsx) - Light theme persisted in user profile (
ThemeProvider.tsx+PATCH /api/v1/users/me/preferences) - Saved views and custom drag-drop dashboard widgets per analyst (
saved_views.py+DashboardView.tsx) - AI-generated weekly executive digest — auto-emailed PDF (
digest_pdf.py+weekly_digest_task.py) - Slack native bot for alert triage without opening the UI (
services/slack-bot/— 61 tests) - Threat actor attribution engine v0 (
services/threatintel/app/actors/attribution.py) - Air-gap / Ollama local-LLM mode (
infra/compose/docker-compose.airgap.yml+apps/docs/docs/operations/air-gapped.md) - BYOK per-tenant LLM credentials UI + API (
llm_credentials.py+SettingsView.tsx) - MSSP console — per-child-tenant KPI aggregation, SLA posture, parent_tenant_id hierarchy
- Team analytics view — analyst MTTR, leaderboard, shift workload (
TeamAnalyticsView.tsx) - Case auto-summary + PDF export (
case_summary.py+case_summary_html.py) - Investigation timeline (replayable) (
InvestigationTimeline.tsx) - Playbook gallery with 12 curated packs + GitHub PR integration for detection proposals
- Mobile responder console (React Native) — triage and acknowledge from phone (deferred to v8.0)
- Plugin publishing marketplace v3 (commercial plugins, revenue sharing) (deferred to v8.0)
Six-PR feature wave that closes #44 ("osctrl connector for fleet-wide osquery telemetry") and significantly extends osquery coverage end to end. All six PRs were implemented sequentially as part of the v7.0 release window and then patched through 7.0.1 → 7.0.3.
- PR1 — osctrl + FleetDM connectors (
services/connectors/app/connectors/osctrl.py,fleetdm.py). Schema-driven setup, liveTest connectionround-trip, secrets encrypted viaCredentialVault, polling on per-instance schedule, plus marketplace manifests atplugins/osctrl/plugin.yamlandplugins/fleetdm/plugin.yaml. - PR2 — Native osquery detection schema migration — 16 osquery rules
(
detections/endpoint/osquery-*.yaml, IDsdet-endpoint-281..296) migrated from_quarantine/to the native schema, with positive/negative test fixtures (detections/fixtures/osquery_*.json) gated by the Detection Validation workflow. - PR3 — Live-query playbook step (
services/actions/app/clients/osctrl_client.py,fleetdm_client.py,osquery_allowlist.py,services/agents/app/playbook/steps/osquery_live_query.py). Allowlisted distributed queries pushed to single hosts or fleet-wide via osctrl/FleetDM with HMAC-signed ChatOps approval. - PR4 —
aisoc-osquery-tlsFastAPI service +aisoc-directagent connector (services/osquery-tls/,services/connectors/app/connectors/aisoc_direct.py). First-party self-hosted osquery TLS plugin, FleetDM-compatible config/log endpoints, direct-from-agent ingest path that bypasses third-party SaaS. - PR5 — Osquery packs + FIM endpoint + FIM dashboard
(
services/osquery-tls/app/api/v1/endpoints/fim.py,apps/web/src/components/dashboard/FimDashboard.tsx). Bundled IR / OSquery-ATT&CK / FIM packs; ingestsfile_eventsand synthesises alerts on writes to/etc/passwd,/etc/shadow, sshd configs, sudoers, Windows registry hives. FIM-specific detection IDsdet-endpoint-297..300. - PR6 — AiSOC osquery extensions (
services/osquery-extensions/tables/*.go). 5 custom Go-based virtual tables:aisoc_browser_extensions,aisoc_kernel_modules,aisoc_attck_persistence,aisoc_pending_actions,aisoc_alert_cache— ship richer endpoint visibility plus a bidirectional response channel.
- 42 CodeQL code-scanning alerts cleared (
py/unused-global-variable,py/cyclic-import,py/empty-except,py/log-injection,py/clear-text-logging-sensitive-data,py/incomplete-url-substring-sanitization,py/stack-trace-exposure,py/call/wrong-arguments,py/unused-import,js/unused-local-variable). -
apps/web/next.config.js— Removed deprecatedeslint.ignoreDuringBuildskey Next.js 16 no longer accepts; addedturbopack.rootfor workspace package resolution. -
apps/web/src/app/layout.tsx— AddedsuppressHydrationWarningto<html>so the render-blockingthemeBootstrapScriptcan writedata-theme/data-theme-preference/style.colorSchemewithout React reporting an attribute mismatch.
-
apps/web/package.jsonbumped to7.0.2; sidebar showsv7.0.2dynamically. -
apps/web/src/components/landing/Footer.tsx— Replaced hard-codedv6.1.0with a dynamic import ofpackage.json. -
README.md— Addedosquery-tls(port 8090) andosquery-extensionsto the services / Swagger / directory-tree / dev-surface tables.
-
apps/web/src/components/layout/AppShell.tsx— Wrapped<DemoBanner />in a new<ClientOnly>boundary so the banner (which readsNEXT_PUBLIC_DEMO_MODE) is never server-rendered. Eliminates React hydration error #418 caused by stale env-var inlining producing a structural tree mismatch (server saw<button>fromSidebar, client expected<div>fromDemoBanner). -
apps/web/src/app/layout.tsx— Addedpreload: falseto theJetBrains_Mononext/font/googleconfig; eliminates "preloaded but not used within a few seconds" Chrome warnings without any visible FOUT.
Six new connectors, three documentation backfills, and a new ingest template closing the biggest cloud-security gap in the connector catalogue. Every Tier-1 cloud workload protection platform now has a first-class AiSOC integration, AWS gets three native data sources, and Kubernetes audit logs land via a dual-mode connector that works on both managed and air-gapped clusters.
-
apps/docs/docs/connectors/wiz.md— Service-account creation,read:issues+read:vulnerabilitiesscopes, token rotation, normalised severity map, worked WizIssue→ inbox event example. -
apps/docs/docs/connectors/aws-security-hub.md— IAM-role vs. static-key auth,securityhub:GetFindingspermission, and theBLOCK_IP/ALLOW_IPcapability documented end-to-end againstservices/actions/app/clients/aws_security_groups.py. -
apps/docs/docs/connectors/lacework.md— API-token flow,api_urlregional variants, alert → event severity collapse. -
apps/docs/sidebars.ts— All three backfilled pages + the four new Track B–D pages registered under theConnectorscategory.
-
PrismaCloudConnector(services/connectors/app/connectors/prisma_cloud.py) — Full CSPM/CWPP coverage. JWT auth viaPOST /login, paginatedGET /alert/v1/alertwith windowedtime.from/time.to, severity collapse,compute_urloverride for self-hosted Compute Edition. -
OrcaConnector(services/connectors/app/connectors/orca.py) —https://api.orcasecurity.io/api/alertswithapi_tokenauth, severity collapse with Orca-specifichazardous → highrule. - Manifests at
plugins/prisma-cloud/plugin.yamlandplugins/orca/plugin.yaml, docs atapps/docs/docs/connectors/{prisma-cloud,orca}.md, full test suites underservices/connectors/tests/test_{prisma_cloud,orca}.py.
-
AWSGuardDutyConnector(services/connectors/app/connectors/aws_guardduty.py) — boto3-based, supports IAM-role + static-key auth via_resolve_session, iterates detectors withlist_findings+get_findings. Collapses GuardDuty's continuous numeric severity scale (0.1–10.0) into AiSOC's four-tierinfo|low|medium|highladder. -
AWSCloudTrailConnector(services/connectors/app/connectors/aws_cloudtrail.py) —cloudtrail.lookup_eventswith a curated 21-event allow-list covering identity abuse, persistence, data-plane abuse, network exposure, and trail tampering. Allow-list overridable via theevent_namesfield. -
AWSVPCFlowLogsConnector(services/connectors/app/connectors/aws_vpc_flow.py) —cloudwatch_logs.filter_log_events, v2 + v5 format parsing, RFC-5735-aware public-IP heuristic, default?REJECTfilter pattern, severity heuristic (public REJECT → medium,internal REJECT → low,ACCEPT → info). - Manifests + docs + tests for all three connectors. 27 unit tests for
AWSVPCFlowLogsConnectorcovering v2/v5 parsing and public-IP edge cases.
-
KubernetesAuditConnector(services/connectors/app/connectors/kubernetes_audit.py) ships with two delivery modes selected via themodeconfig field: -webhook(recommended) — apiserver pushes audit events to AiSOC's new dedicatedPOST /v1/ingest/k8s-audit/{tenant_id}route, authenticated with a shared secret in theX-AiSOC-K8s-Tokenheader (constant-time compared so a partial-prefix attacker can't shave bytes off via timing). Legacy/v1/inbox/{token}path with thek8s-audittemplate is kept as a fallback for control planes that cannot inject custom headers into the audit-webhook kubeconfig. -file_tail— AiSOC's connector pod tails a localaudit.logusing a byte-position cursor (atomically written viaos.replaceto a.aisoc-cursorsidecar) with rotation/truncation detection and a hard per-poll byte cap so a backlog can't blow up a single poll cycle. -
services/ingest/internal/handler/k8s_audit.go— Dedicated Go handler for the webhook route. Caps body size viaK8S_AUDIT_MAX_BODY_BYTES(default 16 MiB), rejects oversized batches with413so the apiserver shrinks--audit-webhook-batch-max-sizeand retries, and publishes eachEventList.items[]entry through the existing normalizer + Kafka publisher usingconnector_type: kubernetes_audit. The route is disabled (returns503) until an operator setsK8S_AUDIT_SHARED_SECRET, so a fresh install never accidentally accepts unauthenticated audit traffic. -
kubernetes_auditnormalizer profile (services/ingest/internal/normalizer/normalizer.go) — MapsauditIDtoexternal_id,verbtoactivity_name,user.usernametoactor.user.name,objectRef.{namespace,resource,name}to a compositetarget.resource.name, and translates the connector's string severity (critical|high|medium|low|info) into OCSF integer severities (5/4/3/2/1). -
k8s-auditinbox template (services/ingest/internal/normalizer/templates/k8s-audit.yaml) — maps apiserverEventpayloads onto AiSOC's normalised event shape for the legacy inbox-token path; severity is derived in the connector's_classify_severityheuristic so the same logic applies to both delivery modes. - Severity heuristic —
exec/attach/portforwardon Pod andcreateonClusterRoleBinding→high; writes toSecret/ConfigMap/ClusterRole/Role→medium; successful reads on sensitive resources →low; everything else →info. -
plugins/kubernetes-audit/plugin.yaml— 4-field config schema (mode,cluster_name,inbox_token,audit_log_path,cursor_path),category: cloud, capabilitiespull_audit+pull_alerts. -
apps/docs/docs/connectors/kubernetes-audit.md— SampleAuditPolicy+ sampleAuditSinkfor both managed and self-hosted clusters.
-
pnpm marketplace:sync—marketplace/index.json+apps/web/public/marketplace/index.jsonrebuilt; plugin count rose43 → 49. Total:total=7104 detections=6993 playbooks=62 plugins=49 mitre_techniques=493. -
apps/web/package.jsonbumped to7.1.0; sidebar and landing-page footer surface the new version dynamically.
Eight-commit feature wave broadening connector reach (Wazuh + auditd), making the response-action layer vendor-pluggable, replacing the NL→query template fallback with a deterministic translator, closing the threat-intel write loop to MISP, adding a blameless case post-mortem surface, and standing up a GCP Terraform skeleton equivalent to the existing AWS module.
-
WazuhConnector(services/connectors/app/connectors/wazuh.py) — polls the Wazuh Indexerwazuh-alerts-*indices over HTTPX with basic-auth, paginates time-windowed queries, retries on 5xx with capped backoff, and normalises severity into the four-tier ladder. Marketplace manifest + per-connector docs + 24 unit tests. -
AuditdConnector(services/connectors/app/connectors/auditd.py) — file-tail of/var/log/audit/audit.logwith multi-record reassembly by msg id, hexproctitle/argvdecode, and(inode, byte_offset)cursor for log rotation. Ships withprofiles/auditd/aisoc.rulesopinionated auditctl ruleset whose-kkeys map 1:1 to detection rules; 4 new detection rules pivot offauditd_keyfor sudoers / SSH / kernel-module / systemd tampering. 444-test full connectors suite green (excludingtest_scheduler.pywhich needs theapschedulerdev dep). - Connector registry now declares 78 first-party connectors;
pnpm marketplace:syncrebuiltmarketplace/index.json+apps/web/public/marketplace/index.json.
-
aisoc plugin new <NAME> --type {enricher|connector|responder|detection|widget}replaces the old hard-codedplugin scaffoldwith per-type templates shipped inside theaisoc-cliwheel viaimportlib.resources.string.Templatesubstitution for${slug},${name},${author}; tests parameterised across all five plugin types asserting manifest validation and zero placeholder leakage.aisoc plugin scaffoldretained as alias.
- Generic
(vendor_id, capability)dispatcher (services/actions/app/live_actions/) — pluggableLiveActionExecutorABC + module-level registry + dispatcher with structured logging and error translation. Unknown pairs returnLiveActionResult(status=FAILED, error="executor_not_found")so the agent degrades gracefully. Adapters wrap CrowdStrike, Okta, AWS SG, Splunk so they show up asbuiltindescriptors. -
/api/v1/live-actions—discover,dispatch,dry-run. Honoursdry_run+ missing-credentials →SIMULATED, neverPARTIAL. - 45 new tests across models / registry / dispatcher / router / builtins (full actions suite: 99 passed).
-
apps/docs/docs/concepts/live-actions.md+ sidebar entry.
- Deterministic NL→ES|QL translator
(
services/agents/app/nl_query/) — IR + grammar validator + renderers for ES|QL / KQL / SPL. Replaces every# TODO: translatecomment inservices/api/app/api/v1/endpoints/nl_query.py. Optionalenhance_with_llm(gpt-4o-mini) path with deterministic fallback so the air-gapped story keeps working. - 50-pair NL→ES|QL eval set
(
services/agents/tests/eval_data/nl_query_eval.json) +test_nl_query_eval.pyharness — 100% syntactic validity, 100% semantic match (50/50 perfect) against gold intents.
- Blameless case post-mortem —
GET /api/v1/cases/{case_id}/postmortem?format=json|html. Pure builder + async DB orchestrator (services/api/app/services/case_postmortem.py) reusing thecase_summaryfetchers; HTML renderer with inline CSS, defensive escaping, no external assets. Tests assert XSS escaping, deterministic ordering, and explicit blamelessness (analyst handles must not surface in the narrative; assignee header line is explicitly allow-listed). - STIX → MISP push (Stage 3 #20) — closes the threat-intel write
loop.
POST /stix/indicatorsandPOST /stix/bundlesaccept?push_to_misp=trueand return a structuredmispblock on the same response.GET /stix/misp/healthandPOST /stix/misp/dry-runadded for operator verification + air-gap audits. Pure mappers coveripv4/ipv6,domain-name,url,email-addr,file:hashes(MD5/SHA-1/SHA-256/SHA-512) andfile:name. Push failures are non-fatal: AiSOC store remains source of truth, MISP is best-effort. Reuses the existingenforce_airgap_for_urlchokepoint. 76 new tests.
-
infra/terraform/gcp/— Cloud Run forapi/web/ingest, Cloud SQL Postgres 16 + Memorystore Redis 7.2 on private IPs through a dedicated VPC + Serverless VPC Access connector, Secret Manager for every credential, Artifact Registry for images, one service account per Cloud Run service with least-privilegesecretAccessorbindings. Skeleton points at the public GHCR demo images so a freshapplyworks zero-config.apps/docs/docs/deployment/gcp.md+ sidebar slot betweenkubernetesandenv-vars.
-
apps/docs/docs/operations/notifications.md— complete inventory of every notification surface in AiSOC (Web Push, Slack/Teams ChatOps, playbooknotify_slack,create_ticketsimulation, honeytoken first-touch webhooks, connector freshness alerts, on-call gating, suppression / quiet-hours, per-mechanism testing recipe). -
apps/docs/docs/plugins/lifecycle.md— operator's view of plugin states, trust modes (strict | warn | disabled), filesystem + OCI discovery, the full operator REST API with required permissions, configuration reference, upgrade/rollback semantics, and the structlog events worth alerting on. -
apps/docs/docs/integrations/misp-push.md— operator doc with config, endpoints, the STIX→MISP type table, failure modes, and the dry-run-as-air-gap-proof workflow. -
apps/docs/docs/operations/case-reports.md— covers both/summaryand/postmortemwith audience, output, automation, and runbook archive guidance. Cases summary breadcrumb now points operators at both endpoints. -
apps/docs/docs/connectors/{wazuh,auditd}.md+ per-connector sidebar entries. -
apps/docs/docs/plugins/cli.md— documents the newaisoc plugin new --typesurface. -
apps/docs/sidebars.ts— every new page registered in the correct category (Connectors, Plugin SDK, Operations, Integrations, Concepts, Deployment).
-
ruff check services/andruff format --check services/clean across the wholeservices/tree (CI scope). - Targeted lint fixes committed:
E741(ambiguousl),F402(loop var shadowingdataclasses.field),E402(post-sys.pathimport),E501long-string refactors incase_postmortem_html.py,test_misp_push.py, andauditd.py.
- Mobile responder console (React Native) — triage and acknowledge from phone
- Plugin publishing marketplace v3 (commercial plugins, revenue sharing)
- MSSP RBAC enforcement on
/api/v1/actors/*endpoints (threat attribution) Automated IOC sharing to community MISP instances via STIX/TAXII push→ shipped in v7.2.0NL→query: "show me failed logins from new ASNs last 24h" → ES|QL / KQL→ shipped in v7.2.0 (deterministic translator + 50-pair eval set)- AI-generated threat intelligence briefings from public feeds
- Embedded red-team scoring (ATT&CK coverage %) as a live dashboard widget
- SLA breach predictor (ML model on historical MTTR data)
- Incident cost estimator (breach impact calculator)
SOC-in-a-box one-click cloud deploy (Terraform module for AWS / GCP)→ GCP module shipped in v7.2.0 (AWS already shipped)Automated retro/blameless post-mortem drafting from case timeline→ shipped in v7.2.0 (ideas backlog item promoted)
- "Explain this alert" button using LLM with enrichment context
- Browser-extension recorder for analyst playbook capture
- Voice-driven incident commander (TTS / STT for hands-free triage)
- Automated retro/blameless post-mortem drafting from case timeline