Files
AirlockTools/docs
Zarithas e1e0cb7ac7 feat: add version updater and statistics enhancements (fixes #29)
- Implemented version checking system with update notifications
- Integrated Git for fetching and downloading the latest version
- Added statistics updates
- Removed unused code across the project
- Condensed project structure
- Updated README
- Cleaned up UI
2025-12-19 16:31:36 -05:00
..

🛡️ Loxide

Python/Rust/Oxide toolkit for secure, auditable, and automated Airlock agent and policy management. Designed for enterprise environments, it supports advanced policy workflows, device tracking, and terminal-based interaction.

Python Rust License Textual


🚀 Features

  • 🔍 Fuzzy Device Search
    Quickly locate devices using partial or approximate matches with wildcard support (*, ?).

  • 📦 Batch Move Devices
    Move multiple devices between groups or policies easily with multi-select and file import.

  • 🔄 Toggle Enforcement/Audit Policies
    Seamlessly switch devices between enforcement and audit modes.

  • 🕵️ Device History Search
    Track agent executions with configurable date ranges (1-365 days) and CSV export.

  • 🧰 Prepare Policies for Enforcement
    Multi-step wizard to validate and stage policies before pushing to enforcement.

  • 💤 Find Quiet Hosts
    Identify inactive devices ready for enforcement using Rust-powered analysis.

  • 🔐 OTP Management
    Generate, revoke, and monitor one-time passwords for agents.

  • 📋 Server Log Viewer
    Real-time server activity monitoring with DataTable display.

  • 🎛️ Modern TUI
    Full keyboard navigation with Textual framework, toast notifications, and color-coded results.


🧭 Roadmap

  • Carbon Black-style Local Approval
    Enable local user approvals for policy exceptions and enforcement actions.

  • 📊 Audit Logging & Export
    Add detailed logging and export capabilities for compliance and analysis.


📦 Installation

Prerequisites

  • Python 3.10+
  • Access to Airlock API
  • Network access to private PyPI server

Install Dependencies

pip install -r requirements.txt

Requirements

# Core TUI
textual==6.5.0

# API and data handling
requests==2.32.5
pandas==2.3.3
numpy==2.3.4

# Database
pymongo==4.15.3

# Security
cryptography==46.0.3
keyring==25.6.0

# Utilities
python-dotenv==1.2.1
tqdm==4.67.1
urllib3==2.5.0
pyperclip==1.11.0

# Private package
--extra-index-url https://git.racooncity.org/api/packages/brotoskyj/pypi/simple/
airlock_libs==5.2.1

See also: airlock_libs


📖 Usage

python Loxide.py

Keyboard Shortcuts

Key Action
Tab Navigate between elements
Enter Select/Confirm
Escape Go back / Cancel
Navigate tabs
r Refresh (context-dependent)
e Export to CSV
q Quit application

🏗️ Architecture

Loxide/
├── Loxide.py              # Main entry point
├── API.py                 # AirlockAPIWrapper
├── setup.py               # Initialization & logging
├── configmanager.py       # Config management
│
├── models/                # Data models
├── services/              # Business logic
├── utils/                 # Helper functions
│
└── TUI/
    ├── Screens/           # Workflow screens
    │   ├── policyprepworkflowscreen.py
    │   ├── quietagentworkflowscreen.py
    │   ├── agentmoveoperations.py
    │   ├── otprevokescreen.py
    │   └── executionhistoryscreen.py
    │
    └── Widgets/           # Reusable components
        ├── policyselector.py
        ├── multiagentselector.py
        └── serverlogwidget.py

👥 Authors

  • Brandon Wickline - Lead Python Developer
  • James Brotosky - Lead Rust Developer

📜 License

Loxide is licensed under the GNU Affero General Public License v3.0.

You may copy, distribute, and modify the software under the terms of the AGPL-3.0 license.

Copyright (C) 2025 James Brotosky, Brandon Wickline

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

See the LICENSE file for full details, or visit
https://www.gnu.org/licenses/agpl-3.0.html