# Phlow Auth Python
JWT authentication middleware for AI agents with Supabase integration.
## Installation
```bash
pip install phlow-auth
```
## Quick Start
```python
from phlow_auth import PhlowMiddleware, PhlowConfig, AgentCard
# Configure your agent
config = PhlowConfig(
supabase_url="https://your-project.supabase.co",
supabase_anon_key="your-anon-key",
agent_card=AgentCard(
name="My Agent",
description="AI assistant agent",
service_url="https://my-agent.com",
skills=["chat", "analysis"],
metadata={"agent_id": "my-agent-id", "public_key": "your-public-key"}
),
private_key="your-private-key"
)
# Initialize middleware
phlow = PhlowMiddleware(config)
# Use as decorator with FastAPI
from fastapi import FastAPI, Request
app = FastAPI()
@app.post("/api/chat")
@phlow.authenticate()
async def chat(request: Request):
# Access agent context
agent = request.phlow.agent
supabase = request.phlow.supabase
return {"message": f"Hello from {agent.name}"}
```
## Features
- **JWT Authentication** - Verify A2A Protocol JWT tokens
- **Agent Storage** - Store and retrieve agent cards from Supabase
- **RLS Helpers** - Generate basic Row Level Security policies
- **Event Logging** - Track authentication events
- **Multi-Framework** - Works with FastAPI, Flask, and Django
## Development
```bash
# Clone the repository
git clone https://github.com/prassanna-ravishankar/phlow.git
cd phlow/packages/phlow-auth-python
# Install development dependencies
uv sync --extra dev
# Run tests
uv run pytest
# Format code
uv run black src tests
uv run isort src tests
# Type checking
uv run mypy src
```
## Documentation
- 📖 Documentation: https://prassanna.io/phlow/
- 🐛 Issues: https://github.com/prassanna-ravishankar/phlow/issues
- 💬 Discussions: https://github.com/prassanna-ravishankar/phlow/discussions
## License
MIT License - see LICENSE file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "phlow-auth",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "a2a, agent, authentication, jwt, middleware, phlow, supabase",
"author": "Prassanna Ravishankar",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/d1/08/5ded9b9ff53cc2a0d3b85ef1f928467cba45d54a7b8ec5adeed9c53d1e28/phlow_auth-0.0.5.tar.gz",
"platform": null,
"description": "# Phlow Auth Python\n\nJWT authentication middleware for AI agents with Supabase integration.\n\n## Installation\n\n```bash\npip install phlow-auth\n```\n\n## Quick Start\n\n```python\nfrom phlow_auth import PhlowMiddleware, PhlowConfig, AgentCard\n\n# Configure your agent\nconfig = PhlowConfig(\n supabase_url=\"https://your-project.supabase.co\",\n supabase_anon_key=\"your-anon-key\",\n agent_card=AgentCard(\n name=\"My Agent\",\n description=\"AI assistant agent\",\n service_url=\"https://my-agent.com\",\n skills=[\"chat\", \"analysis\"],\n metadata={\"agent_id\": \"my-agent-id\", \"public_key\": \"your-public-key\"}\n ),\n private_key=\"your-private-key\"\n)\n\n# Initialize middleware\nphlow = PhlowMiddleware(config)\n\n# Use as decorator with FastAPI\nfrom fastapi import FastAPI, Request\n\napp = FastAPI()\n\n@app.post(\"/api/chat\")\n@phlow.authenticate()\nasync def chat(request: Request):\n # Access agent context\n agent = request.phlow.agent\n supabase = request.phlow.supabase\n return {\"message\": f\"Hello from {agent.name}\"}\n```\n\n## Features\n\n- **JWT Authentication** - Verify A2A Protocol JWT tokens\n- **Agent Storage** - Store and retrieve agent cards from Supabase\n- **RLS Helpers** - Generate basic Row Level Security policies\n- **Event Logging** - Track authentication events\n- **Multi-Framework** - Works with FastAPI, Flask, and Django\n\n## Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/prassanna-ravishankar/phlow.git\ncd phlow/packages/phlow-auth-python\n\n# Install development dependencies\nuv sync --extra dev\n\n# Run tests\nuv run pytest\n\n# Format code\nuv run black src tests\nuv run isort src tests\n\n# Type checking\nuv run mypy src\n```\n\n## Documentation\n\n- \ud83d\udcd6 Documentation: https://prassanna.io/phlow/\n- \ud83d\udc1b Issues: https://github.com/prassanna-ravishankar/phlow/issues\n- \ud83d\udcac Discussions: https://github.com/prassanna-ravishankar/phlow/discussions\n\n## License\n\nMIT License - see LICENSE file for details.",
"bugtrack_url": null,
"license": null,
"summary": "JWT authentication middleware for AI agents with Supabase integration",
"version": "0.0.5",
"project_urls": {
"Documentation": "https://prassanna.io/phlow/",
"Issues": "https://github.com/prassanna-ravishankar/phlow/issues",
"Source": "https://github.com/prassanna-ravishankar/phlow"
},
"split_keywords": [
"a2a",
" agent",
" authentication",
" jwt",
" middleware",
" phlow",
" supabase"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "9362b97800d061132bfb83361dd949e5a1f989839139887e901331f89801732b",
"md5": "ad62e05525689cdcf54bd028b42d4731",
"sha256": "3aa4def66a491c8272d6f6f39b5b0a3c8e33e56777828612f7242ebc22f3e870"
},
"downloads": -1,
"filename": "phlow_auth-0.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ad62e05525689cdcf54bd028b42d4731",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 13010,
"upload_time": "2025-07-09T08:19:58",
"upload_time_iso_8601": "2025-07-09T08:19:58.372091Z",
"url": "https://files.pythonhosted.org/packages/93/62/b97800d061132bfb83361dd949e5a1f989839139887e901331f89801732b/phlow_auth-0.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d1085ded9b9ff53cc2a0d3b85ef1f928467cba45d54a7b8ec5adeed9c53d1e28",
"md5": "0953494c91a6e907d6b75958edce5778",
"sha256": "e5eacc17b2b2183106bca0a1829215870c1942dbb5cfebe5c562715146ec5604"
},
"downloads": -1,
"filename": "phlow_auth-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "0953494c91a6e907d6b75958edce5778",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 10578,
"upload_time": "2025-07-09T08:19:59",
"upload_time_iso_8601": "2025-07-09T08:19:59.862593Z",
"url": "https://files.pythonhosted.org/packages/d1/08/5ded9b9ff53cc2a0d3b85ef1f928467cba45d54a7b8ec5adeed9c53d1e28/phlow_auth-0.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-09 08:19:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "prassanna-ravishankar",
"github_project": "phlow",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "phlow-auth"
}