Skip to main content

🔐 FastSecForge

License: MIT

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

  1. Navigate into the new project

    cd <project_name>
    
  2. Create & activate a virtual environment

    python -m venv venv
    source venv/bin/activate    # Windows: venv\\Scripts\\activate
    
  3. Install dependencies

    pip install -r requirements.txt
    
  4. Configure environment variables

    • Rename .env.example to .env
    • Fill in your database URIs, JWT secret key, and other settings
  5. 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)

Source distribution for fastsecforge 0.1.4
File Size Uploaded
fastsecforge-0.1.4.tar.gz 13.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastsecforge 0.1.4
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page