Admin extension for V2Hub VPN Subscription API client
Project description
V2Hub Admin — Admin Extension for VPN Subscription API
Admin-расширение для V2Hub, предоставляющее привилегированные операции управления пользователями и IP через HMAC-SHA256 аутентификацию.
Features
- 🔐 HMAC Authentication (SHA-256 подпись)
- 👤 User Management API (CRUD пользователей)
- 🚫 IP Ban System
- ✅ Whitelist Management
- 🔄 Async & Sync клиенты
- 📦 Основан на
v2hub - 🛡️ Полная типизация (type hints + Pydantic)
Installation
pip install v2hub-admin
Quick Start
Async Usage
from v2hub_admin import AsyncAdminClient
async with AsyncAdminClient(
base_url="https://api.example.com",
secret_key="your-hmac-secret"
) as admin:
user = await admin.get_user(12345)
print(user)
Sync Usage
from v2hub_admin import AdminClient
with AdminClient(
base_url="https://api.example.com",
secret_key="your-hmac-secret"
) as admin:
user = admin.get_user(12345)
print(user)
Admin API
👤 User Management
admin.create_user(user_id: int)
admin.get_user(user_id: int)
admin.delete_user(user_id: int)
admin.set_user_status(user_id: int, is_active: bool)
admin.refresh_token(user_id: int)
Example
user = admin.create_user(12345)
print(user.api_token)
user = admin.set_user_status(12345, False)
print(user.is_active)
🚫 IP Ban Management
admin.ban_ip(ip_address: str, duration_seconds: int | None = None)
admin.unban_ip(ip_address: str)
admin.get_ban_status(ip_address: str)
admin.get_ban_list()
Example
ban = admin.ban_ip("192.168.1.100", duration_seconds=3600)
print(ban.banned_until)
status = admin.get_ban_status("192.168.1.100")
print(status.is_banned)
✅ Whitelist Management
admin.add_to_whitelist(ip_address: str, description: str | None = None)
admin.remove_from_whitelist(ip_address: str)
admin.list_whitelist()
Example
admin.add_to_whitelist("10.0.0.0/24", description="Office network")
whitelist = admin.list_whitelist()
for entry in whitelist.entries:
print(entry.ip_address, entry.description)
⚠️ Error Handling
Все ошибки наследуются из v2hub:
from v2hub import VPNAPIError, AuthenticationError, AuthorizationError
try:
admin.delete_user(12345)
except AuthenticationError:
print("Invalid HMAC signature")
except AuthorizationError:
print("No admin privileges")
except VPNAPIError as e:
print(e)
Development
pip install -e ".[dev]"
pytest
mypy src/
Requirements
- Python >= 3.9
- v2hub >= 1.0.0
Security Notes
⚠️ Важно:
- Не храните secret_key в коде
- Используйте env / secret managers
- Только HTTPS в production
- Регулярно ротируйте ключи
- Admin API имеет полный доступ к системе
License
MIT
Author
nestt
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
v2hub_admin-1.0.1.tar.gz
(10.0 kB
view details)
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 v2hub_admin-1.0.1.tar.gz.
File metadata
- Download URL: v2hub_admin-1.0.1.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0737b04d1e979546c086d7b6d74d29bf9fceea8d0553524832e26b1217ad79d9
|
|
| MD5 |
c33d1a103bea84d8f945475c21a5ab35
|
|
| BLAKE2b-256 |
7a77fd07e5f9c0557c0e0147ec7252b3a0ce1fb9eca4844d36c3ea57940406fb
|
File details
Details for the file v2hub_admin-1.0.1-py3-none-any.whl.
File metadata
- Download URL: v2hub_admin-1.0.1-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a06aa79ebec606c46b108d513aeeb8316cbc46c9c1301584e2982a195046f749
|
|
| MD5 |
cfd9914b6dcc3871d82267abff91a2aa
|
|
| BLAKE2b-256 |
7dfe2f1cfe9e249c82ddd2c032695b355212dbfd5c1a4a8504272d74c4287bfa
|