Skip to main content

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

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.3.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

v2hub_admin-1.0.3-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file v2hub_admin-1.0.3.tar.gz.

File metadata

  • Download URL: v2hub_admin-1.0.3.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for v2hub_admin-1.0.3.tar.gz
Algorithm Hash digest
SHA256 7f0ff29d81dab07cc1613999857e6976b113c84263fc2559fa8bd87638e82f85
MD5 926e452f7a5a0725bbb15bc9e7709b6a
BLAKE2b-256 6d715a7468880e3decac8f49c600fece0c9dbde884b12516a8e0cfd289d5c683

See more details on using hashes here.

Provenance

The following attestation bundles were made for v2hub_admin-1.0.3.tar.gz:

Publisher: publish.yml on nestthub/v2hub-admin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file v2hub_admin-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: v2hub_admin-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for v2hub_admin-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 068074cd6bc46714d4b5f7c2d04fd51b6cfa64c95d522aa579f0e1c75fe6e2f8
MD5 8f08a75639be54db0de2887031bbdd23
BLAKE2b-256 0ff24ea6ac4f431db350f2f58d7c0112309faea7cc715d1a53407d50878ba13c

See more details on using hashes here.

Provenance

The following attestation bundles were made for v2hub_admin-1.0.3-py3-none-any.whl:

Publisher: publish.yml on nestthub/v2hub-admin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.1.2

2 files

1.1.1

2 files

This release

1.0.3 This release

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page