fastapi-spawn 0.4.8__tar.gz → 0.4.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/PKG-INFO +1 -1
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/__init__.py +1 -1
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/v1/auth/sso.py.j2 +36 -1
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/pyproject.toml +1 -1
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/.gitignore +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/LICENSE +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/README.md +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/cli.py +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/config.py +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/constants.py +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/generator.py +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/interactive.py +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/alembic/alembic.ini.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/alembic/env.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/__init__.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/deps.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/graphql.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/v1/auth/router.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/v1/health/router.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/v1/payments/router.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/v1/router.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/v1/streaming/router.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/v1/ws/router.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/ai.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/config.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/email.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/exceptions.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/logger.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/logging.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/monitoring.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/notifications.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/ocr.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/search.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/security.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/storage.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/vector_db.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/ws_manager.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/db/session.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/frontend/index.html.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/main.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/middleware/__init__.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/middleware/rate_limit.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/middleware/request_logger.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/base/Makefile.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/base/README.md.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/base/env.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/base/env_example.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/base/gitignore.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/base/pre_commit.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/base/pyproject.toml.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/ci/github/publish.yml.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/ci/github/tests.yml.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/ci/gitlab/gitlab-ci.yml.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/db/seed.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/docker/Dockerfile.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/docker/docker-compose.yml.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/docker/dockerignore.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/infra/docker/docker-compose.prod.yml.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/infra/helm/Chart.yaml.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/infra/helm/values.yaml.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/infra/terraform/main.tf.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/infra/terraform/variables.tf.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/root/main.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/tasks/arq_worker.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/tasks/celery_app.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/tasks/sample_tasks.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/tests/conftest.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/tests/test_health.py.j2 +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/utils.py +0 -0
- {fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/validators.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastapi-spawn
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.9
|
|
4
4
|
Summary: A powerful CLI tool to scaffold production-ready FastAPI projects with flexible database, auth, broker, and deployment options.
|
|
5
5
|
Project-URL: Homepage, https://github.com/Bishwajitgarai/fastapi-spawn
|
|
6
6
|
Project-URL: Documentation, https://github.com/Bishwajitgarai/fastapi-spawn#readme
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/v1/auth/sso.py.j2
RENAMED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from fastapi import APIRouter, Request, HTTPException
|
|
2
2
|
from fastapi_sso.sso.google import GoogleSSO
|
|
3
|
+
from fastapi_sso.sso.github import GithubSSO
|
|
3
4
|
from app.core.config import settings
|
|
4
5
|
|
|
5
6
|
router = APIRouter(prefix="/sso", tags=["auth"])
|
|
@@ -32,5 +33,39 @@ async def google_callback(request: Request):
|
|
|
32
33
|
"email": user.email,
|
|
33
34
|
"first_name": user.first_name,
|
|
34
35
|
"last_name": user.last_name,
|
|
35
|
-
"picture": user.picture
|
|
36
|
+
"picture": user.picture,
|
|
37
|
+
"provider": "google"
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
# --- GitHub SSO ---
|
|
41
|
+
|
|
42
|
+
# Requires GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET in .env
|
|
43
|
+
github_sso = GithubSSO(
|
|
44
|
+
client_id=getattr(settings, "GITHUB_CLIENT_ID", "placeholder"),
|
|
45
|
+
client_secret=getattr(settings, "GITHUB_CLIENT_SECRET", "placeholder"),
|
|
46
|
+
redirect_uri="http://localhost:8000/api/v1/auth/sso/github/callback",
|
|
47
|
+
allow_insecure_http=True, # Set to False in production
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
@router.get("/github/login")
|
|
51
|
+
async def github_login():
|
|
52
|
+
"""Redirects the user to the GitHub login page."""
|
|
53
|
+
with github_sso:
|
|
54
|
+
return await github_sso.get_login_redirect()
|
|
55
|
+
|
|
56
|
+
@router.get("/github/callback")
|
|
57
|
+
async def github_callback(request: Request):
|
|
58
|
+
"""Process login response from GitHub and return user info."""
|
|
59
|
+
with github_sso:
|
|
60
|
+
user = await github_sso.verify_and_process(request)
|
|
61
|
+
if not user:
|
|
62
|
+
raise HTTPException(status_code=400, detail="Failed to login via GitHub")
|
|
63
|
+
|
|
64
|
+
return {
|
|
65
|
+
"id": user.id,
|
|
66
|
+
"email": user.email,
|
|
67
|
+
"first_name": getattr(user, "first_name", None),
|
|
68
|
+
"last_name": getattr(user, "last_name", None),
|
|
69
|
+
"picture": getattr(user, "picture", None),
|
|
70
|
+
"provider": "github"
|
|
36
71
|
}
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "fastapi-spawn"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.9"
|
|
8
8
|
description = "A powerful CLI tool to scaffold production-ready FastAPI projects with flexible database, auth, broker, and deployment options."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/v1/auth/router.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/v1/health/router.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/v1/payments/router.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/api/v1/ws/router.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/exceptions.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/monitoring.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/notifications.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/vector_db.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/core/ws_manager.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/frontend/index.html.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/middleware/__init__.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/app/middleware/rate_limit.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/ci/github/publish.yml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/ci/gitlab/gitlab-ci.yml.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/docker/docker-compose.yml.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/infra/helm/Chart.yaml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/infra/helm/values.yaml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/infra/terraform/main.tf.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/infra/terraform/variables.tf.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.8 → fastapi_spawn-0.4.9}/fastapi_spawn/templates/tasks/sample_tasks.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|