fastforge-cli 0.0.1__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.
- fastforge_cli-0.0.1/LICENSE +21 -0
- fastforge_cli-0.0.1/PKG-INFO +163 -0
- fastforge_cli-0.0.1/README.md +133 -0
- fastforge_cli-0.0.1/fastforge/__init__.py +1 -0
- fastforge_cli-0.0.1/fastforge/cli.py +693 -0
- fastforge_cli-0.0.1/fastforge/infra_template/cookiecutter.json +11 -0
- fastforge_cli-0.0.1/fastforge/infra_template/hooks/post_gen_project.py +77 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/README.md +41 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/docker-compose.app.yml +27 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/docker-compose.elasticsearch.yml +32 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/docker-compose.fluentbit.yml +14 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/docker-compose.kafka.yml +20 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/docker-compose.logstash.yml +14 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/docker-compose.mongodb.yml +17 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/docker-compose.postgres.yml +21 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/docker-compose.vault.yml +19 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/docker-compose.vector-agent.yml +13 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/docker-compose.vector-aggregator.yml +9 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/docker-compose.yml +31 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/fluentbit/fluent-bit.conf +24 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/fluentbit/parsers.conf +5 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/logstash/pipeline/logstash.conf +31 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/vault/config.hcl +10 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/vault/policies/app-policy.hcl +7 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/vector/vector-agent.toml +36 -0
- fastforge_cli-0.0.1/fastforge/infra_template/{{cookiecutter.project_slug}}-infrastructure/vector/vector-aggregator.toml +29 -0
- fastforge_cli-0.0.1/fastforge/template/cookiecutter.json +34 -0
- fastforge_cli-0.0.1/fastforge/template/hooks/post_gen_project.py +71 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/.codeclimate.yml +40 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/.dockerignore +15 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/.env.staging +86 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/.gitignore +15 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/.pre-commit-config.yaml +16 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/Dockerfile +30 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/README.md +254 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/__init__.py +0 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/api/__init__.py +0 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/api/exception_handlers.py +78 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/api/models/__init__.py +0 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/api/models/{{cookiecutter.model_name}}.py +22 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/api/routes/__init__.py +0 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/api/routes/health.py +20 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/api/routes/{{cookiecutter.model_name_plural}}.py +70 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/cache.py +63 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/config.py +112 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/db/__init__.py +0 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/db/models/__init__.py +0 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/db/models/{{cookiecutter.model_name}}.py +34 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/db/mongodb.py +23 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/db/sqlalchemy.py +14 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/dependencies.py +45 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/logging_config.py +84 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/main.py +106 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/middleware/__init__.py +0 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/middleware/logging_middleware.py +45 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/middleware/security_headers.py +18 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/repositories/__init__.py +0 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/repositories/{{cookiecutter.model_name}}_repository.py +172 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/secrets.py +101 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/services/__init__.py +0 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/services/{{cookiecutter.model_name}}_service.py +63 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/streaming/__init__.py +0 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/streaming/consumer.py +187 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/streaming/handler.py +31 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/app/streaming/producer.py +151 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/docker-compose.debug.yml +15 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/docker-compose.yml +141 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/pyproject.toml +100 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/qodana.yaml +22 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/sonar-project.properties +20 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/tests/__init__.py +0 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/tests/conftest.py +11 -0
- fastforge_cli-0.0.1/fastforge/template/{{cookiecutter.project_slug}}/tests/test_api.py +51 -0
- fastforge_cli-0.0.1/fastforge_cli.egg-info/PKG-INFO +163 -0
- fastforge_cli-0.0.1/fastforge_cli.egg-info/SOURCES.txt +79 -0
- fastforge_cli-0.0.1/fastforge_cli.egg-info/dependency_links.txt +1 -0
- fastforge_cli-0.0.1/fastforge_cli.egg-info/entry_points.txt +12 -0
- fastforge_cli-0.0.1/fastforge_cli.egg-info/requires.txt +3 -0
- fastforge_cli-0.0.1/fastforge_cli.egg-info/top_level.txt +1 -0
- fastforge_cli-0.0.1/pyproject.toml +58 -0
- fastforge_cli-0.0.1/setup.cfg +4 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Jinna Balu
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: fastforge-cli
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Production-grade FastAPI project generator for Python backends
|
|
5
|
+
Author-email: Jinna Balu <jinnabaalu@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/VibhuviOiO/fastforge-cli
|
|
8
|
+
Project-URL: Repository, https://github.com/VibhuviOiO/fastforge-cli
|
|
9
|
+
Project-URL: Issues, https://github.com/VibhuviOiO/fastforge-cli/issues
|
|
10
|
+
Project-URL: Documentation, https://github.com/VibhuviOiO/fastforge-cli#readme
|
|
11
|
+
Keywords: fastapi,cookiecutter,production,generator,scaffold,async,docker
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Framework :: FastAPI
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Topic :: Software Development :: Code Generators
|
|
23
|
+
Requires-Python: >=3.10
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Requires-Dist: cookiecutter>=2.6.0
|
|
27
|
+
Requires-Dist: questionary>=2.0.0
|
|
28
|
+
Requires-Dist: rich>=13.0.0
|
|
29
|
+
Dynamic: license-file
|
|
30
|
+
|
|
31
|
+
# 🔨 FastForge
|
|
32
|
+
|
|
33
|
+
**Production-grade FastAPI project generator for Python backends.**
|
|
34
|
+
|
|
35
|
+
[](https://pypi.org/project/fastforge-cli/)
|
|
36
|
+
[](https://pypi.org/project/fastforge-cli/)
|
|
37
|
+
[](LICENSE)
|
|
38
|
+
|
|
39
|
+
FastForge generates a **ready-to-run, production-grade FastAPI project** with SOLID architecture, structured logging, Docker containerization, and async CRUD — all in under 30 seconds.
|
|
40
|
+
|
|
41
|
+
## Quick Start
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
pip install fastforge-cli
|
|
45
|
+
fastforge
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
That's it. Answer a few prompts and you get a running application.
|
|
49
|
+
|
|
50
|
+
## What You Get (Basic Mode)
|
|
51
|
+
|
|
52
|
+
| Feature | Implementation |
|
|
53
|
+
|---|---|
|
|
54
|
+
| **SOLID Architecture** | Repository pattern + Service layer + Dependency Injection |
|
|
55
|
+
| **Async CRUD API** | FastAPI with full Create/Read/Update/Delete |
|
|
56
|
+
| **Structured Logging** | structlog with JSON output, request IDs, duration tracking |
|
|
57
|
+
| **Docker** | Multi-stage Dockerfile, docker-compose, health checks |
|
|
58
|
+
| **Security** | Security headers middleware, CORS, non-root container |
|
|
59
|
+
| **Testing** | pytest + pytest-asyncio, 80%+ coverage out of the box |
|
|
60
|
+
| **Code Quality** | ruff linting, pre-commit hooks |
|
|
61
|
+
|
|
62
|
+
## CLI Flow
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
$ fastforge
|
|
66
|
+
|
|
67
|
+
___ _ ___
|
|
68
|
+
| __| _ _ __| |_| __|__ _ _ __ _ ___
|
|
69
|
+
| _/ _` (_-< _| _/ _ \ '_/ _` / -_)
|
|
70
|
+
|_|\__,_/__/\__|_|\___/_| \__, \___|
|
|
71
|
+
|___/
|
|
72
|
+
Production-grade FastAPI Generator
|
|
73
|
+
|
|
74
|
+
┌─ Choose your path ───────────────────────────────────┐
|
|
75
|
+
│ Basic mode → SOLID app, JSON logging, Docker, async │
|
|
76
|
+
│ Advanced → + Database, Cache, Streaming, Secrets │
|
|
77
|
+
└──────────────────────────────────────────────────────┘
|
|
78
|
+
|
|
79
|
+
? Project name: order-service
|
|
80
|
+
? Model name: order
|
|
81
|
+
? Log output: Stdout
|
|
82
|
+
? Include debug compose? No
|
|
83
|
+
? Generate project? Yes
|
|
84
|
+
|
|
85
|
+
✔ Project created: ./order-service
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Basic Mode (default)
|
|
89
|
+
|
|
90
|
+
Just 4-5 questions → production-ready app with structured logging, Docker, and CRUD.
|
|
91
|
+
|
|
92
|
+
### Advanced Mode
|
|
93
|
+
|
|
94
|
+
Enable with "Enable advanced configuration?" → unlocks:
|
|
95
|
+
|
|
96
|
+
- **Database** — PostgreSQL, MySQL, SQLite (SQLAlchemy async), MongoDB (Motor)
|
|
97
|
+
- **Cache** — Redis, Memcached, In-memory (cachetools)
|
|
98
|
+
- **Streaming** — Kafka, RabbitMQ, Redis Pub/Sub, NATS (producer + consumer)
|
|
99
|
+
- **Secrets** — HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager
|
|
100
|
+
- **Quality Gate** — SonarQube, SonarCloud, Qodana, CodeClimate
|
|
101
|
+
|
|
102
|
+
## Generated Project Structure
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
your-service/
|
|
106
|
+
├── app/
|
|
107
|
+
│ ├── main.py # App factory + lifespan
|
|
108
|
+
│ ├── config.py # pydantic-settings
|
|
109
|
+
│ ├── dependencies.py # DI wiring
|
|
110
|
+
│ ├── api/
|
|
111
|
+
│ │ ├── routes/
|
|
112
|
+
│ │ │ ├── health.py # Health + readiness
|
|
113
|
+
│ │ │ └── orders.py # CRUD routes
|
|
114
|
+
│ │ └── models/
|
|
115
|
+
│ │ └── order.py # Pydantic schemas
|
|
116
|
+
│ ├── services/
|
|
117
|
+
│ │ └── order_service.py # Business logic
|
|
118
|
+
│ ├── repositories/
|
|
119
|
+
│ │ └── order_repository.py # Data access (interface + impl)
|
|
120
|
+
│ └── middleware/
|
|
121
|
+
│ ├── security_headers.py
|
|
122
|
+
│ └── logging_middleware.py
|
|
123
|
+
├── tests/
|
|
124
|
+
│ └── test_api.py
|
|
125
|
+
├── Dockerfile
|
|
126
|
+
├── docker-compose.yml
|
|
127
|
+
├── pyproject.toml
|
|
128
|
+
└── .pre-commit-config.yaml
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Run Immediately
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
cd your-service
|
|
135
|
+
|
|
136
|
+
# Option A: Docker
|
|
137
|
+
docker compose up --build
|
|
138
|
+
|
|
139
|
+
# Option B: Local
|
|
140
|
+
pip install -e ".[dev]"
|
|
141
|
+
uvicorn app.main:app --reload
|
|
142
|
+
pytest
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Extend Your Project
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
fastforge-infra # Infrastructure (Kafka, Elasticsearch, Vault, DB)
|
|
149
|
+
fastforge-cicd # CI/CD pipeline
|
|
150
|
+
fastforge-secops # Security tools
|
|
151
|
+
fastforge-helm # Helm chart
|
|
152
|
+
fastforge-k8s # Kubernetes manifests
|
|
153
|
+
fastforge-observability # Tracing + Metrics
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Requirements
|
|
157
|
+
|
|
158
|
+
- Python 3.10+
|
|
159
|
+
- pip
|
|
160
|
+
|
|
161
|
+
## License
|
|
162
|
+
|
|
163
|
+
MIT
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# 🔨 FastForge
|
|
2
|
+
|
|
3
|
+
**Production-grade FastAPI project generator for Python backends.**
|
|
4
|
+
|
|
5
|
+
[](https://pypi.org/project/fastforge-cli/)
|
|
6
|
+
[](https://pypi.org/project/fastforge-cli/)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
|
|
9
|
+
FastForge generates a **ready-to-run, production-grade FastAPI project** with SOLID architecture, structured logging, Docker containerization, and async CRUD — all in under 30 seconds.
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pip install fastforge-cli
|
|
15
|
+
fastforge
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
That's it. Answer a few prompts and you get a running application.
|
|
19
|
+
|
|
20
|
+
## What You Get (Basic Mode)
|
|
21
|
+
|
|
22
|
+
| Feature | Implementation |
|
|
23
|
+
|---|---|
|
|
24
|
+
| **SOLID Architecture** | Repository pattern + Service layer + Dependency Injection |
|
|
25
|
+
| **Async CRUD API** | FastAPI with full Create/Read/Update/Delete |
|
|
26
|
+
| **Structured Logging** | structlog with JSON output, request IDs, duration tracking |
|
|
27
|
+
| **Docker** | Multi-stage Dockerfile, docker-compose, health checks |
|
|
28
|
+
| **Security** | Security headers middleware, CORS, non-root container |
|
|
29
|
+
| **Testing** | pytest + pytest-asyncio, 80%+ coverage out of the box |
|
|
30
|
+
| **Code Quality** | ruff linting, pre-commit hooks |
|
|
31
|
+
|
|
32
|
+
## CLI Flow
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
$ fastforge
|
|
36
|
+
|
|
37
|
+
___ _ ___
|
|
38
|
+
| __| _ _ __| |_| __|__ _ _ __ _ ___
|
|
39
|
+
| _/ _` (_-< _| _/ _ \ '_/ _` / -_)
|
|
40
|
+
|_|\__,_/__/\__|_|\___/_| \__, \___|
|
|
41
|
+
|___/
|
|
42
|
+
Production-grade FastAPI Generator
|
|
43
|
+
|
|
44
|
+
┌─ Choose your path ───────────────────────────────────┐
|
|
45
|
+
│ Basic mode → SOLID app, JSON logging, Docker, async │
|
|
46
|
+
│ Advanced → + Database, Cache, Streaming, Secrets │
|
|
47
|
+
└──────────────────────────────────────────────────────┘
|
|
48
|
+
|
|
49
|
+
? Project name: order-service
|
|
50
|
+
? Model name: order
|
|
51
|
+
? Log output: Stdout
|
|
52
|
+
? Include debug compose? No
|
|
53
|
+
? Generate project? Yes
|
|
54
|
+
|
|
55
|
+
✔ Project created: ./order-service
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Basic Mode (default)
|
|
59
|
+
|
|
60
|
+
Just 4-5 questions → production-ready app with structured logging, Docker, and CRUD.
|
|
61
|
+
|
|
62
|
+
### Advanced Mode
|
|
63
|
+
|
|
64
|
+
Enable with "Enable advanced configuration?" → unlocks:
|
|
65
|
+
|
|
66
|
+
- **Database** — PostgreSQL, MySQL, SQLite (SQLAlchemy async), MongoDB (Motor)
|
|
67
|
+
- **Cache** — Redis, Memcached, In-memory (cachetools)
|
|
68
|
+
- **Streaming** — Kafka, RabbitMQ, Redis Pub/Sub, NATS (producer + consumer)
|
|
69
|
+
- **Secrets** — HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager
|
|
70
|
+
- **Quality Gate** — SonarQube, SonarCloud, Qodana, CodeClimate
|
|
71
|
+
|
|
72
|
+
## Generated Project Structure
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
your-service/
|
|
76
|
+
├── app/
|
|
77
|
+
│ ├── main.py # App factory + lifespan
|
|
78
|
+
│ ├── config.py # pydantic-settings
|
|
79
|
+
│ ├── dependencies.py # DI wiring
|
|
80
|
+
│ ├── api/
|
|
81
|
+
│ │ ├── routes/
|
|
82
|
+
│ │ │ ├── health.py # Health + readiness
|
|
83
|
+
│ │ │ └── orders.py # CRUD routes
|
|
84
|
+
│ │ └── models/
|
|
85
|
+
│ │ └── order.py # Pydantic schemas
|
|
86
|
+
│ ├── services/
|
|
87
|
+
│ │ └── order_service.py # Business logic
|
|
88
|
+
│ ├── repositories/
|
|
89
|
+
│ │ └── order_repository.py # Data access (interface + impl)
|
|
90
|
+
│ └── middleware/
|
|
91
|
+
│ ├── security_headers.py
|
|
92
|
+
│ └── logging_middleware.py
|
|
93
|
+
├── tests/
|
|
94
|
+
│ └── test_api.py
|
|
95
|
+
├── Dockerfile
|
|
96
|
+
├── docker-compose.yml
|
|
97
|
+
├── pyproject.toml
|
|
98
|
+
└── .pre-commit-config.yaml
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Run Immediately
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
cd your-service
|
|
105
|
+
|
|
106
|
+
# Option A: Docker
|
|
107
|
+
docker compose up --build
|
|
108
|
+
|
|
109
|
+
# Option B: Local
|
|
110
|
+
pip install -e ".[dev]"
|
|
111
|
+
uvicorn app.main:app --reload
|
|
112
|
+
pytest
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Extend Your Project
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
fastforge-infra # Infrastructure (Kafka, Elasticsearch, Vault, DB)
|
|
119
|
+
fastforge-cicd # CI/CD pipeline
|
|
120
|
+
fastforge-secops # Security tools
|
|
121
|
+
fastforge-helm # Helm chart
|
|
122
|
+
fastforge-k8s # Kubernetes manifests
|
|
123
|
+
fastforge-observability # Tracing + Metrics
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Requirements
|
|
127
|
+
|
|
128
|
+
- Python 3.10+
|
|
129
|
+
- pip
|
|
130
|
+
|
|
131
|
+
## License
|
|
132
|
+
|
|
133
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.0.0"
|