fastapi-spawn 0.4.4__tar.gz → 0.4.6__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.
Files changed (64) hide show
  1. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/PKG-INFO +11 -2
  2. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/README.md +10 -1
  3. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/__init__.py +1 -1
  4. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/cli.py +15 -1
  5. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/pyproject.toml +1 -1
  6. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/.gitignore +0 -0
  7. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/LICENSE +0 -0
  8. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/config.py +0 -0
  9. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/constants.py +0 -0
  10. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/generator.py +0 -0
  11. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/interactive.py +0 -0
  12. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/alembic/alembic.ini.j2 +0 -0
  13. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/alembic/env.py.j2 +0 -0
  14. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/__init__.py.j2 +0 -0
  15. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/api/deps.py.j2 +0 -0
  16. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/api/graphql.py.j2 +0 -0
  17. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/api/v1/auth/router.py.j2 +0 -0
  18. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/api/v1/health/router.py.j2 +0 -0
  19. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/api/v1/router.py.j2 +0 -0
  20. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/api/v1/ws/router.py.j2 +0 -0
  21. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/ai.py.j2 +0 -0
  22. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/config.py.j2 +0 -0
  23. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/email.py.j2 +0 -0
  24. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/exceptions.py.j2 +0 -0
  25. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/logger.py.j2 +0 -0
  26. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/logging.py.j2 +0 -0
  27. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/monitoring.py.j2 +0 -0
  28. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/notifications.py.j2 +0 -0
  29. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/security.py.j2 +0 -0
  30. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/storage.py.j2 +0 -0
  31. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/vector_db.py.j2 +0 -0
  32. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/ws_manager.py.j2 +0 -0
  33. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/db/session.py.j2 +0 -0
  34. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/frontend/index.html.j2 +0 -0
  35. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/main.py.j2 +0 -0
  36. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/middleware/__init__.py.j2 +0 -0
  37. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/middleware/rate_limit.py.j2 +0 -0
  38. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/middleware/request_logger.py.j2 +0 -0
  39. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/Makefile.j2 +0 -0
  40. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/README.md.j2 +0 -0
  41. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/env.j2 +0 -0
  42. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/env_example.j2 +0 -0
  43. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/gitignore.j2 +0 -0
  44. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/pre_commit.j2 +0 -0
  45. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/pyproject.toml.j2 +0 -0
  46. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/ci/github/publish.yml.j2 +0 -0
  47. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/ci/github/tests.yml.j2 +0 -0
  48. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/ci/gitlab/gitlab-ci.yml.j2 +0 -0
  49. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/docker/Dockerfile.j2 +0 -0
  50. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/docker/docker-compose.yml.j2 +0 -0
  51. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/docker/dockerignore.j2 +0 -0
  52. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/infra/docker/docker-compose.prod.yml.j2 +0 -0
  53. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/infra/helm/Chart.yaml.j2 +0 -0
  54. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/infra/helm/values.yaml.j2 +0 -0
  55. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/infra/terraform/main.tf.j2 +0 -0
  56. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/infra/terraform/variables.tf.j2 +0 -0
  57. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/root/main.py.j2 +0 -0
  58. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/tasks/arq_worker.py.j2 +0 -0
  59. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/tasks/celery_app.py.j2 +0 -0
  60. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/tasks/sample_tasks.py.j2 +0 -0
  61. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/tests/conftest.py.j2 +0 -0
  62. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/tests/test_health.py.j2 +0 -0
  63. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/fastapi_spawn/utils.py +0 -0
  64. {fastapi_spawn-0.4.4 → fastapi_spawn-0.4.6}/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.4
3
+ Version: 0.4.6
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
@@ -473,16 +473,25 @@ fastapi-spawn add gemini # Google Generative AI client
473
473
  fastapi-spawn add qdrant # Qdrant vector DB
474
474
  fastapi-spawn add chroma # ChromaDB local vector DB
475
475
  fastapi-spawn add pinecone # Pinecone cloud vector DB
476
+ fastapi-spawn add meilisearch # Meilisearch typo-tolerant search
477
+ fastapi-spawn add ocr # PDF & OCR data extraction pipeline
478
+
479
+ # Payments & Identity
480
+ fastapi-spawn add stripe # Stripe payments & webhooks
481
+ fastapi-spawn add sso # FastAPI SSO (Google/GitHub login)
476
482
 
477
483
  # Messaging & Async Workers
478
484
  fastapi-spawn add celery # Celery worker + tasks/
479
485
  fastapi-spawn add arq # Arq async job queues using Redis
480
486
  fastapi-spawn add websockets # WebSocket connection manager
487
+ fastapi-spawn add sse # Server-Sent Events streaming
481
488
 
482
- # Storage, APIs & Monitoring
489
+ # Storage, APIs, Seeding & Monitoring
483
490
  fastapi-spawn add s3 # AWS S3 / MinIO storage
484
491
  fastapi-spawn add graphql # Strawberry GraphQL schema
485
492
  fastapi-spawn add alembic # Alembic async migrations
493
+ fastapi-spawn add seed # Faker database seeding script
494
+ fastapi-spawn add resend # Resend modern email client
486
495
  fastapi-spawn add sentry # Sentry APM integration
487
496
  fastapi-spawn add prometheus # Prometheus metrics
488
497
  ```
@@ -432,16 +432,25 @@ fastapi-spawn add gemini # Google Generative AI client
432
432
  fastapi-spawn add qdrant # Qdrant vector DB
433
433
  fastapi-spawn add chroma # ChromaDB local vector DB
434
434
  fastapi-spawn add pinecone # Pinecone cloud vector DB
435
+ fastapi-spawn add meilisearch # Meilisearch typo-tolerant search
436
+ fastapi-spawn add ocr # PDF & OCR data extraction pipeline
437
+
438
+ # Payments & Identity
439
+ fastapi-spawn add stripe # Stripe payments & webhooks
440
+ fastapi-spawn add sso # FastAPI SSO (Google/GitHub login)
435
441
 
436
442
  # Messaging & Async Workers
437
443
  fastapi-spawn add celery # Celery worker + tasks/
438
444
  fastapi-spawn add arq # Arq async job queues using Redis
439
445
  fastapi-spawn add websockets # WebSocket connection manager
446
+ fastapi-spawn add sse # Server-Sent Events streaming
440
447
 
441
- # Storage, APIs & Monitoring
448
+ # Storage, APIs, Seeding & Monitoring
442
449
  fastapi-spawn add s3 # AWS S3 / MinIO storage
443
450
  fastapi-spawn add graphql # Strawberry GraphQL schema
444
451
  fastapi-spawn add alembic # Alembic async migrations
452
+ fastapi-spawn add seed # Faker database seeding script
453
+ fastapi-spawn add resend # Resend modern email client
445
454
  fastapi-spawn add sentry # Sentry APM integration
446
455
  fastapi-spawn add prometheus # Prometheus metrics
447
456
  ```
@@ -1,6 +1,6 @@
1
1
  """fastapi-spawn — Production-ready FastAPI project scaffolding CLI."""
2
2
 
3
- __version__ = "0.4.4"
3
+ __version__ = "0.4.6"
4
4
  __author__ = "Bishwajit Garai"
5
5
  __email__ = "bishwajitgarai@gmail.com"
6
6
  __license__ = "MIT"
@@ -277,14 +277,21 @@ _ADDABLE_FEATURES = {
277
277
  "sendgrid": "SendGrid email",
278
278
  "smtp": "SMTP email (fastapi-mail)",
279
279
  "ses": "AWS SES email",
280
+ "resend": "Resend email client (modern React/HTML emails)",
280
281
  "slack": "Slack webhook notifications",
281
282
  "discord": "Discord webhook notifications",
282
283
  "qdrant": "Qdrant vector database",
283
284
  "chroma": "ChromaDB local vector database",
284
285
  "pinecone": "Pinecone managed vector database",
285
286
  "elasticsearch": "Elasticsearch KNN search",
287
+ "meilisearch": "Meilisearch ultra-fast typo-tolerant search",
286
288
  "websockets": "WebSocket connection manager + endpoints",
289
+ "sse": "Server-Sent Events (SSE) streaming endpoint",
287
290
  "graphql": "Strawberry GraphQL schema + subscriptions",
291
+ "stripe": "Stripe payments & webhook signature validation",
292
+ "sso": "FastAPI SSO (Login with Google / GitHub)",
293
+ "seed": "Database seeding script using Faker",
294
+ "ocr": "PDF & OCR data pipeline (PyMuPDF / Tesseract)",
288
295
  "docker": "Dockerfile + docker-compose.yml",
289
296
  "ci": "GitHub Actions CI/CD workflows",
290
297
  "helm": "Helm chart (infra/helm/)",
@@ -339,14 +346,21 @@ def _feature_guidance(feature: str, _project_dir: Path) -> None:
339
346
  "sendgrid": ["Add dep: sendgrid>=6.11.0", "Create app/core/email.py", "Add to .env: SENDGRID_API_KEY, SENDGRID_FROM_EMAIL"],
340
347
  "smtp": ["Add dep: fastapi-mail>=1.4.1", "Create app/core/email.py", "Add to .env: SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, SMTP_FROM_EMAIL"],
341
348
  "ses": ["Add dep: boto3>=1.34.0", "Create app/core/email.py", "Add to .env: AWS_* credentials, SES_FROM_EMAIL"],
349
+ "resend": ["Add dep: resend>=2.1.0", "Create app/core/email.py (Resend client)", "Add to .env: RESEND_API_KEY"],
342
350
  "slack": ["No extra dep (uses httpx)", "Create app/core/notifications.py", "Add to .env: SLACK_WEBHOOK_URL=https://hooks.slack.com/services/..."],
343
351
  "discord": ["No extra dep (uses httpx)", "Create app/core/notifications.py", "Add to .env: DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/..."],
344
352
  "qdrant": ["Add dep: qdrant-client[fastembed]>=1.9.0", "Create app/core/vector_db.py", "Add to .env: QDRANT_HOST=localhost, QDRANT_PORT=6333, QDRANT_API_KEY= (blank for local)"],
345
353
  "chroma": ["Add dep: chromadb>=0.5.0", "Create app/core/vector_db.py (persistent local client)", "No env vars needed — data stored in ./chroma_data"],
346
354
  "pinecone": ["Add dep: pinecone-client>=3.2.0", "Create app/core/vector_db.py", "Add to .env: PINECONE_API_KEY, PINECONE_INDEX_NAME"],
347
355
  "elasticsearch": ["Add dep: elasticsearch[async]>=8.13.0", "Create app/core/vector_db.py (kNN search)", "Add to .env: ELASTICSEARCH_HOST, ELASTICSEARCH_PORT, ELASTICSEARCH_API_KEY"],
348
- "websockets":["No extra dep (built into FastAPI)", "Create app/core/ws_manager.py (ConnectionManager)", "Create app/api/v1/ws.py — /ws/connect, /ws/connect/{room_id}"],
356
+ "meilisearch": ["Add dep: meilisearch>=0.30.0", "Create app/core/search.py (Meilisearch client)", "Add to .env: MEILISEARCH_HOST=http://localhost:7700, MEILISEARCH_API_KEY"],
357
+ "websockets":["No extra dep (built into FastAPI)", "Create app/core/ws_manager.py (ConnectionManager)", "Create app/api/v1/ws/router.py — /ws/connect, /ws/connect/{room_id}"],
358
+ "sse": ["Add dep: sse-starlette>=2.1.0", "Create app/api/v1/streaming/router.py", "Return EventSourceResponse(async_generator)"],
349
359
  "graphql": ["Add dep: strawberry-graphql[fastapi]>=0.227.0", "Create app/api/graphql.py (Query + Mutation + Subscription)", "Mount: app.include_router(graphql_router, prefix='/graphql')"],
360
+ "stripe": ["Add dep: stripe>=9.0.0", "Create app/api/v1/payments/router.py (webhook endpoint)", "Add to .env: STRIPE_API_KEY, STRIPE_WEBHOOK_SECRET"],
361
+ "sso": ["Add dep: fastapi-sso>=0.14.0", "Create app/api/v1/auth/sso.py (GoogleSSO / GithubSSO)", "Add to .env: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET"],
362
+ "seed": ["Add dep: faker>=25.0.0", "Create db/seed.py (generate 100 mock users/posts)", "Run: uv run python db/seed.py"],
363
+ "ocr": ["Add deps: pymupdf>=1.24.0, pytesseract>=0.3.10", "Create app/core/ocr.py (PDF parsing pipeline)", "Install system deps: sudo apt install tesseract-ocr"],
350
364
  "docker": ["Create Dockerfile (multi-stage, uv-based)", "Create docker-compose.yml with all selected services", "Create .dockerignore"],
351
365
  "ci": ["Create .github/workflows/tests.yml (matrix: 3.10, 3.11, 3.12)", "Create .github/workflows/publish.yml (v* tags → PyPI)", "Add PYPI_API_TOKEN to GitHub repo secrets"],
352
366
  "helm": ["Create infra/helm/Chart.yaml", "Create infra/helm/values.yaml (replicas, image, resources)", "Run: helm install my-release ./infra/helm"],
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "fastapi-spawn"
7
- version = "0.4.4"
7
+ version = "0.4.6"
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