Complete Python SDK for Binalyze Products - AIR, Fleet, and more
Project description
Binalyze AIR Python SDK
A comprehensive Python SDK for interacting with the Binalyze AIR API with full constants integration and type safety.
Installation
pip install binalyze
Quick Start
from binalyze.air import create_sdk, filter_assets, AssetPlatform, AssetStatus
# Create SDK instance
sdk = create_sdk(
host="https://your-air-instance.com",
api_token="your-api-token",
organization_id=0
)
# Use filter builder with constants
asset_filter = (filter_assets()
.is_online()
.platform([AssetPlatform.WINDOWS])
.online_status([AssetStatus.ONLINE])
.build())
assets = sdk.assets.get_assets(filter=asset_filter)
Environment Configuration
Create a .env file for easy configuration:
AIR_HOST=https://your-air-instance.com
AIR_API_TOKEN=your-api-token-here
AIR_ORGANIZATION_ID=0
Then use:
from binalyze.air import create_sdk_from_env
sdk = create_sdk_from_env('.env')
Constants Integration
The SDK now includes comprehensive constants for all API values, eliminating hardcoded strings:
from binalyze.air import (
AssetPlatform, AssetStatus, AssetManagedStatus,
TaskStatus, TaskType, TaskExecutionType,
CaseStatus, CasePriority, TriageSeverity
)
# Asset constants
AssetPlatform.WINDOWS # 'windows'
AssetPlatform.LINUX # 'linux'
AssetStatus.ONLINE # 'online'
AssetManagedStatus.MANAGED # 'managed'
# Task constants
TaskStatus.COMPLETED # 'completed'
TaskType.ACQUISITION # 'acquisition'
TaskExecutionType.INSTANT # 'instant'
# Case constants
CaseStatus.OPEN # 'open'
CasePriority.CRITICAL # 'critical'
# Triage constants
TriageSeverity.HIGH # 'high'
Filter Builder
Build complex filters with a fluent interface and constants:
from binalyze.air import (
filter_assets, filter_tasks, filter_cases,
AssetPlatform, AssetStatus, AssetManagedStatus,
TaskStatus, TaskType, TaskExecutionType, CasePriority
)
# Asset filtering with constants
asset_filter = (filter_assets()
.add_organization(0)
.platform([AssetPlatform.WINDOWS, AssetPlatform.LINUX])
.online_status([AssetStatus.ONLINE])
.managed_status([AssetManagedStatus.MANAGED])
.tags(['production', CasePriority.CRITICAL])
.build())
# Task filtering with constants
task_filter = (filter_tasks()
.status([TaskStatus.COMPLETED, TaskStatus.PROCESSING])
.task_type([TaskType.ACQUISITION, TaskType.TRIAGE])
.execution_type([TaskExecutionType.INSTANT])
.build())
# Case filtering with constants
case_filter = (filter_cases()
.status([CaseStatus.OPEN])
.priority([CasePriority.HIGH, CasePriority.CRITICAL])
.build())
Comprehensive Constants Coverage
The SDK includes 68+ constant categories covering all API domains:
Core Constants
- AssetPlatform: Windows, Linux, Darwin, AIX
- AssetStatus: Online, Offline
- AssetManagedStatus: Managed, Unmanaged, Off-network
- AssetIsolationStatus: Isolated, Unisolated, Isolating, Unisolating
Task Constants
- TaskStatus: Scheduled, Processing, Completed, Failed, Cancelled
- TaskType: Acquisition, Triage, Investigation, Interact Shell
- TaskExecutionType: Instant, Scheduled
Case Management
- CaseStatus: Open, Closed, Archived
- CasePriority: Low, Medium, High, Critical
Triage & Security
- TriageStatus: Active, Inactive, Creating, Failed
- TriageSeverity: Low, Medium, High, Critical
- AuditLevel: Info, Warning, Error, Critical
And many more covering all API endpoints and responses!
Advanced Examples
Real-world Production Example
from binalyze.air import (
create_sdk, filter_assets, filter_tasks,
AssetPlatform, AssetStatus, TaskStatus, TaskType, CasePriority
)
sdk = create_sdk_from_env('.env')
# Find critical Windows assets that are online
critical_assets = (filter_assets()
.platform([AssetPlatform.WINDOWS])
.online_status([AssetStatus.ONLINE])
.tags([CasePriority.CRITICAL])
.build())
# Get recent acquisition tasks
recent_acquisitions = (filter_tasks()
.task_type([TaskType.ACQUISITION])
.status([TaskStatus.COMPLETED])
.build())
assets = sdk.assets.get_assets(filter=critical_assets)
tasks = sdk.tasks.get_tasks(filter=recent_acquisitions)
Triage Example with Constants
from binalyze.air import TriageSeverity, TriageStatus
# Create triage rule with constants
triage_data = {
'name': 'High Priority Detection',
'severity': TriageSeverity.HIGH,
'status': TriageStatus.ACTIVE
}
Logging
Enable verbose or debug logging:
from binalyze.air import create_sdk_with_verbose, create_sdk_with_debug
# Verbose logging
sdk = create_sdk_with_verbose(host="...", api_token="...", organization_id=0)
# Debug logging with HTTP traces
sdk = create_sdk_with_debug(host="...", api_token="...", organization_id=0)
Examples Directory
See the examples/ directory for comprehensive usage examples:
01_basic_setup.py- Basic SDK setup and configuration02_assets.py- Asset management with constants03_tasks.py- Task operations with proper constants04_cases.py- Case management examples05_acquisitions.py- Acquisition workflows15_preset_filters.py- Filter management16_filter_builder.py- Advanced filtering patterns
Package Structure
binalyze/
└── air/
├── sdk.py # Main SDK interface
├── filter_builder.py # Filter builder system (40+ filters)
├── constants.py # 68+ constant categories (INTEGRATED!)
├── logging.py # Logging utilities
├── env_config.py # Environment configuration
├── client.py # Legacy client (backward compatibility)
├── models/ # Data models (constants integrated)
├── apis/ # API interfaces (constants integrated)
├── commands/ # Command implementations (constants integrated)
└── queries/ # Query implementations (constants integrated)
Constants Integration Status
COMPLETED - Full constants integration across entire codebase:
- 40+ files processed with hardcoded strings replaced
- 68+ constant categories covering all API domains
- 15+ atomic commits with comprehensive coverage
- 100% backward compatibility maintained
- Zero breaking changes introduced
Backward Compatibility
The SDK maintains full backward compatibility with the previous binalyze-air-sdk package:
# Legacy usage still works
from binalyze.air import AIRClient, AIRConfig
client = AIRClient(AIRConfig.create(
host="https://your-air-instance.com",
api_token="your-token",
organization_id=0
))
Key Features
- Complete constants integration - No more hardcoded strings!
- Fluent interface filter builder with method chaining
- 40+ filter methods with full IDE autocomplete support
- 68+ constant categories covering all API values
- Environment variable configuration with .env file support
- Comprehensive logging with HTTP request/response tracing
- Type hints and full IDE support with TypeVar method chaining
- 100% backward compatibility with existing code
- Future-proof package structure and architecture
Requirements
- Python 3.7+
- requests
- pydantic v2
- python-dotenv (optional, for .env file support)
Recent Updates
v2.0.0 - Constants Integration Complete
- Comprehensive constants integration across all 40+ files
- 68+ constant categories for all API domains
- Zero hardcoded strings remaining in business logic
- Full backward compatibility maintained
- Enhanced documentation with constant examples
- Improved type safety and IDE support
License
See LICENSE file for details.
Support
For issues and questions, please refer to the official Binalyze documentation or contact support.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file binalyze-2.0.1.tar.gz.
File metadata
- Download URL: binalyze-2.0.1.tar.gz
- Upload date:
- Size: 165.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb46fde447baa55a7c66af4447e511975d47369b6d438578bc52231fadf0b532
|
|
| MD5 |
f28d7d1a50dd0da53f29474fbe9793b0
|
|
| BLAKE2b-256 |
ea7573b936c72bb639a50d76fc98e67b276dddc2c71b4a8953d4f715c9dd7689
|
File details
Details for the file binalyze-2.0.1-py3-none-any.whl.
File metadata
- Download URL: binalyze-2.0.1-py3-none-any.whl
- Upload date:
- Size: 227.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89f6aa19388a5efac1677bc7efb793280321774460fd667c7eb51749970c8148
|
|
| MD5 |
ba90d642f7668f103f41a7c17841e015
|
|
| BLAKE2b-256 |
31c66bb2015b56432e0bb70e0bdceb523a80f596fe45d7ed3a76ab5aa504002f
|