HFortix
HFortix is the meta-package that installs all HFortix components for Fortinet automation. Install this package to get the complete suite of tools for FortiOS/FortiGate automation.
🚀 Quick Start
pip install hfortix
This single command installs:
hfortix-core- Core infrastructure and utilitieshfortix-fortios- FortiOS/FortiGate API client
from hfortix_fortios import FortiOS
# Connect to your FortiGate
with FortiOS(host="192.168.1.99", token="your-api-token") as fgt:
# Get system status
status = fgt.api.monitor.system.status.get()
print(f"Hostname: {status['hostname']}, Model: {status['model']}")
# Create firewall address
fgt.api.cmdb.firewall.address.post(
name="web-server",
subnet="10.0.1.100/32",
comment="Production web server"
)
📦 What's Included
When you install hfortix, you automatically get:
hfortix-fortios
Complete FortiOS/FortiGate API client with:
- 1,348 FortiOS 7.6.5 endpoints
- Full type hints and IDE autocomplete
- Async/await support
- Batch transactions and atomic operations
- Comprehensive error handling
- Rate limiting and retry logic
hfortix-core
Foundational infrastructure including:
- Shared HTTP client framework (retry logic, circuit breaker, rate limiting)
- Exception hierarchy and error-code mapping
- Audit logging and debugging utilities
- Base abstractions and shared utilities
Optional extras
pip install "hfortix[forticare]" # + hfortix-forticare (FortiCare asset management)
pip install "hfortix[fortiztp]" # + hfortix-fortiztp (FortiZTP provisioning)
pip install "hfortix[all]" # everything above
✨ Key Features
- 🎯 Complete API Coverage - All CMDB, Monitor, Log, and Service endpoints
- 💪 Fully Typed - Complete type hints with .pyi stubs
- ⚡ Modern & Fast - Async/await support, HTTP/2, connection pooling
- 🛡️ Production Ready - Comprehensive error handling and validation
- 🔄 Simplified Syntax - Simple list format auto-converts to FortiOS dict format
- 📦 Batch Transactions - Atomic configuration changes with automatic commit/rollback
- 🔍 API Inspection - Debug and audit API interactions
📚 Documentation
- HFortix Documentation - Getting started and guides
- FortiOS Client Docs - Complete API reference
- Core Library Docs - Infrastructure details
🔗 Individual Packages
If you only need specific components, you can install them separately:
# Just the FortiOS client (includes hfortix-core as dependency)
pip install hfortix-fortios
# Just the core infrastructure (for custom implementations)
pip install hfortix-core
🆚 Package Comparison
| Package | Purpose | Dependencies | Use When |
|---|---|---|---|
hfortix |
Meta-package | core + fortios (+ optional extras) | You want the suite |
hfortix-fortios |
FortiOS API client | hfortix-core | FortiGate automation |
hfortix-core |
Core infrastructure | httpx, typing-extensions | Building custom clients |
📖 Quick Examples
Firewall Management
from hfortix_fortios import FortiOS
with FortiOS(host="192.168.1.99", token="token") as fgt:
# Create firewall policy
fgt.api.cmdb.firewall.policy.post(
name="Allow-Web",
srcintf=["internal"],
dstintf=["wan1"],
srcaddr=["all"],
dstaddr=["web-server"],
service=["HTTP", "HTTPS"],
action="accept"
)
Batch Transactions
from hfortix_fortios import FortiOS
with FortiOS(host="192.168.1.99", token="token") as fgt:
# Atomic batch operation - API calls made inside the block
# automatically join the transaction
with fgt.transaction() as txn:
fgt.api.cmdb.firewall.address.post(name="server1", subnet="10.0.1.1/32")
fgt.api.cmdb.firewall.address.post(name="server2", subnet="10.0.1.2/32")
# Auto-commits on success; auto-aborts (rolls back) on error
Async Support
from hfortix_fortios import FortiOS
fgt = FortiOS(host="192.168.1.99", token="token", mode="async")
status = await fgt.api.monitor.system.status.get()
addresses = await fgt.api.cmdb.firewall.address.get()
🤝 Contributing
This is a proprietary library. For support or feature requests, please contact the maintainer.
📄 License
Proprietary License - See individual package LICENSE files for details.
HFortix - Modern Python SDKs for Fortinet automation
Metadata
Release files for hfortix 0.5.164
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hfortix-0.5.164.tar.gz | 12.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hfortix-0.5.164-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.1 kB
Release files / hfortix-0.5.164.tar.gz
| Download URL | hfortix-0.5.164.tar.gz |
|---|---|
| Size | 12.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d0f83ffaaf66f482f7abd79b503b72ac513a25d8f7203d4fc68fc06139b7d85c
|
|
BLAKE2b-256 checksum How to use checksums |
125c021dc95d13e1ee9a32206b5fb3b7ecc5858bdbf231e3ead636fbde8f6621
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / hfortix-0.5.164-py3-none-any.whl
| Download URL | hfortix-0.5.164-py3-none-any.whl |
|---|---|
| Size | 6.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a703521b0bba40ab61bfdbaf2dcd81de331c5c4184377439fa275eda7a34bd4d
|
|
BLAKE2b-256 checksum How to use checksums |
9ed52862c71109fe0850ce9d09ad200b4bb41d4a781f2ac40913919873438601
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|