Complete Python SDK for Binalyze Products - AIR, Fleet, and more
Project description
Binalyze AIR Python SDK
A Python SDK for interacting with the Binalyze AIR API, providing type safety and comprehensive constants integration.
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 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
The SDK includes constants for API values:
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 filters with a fluent interface:
from binalyze.air import (
filter_assets, filter_tasks, filter_cases,
AssetPlatform, AssetStatus, AssetManagedStatus,
TaskStatus, TaskType, TaskExecutionType, CasePriority
)
# Asset filtering
asset_filter = (filter_assets()
.add_organization(0)
.platform([AssetPlatform.WINDOWS, AssetPlatform.LINUX])
.online_status([AssetStatus.ONLINE])
.managed_status([AssetManagedStatus.MANAGED])
.tags(['production', 'critical'])
.build())
# Task filtering
task_filter = (filter_tasks()
.status([TaskStatus.COMPLETED, TaskStatus.PROCESSING])
.task_type([TaskType.ACQUISITION, TaskType.TRIAGE])
.execution_type([TaskExecutionType.INSTANT])
.build())
# Case filtering
case_filter = (filter_cases()
.status([CaseStatus.OPEN])
.priority([CasePriority.HIGH, CasePriority.CRITICAL])
.build())
Available Constants
The SDK provides constants for the following categories:
Asset Management
- AssetPlatform: Windows, Linux, Darwin, AIX
- AssetStatus: Online, Offline
- AssetManagedStatus: Managed, Unmanaged, Off-network
- AssetIsolationStatus: Isolated, Unisolated, Isolating, Unisolating
Task Management
- 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
Security Operations
- TriageStatus: Active, Inactive, Creating, Failed
- TriageSeverity: Low, Medium, High, Critical
- AuditLevel: Info, Warning, Error, Critical
Usage Examples
Asset Management
from binalyze.air import (
create_sdk, filter_assets, filter_tasks,
AssetPlatform, AssetStatus, TaskStatus, TaskType
)
sdk = create_sdk_from_env('.env')
# Find Windows assets that are online
critical_assets = (filter_assets()
.platform([AssetPlatform.WINDOWS])
.online_status([AssetStatus.ONLINE])
.tags(['critical'])
.build())
# Get 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 Operations
from binalyze.air import TriageSeverity, TriageStatus
# Create triage rule
triage_data = {
'name': 'High Priority Detection',
'severity': TriageSeverity.HIGH,
'status': TriageStatus.ACTIVE
}
Logging
Configure logging levels:
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
The examples/ directory contains usage examples:
01_basic_setup.py- Basic SDK setup and configuration02_assets.py- Asset management operations03_tasks.py- Task operations04_cases.py- Case management05_acquisitions.py- Acquisition workflows15_preset_filters.py- Filter management16_filter_builder.py- Advanced filtering
Package Structure
binalyze/
└── air/
├── sdk.py # Main SDK interface
├── filter_builder.py # Filter builder system
├── constants.py # API constants
├── logging.py # Logging utilities
├── env_config.py # Environment configuration
├── client.py # Legacy client compatibility
├── models/ # Data models
├── apis/ # API interfaces
├── commands/ # Command implementations
└── queries/ # Query implementations
Backward Compatibility
The SDK maintains compatibility with the previous binalyze-air-sdk package:
# Legacy usage continues to work
from binalyze.air import AIRClient, AIRConfig
client = AIRClient(AIRConfig.create(
host="https://your-air-instance.com",
api_token="your-token",
organization_id=0
))
Features
- Constants integration for API values
- Fluent interface filter builder
- Environment variable configuration
- Comprehensive logging with HTTP tracing
- Type hints and IDE support
- Backward compatibility with existing code
Requirements
- Python 3.7+
- requests
- pydantic v2
- python-dotenv (optional, for .env file 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.3.tar.gz.
File metadata
- Download URL: binalyze-2.0.3.tar.gz
- Upload date:
- Size: 166.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d8f80f4afc80705929989b8c98aee3cfc27050a3555fdab3078dc50b032fa48
|
|
| MD5 |
a07fa5891ebd584bd487cc323adeb015
|
|
| BLAKE2b-256 |
4a766d62e501f4e65e4a3b12c690b0a84b27316d1819ac695c2dee56e8f7d329
|
File details
Details for the file binalyze-2.0.3-py3-none-any.whl.
File metadata
- Download URL: binalyze-2.0.3-py3-none-any.whl
- Upload date:
- Size: 228.1 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 |
e8df6f87006ba936e6c77f095926b973131133b9acbf65630db53c858fa43597
|
|
| MD5 |
eaf14f754f5960a04105a09de3e6adfe
|
|
| BLAKE2b-256 |
e59338de06c6f2563c241373f5b7454788308b1c88c2b88a7f1de66136eb67b8
|