Name | fastapi-tenants JSON |
Version |
0.0.2
JSON |
| download |
home_page | None |
Summary | A multi-tenancy solution for FastAPI (database-per-tenant, schema-per-tenant, and row-level-tenants strategies). COMMING SOON!!! |
upload_time | 2025-09-11 07:54:56 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.12 |
license | MIT |
keywords |
async
fastapi
multi-tenancy
saas
sqlalchemy
tenants
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
---
# fastapi-tenants
*A multi-tenancy solution for FastAPI with support for database-per-tenant, schema-per-tenant, and row-level tenancy strategies.*
---
## ✨ Features
* **Flexible strategies** → database-per-tenant, schema-per-tenant, row-level.
* **Tenant-aware middleware** → resolve tenant from headers, subdomains, or tokens.
* **DB session management** → per-tenant scoped sessions.
* **Pluggable design** → extend strategies or authentication as needed.
* **FastAPI-first** → built for dependency injection and async support.
---
## 📦 Installation
```bash
pip install fastapi-tenants
```
Optional extras:
```bash
pip install "fastapi-tenants[postgres]"
pip install "fastapi-tenants[mysql]"
```
---
## 🚀 Quick Start
```python
from fastapi import FastAPI, Depends
from fastapi_tenants import TenancyMiddleware, get_tenant_session
app = FastAPI()
# Enable tenancy
app.add_middleware(
TenancyMiddleware,
strategy="schema", # or "database", "row"
header="X-Tenant-ID"
)
@app.get("/users")
def list_users(session = Depends(get_tenant_session)):
return session.query(User).all()
```
---
## 📚 Roadmap
* [ ] Schema-based tenancy ✅
* [ ] Database-per-tenant support
* [ ] Row-level tenancy
* [ ] Multi-backend support (Postgres, MySQL, SQLite)
* [ ] Example apps & docs
---
## 🤝 Contributing
Contributions are welcome!
Check out [CONTRIBUTING.md](CONTRIBUTING.md) (coming soon).
---
## 📜 License
MIT License © 2025 [Kapil Dagur](https://github.com/KapilDagur)
---
Raw data
{
"_id": null,
"home_page": null,
"name": "fastapi-tenants",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": "Kapil Dagur <kapildagur1306@gmail.com>",
"keywords": "async, fastapi, multi-tenancy, saas, sqlalchemy, tenants",
"author": null,
"author_email": "Kapil Dagur <kapildagur1306@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/50/44/fad27e763e145ac110e0620ea8229a850ce4b4e781aff9075b7e64553d2d/fastapi_tenants-0.0.2.tar.gz",
"platform": null,
"description": "\n---\n\n# fastapi-tenants\n\n*A multi-tenancy solution for FastAPI with support for database-per-tenant, schema-per-tenant, and row-level tenancy strategies.*\n\n---\n\n## \u2728 Features\n\n* **Flexible strategies** \u2192 database-per-tenant, schema-per-tenant, row-level.\n* **Tenant-aware middleware** \u2192 resolve tenant from headers, subdomains, or tokens.\n* **DB session management** \u2192 per-tenant scoped sessions.\n* **Pluggable design** \u2192 extend strategies or authentication as needed.\n* **FastAPI-first** \u2192 built for dependency injection and async support.\n\n---\n\n## \ud83d\udce6 Installation\n\n```bash\npip install fastapi-tenants\n```\n\nOptional extras:\n\n```bash\npip install \"fastapi-tenants[postgres]\"\npip install \"fastapi-tenants[mysql]\"\n```\n\n---\n\n## \ud83d\ude80 Quick Start\n\n```python\nfrom fastapi import FastAPI, Depends\nfrom fastapi_tenants import TenancyMiddleware, get_tenant_session\n\napp = FastAPI()\n\n# Enable tenancy\napp.add_middleware(\n TenancyMiddleware,\n strategy=\"schema\", # or \"database\", \"row\"\n header=\"X-Tenant-ID\"\n)\n\n@app.get(\"/users\")\ndef list_users(session = Depends(get_tenant_session)):\n return session.query(User).all()\n```\n\n---\n\n## \ud83d\udcda Roadmap\n\n* [ ] Schema-based tenancy \u2705\n* [ ] Database-per-tenant support\n* [ ] Row-level tenancy\n* [ ] Multi-backend support (Postgres, MySQL, SQLite)\n* [ ] Example apps & docs\n\n---\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome!\nCheck out [CONTRIBUTING.md](CONTRIBUTING.md) (coming soon).\n\n---\n\n## \ud83d\udcdc License\n\nMIT License \u00a9 2025 [Kapil Dagur](https://github.com/KapilDagur)\n\n---\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A multi-tenancy solution for FastAPI (database-per-tenant, schema-per-tenant, and row-level-tenants strategies). COMMING SOON!!!",
"version": "0.0.2",
"project_urls": {
"Changelog": "https://github.com/KapilDagur/fastapi-tenants/blob/main/CHANGELOG.md",
"Documentation": "https://github.com/KapilDagur/fastapi-tenants#readme",
"Homepage": "https://github.com/KapilDagur/fastapi-tenants",
"Repository": "https://github.com/KapilDagur/fastapi-tenants"
},
"split_keywords": [
"async",
" fastapi",
" multi-tenancy",
" saas",
" sqlalchemy",
" tenants"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "6370aff0bee343fad32ae1061d758e6bc34555e389a847969acdd23386576d3c",
"md5": "59be3c9e7763c0d338b99326fffd5365",
"sha256": "da1647d10e332311f3139ce7b9c7580f7f94bbb26cf22a681a48ba0ca486a791"
},
"downloads": -1,
"filename": "fastapi_tenants-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "59be3c9e7763c0d338b99326fffd5365",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 5623,
"upload_time": "2025-09-11T07:54:54",
"upload_time_iso_8601": "2025-09-11T07:54:54.701387Z",
"url": "https://files.pythonhosted.org/packages/63/70/aff0bee343fad32ae1061d758e6bc34555e389a847969acdd23386576d3c/fastapi_tenants-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5044fad27e763e145ac110e0620ea8229a850ce4b4e781aff9075b7e64553d2d",
"md5": "6f9c3c23cf8ed7f89e64f41ba777a60a",
"sha256": "1849f81029db5b3a1b7d41301a92f839ebf78f0c9290910d88233b5f55e9119c"
},
"downloads": -1,
"filename": "fastapi_tenants-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "6f9c3c23cf8ed7f89e64f41ba777a60a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 4196,
"upload_time": "2025-09-11T07:54:56",
"upload_time_iso_8601": "2025-09-11T07:54:56.100314Z",
"url": "https://files.pythonhosted.org/packages/50/44/fad27e763e145ac110e0620ea8229a850ce4b4e781aff9075b7e64553d2d/fastapi_tenants-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-11 07:54:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "KapilDagur",
"github_project": "fastapi-tenants",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "fastapi-tenants"
}