🔐 FastSecForge
GitHub: https://github.com/reprompts/fastsecforge
Community: https://dev.to/repromptsquest
LinkedIn: https://www.linkedin.com/groups/14631875/
FastSecForge is a robust, pluggable Python security boilerplate generator built on top of FastAPI, SQLAlchemy, and MongoDB. It provides JWT authentication, user management, and a powerful CLI (typer) to scaffold fully functional, secure project templates in one command.
🚀 Features
- 🔑 JWT Authentication with secure password hashing (
passlib[bcrypt]) - 🧩 Supports SQL (SQLAlchemy) & MongoDB (Motor)
- 📦 Pydantic v2+ for type-safe data validation and settings
- 🔧 Typer-based CLI for instant FastAPI boilerplate creation
- ♻️ Async-ready architecture optimized for performance
- 🔐 Security best practices out of the box (OAuth2 flows, CORS, rate limiting)
📦 Installation
Install FastSecForge from PyPI:
pip install fastsecforge
Or install in editable mode from source:
git clone https://github.com/reprompts/fastsecforge.git
cd fastsecforge
python -m venv venv
source venv/bin/activate # Windows: venv\\Scripts\\activate
pip install -e . # editable mode
🛠️ CLI Usage
FastSecForge exposes one primary command: new_project. This will scaffold a complete FastAPI project for you.
fastsecforge <project_name>
<project_name>: Name of the new project (also used as package name).
After running this, you will have:
<project_name>/
└── src/
└── <project_name>/
├── __init__.py
├── main.py # FastAPI app entrypoint
├── config.py # Settings loader
├── database.py # DB session & models
├── core/
│ ├── __init__.py
│ └── security.py # Auth, password hashing, JWT utilities
├── models/
│ ├── __init__.py
│ └── user.py # User ORM models
├── routers/
│ ├── __init__.py
│ ├── auth.py # Authentication routes
│ └── users.py # User management routes
├── schemas/
│ ├── __init__.py
│ └── user.py # Pydantic schemas
└── templates/ # Additional template assets
🚀 Running the Generated Project
-
Navigate into the new project
cd <project_name>
-
Create & activate a virtual environment
python -m venv venv source venv/bin/activate # Windows: venv\\Scripts\\activate
-
Install dependencies
pip install -r requirements.txt
-
Configure environment variables
- Rename
.env.exampleto.env - Fill in your database URIs, JWT secret key, and other settings
- Rename
-
Start the development server
uvicorn src.<project_name>.main:app --reload
Your API will be available at http://127.0.0.1:8000 with interactive docs at http://127.0.0.1:8000/docs.
🧪 Tests (Optional)
If you scaffold tests, run:
pytest
📜 License
This project is licensed under the MIT License.
🤝 Contributing
Contributions welcome! Open an issue or submit a pull request against main.
Metadata
Release files for fastsecforge 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastsecforge-0.1.4.tar.gz | 13.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastsecforge-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.6 kB
Release files / fastsecforge-0.1.4.tar.gz
| Download URL | fastsecforge-0.1.4.tar.gz |
|---|---|
| Size | 13.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c7952322ba7a6c669ef0cc687b9fd7b75fa4aaef325e7546abfe3ef69e4eaba3
|
|
BLAKE2b-256 checksum How to use checksums |
98a8cf5409f83661551ae0c1539bfbc477e506c28d88af0057eaf3a615c75e39
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.4
|
Release files / fastsecforge-0.1.4-py3-none-any.whl
| Download URL | fastsecforge-0.1.4-py3-none-any.whl |
|---|---|
| Size | 19.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1cb5b7a54f4af82d3c8fae067fa3ac82416809cf8f241a3e5ac23d7ea4932007
|
|
BLAKE2b-256 checksum How to use checksums |
f9692ef8758650c15c86e22045f512a8111ecf9a25eca0cbe26468850d02b73a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.4
|