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
This commit is contained in:
2025-12-19 16:31:36 -05:00
parent 09d2c125cd
commit e1e0cb7ac7
26 changed files with 1906 additions and 3806 deletions
+130 -16
View File
@@ -1,39 +1,47 @@
# 🛡️ 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/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](https://img.shields.io/badge/python-3.10+-blue.svg)
![Rust](https://img.shields.io/badge/rust-backend-orange.svg)
![License](https://img.shields.io/badge/license-AGPL--3.0-green.svg)
![Textual](https://img.shields.io/badge/textual-6.5.0-purple.svg)
---
## 🚀 Features
- 🔍 **Fuzzy Device Search**
Quickly locate devices using partial or approximate matches.
Quickly locate devices using partial or approximate matches with wildcard support (`*`, `?`).
- 📦 **Batch Move Devices**
Move multiple devices between groups or policies easily.
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.
- 🕵️ **Device History Search**
Track agent executions with configurable date ranges (1-365 days) and CSV export.
- 🧰 **Prepare Policies for Enforcement**
Validate and stage policies before pushing them to enforcement.
Multi-step wizard to validate and stage policies before pushing to enforcement.
- 💤 **Find Quiet Hosts**
Identify devices ready for enforcement.
Identify inactive devices ready for enforcement using Rust-powered analysis.
- 🎛️ **TUI**
Navigate with arrow keys and F-key shortcuts using a custom ANSI-colored terminal UI.
- 🔐 **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
- ⚙️ **Rust-based Async API Calls**
Improve performance and concurrency with a Rust-powered backend.
-**Carbon Black-style Local Approval**
Enable local user approvals for policy exceptions and enforcement actions.
@@ -43,9 +51,105 @@ Python/Rust/Oxide toolkit for secure, auditable, and automated airlock agent and
---
## 🧑‍💻 Requirements
## 📦 Installation
[airlock_libs](https://git.racooncity.org/brotoskyj/-/packages/pypi/airlock-libs/)
### Prerequisites
- Python 3.10+
- Access to Airlock API
- Network access to private PyPI server
### Install Dependencies
```bash
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](https://git.racooncity.org/brotoskyj/-/packages/pypi/airlock-libs/)
---
## 📖 Usage
```bash
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*
---
@@ -55,5 +159,15 @@ Python/Rust/Oxide toolkit for secure, auditable, and automated airlock agent and
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](LICENSE.md) file for full details, or visit
[https://www.gnu.org/license/agpl-3.0.html](https://www.gnu.org/license/agpl-3.0.html)
[https://www.gnu.org/licenses/agpl-3.0.html](https://www.gnu.org/licenses/agpl-3.0.html)