phlow-auth


Namephlow-auth JSON
Version 0.0.5 PyPI version JSON
download
home_pageNone
SummaryJWT authentication middleware for AI agents with Supabase integration
upload_time2025-07-09 08:19:59
maintainerNone
docs_urlNone
authorPrassanna Ravishankar
requires_python>=3.10
licenseNone
keywords a2a agent authentication jwt middleware phlow supabase
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 2.61326s