Python SDK for Fastn connector authentication
Project description
fastn-auth (Python)
Python SDK for Fastn connector authentication. Provides a simple async interface for initiating OAuth and credential-based connector authentication flows.
Installation
pip install fastn-auth
Quick Start
import asyncio
from fastn_auth import FastnAuth
async def main():
# Create a client
client = FastnAuth(
space_id="your-space-id",
api_key="your-api-key",
base_url="https://live.fastn.ai/api", # optional
)
# Initialize an authentication session
session = await client.initialize(
connector_id="google-sheets",
org_id="org-id", # optional
tenant_id="tenant-id" # optional
)
# Redirect the user to complete OAuth
print(f"Redirect user to: {session.redirect_url}")
# Wait for the user to complete authentication
result = await session.wait_for_completion()
print("Authentication complete!", result.credentials)
asyncio.run(main())
API Reference
FastnAuth
The main client class for initializing authentication flows.
Constructor
FastnAuth(
space_id: str,
api_key: str,
base_url: str | None = None,
)
| Parameter | Type | Required | Description |
|---|---|---|---|
space_id |
str |
Yes | The space/workspace ID |
api_key |
str |
Yes | API key for authentication |
base_url |
str |
No | Base URL for the Fastn API (defaults to https://live.fastn.ai/api) |
Methods
async initialize(...) -> AuthSession
Initialize a connector authentication flow.
async def initialize(
self,
connector_id: str,
org_id: str | None = None,
tenant_id: str | None = None,
connection_id: str | None = None,
) -> AuthSession
| Parameter | Type | Required | Description |
|---|---|---|---|
connector_id |
str |
Yes | The connector ID (e.g., "google-sheets", "salesforce") |
org_id |
str |
No | Organization ID |
tenant_id |
str |
No | Tenant ID |
connection_id |
str |
No | Connection instance ID (defaults to "default") |
AuthSession
Represents an active authentication session.
Properties
| Property | Type | Description |
|---|---|---|
id |
str |
Unique identifier for this session |
state_key |
str |
State key for the OAuth flow |
redirect_url |
str |
URL to redirect the user to for OAuth authorization |
Methods
async wait_for_completion(options: PollOptions | None = None) -> AuthResult
Poll for the authentication status and wait for completion.
@dataclass
class PollOptions:
interval: float = 2.0 # Polling interval in seconds
timeout: float = 300.0 # Maximum wait time in seconds (5 minutes)
Returns an AuthResult object:
@dataclass
class AuthResult:
status: AuthStatus
credentials: Credentials | None = None
error_message: str | None = None
async get_status() -> StatusResponse
Get the current status of the authentication session.
Error Handling
The SDK provides custom exception classes for different failure scenarios:
from fastn_auth import (
FastnAuthError,
TimeoutError,
AuthenticationError,
NetworkError,
InvalidResponseError,
)
try:
result = await session.wait_for_completion()
except TimeoutError:
print("Authentication timed out")
except AuthenticationError as e:
print(f"Authentication failed: {e.message}")
except NetworkError as e:
print(f"Network error: {e.message}, status: {e.status_code}")
Status Lifecycle
| Status | Description |
|---|---|
INACTIVE |
OAuth initiated, awaiting user authorization |
ACTIVE |
Connector successfully activated |
FAILED |
Activation failed |
Requirements
- Python 3.9 or higher
- aiohttp >= 3.8.0
License
MIT
Project details
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 fastn_auth-1.0.0.tar.gz.
File metadata
- Download URL: fastn_auth-1.0.0.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93d254379942490ab6bb651ed9597d0ad1aaafc32ceb86c63ff8fc2762fee070
|
|
| MD5 |
da98812d3357c56ed1a7700d53319ad0
|
|
| BLAKE2b-256 |
6abf7f7a1c716267eb6ac950efb180011ef50ee83c3322953e4243c8b0a452a2
|
File details
Details for the file fastn_auth-1.0.0-py3-none-any.whl.
File metadata
- Download URL: fastn_auth-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9092a3a48f2da52bd46343bb19a4c7d3336b5ac416650611aaa699cf6777d8cb
|
|
| MD5 |
19df7214a32fded5f225a7d1e5696a22
|
|
| BLAKE2b-256 |
1ccc6bd9cada5119b83a69efa4f1db8c82bb7e745e8ecff8671885ead25ff41d
|