diff --git a/README.md b/README.md index 90b5443..8d4cfa6 100644 --- a/README.md +++ b/README.md @@ -1,164 +1,145 @@ -

- - - - - -
-

- -# Official Python SDK - -[![PyPI version](https://img.shields.io/pypi/v/scalekit-sdk-python.svg?style=flat-square)](https://pypi.org/project/scalekit-sdk-python/) -[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -[![Python versions](https://img.shields.io/pypi/pyversions/scalekit-sdk-python.svg?style=flat-square)](https://pypi.org/project/scalekit-sdk-python/) - -Scalekit is the **auth stack for AI apps** - from human authentication to agent authorization. Build secure AI products faster with authentication for humans (SSO, passwordless, full-stack auth) and agents (MCP/APIs, delegated actions), all unified on one platform. This Python SDK enables both traditional B2B authentication and cutting-edge agentic workflows. +
-## ๐Ÿค– Agent-First Features + + + Scalekit + + -- **๐Ÿ” Agent Identity**: Agents as first-class actors with human ownership and org context -- **๐ŸŽฏ MCP-Native OAuth 2.1**: Purpose-built for Model Context Protocol with DCR/PKCE support -- **โฐ Ephemeral Credentials**: Time-bound, task-based authorization (minutes, not days) -- **๐Ÿ”’ Token Vault**: Per-user, per-tool token storage with rotation and progressive consent -- **๐Ÿ‘ฅ Human-in-the-Loop**: Step-up authentication when risk crosses thresholds -- **๐Ÿ“Š Immutable Audit**: Track which user initiated, which agent acted, what resource was accessed +

Official Python SDK for Scalekit โ€” the auth stack for agents.
+authentication, authorization, and tool-calling for human-in-the-loop and autonomous agent flows.

-## ๐Ÿ‘จโ€๐Ÿ’ผ Human Authentication +[![PyPI version](https://img.shields.io/pypi/v/scalekit-sdk-python.svg)](https://pypi.org/project/scalekit-sdk-python/) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![Python versions](https://img.shields.io/pypi/pyversions/scalekit-sdk-python.svg)](https://pypi.org/project/scalekit-sdk-python) -- **๐Ÿ” Enterprise SSO**: Support for SAML and OIDC protocols -- **๐Ÿ‘ฅ SCIM Provisioning**: Automated user provisioning and deprovisioning -- **๐Ÿš€ Passwordless Authentication**: Magic links, OTP, and modern auth flows -- **๐Ÿข Multi-tenant Architecture**: Organization-level authentication policies -- **๐Ÿ“ฑ Social Logins**: Support for popular social identity providers -- **๐Ÿ›ก๏ธ Full-Stack Auth**: Complete IdP-of-record solution for B2B SaaS -- **๐Ÿ Pythonic API**: Clean, intuitive interface following Python conventions +**[๐Ÿ“– Documentation](https://docs.scalekit.com)** ยท **[๐Ÿ› Report an Issue](https://github.com/scalekit-inc/scalekit-sdk-python/issues)** ยท **[๐Ÿ’ฌ Join our Slack](https://join.slack.com/t/scalekit-community/shared_invite/zt-3gsxwr4hc-0tvhwT2b_qgVSIZQBQCWRw)** -
-๐Ÿ“š Documentation โ€ข ๐Ÿš€ SSO Quickstart โ€ข ๐Ÿ’ป API Reference
-
- -## Pre-requisites - -1. [Sign up](https://scalekit.com) for a Scalekit account. -2. Get your ```env_url```, ```client_id``` and ```client_secret``` from the Scalekit dashboard. - -## Installation - -Install Scalekit SDK using your preferred package manager. +--- + +this is the official Python SDK for [Scalekit](https://scalekit.com), โ€” the auth stack for agents. Build secure AI products faster with authentication for humans (SSO, passwordless, full-stack auth) and agents (Mcp/APIs, delegated actions), all unified on one platform. +This Python SDK enables both traditional B2B authentication and cutting-edge agentic workflows. +#### Agent-First Features +- **Agent Identity** โ€” Agents as first-class actors with human ownership and org context +- **MCP-Native OAuth 2.1** โ€” Purpose-built for Model Context Protocol with DCR/PKCE support +- **Ephemeral Credentials** โ€” Time-bound, task-based authorization (minutes, not days) +- **Token Vault** โ€” per-user, per-tool token storage with rotation and progressive consent +- **Human-in-the-Loop** โ€” step-up authentication when risk crosses thresholds +- **Immutable Audit** โ€” track which user initiated, which agent acted, what resource was accessed +#### Human Authentication +- **Enterprise SSO** โ€” support for SAML and OIDC protocols +- **SCIM Provisioning** โ€” automated user provisioning and deprovisioning +- **Passwordless Authentication** โ€” magic links, OTP, and modern auth flows +- **Multi-tenant Architecture** โ€” organization-level authentication policies +- **Social Logins** โ€” support for popular social identity providers +- **Full-Stack Auth** โ€” complete IdP-of-record solution for B2B SaaS +- **Pythonic API** โ€” idiomatic Python with clean, intuitive interfaces +--- +### Getting started +#### Prerequisites +- **Python** โ‰ฅ 3.8 +- [Scalekit account](https://scalekit.com) with `env_url`, `client_id`, and `client_secret` +#### Installation ```sh pip install scalekit-sdk-python - +# or +poetry add scalekit-sdk-python ``` - -## Usage - -```py - +#### Usage +```python from scalekit import ScalekitClient -sc = ScalekitClient( - env_url, - client_id, - client_secret +scalekit_client = ScalekitClient( + client_id="your-client-id", + client_secret="your-client-secret", + env_url="https://your-env.scalekit.com" ) -# Use the sc object to interact with the Scalekit API -auth_url = sc.get_authorization_url( - "https://acme-corp.com/redirect-uri", - state="state", - connection_id="con_123456789" +# use scalekit_client to interact with the Scalekit API +auth_url = scalekit_client.get_authorization_url( + "https://acme-corp.com/redirect-uri", + state="state", + connection_id="con_123456789" ) - ``` - -##### Minimum Requirements - -To use the Scalekit Python SDK, you must have the following: - -| Component | Version | -| --------- | ------- | -| Python | 3.8+ | - -> **Tip:** Although Python 3.8 meets the minimum requirement, using a more recent version (such as Python 3.9 or later) is advisable. - - -## Examples - SSO with FastAPI - -Below is a simple code sample that showcases how to implement Single Sign-on using Scalekit SDK - -```py +--- +### Example โ€” SSO with FastAPI +```python from fastapi import FastAPI, Request, Response from scalekit import ScalekitClient -import uvicorn app = FastAPI() - -sc = ScalekitClient( - env_url, - client_id, - client_secret +scalekit_client = ScalekitClient( + env_url="https://your-env.scalekit.com", + client_id="your-client-id", + client_secret="your-client-secret" ) - redirect_uri = "http://localhost:8000/auth/callback" @app.get("/auth/login") async def auth_login(request: Request): - auth_url = sc.get_authorization_url( - redirect_uri, - state="state", - connection_id="con_123456789" - ) - return Response(status_code=302, headers={"Location": auth_url}) - + auth_url = scalekit_client.get_authorization_url( + redirect_uri, + state="state", + connection_id="con_123456789" + ) + return Response(status_code=302, headers={"Location": auth_url}) @app.get("/auth/callback") async def auth_callback(request: Request): - code = request.query_params.get("code") - token = sc.authenticate_with_code( - code, - redirect_uri - ) - response = JSONResponse(content=token) - response.set_cookie("access_token", token["access_token"]) - - return response - + code = request.query_params.get("code") + token = scalekit_client.authenticate_with_code(code, redirect_uri) + response = Response(content="Authenticated successfully") + response.set_cookie( + "access_token", + token["access_token"], + httponly=True, + secure=True, + samesite="Lax" + ) + return response if __name__ == "__main__": - uvicorn.run(app, port=8080) - + import uvicorn + uvicorn.run(app, port=8080) +``` ``` - -## ๐Ÿ“ฑ Example Apps - -Explore fully functional sample applications built with popular Python frameworks and the Scalekit SDK: | Framework | Repository | Description | |-----------|------------|-------------| | **FastAPI** | [scalekit-fastapi-example](https://github.com/scalekit-developers/scalekit-fastapi-example) | Modern async Python API framework | - -## ๐Ÿ”— Helpful Links - -### ๐Ÿ“– Quickstart Guides -- [**SSO Integration**](https://docs.scalekit.com/sso/quickstart/) - Implement enterprise Single Sign-on -- [**Full Stack Auth**](https://docs.scalekit.com/fsa/quickstart/) - Complete authentication solution -- [**Passwordless Auth**](https://docs.scalekit.com/passwordless/quickstart/) - Modern authentication flows -- [**Social Logins**](https://docs.scalekit.com/social-logins/quickstart/) - Popular social identity providers -- [**Machine-to-Machine**](https://docs.scalekit.com/m2m/quickstart/) - API authentication - -### ๐Ÿ“š Documentation & Reference -- [**API Reference**](https://docs.scalekit.com/apis) - Complete API documentation -- [**Developer Kit**](https://docs.scalekit.com/dev-kit/) - Tools and utilities -- [**API Authentication Guide**](https://docs.scalekit.com/guides/authenticate-scalekit-api/) - Secure API access - -### ๐Ÿ› ๏ธ Additional Resources -- [**Setup Guide**](https://docs.scalekit.com/guides/setup-scalekit/) - Initial platform configuration -- [**Code Examples**](https://docs.scalekit.com/directory/code-examples/) - Ready-to-use code snippets -- [**Admin Portal Guide**](https://docs.scalekit.com/directory/guides/admin-portal/) - Administrative interface -- [**Launch Checklist**](https://docs.scalekit.com/directory/guides/launch-checklist/) - Pre-production checklist - -## License - -This project is licensed under the **MIT license**. -See the [LICENSE](LICENSE) file for more information. +| **Django** | [scalekit-django-auth-example](https://github.com/scalekit-inc/scalekit-django-auth-example) | Django web framework integration | +| **Flask** | [scalekit-flask-auth-example](https://github.com/scalekit-inc/scalekit-flask-auth-example) | Flask microframework integration | + +--- +### Helpful links +#### Quickstart Guides +- [SSO Integration](https://docs.scalekit.com/sso/quickstart/) โ€” implement enterprise Single Sign-on +- [Full Stack Auth](https://docs.scalekit.com/fsa/quickstart/) โ€” complete authentication solution +- [Passwordless Auth](https://docs.scalekit.com/passwordless/quickstart/) โ€” modern authentication flows +- [Social Logins](https://docs.scalekit.com/social-logins/quickstart/) โ€” popular social identity providers +- [Machine-to-Machine](https://docs.scalekit.com/m2m/quickstart/) โ€” API authentication +#### Documentation & Reference +- [API Reference](https://docs.scalekit.com/apis) โ€” complete API documentation +- [Developer Kit](https://docs.scalekit.com/dev-kit/) โ€” tools and utilities +- [API authentication guide](https://docs.scalekit.com/guides/authenticate-scalekit-api/) โ€” secure API access +#### Additional resources +- [Setup Guide](https://docs.scalekit.com/guides/setup-scalekit/) โ€” initial platform configuration +- [Code examples](https://docs.scalekit.com/directory/code-examples/) โ€” ready-to-use code snippets +- [Admin Portal Guide](https://docs.scalekit.com/directory/guides/admin-portal/) โ€” administrative interface +- [Launch Checklist](https://docs.scalekit.com/directory/guides/launch-checklist/) โ€” pre-production checklist +--- +### Contributing + +Contributions are welcome! Coming soon: contribution guidelines. + +For now: +1. Fork this repository +2. Create a branch โ€” `git checkout -b fix/my-improvement` +3. Make your changes +4. Run tests โ€” `pytest` +5. Open a Pull Request + +--- +### License +This project is licensed under the **MIT license**. See the [LICENSE](LICENSE) file for more information. diff --git a/images/scalekit.jpg b/images/scalekit.jpg new file mode 100644 index 0000000..d9a9541 Binary files /dev/null and b/images/scalekit.jpg differ diff --git a/scalekit-logo.svg b/scalekit-logo.svg new file mode 100644 index 0000000..baa55dc --- /dev/null +++ b/scalekit-logo.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + +