fastapi-spawn 0.4.11__tar.gz → 0.4.12__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.11 → fastapi_spawn-0.4.12}/PKG-INFO +30 -1
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/README.md +29 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/__init__.py +1 -1
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/cli.py +8 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/pyproject.toml +1 -1
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/.gitignore +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/LICENSE +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/config.py +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/constants.py +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/generator.py +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/interactive.py +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/alembic/alembic.ini.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/alembic/env.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/__init__.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/api/deps.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/api/graphql.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/api/v1/auth/router.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/api/v1/auth/sso.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/api/v1/health/router.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/api/v1/payments/router.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/api/v1/router.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/api/v1/streaming/router.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/api/v1/ws/router.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/ai.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/config.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/email.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/exceptions.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/logger.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/logging.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/monitoring.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/notifications.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/ocr.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/search.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/security.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/storage.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/vector_db.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/ws_manager.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/db/session.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/frontend/index.html.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/main.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/middleware/__init__.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/middleware/rate_limit.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/middleware/request_logger.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/base/Makefile.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/base/README.md.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/base/env.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/base/env_example.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/base/gitignore.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/base/pre_commit.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/base/pyproject.toml.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/ci/github/publish.yml.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/ci/github/tests.yml.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/ci/gitlab/gitlab-ci.yml.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/db/seed.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/docker/Dockerfile.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/docker/docker-compose.yml.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/docker/dockerignore.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/infra/docker/docker-compose.prod.yml.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/infra/helm/Chart.yaml.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/infra/helm/values.yaml.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/infra/terraform/main.tf.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/infra/terraform/variables.tf.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/root/main.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/tasks/arq_worker.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/tasks/celery_app.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/tasks/sample_tasks.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/tests/conftest.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/tests/test_health.py.j2 +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/utils.py +0 -0
- {fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/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.12
|
|
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
|
|
@@ -381,6 +381,10 @@ SMTP_SSL=false
|
|
|
381
381
|
# ── AWS SES ──────────────────────────────────────────────────────────────
|
|
382
382
|
SES_FROM_EMAIL=noreply@example.com # uses AWS_* credentials above
|
|
383
383
|
|
|
384
|
+
# ── Resend ───────────────────────────────────────────────────────────────
|
|
385
|
+
RESEND_API_KEY=re_placeholder
|
|
386
|
+
RESEND_FROM_EMAIL=noreply@example.com
|
|
387
|
+
|
|
384
388
|
# ── Slack ────────────────────────────────────────────────────────────────
|
|
385
389
|
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/CHANGE_ME
|
|
386
390
|
|
|
@@ -402,6 +406,31 @@ ELASTICSEARCH_HOST=localhost
|
|
|
402
406
|
ELASTICSEARCH_PORT=9200
|
|
403
407
|
ELASTICSEARCH_API_KEY=
|
|
404
408
|
# → assembled as: http://HOST:PORT
|
|
409
|
+
|
|
410
|
+
# ── OpenSearch ───────────────────────────────────────────────────────────
|
|
411
|
+
OPENSEARCH_HOST=localhost
|
|
412
|
+
OPENSEARCH_PORT=9200
|
|
413
|
+
OPENSEARCH_USER=admin
|
|
414
|
+
OPENSEARCH_PASSWORD=admin
|
|
415
|
+
|
|
416
|
+
# ── Vespa ────────────────────────────────────────────────────────────────
|
|
417
|
+
VESPA_ENDPOINT=http://localhost:8080
|
|
418
|
+
|
|
419
|
+
# ── Extras (Stripe, SSO, Meilisearch) ────────────────────────────────────
|
|
420
|
+
STRIPE_API_KEY=sk_test_placeholder
|
|
421
|
+
STRIPE_WEBHOOK_SECRET=whsec_placeholder
|
|
422
|
+
|
|
423
|
+
GOOGLE_CLIENT_ID=placeholder
|
|
424
|
+
GOOGLE_CLIENT_SECRET=placeholder
|
|
425
|
+
|
|
426
|
+
GITHUB_CLIENT_ID=placeholder
|
|
427
|
+
GITHUB_CLIENT_SECRET=placeholder
|
|
428
|
+
|
|
429
|
+
MICROSOFT_CLIENT_ID=placeholder
|
|
430
|
+
MICROSOFT_CLIENT_SECRET=placeholder
|
|
431
|
+
|
|
432
|
+
MEILISEARCH_HOST=http://localhost:7700
|
|
433
|
+
MEILISEARCH_API_KEY=masterKey
|
|
405
434
|
```
|
|
406
435
|
|
|
407
436
|
> All variables are assembled into connection URLs inside `app/core/config.py` via `@property`. Your code always reads from structured fields — never a fragile connection string.
|
|
@@ -340,6 +340,10 @@ SMTP_SSL=false
|
|
|
340
340
|
# ── AWS SES ──────────────────────────────────────────────────────────────
|
|
341
341
|
SES_FROM_EMAIL=noreply@example.com # uses AWS_* credentials above
|
|
342
342
|
|
|
343
|
+
# ── Resend ───────────────────────────────────────────────────────────────
|
|
344
|
+
RESEND_API_KEY=re_placeholder
|
|
345
|
+
RESEND_FROM_EMAIL=noreply@example.com
|
|
346
|
+
|
|
343
347
|
# ── Slack ────────────────────────────────────────────────────────────────
|
|
344
348
|
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/CHANGE_ME
|
|
345
349
|
|
|
@@ -361,6 +365,31 @@ ELASTICSEARCH_HOST=localhost
|
|
|
361
365
|
ELASTICSEARCH_PORT=9200
|
|
362
366
|
ELASTICSEARCH_API_KEY=
|
|
363
367
|
# → assembled as: http://HOST:PORT
|
|
368
|
+
|
|
369
|
+
# ── OpenSearch ───────────────────────────────────────────────────────────
|
|
370
|
+
OPENSEARCH_HOST=localhost
|
|
371
|
+
OPENSEARCH_PORT=9200
|
|
372
|
+
OPENSEARCH_USER=admin
|
|
373
|
+
OPENSEARCH_PASSWORD=admin
|
|
374
|
+
|
|
375
|
+
# ── Vespa ────────────────────────────────────────────────────────────────
|
|
376
|
+
VESPA_ENDPOINT=http://localhost:8080
|
|
377
|
+
|
|
378
|
+
# ── Extras (Stripe, SSO, Meilisearch) ────────────────────────────────────
|
|
379
|
+
STRIPE_API_KEY=sk_test_placeholder
|
|
380
|
+
STRIPE_WEBHOOK_SECRET=whsec_placeholder
|
|
381
|
+
|
|
382
|
+
GOOGLE_CLIENT_ID=placeholder
|
|
383
|
+
GOOGLE_CLIENT_SECRET=placeholder
|
|
384
|
+
|
|
385
|
+
GITHUB_CLIENT_ID=placeholder
|
|
386
|
+
GITHUB_CLIENT_SECRET=placeholder
|
|
387
|
+
|
|
388
|
+
MICROSOFT_CLIENT_ID=placeholder
|
|
389
|
+
MICROSOFT_CLIENT_SECRET=placeholder
|
|
390
|
+
|
|
391
|
+
MEILISEARCH_HOST=http://localhost:7700
|
|
392
|
+
MEILISEARCH_API_KEY=masterKey
|
|
364
393
|
```
|
|
365
394
|
|
|
366
395
|
> All variables are assembled into connection URLs inside `app/core/config.py` via `@property`. Your code always reads from structured fields — never a fragile connection string.
|
|
@@ -62,6 +62,14 @@ def version_callback(value: bool) -> None:
|
|
|
62
62
|
raise typer.Exit()
|
|
63
63
|
|
|
64
64
|
|
|
65
|
+
@app.command("help", help="Show this help message and exit.")
|
|
66
|
+
def show_help(ctx: typer.Context) -> None:
|
|
67
|
+
"""Print the global CLI help."""
|
|
68
|
+
# We leverage Click's internal help formatting to render the same as --help
|
|
69
|
+
rprint(ctx.parent.get_help())
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
65
73
|
# ── `new` command ──────────────────────────────────────────────────────────────
|
|
66
74
|
|
|
67
75
|
@app.command("new", help="Create a new FastAPI project.")
|
|
@@ -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.12"
|
|
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
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/alembic/alembic.ini.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/api/v1/auth/router.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/api/v1/auth/sso.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/api/v1/health/router.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/api/v1/router.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/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.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/exceptions.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/logging.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/monitoring.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/notifications.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/security.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/storage.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/vector_db.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/core/ws_manager.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/frontend/index.html.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/app/middleware/__init__.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.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/base/pyproject.toml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/ci/github/publish.yml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/ci/github/tests.yml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/ci/gitlab/gitlab-ci.yml.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/docker/docker-compose.yml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/docker/dockerignore.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/infra/helm/Chart.yaml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/infra/helm/values.yaml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/infra/terraform/main.tf.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/tasks/arq_worker.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/tasks/celery_app.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/tasks/sample_tasks.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.11 → fastapi_spawn-0.4.12}/fastapi_spawn/templates/tests/test_health.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|