Skip to main content

Vigil

Unsupervised drift-monitoring prototype and reproducible attribution evaluation.

PyPI · Project site · Research evidence

Status

Vigil combines autoencoder reconstruction errors, statistical drift tests, KDE novelty scores and feature-error rankings with example monitoring integrations. It is an engineering/research prototype, not a validated intrusion-detection system or a production-readiness claim.

The September 2026 investigation did not establish a generally superior new attribution method. Trained reconstruction rankings helped in some dependency-shift conditions but underperformed simple KS/correlation baselines in other conditions. The original default remains unchanged; research variants are experimental.

There is no Vigil publication claimed here. The old manuscript in paper/ is an unpublished, superseded draft. Historical NSL-KDD demo numbers are not current evidence of attack-detection performance.

Quick start

Install the published package:

pip install vigil-drift

The published package may lag this repository's research tooling. For current source and tests:

git clone https://github.com/Venkateswara-Sahu/OWADD.git
cd OWADD
pip install -e ".[dev,research]"
python -m pytest tests/ -v --cov=vigil

Supply preprocessed finite numeric arrays with consistent feature order; fit preprocessing on training data only.

from vigil import Vigil

v = Vigil(feature_names=feature_names)
v.fit(baseline_data)

for batch in stream:
    result = v.detect(batch)
    if result.attribution is not None:
        for feature in result.attribution.top_features:
            print(feature["feature_name"], feature["contribution"])

Contributions are normalized reconstruction-error scores, not percentages of input change, attack probabilities or causal explanations. Detection has configurable thresholds; label-free inference does not remove the need for calibration and labeled evaluation.

Implemented components

Component Scope
Dual autoencoders, replicated tests, KDE Experimental drift/novelty monitoring
DriftAttributor Per-feature reconstruction-error ranking
FastAPI, Kafka, MLflow Example serving, ingestion and experiment tracking
Airflow DAGs Example monitoring/retraining orchestration
Streamlit and Docker Compose Local demonstration stack
experiments/ Versioned protocols, data audits, baselines and reproducible comparisons

These integrations do not establish security hardening, throughput guarantees or reliable autonomous adaptation.

Research evidence

Read the research status and final decision report.

The final bounded study covered 20 seeds, nine ranking methods, 18 synthetic conditions and six controlled real-data conditions. Real-data tests injected shifts into reserved CICIDS2017 development flow features; they were not held-out attack detection or live chronological deployment tests. Results and limitations are reported together rather than collapsed into a winning headline.

Raw datasets, prepared caches and per-run outputs are not distributed. Protocols, source, tests and compact reports are retained. Reproduction requires obtaining the specified data separately.

Example integrations

Run from a source checkout after installing the appropriate extras:

pip install -e ".[api,dashboard,mlflow,kafka]"
uvicorn api.app:app --host 127.0.0.1 --port 8000
# In a separate terminal:
streamlit run dashboard/app.py

Other examples live in kafka_pipeline/, airflow/dags/ and the Compose configuration. Review their configuration before running; do not expose demo services directly to an untrusted network.

Attribution and historical material

The original project cites Open World Autoencoding Drift Detection with Novel Class Recognition in Tabular Non-stationary Data Streams, arXiv:2605.29834, as its algorithmic basis. That reference is not a Vigil publication or evidence that Vigil's additions are novel. Research novelty remains unestablished.

Historical plans record decisions at their time of writing; the final decision supersedes earlier optimistic hypotheses. Legacy demo scripts and manuscript figures are not the current evaluation protocol.

License

MIT. See LICENSE.

Metadata

Release files for vigil-drift 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vigil-drift 0.1.4
File Size Uploaded
vigil_drift-0.1.4.tar.gz 75.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vigil-drift 0.1.4
File Interpreter ABI Platform
vigil_drift-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 165.7 kB

Release files / vigil_drift-0.1.4.tar.gz

Download URL vigil_drift-0.1.4.tar.gz
Size 75.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d9a9912072caa1d8c69e02361f63c6bc0ebe4ba9d73f1d8ac21bf3e6d592e1a9
BLAKE2b-256 checksum
How to use checksums
36ad7374bd6f4419179c4aef5950a5a08b1e3a51c16c84326a232c9e886ff31d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.9

Release files / vigil_drift-0.1.4-py3-none-any.whl

Download URL vigil_drift-0.1.4-py3-none-any.whl
Size 90.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
307a59bb1bcb5fb3460f1a9d6c9cf7f9fc920fad8d70943d033bfb3b793faaef
BLAKE2b-256 checksum
How to use checksums
3fa74352af1243e059f1c1197f62a9a299ee2a7350dd78bbae61aed439287038
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page