Skip to content

gesh75/aegis

Repository files navigation

AEGIS β€” architecture

AEGIS

πŸ“– Live documentation

AEGIS β€” live documentation

🌐 Live: https://gesh75.github.io/aegis/ β€” an animated single-page guide: architecture diagrams, data flow, tech stack, and quickstart.

πŸ—‚οΈ Part of the gesh75 documentation hub β€” all my network & AI engineering project docs in one place.

Air-gapped Evidence-Grade Inspection System β€” preflight network changes against a real digital twin, entirely inside your perimeter. No cloud. No data egress. Ever.

License: Apache 2.0 tests python egress status

The air-gapped, self-hosted answer to Forward Predict / NetPilot: those are cloud-by-architecture, so regulated networks that legally cannot send topology/config off-prem are locked out of them. AEGIS runs the same change β†’ twin β†’ validate β†’ evidence loop on a self-hosted LLM + containerlab, and emits a tamper-evident, framework-mapped, examiner-ready evidence bundle.

AEGIS architecture

Demo

AEGIS PreFlight β€” full feature tour

β–Ά Watch the 3-minute feature tour (narrated) β€” every stage on the live PreFlight UI: intent β†’ digital twin β†’ grounded config β†’ PCI/SOC 2/NIST β†’ sealed evidence β†’ offline Ed25519 verify β†’ the BLOCKED guardrail β†’ config-import β†’ live mode.

Shorter cuts: 64-second overview (silent, captioned) Β· narrated overview Β· real-product demo

How it works

intent | paste-config ─▢ guard ─▢ generate (LLM) ─▢ batfish ─▢ spawn twin ─▢ apply+converge
                     ─▢ diff ─▢ compliance ─▢ risk tier ─▢ rollback ─▢ verdict ─▢ evidence bundle

Only generate touches an LLM β€” and the config-import path skips even that. Every step after the proposal is deterministic verification (the "guarded agentic" pattern). That is what makes the evidence auditable: the LLM proposes, the pipeline verifies, a human authorizes, and the sealed bundle proves nothing left the perimeter.

Why it's different

Forward Predict NetPilot AEGIS
Twin math model cloud emulation real on-host emulation (containerlab)
Hosting SaaS cloud on-prem / air-gapped
LLM cloud cloud self-hosted (zero egress)
Output report β€” sealed, PCI/SOC2/NIST-mapped evidence + PDF

πŸ›οΈ Architecture

Everything runs inside an air-gapped perimeter: the operator submits a change, a self-hosted Qwen3 LLM proposes config, a throwaway containerlab twin verifies it, and an auditor consumes the sealed PDF β€” no actor or line ever reaches outside the wall.

flowchart LR
    OP([Operator - change author]):::actor
    APP([Approver - grants token]):::actor
    AUD([Auditor - examiner]):::actor

    subgraph PERIM["Air-gapped perimeter - egress none"]
        direction LR
        AEGIS{{"AEGIS - preflight and evidence engine"}}:::core
        QWEN[/"Self-hosted Qwen3 - only AI dependency"/]:::ai
        TWIN[("containerlab twin - multi-vendor routers")]:::twin
        DCN["DCN_Network_Tool 5757 - batfish, nornir, pyats"]:::svc
    end

    PROD[("Production devices - approval-gated push")]:::prod

    OP -->|"intent or config"| AEGIS
    APP -->|approval token| AEGIS
    AEGIS -->|generate_config| QWEN
    AEGIS -->|"spawn, apply, converge"| TWIN
    AEGIS -.->|live tier| DCN
    AEGIS -->|sealed PDF bundle| AUD
    AEGIS -.->|gated dry-run connector| PROD

    classDef actor fill:#475569,stroke:#94a3b8,color:#fff
    classDef core fill:#0d9488,stroke:#5eead4,color:#fff
    classDef ai fill:#7c3aed,stroke:#a78bfa,color:#fff
    classDef twin fill:#059669,stroke:#34d399,color:#fff
    classDef svc fill:#0ea5e9,stroke:#38bdf8,color:#fff
    classDef prod fill:#c0392b,stroke:#fb7185,color:#fff
    class PERIM core
Loading

πŸ“ Full architecture β€” system context, container/component map, primary sequence, data flow, the Backend Protocol class map, and the verdict/promotion-gate decision tree β€” lives in docs/ARCHITECTURE.md.

Run the demo (community / sim tier β€” fully offline)

docker compose up                 # then open http://localhost:8088/preflight
# or, without Docker:
pip install -r requirements.txt
python -m aegis.serve             # from the directory ABOVE aegis/

Type a change (or paste a config), Run PreFlight, watch the verdict + sealed evidence bundle, and download the examiner-ready PDF. Live mode (real Qwen3 + containerlab twin) ships in the integrated air-gapped product β€” see docs/GO_LIVE.md.

Air-gapped install (zero egress)

docker compose build && docker save aegis:local -o aegis-local.tar   # online, once
# carry aegis-local.tar across the air gap on signed media, then:
docker load -i aegis-local.tar
docker compose -f docker-compose.yml -f docker-compose.airgap.yml up  # network_mode: none

Test β€” 6 suites, 0 violations

pip install -r requirements.txt
python -m aegis.tests.stress_test 25000      # pipeline invariants (8 invariants, adversarial)
python -m aegis.tests.contract_test          # HttpBackend parsers vs real :5757 shapes
python -m aegis.tests.pdf_test               # evidence PDF validity
python -m aegis.tests.promote_test           # Phase 2 approval-gate safety
Suite Scale Result
pipeline invariants 25,000 runs βœ… PASS
HttpBackend contract real API shapes βœ… PASS
evidence PDF 1,500 bundles βœ… PASS
promotion gate 6,000 bundles βœ… PASS
Flask test-client 10 tests βœ… PASS
twin safety + mgmt isolation 8,000 ops βœ… PASS

Layout

core/orchestrator/   deterministic pipeline Β· guards Β· rollback
core/backends/       pluggable: simulator (CI) | http (live :5757)
core/promote/        Phase 2 approval gate + connectors (dry-run default)
evidence/            bundler Β· sha256 seal Β· compliance crosswalk Β· PDF Β· JSON schema
ui/                  self-contained PreFlight dashboard
serve.py             standalone community server (sim tier)
docs/                PHASES.md Β· GO_LIVE.md Β· architecture.svg

Project history & roadmap

Every phase β€” research β†’ positioning β†’ scaffold β†’ live adapters β†’ twin endpoints β†’ UI β†’ evidence PDF β†’ config-import β†’ mgmt isolation β†’ packaging β†’ Phase 2 promotion gate β€” is logged in docs/PHASES.md. Changelog: CHANGELOG.md.

License

Apache-2.0 (see LICENSE). The community core is open; live production-push connectors, RBAC, and hosted multi-tenant compute are the commercial tier.

About

Air-gapped pre-deployment network change validation against a real containerlab digital twin, with sealed PCI/SOC2/NIST evidence. Zero egress.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors