# AiSOC Roadmap > **πŸ“Œ 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`](docs/community-feedback/2026-05-12/AiSOC_ROADMAP.md) β€” strategic narrative > - [`docs/community-feedback/2026-05-12/AiSOC_Community_Feedback_Synthesis.md`](docs/community-feedback/2026-05-12/AiSOC_Community_Feedback_Synthesis.md) β€” themes (`F001`–`Fxxx`) > - [`docs/community-feedback/2026-05-12/AiSOC_Proposed_Issues.md`](docs/community-feedback/2026-05-12/AiSOC_Proposed_Issues.md) β€” 23 implementation tickets > > Items 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. ## World-Class Hardening Program (2026-07, in flight) 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 (the six lettered deferrals β€” 3.5+, 5b, 7b+, 9b, 10b, 11b β€” are scoped in [`docs/audit/DEFERRED_SUBPHASES.md`](docs/audit/DEFERRED_SUBPHASES.md). They were previously said to be "tracked in `docs/audit/PROGRESS.md`", which is gitignored and was never committed, so six named commitments had no scope anywhere a contributor could read). Baseline audit: [`docs/audit/REALITY_REPORT.md`](docs/audit/REALITY_REPORT.md) and [`docs/audit/CLAIM_TO_GATE_MATRIX.md`](docs/audit/CLAIM_TO_GATE_MATRIX.md). - [x] Phase 0 β€” Reality audit (claim-to-gate matrix, ranked overclaims/untested-paths/circular-gates) - [x] Phase 1 β€” Four existential holes (prompt injection, memory poisoning, cross-store tenant isolation, data-exfiltration/redaction, cost DoS, vault) - [x] 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) - [x] 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/4c landed**: de-circularised DAC candidate-rule gate; honest executable-vs-imported truth table; hallucination, abstention, calibration and containment metrics in `packages/aisoc-benchmark` with a documented adapter so a third-party agent can be graded on the same corpus; confidence calibration gated in `test_confidence_calibration.py`; and a **model matrix** (`scripts/run_model_matrix.py`) wired into the weekly wet eval, which grades the same corpus across several models by re-invoking the existing evaluator rather than defining a second notion of accuracy. **Remains open on one thing only, and it is not code:** the live-agent numbers need a funded provider key. Without one the matrix reports *not measured* per model rather than emitting zeros, because a zero is a measurement and "we did not run this" is not. - [x] 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) - [x] 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) - [x] 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 + the `AISOC_DETERMINISTIC` determinism 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) scoped in [`docs/audit/DEFERRED_SUBPHASES.md`](docs/audit/DEFERRED_SUBPHASES.md), which records that all five effective-permissions resolvers already ship and that what remains is one thing: no connector answers `__posture_snapshot__` - [x] 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) - [x] 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) - [x] Phase 10 β€” Connector + content quality (runtime-contract conformance suite across all 69 connectors registered when the phase landed; the generated [`conformance-matrix.md`](docs/connectors/conformance-matrix.md) now reads 84 / 84 β€” gates the "live Test connection" capability that had NO gate + secret-field-marking; the matrix is published with a drift gate on it; detection lifecycle already gated by Phase 4a DAC + Phase 4b truth table. Live-vendor sandbox smoke + rate-limit/checkpoint durability tracked as 10b) - [x] Phase 11 β€” API / SDK / release engineering (pure-Python OpenAPI breaking-change detector `scripts/openapi_diff.py` + `openapi-breaking.yml` gate: 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) - [x] Phase 12 β€” Observability + governance (per-service SLOs in `docs/operations/slos.yaml` with a coverage gate; `docs/operations/observability.md` documenting the four golden signals + single OTel trace across the spine; `GOVERNANCE.md` + `MAINTAINERS.md` + DCO sign-off in `CONTRIBUTING.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 (2538 executable rules on the stream) Β· A3 default-on one-command deploy (connectors + graph on) Β· A4 UEBA behavioral-model fusion. - **Phase A (SIEM foundation):** A1 ClickHouse lake writer Β· A2 live detection-evaluation worker (2538 executable rules on the stream) Β· A3 default-on one-command deploy (connectors + graph on) Β· A4 UEBA behavioral-model fusion. - **Phase A (SIEM foundation):** A1 ClickHouse lake writer Β· A2 live detection-evaluation worker (2538 executable rules on the stream) Β· A3 default-on one-command deploy (connectors + graph on) Β· A4 UEBA behavioral-model fusion. - **Phase A (SIEM foundation):** A1 ClickHouse lake writer Β· A2 live detection-evaluation worker (2538 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 **352 rows β€” 347 GATED / 5 PARTIAL / 0 NO GATE**. Five rows are PARTIAL, each naming what closes it: "Cloud-native collection" until a capture recorded from a live Event Hub replaces the fixture synthesised from the Avro specification; "the retention window a tenant chooses is the one the lake honours" until a live ClickHouse test watches a row survive past the old 90-day boundary; "the AI estate is discovered on the endpoint" until a containerised osquery runs the shipped pack end to end; and "a reported phishing message can be purged across its recipients" until a maintainer-supplied Microsoft 365 or Google Workspace tenant lets the documented request shapes be exercised for real; and "every automatic closure of a production alert is checked against the current policy, grant and stop controls" until the live suite that proves it against real Postgres has been observed to pass on `main` rather than only in the pull request that added it. "SSO completes a sign-in" closed the way the programme requires β€” by building the gate it named: `sso-live.yml` stands up a containerised Keycloak and both legs have been observed to pass. Every other product claim is backed by a failing test, none is a named deferral either, and the ratchet (`MAX_NO_GATE=0`) forbids any regression. Every PARTIAL row was closed by building the gate it named, never by relabelling. Count the table rows with `python3 scripts/check_claim_gate_matrix.py` rather than trusting a figure quoted in prose β€” this line has gone stale before. The six lettered deferrals are scoped in [`docs/audit/DEFERRED_SUBPHASES.md`](docs/audit/DEFERRED_SUBPHASES.md). ## v4.0 β€” Shipped ### AI multi-agent investigator - [x] Orchestrator (LangGraph state machine) in `services/agents/app/investigator/` - [x] ReconAgent, ForensicAgent, ResponderAgent (dry-run with analyst approval) - [x] ReportWriterAgent β€” streaming markdown + branded PDF - [x] Investigation & Report tabs in Case Workspace UI - [x] Eval harness: 20 synthetic incidents, β‰₯80% MITRE-tactic accuracy CI gate ### Visual SOAR studio - [x] React Flow playbook editor over nine of the step types the engine implements (enrich, investigate, notify, block_ip, isolate_host, create_ticket, close_case, http, condition). The engine accepts 22 and runs 21; widening the palette to the rest is outstanding. Loop, Parallel, Wait and Human Approval were listed here and exist in neither the palette nor the engine. - [x] Sequential playbook engine with conditions, branching, retries and cycle detection. Not a DAG: there is no `depends_on` and no parallel execution, and there are no idempotency keys. - [x] Step-level risk grading, by dispatch rather than by a schema field. A step naming a response verb is dispatched to the action registry and graded against that verb's capability contract β€” impact, reversibility, approval requirement, verification probe β€” plus the tenant's autonomy tier and the finding's confidence. Per step, so authorising a playbook does not authorise what its steps contain. The old `blast_radius` step field promised this and was declared by a schema the engine could not read; it has been removed rather than left as a promise. - [x] `schemas/playbook.schema.json` (JSON Schema draft-07) for portability and CI linting, held to the engine in both directions by `scripts/check_playbook_schema_parity.py` - [x] Detection-as-Code: `detections/` directory with Sigma + AiSOC YAML, GitHub Action deploy-on-merge - [x] 12 starter playbook templates - [x] Community playbook marketplace (static index v4.0; publishing flow v4.1) ### Plugin platform, public API, SDKs, docs - [x] Plugin SDK in Python (`packages/plugin-sdk-py/`) and Go (`packages/plugin-sdk-go/`) - [x] `plugin.yaml` manifest spec (connector | enricher | responder | detection | widget) - [x] Plugin loader with OCI image support (`oras pull`) in api/actions/enrichment/connectors - [x] Public REST API v1 at `/api/v1`, OpenAPI 3.1 at `docs/openapi.yaml` - [x] GraphQL gateway (Strawberry) proxying REST - [x] Scoped API tokens (`cases:read`, `playbooks:run`, `plugins:install`) - [x] Auto-generated client SDKs: `@aisoc/sdk` (TypeScript), `aisoc-sdk` (Python/PyPI), `github.com/beenuar/AiSOC/packages/sdk-go` - [x] Docusaurus docs site at `docs/site/`, deployed to GitHub Pages - [x] Demo Lab: `pnpm aisoc:lab` one-command full-stack + Conti-style ransomware scenario - [x] 4 reference plugins: Okta connector, YARA enricher, Slack quarantine responder, MTTR sparkline widget ### Cross-cutting - [x] OpenTelemetry traces: agents β†’ actions β†’ api β†’ realtime (Jaeger/Tempo) - [x] API token scopes (foundation for SSO) - [x] `docs/upgrade/MIGRATION.md` for v3 β†’ v4 upgrade path --- ## v4.1 β€” Shipped - [x] Plugin publishing flow (signed community submissions, Ed25519 verification, review endpoints) - [x] Plugin marketplace UI v2 (ratings, install counts, verified badges, category filter, sort) - [x] Detection catalog: browse and install community Sigma rules via UI - [x] Playbook community submissions and curation - [x] `aisoc-cli` β€” developer CLI for scaffold, validate, publish plugins and detections --- ## v5.0 β€” Shipped ### Identity & Access - [x] SAML 2.0 + OIDC authentication (Okta, Azure AD, Google Workspace) - [x] Multi-tenant row-level security (Postgres RLS + SQLAlchemy middleware) - [x] Granular RBAC with data-class and tenant scopes (`require_permission()` dependency) - [x] Full analyst audit log (append-only `audit_log` table + middleware + UI) ### Compliance - [x] Compliance evidence mapping for **24 controls across 5 frameworks** (SOC2, PCI-DSS, HIPAA, ISO27001, NIST-CSF), with PDF export. Not a SOC 2 Type II evidence dashboard: the console pages for it call routes that do not exist. Restored by parity 1.3 - [x] ISO 27001 control mapping - [x] NIST CSF / NIST 800-53 control coverage heatmap - [x] PCI-DSS and HIPAA control mappings. **DORA is not mapped** by any code path - [x] MTTD / MTTR / MTTC SLA tracking per tenant ### High Availability & Operations - [x] HA Helm chart with PodDisruptionBudgets and HorizontalPodAutoscalers - [x] Backup / restore CLI (`scripts/backup.sh`, `scripts/restore.sh`) - [x] Multi-region active-active topology guide (`docs/operations/multi-region.md`) - [x] Operator runbook generation from OTel traces (`scripts/generate_runbook.py`) --- ## v5.1 β€” Shipped ### UEBA - [x] Per-user, per-host, per-service behavioral baselines (Welford's algorithm) - [x] Anomaly risk scores feeding the fusion engine (z-score composite scoring) - [x] Peer-group analysis and deviation scoring - [x] Kafka integration: consumes `security.events`, publishes `ueba.anomalies` ### Deception / Honeytokens - [x] Token generation (AWS keys, URLs, DNS, file, DB credentials, custom types) - [x] First-touch alerting via HMAC-SHA256-signed webhooks - [x] Honeytoken lifecycle management UI (create, revoke, delete, trigger history) ### Purple-Team / Continuous Validation - [x] Atomic Red Team YAML loader and test sync API - [x] Caldera adversary emulation REST client integration - [x] ATT&CK coverage heatmap by tactic/technique with detection tracking - [x] Tabletop incident simulator with findings management UI --- ## v6.0 β€” Shipped (2026-05-06) ### Wave 3 β€” Operational Maturity - [x] MSSP / parent-tenant console β€” onboard child tenants, delegate cross-tenant actions, view rollup metrics - [x] Asset inventory + vuln-to-alert correlation β€” asset CRUD, vulnerability findings, blast-radius context - [x] Insider threat module β€” user risk profiles, behavioural indicators, peer-group deviation scoring - [x] L0–L4 auto-remediation maturity tiers β€” per-tenant autonomy gate with audit log and per-action whitelist ### Wave 4 β€” Advanced Capabilities - [x] Internal threat intelligence β€” IOC harvesting, threat actor profiles, STIX/TAXII feed subscriptions - [x] Cloud security posture management (CSPM/KSPM) β€” posture findings, drift tracking, suppress/resolve workflows - [x] Identity-centric correlation graph β€” identity node/edge graph, alert-to-identity linking, attack-path queries - [x] Auto-generated board reports β€” report templates, scheduled PDF/HTML artefacts, email/webhook delivery ### Platform - [x] Dashboard metrics API β€” aggregated KPI endpoint powering frontend dashboard tiles - [x] Tailscale connector β€” audit log and policy-change events with cursor-based pagination - [x] AWS GuardDuty credential-exfiltration Sigma detection rule --- ## v6.1 β€” Shipped (2026-05-07) β€” v1.5 market-driven feature expansion A review of G2, Gartner Peer Insights, and customer feedback on AI SOC / SIEM / SOAR platforms drove this release. ### New autonomous agents (`services/agents/app/agents/`) - [x] Master autonomous triage agent (`auto_triage_agent.py`) β€” classifies each alert as `true_positive` / `false_positive` / `benign` with confidence - [x] Phishing triage sub-agent (`phishing_agent.py`) - [x] Identity reasoning sub-agent (`identity_agent.py`) - [x] Cloud reasoning sub-agent (`cloud_agent.py`) - [x] Insider-threat reasoning sub-agent (`insider_threat_agent.py`) - [x] All five exposed via `POST /api/v1/agents/triage` ### New console pages (`apps/web/src/components/`) - [x] `/investigate` β€” redirects to `/hunt`; the multi-turn copilot is `CopilotDock` and `/copilot` - [x] `/coverage-advisor` β€” ATT&CK techniques your rules reference, ranked by enabled coverage (not by adversary prevalence) - [x] `/shifts` β€” analyst shift-handoff dashboard - [x] `/easm` β€” External Attack Surface Management - [x] `/mssp` β€” MSSP executive dashboard - [x] `/noise-tuning` β€” per-rule false-positive rate and one-click tuning - [x] `/analytics/team` β€” analyst leaderboard, MTTR per analyst, dispositions accuracy ### New API surfaces (`services/api/app/api/v1/endpoints/`) - [x] `shifts.py` β€” shift-handoff CRUD - [x] `stix_taxii.py` β€” STIX 2.1 / TAXII 2.1 publishing - [x] `compliance.py`, automated compliance evidence for 24 controls across SOC 2, ISO 27001, NIST CSF, PCI-DSS and HIPAA. **DORA is not among them** - [x] `deployment.py` β€” deployment / air-gap toggles ### New connectors (16 β†’ 26) - [x] SentinelOne (`sentinelone.py`) - [x] Cortex XDR (`cortex_xdr.py`) - [x] Wiz (`wiz.py`) - [x] Snyk (`snyk.py`) - [x] Zscaler (`zscaler.py`) - [x] Proofpoint (`proofpoint.py`) - [x] ServiceNow (`servicenow.py`) - [x] Jira (`jira.py`) - [x] 1Password (`1password.py`) - [x] Duo Security (`duo_security.py`) ### Other - [x] AI-generated incident reports β€” one-click "Export Report" generates PDF from the Investigation Ledger - [x] Air-gap deployment configuration β€” per-tenant toggles disable external feeds --- ## v7.0 β€” Shipped βœ… (2026-05-10) All items below were shipped as part of the v1.0 buyer-value plan. Implemented and reviewed by Beenu Arora . - [x] axe-core CI gate over the landing and chrome components **plus three of the five operator views** parity 4.7 names: the alerts queue and list, the investigation rail, and settings. **Still not a full WCAG AA pass**: the case workspace is not covered, and axe catches a subset of WCAG rather than all of it. Each view asserts it rendered real markup before axe runs, because axe passes on an empty div - [x] Light theme persisted in user profile (`ThemeProvider.tsx` + `PATCH /api/v1/users/me/preferences`) - [x] Saved views and custom drag-drop dashboard widgets per analyst (`saved_views.py` + `DashboardView.tsx`) - [x] AI-generated weekly executive digest β€” auto-emailed PDF (`digest_pdf.py` + `weekly_digest_task.py`) - [x] Slack native bot for alert triage without opening the UI (`services/slack-bot/` β€” 61 tests) - [x] Threat actor attribution engine v0 (`services/threatintel/app/actors/attribution.py`) - [x] Air-gap / Ollama local-LLM mode (`infra/compose/docker-compose.airgap.yml` + `apps/docs/docs/operations/air-gapped.md`) - [x] BYOK per-tenant LLM credentials UI + API (`llm_credentials.py` + `SettingsView.tsx`) - [x] MSSP console β€” per-child-tenant KPI aggregation, SLA posture, parent_tenant_id hierarchy - [x] Team analytics view β€” analyst MTTR, leaderboard, shift workload (`TeamAnalyticsView.tsx`) - [x] Case auto-summary + PDF export (`case_summary.py` + `case_summary_html.py`) - [x] Investigation timeline (replayable) (`InvestigationTimeline.tsx`) - [x] Playbook gallery with 12 curated packs + GitHub PR integration for detection proposals - [x] Mobile responder console β€” decide an approval from a phone _(shipped in v9.0. The "not started" note this line used to carry was true about React Native and misleading about the product: the responder console already existed as a **PWA** β€” nine routes under `apps/web/src/app/(responder)/`, a service worker, an IndexedDB offline approval queue, Web Push with VAPID, and passkeys. `apps/mobile` is a distribution channel on top of that, and it exists for one reason worth the build: iOS Web Push requires an installed PWA and has been unreliable even then, which for "approve a containment from your phone" is the same as the feature not existing. Its `src/lib` unit tests and type-check run in CI; **no device build, simulator run or store submission has been performed**, and APNs/FCM credentials are an account action rather than an engineering one β€” see `apps/mobile/README.md`.)_ - [ ] Plugin publishing marketplace v3 (commercial plugins, revenue sharing) _(**open and unscheduled**, and never in fact scheduled against a particular release. The "deferred past v8.0" this line used to carry dated the label rather than the decision, and survived five majors. Revenue sharing is a commercial decision rather than an engineering one, and the free packaging path is itself still blocked on registry credentials β€” see v8.1.)_ --- ## v7.0.x β€” Endpoint telemetry wave + hardening (2026-05-10) Six-PR feature wave that closes [#44](https://github.com/beenuar/AiSOC/issues/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. ### Endpoint telemetry β€” osquery feature wave (PR1–PR6) - [x] **PR1 β€” osctrl + FleetDM connectors** (`services/connectors/app/connectors/osctrl.py`, `fleetdm.py`). Schema-driven setup, live `Test connection` round-trip, secrets encrypted via `CredentialVault`, polling on per-instance schedule, plus marketplace manifests at `plugins/osctrl/plugin.yaml` and `plugins/fleetdm/plugin.yaml`. - [x] **PR2 β€” Native osquery detection schema migration** β€” 16 osquery rules (`detections/endpoint/osquery-*.yaml`, IDs `det-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. - [x] **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. - [x] **PR4 β€” `aisoc-osquery-tls` FastAPI service + `aisoc-direct` agent 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. - [x] **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; ingests `file_events` and synthesises alerts on writes to `/etc/passwd`, `/etc/shadow`, sshd configs, sudoers, Windows registry hives. FIM-specific detection IDs `det-endpoint-297..300`. - [x] **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. ### Patch releases #### v7.0.1 β€” Web app hardening (CodeQL + Turbopack) - [x] **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`). - [x] **`apps/web/next.config.js`** β€” Removed deprecated `eslint.ignoreDuringBuilds` key Next.js 16 no longer accepts; added `turbopack.root` for workspace package resolution. - [x] **`apps/web/src/app/layout.tsx`** β€” Added `suppressHydrationWarning` to `` so the render-blocking `themeBootstrapScript` can write `data-theme` / `data-theme-preference` / `style.colorScheme` without React reporting an attribute mismatch. #### v7.0.2 β€” Version alignment + landing-page footer + docs - [x] **`apps/web/package.json`** bumped to `7.0.2`; sidebar shows `v7.0.2` dynamically. - [x] **`apps/web/src/components/landing/Footer.tsx`** β€” Replaced hard-coded `v6.1.0` with a dynamic import of `package.json`. - [x] **`README.md`** β€” Added `osquery-tls` (port 8090) and `osquery-extensions` to the services / Swagger / directory-tree / dev-surface tables. #### v7.0.3 β€” Structural hydration fix + font preload - [x] **`apps/web/src/components/layout/AppShell.tsx`** β€” Wrapped `` in a new `` boundary so the banner (which reads `NEXT_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 `