fastapi-spawn 0.4.3__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 (65) hide show
  1. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/PKG-INFO +62 -9
  2. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/README.md +61 -8
  3. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/__init__.py +1 -1
  4. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/cli.py +15 -1
  5. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/pyproject.toml +1 -1
  6. fastapi_spawn-0.4.3/CHANGELOG.md +0 -36
  7. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/.gitignore +0 -0
  8. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/LICENSE +0 -0
  9. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/config.py +0 -0
  10. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/constants.py +0 -0
  11. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/generator.py +0 -0
  12. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/interactive.py +0 -0
  13. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/alembic/alembic.ini.j2 +0 -0
  14. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/alembic/env.py.j2 +0 -0
  15. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/__init__.py.j2 +0 -0
  16. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/api/deps.py.j2 +0 -0
  17. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/api/graphql.py.j2 +0 -0
  18. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/api/v1/auth/router.py.j2 +0 -0
  19. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/api/v1/health/router.py.j2 +0 -0
  20. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/api/v1/router.py.j2 +0 -0
  21. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/api/v1/ws/router.py.j2 +0 -0
  22. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/ai.py.j2 +0 -0
  23. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/config.py.j2 +0 -0
  24. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/email.py.j2 +0 -0
  25. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/exceptions.py.j2 +0 -0
  26. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/logger.py.j2 +0 -0
  27. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/logging.py.j2 +0 -0
  28. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/monitoring.py.j2 +0 -0
  29. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/notifications.py.j2 +0 -0
  30. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/security.py.j2 +0 -0
  31. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/storage.py.j2 +0 -0
  32. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/vector_db.py.j2 +0 -0
  33. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/core/ws_manager.py.j2 +0 -0
  34. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/db/session.py.j2 +0 -0
  35. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/frontend/index.html.j2 +0 -0
  36. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/main.py.j2 +0 -0
  37. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/middleware/__init__.py.j2 +0 -0
  38. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/middleware/rate_limit.py.j2 +0 -0
  39. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/app/middleware/request_logger.py.j2 +0 -0
  40. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/Makefile.j2 +0 -0
  41. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/README.md.j2 +0 -0
  42. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/env.j2 +0 -0
  43. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/env_example.j2 +0 -0
  44. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/gitignore.j2 +0 -0
  45. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/pre_commit.j2 +0 -0
  46. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/base/pyproject.toml.j2 +0 -0
  47. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/ci/github/publish.yml.j2 +0 -0
  48. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/ci/github/tests.yml.j2 +0 -0
  49. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/ci/gitlab/gitlab-ci.yml.j2 +0 -0
  50. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/docker/Dockerfile.j2 +0 -0
  51. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/docker/docker-compose.yml.j2 +0 -0
  52. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/docker/dockerignore.j2 +0 -0
  53. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/infra/docker/docker-compose.prod.yml.j2 +0 -0
  54. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/infra/helm/Chart.yaml.j2 +0 -0
  55. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/infra/helm/values.yaml.j2 +0 -0
  56. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/infra/terraform/main.tf.j2 +0 -0
  57. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/infra/terraform/variables.tf.j2 +0 -0
  58. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/root/main.py.j2 +0 -0
  59. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/tasks/arq_worker.py.j2 +0 -0
  60. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/tasks/celery_app.py.j2 +0 -0
  61. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/tasks/sample_tasks.py.j2 +0 -0
  62. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/tests/conftest.py.j2 +0 -0
  63. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/templates/tests/test_health.py.j2 +0 -0
  64. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.6}/fastapi_spawn/utils.py +0 -0
  65. {fastapi_spawn-0.4.3 → 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.3
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
@@ -440,20 +440,73 @@ GraphiQL IDE is enabled in `dev` mode. Subscriptions use `graphql-transport-ws`.
440
440
 
441
441
  ---
442
442
 
443
- ## Add Features to Existing Projects
443
+ ## 🧩 Add Features to Existing Projects (Incremental Scaffolding)
444
+
445
+ Did you generate a minimal project and now realize you need WebSockets, AWS S3, or OpenAI? **No problem.**
446
+
447
+ `fastapi-spawn add` allows you to incrementally scale your project. Instead of re-generating your entire project or copying boilerplate manually, you can inject production-ready modules into your existing codebase.
448
+
449
+ ```bash
450
+ fastapi-spawn add [FEATURE]
451
+ ```
452
+
453
+ ### How it works:
454
+ 1. **Generates the Module**: It creates the necessary file (e.g., `app/core/ai.py` or `app/api/v1/ws/router.py`) tailored to your project structure.
455
+ 2. **Environment Variables**: It prompts you with the exact environment variables you need to append to your `.env` and `config.py`.
456
+ 3. **Integration Guide**: It outputs a step-by-step UI snippet telling you *exactly* where to import and mount the new feature in your `main.py` or `router.py`.
457
+
458
+ ### All Possibilities you can `add`:
459
+
460
+ You can run any of the following commands inside an existing project:
444
461
 
445
462
  ```bash
446
- fastapi-spawn add sentry # Sentry error tracking
463
+ # Infrastructure & Deployment
464
+ fastapi-spawn add docker # Dockerfile and docker-compose.yml
465
+ fastapi-spawn add helm # Helm chart in infra/helm/
466
+ fastapi-spawn add terraform # Terraform in infra/terraform/
467
+ fastapi-spawn add github-actions # CI/CD pipeline (.github/workflows/tests.yml)
468
+
469
+ # AI & Vector DBs
447
470
  fastapi-spawn add openai # OpenAI async client
448
- fastapi-spawn add alembic # Alembic async migrations
449
- fastapi-spawn add s3 # AWS S3 / MinIO storage
471
+ fastapi-spawn add anthropic # Anthropic Claude async client
472
+ fastapi-spawn add gemini # Google Generative AI client
473
+ fastapi-spawn add qdrant # Qdrant vector DB
474
+ fastapi-spawn add chroma # ChromaDB local vector DB
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)
482
+
483
+ # Messaging & Async Workers
450
484
  fastapi-spawn add celery # Celery worker + tasks/
485
+ fastapi-spawn add arq # Arq async job queues using Redis
451
486
  fastapi-spawn add websockets # WebSocket connection manager
487
+ fastapi-spawn add sse # Server-Sent Events streaming
488
+
489
+ # Storage, APIs, Seeding & Monitoring
490
+ fastapi-spawn add s3 # AWS S3 / MinIO storage
452
491
  fastapi-spawn add graphql # Strawberry GraphQL schema
453
- fastapi-spawn add qdrant # Qdrant vector DB
454
- fastapi-spawn add chroma # ChromaDB local vector DB
455
- fastapi-spawn add helm # Helm chart in infra/helm/
456
- fastapi-spawn add terraform # Terraform in infra/terraform/
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
495
+ fastapi-spawn add sentry # Sentry APM integration
496
+ fastapi-spawn add prometheus # Prometheus metrics
497
+ ```
498
+
499
+ *Example:*
500
+ ```bash
501
+ $ fastapi-spawn add websockets
502
+
503
+ ✓ Created app/core/ws_manager.py
504
+ ✓ Created app/api/v1/ws/router.py
505
+
506
+ 👉 Next Steps:
507
+ 1. Mount the router in app/api/v1/router.py:
508
+ from app.api.v1.ws.router import router as ws_router
509
+ router.include_router(ws_router)
457
510
  ```
458
511
 
459
512
  ---
@@ -399,20 +399,73 @@ GraphiQL IDE is enabled in `dev` mode. Subscriptions use `graphql-transport-ws`.
399
399
 
400
400
  ---
401
401
 
402
- ## Add Features to Existing Projects
402
+ ## 🧩 Add Features to Existing Projects (Incremental Scaffolding)
403
+
404
+ Did you generate a minimal project and now realize you need WebSockets, AWS S3, or OpenAI? **No problem.**
405
+
406
+ `fastapi-spawn add` allows you to incrementally scale your project. Instead of re-generating your entire project or copying boilerplate manually, you can inject production-ready modules into your existing codebase.
407
+
408
+ ```bash
409
+ fastapi-spawn add [FEATURE]
410
+ ```
411
+
412
+ ### How it works:
413
+ 1. **Generates the Module**: It creates the necessary file (e.g., `app/core/ai.py` or `app/api/v1/ws/router.py`) tailored to your project structure.
414
+ 2. **Environment Variables**: It prompts you with the exact environment variables you need to append to your `.env` and `config.py`.
415
+ 3. **Integration Guide**: It outputs a step-by-step UI snippet telling you *exactly* where to import and mount the new feature in your `main.py` or `router.py`.
416
+
417
+ ### All Possibilities you can `add`:
418
+
419
+ You can run any of the following commands inside an existing project:
403
420
 
404
421
  ```bash
405
- fastapi-spawn add sentry # Sentry error tracking
422
+ # Infrastructure & Deployment
423
+ fastapi-spawn add docker # Dockerfile and docker-compose.yml
424
+ fastapi-spawn add helm # Helm chart in infra/helm/
425
+ fastapi-spawn add terraform # Terraform in infra/terraform/
426
+ fastapi-spawn add github-actions # CI/CD pipeline (.github/workflows/tests.yml)
427
+
428
+ # AI & Vector DBs
406
429
  fastapi-spawn add openai # OpenAI async client
407
- fastapi-spawn add alembic # Alembic async migrations
408
- fastapi-spawn add s3 # AWS S3 / MinIO storage
430
+ fastapi-spawn add anthropic # Anthropic Claude async client
431
+ fastapi-spawn add gemini # Google Generative AI client
432
+ fastapi-spawn add qdrant # Qdrant vector DB
433
+ fastapi-spawn add chroma # ChromaDB local vector DB
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)
441
+
442
+ # Messaging & Async Workers
409
443
  fastapi-spawn add celery # Celery worker + tasks/
444
+ fastapi-spawn add arq # Arq async job queues using Redis
410
445
  fastapi-spawn add websockets # WebSocket connection manager
446
+ fastapi-spawn add sse # Server-Sent Events streaming
447
+
448
+ # Storage, APIs, Seeding & Monitoring
449
+ fastapi-spawn add s3 # AWS S3 / MinIO storage
411
450
  fastapi-spawn add graphql # Strawberry GraphQL schema
412
- fastapi-spawn add qdrant # Qdrant vector DB
413
- fastapi-spawn add chroma # ChromaDB local vector DB
414
- fastapi-spawn add helm # Helm chart in infra/helm/
415
- fastapi-spawn add terraform # Terraform in infra/terraform/
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
454
+ fastapi-spawn add sentry # Sentry APM integration
455
+ fastapi-spawn add prometheus # Prometheus metrics
456
+ ```
457
+
458
+ *Example:*
459
+ ```bash
460
+ $ fastapi-spawn add websockets
461
+
462
+ ✓ Created app/core/ws_manager.py
463
+ ✓ Created app/api/v1/ws/router.py
464
+
465
+ 👉 Next Steps:
466
+ 1. Mount the router in app/api/v1/router.py:
467
+ from app.api.v1.ws.router import router as ws_router
468
+ router.include_router(ws_router)
416
469
  ```
417
470
 
418
471
  ---
@@ -1,6 +1,6 @@
1
1
  """fastapi-spawn — Production-ready FastAPI project scaffolding CLI."""
2
2
 
3
- __version__ = "0.4.3"
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.3"
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" }
@@ -1,36 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to `fastapi-spawn` will be documented here.
4
-
5
- Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
- Versioning follows [Semantic Versioning](https://semver.org/).
7
-
8
- ---
9
-
10
- ## [0.1.0] — 2026-05-10
11
-
12
- ### Added
13
- - Interactive TUI with questionary + Rich styling
14
- - Database support: PostgreSQL, MySQL, MongoDB, SQLite
15
- - ORM support: SQLAlchemy 2.x (async), Tortoise ORM, Beanie
16
- - Migration support: Alembic (async-compatible), Aerich
17
- - Auth: JWT, OAuth2, API Key
18
- - Message brokers: Redis (Celery), RabbitMQ (Celery), Kafka (aiokafka)
19
- - Cache layer: Redis, Memcached
20
- - File storage: AWS S3 (boto3) with presigned URLs
21
- - AI integration: OpenAI (chat + embeddings, custom base URL), Anthropic Claude
22
- - Root-level `main.py` entry point (`uv run main.py`)
23
- - Root-level `tasks/` directory for Celery workers
24
- - Individual env fields per service with `@property` URL assembly
25
- - `OPENAI_BASE_URL` support for Azure, LM Studio, local endpoints
26
- - `--dry-run` flag with rich tree preview
27
- - `--force` flag to overwrite existing projects
28
- - Stack options: minimal, standard, full (Helm + Terraform)
29
- - CI/CD: GitHub Actions, GitLab CI
30
- - Logging: loguru, structlog, standard library
31
- - Docker: multi-service compose with health checks
32
- - infra/: docker/, helm/, terraform/ structure
33
- - `uv`-compatible `pyproject.toml` with `[tool.uv]`
34
- - `list-templates` and `validate` subcommands
35
- - `ENVIRONMENT=dev` style env naming
36
- - Professional README, CHANGELOG, CONTRIBUTING
File without changes
File without changes