Vortex Python SDK for invitation management and JWT generation
Project description
Vortex Python SDK
A Python SDK for Vortex invitation management and JWT generation.
Installation
pip install vortex-python-sdk
Note: The package will be available on PyPI once published. See PUBLISHING.md for publishing instructions.
Usage
Basic Setup
from vortex_sdk import Vortex
# Initialize the client with your Vortex API key
vortex = Vortex(api_key="your-vortex-api-key")
# Or with custom base URL
vortex = Vortex(api_key="your-vortex-api-key", base_url="https://custom-api.example.com")
JWT Generation
# Generate JWT for a user
jwt = vortex.generate_jwt({
"user_id": "user-123",
"identifiers": [
{"type": "email", "value": "user@example.com"}
],
"groups": [
{"type": "team", "id": "team-1", "name": "Engineering"}
],
"role": "admin"
})
print(f"JWT: {jwt}")
# Or using type-safe models
from vortex_sdk import JwtPayload, IdentifierInput, GroupInput
jwt = vortex.generate_jwt(
JwtPayload(
user_id="user-123",
identifiers=[
IdentifierInput(type="email", value="user@example.com")
],
groups=[
GroupInput(type="team", id="team-1", name="Engineering")
],
role="admin"
)
)
Invitation Management
Get Invitations by Target
import asyncio
async def get_user_invitations():
# Async version
invitations = await vortex.get_invitations_by_target("email", "user@example.com")
for invitation in invitations:
print(f"Invitation ID: {invitation.id}, Status: {invitation.status}")
# Sync version
invitations = vortex.get_invitations_by_target_sync("email", "user@example.com")
Accept Invitations
async def accept_user_invitations():
# Async version
result = await vortex.accept_invitations(
invitation_ids=["inv1", "inv2"],
target={"type": "email", "value": "user@example.com"}
)
print(f"Result: {result}")
# Sync version
result = vortex.accept_invitations_sync(
invitation_ids=["inv1", "inv2"],
target={"type": "email", "value": "user@example.com"}
)
Get Specific Invitation
async def get_invitation():
# Async version
invitation = await vortex.get_invitation("invitation-id")
print(f"Invitation: {invitation.id}")
# Sync version
invitation = vortex.get_invitation_sync("invitation-id")
Revoke Invitation
async def revoke_invitation():
# Async version
result = await vortex.revoke_invitation("invitation-id")
print(f"Revoked: {result}")
# Sync version
result = vortex.revoke_invitation_sync("invitation-id")
Group Operations
Get Invitations by Group
async def get_group_invitations():
# Async version
invitations = await vortex.get_invitations_by_group("organization", "org123")
print(f"Found {len(invitations)} invitations")
# Sync version
invitations = vortex.get_invitations_by_group_sync("organization", "org123")
Delete Invitations by Group
async def delete_group_invitations():
# Async version
result = await vortex.delete_invitations_by_group("organization", "org123")
print(f"Deleted: {result}")
# Sync version
result = vortex.delete_invitations_by_group_sync("organization", "org123")
Reinvite
async def reinvite_user():
# Async version
invitation = await vortex.reinvite("invitation-id")
print(f"Reinvited: {invitation.id}")
# Sync version
invitation = vortex.reinvite_sync("invitation-id")
Context Manager Usage
# Async context manager
async with Vortex(api_key="your-api-key") as vortex:
invitations = await vortex.get_invitations_by_target("email", "user@example.com")
# Sync context manager
with Vortex(api_key="your-api-key") as vortex:
invitations = vortex.get_invitations_by_target_sync("email", "user@example.com")
Error Handling
from vortex_sdk import VortexApiError
try:
invitation = vortex.get_invitation_sync("invalid-id")
except VortexApiError as e:
print(f"API Error: {e.message} (Status: {e.status_code})")
except Exception as e:
print(f"Unexpected error: {e}")
Development
Installation
# Install development dependencies
pip install -e ".[dev]"
Running Tests
pytest
Code Formatting
# Format code
black src/ tests/
isort src/ tests/
# Lint code
ruff check src/ tests/
mypy src/
License
MIT
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
vortex_python_sdk-0.0.6.tar.gz
(10.2 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 vortex_python_sdk-0.0.6.tar.gz.
File metadata
- Download URL: vortex_python_sdk-0.0.6.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8189203298a7a6548c6bfb9c17e6f0f61d487be8ce59abaa99e2dc292b87cae
|
|
| MD5 |
0419acfc7d8b82047ea09257dad97b40
|
|
| BLAKE2b-256 |
848311d9f89dea2942fd9a5b00f4b18f0de29017df2c87c6f9185f6664b2de93
|
File details
Details for the file vortex_python_sdk-0.0.6-py3-none-any.whl.
File metadata
- Download URL: vortex_python_sdk-0.0.6-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17a799ab682796367bebb74d427440caa9e94fb6c7603748485aec3d1adbef81
|
|
| MD5 |
1ab5ede4c748695498ddac0a5e059ec1
|
|
| BLAKE2b-256 |
6cff8e7c656232ebdeef8a49f927aaafc00a8b67fb0eb2f2b5bd4aad2dd2a41e
|