- Add release-gate.yml: 11-job pipeline (lint, tests, Docker build/smoke, Trivy scan, dep audit, audit checks, e2e API+UI, PR summary comment) - Fix CI double-trigger on release branches (push + PR) - Add CODE_OF_CONDUCT.md, SECURITY.md, PR template - Add docs: git-workflow, architecture (ADR), release, operations, community - Add profiles/fastapi-vue for automated audit checks - Add docs/PROCESSES.md: index of 19 available processes
70 lines
2.5 KiB
Markdown
70 lines
2.5 KiB
Markdown
# Stack Profile — FastAPI + Vue 3
|
|
|
|
Profile for running the 12 release audits on Docling Studio.
|
|
|
|
## Layer Mapping
|
|
|
|
| Generic Layer | Docling Studio Path | Language |
|
|
|---------------|---------------------|----------|
|
|
| **Domain** | `document-parser/domain/` | Python |
|
|
| **Services** | `document-parser/services/` | Python |
|
|
| **API** | `document-parser/api/` | Python |
|
|
| **Infrastructure** | `document-parser/infra/` | Python |
|
|
| **Persistence** | `document-parser/persistence/` | Python |
|
|
| **Frontend** | `frontend/src/` | TypeScript / Vue |
|
|
| **Tests (backend)** | `document-parser/tests/` | Python |
|
|
| **Tests (frontend)** | `frontend/src/**/*.test.*` | TypeScript |
|
|
| **Tests (e2e API)** | `e2e/api/` | Karate (Gherkin) |
|
|
| **Tests (e2e UI)** | `e2e/ui/` | Karate UI (Gherkin) |
|
|
| **CI/CD** | `.github/workflows/` | YAML |
|
|
| **Docker** | `Dockerfile`, `docker-compose.yml`, `nginx.conf` | Docker / Nginx |
|
|
|
|
## Excluded Paths
|
|
|
|
These paths are excluded from audits:
|
|
|
|
- `document-parser/.venv/`
|
|
- `document-parser/__pycache__/`
|
|
- `frontend/node_modules/`
|
|
- `frontend/dist/`
|
|
- `e2e/**/target/`
|
|
|
|
## Framework Detection
|
|
|
|
Imports that should NOT appear in the domain layer:
|
|
|
|
```python
|
|
# Forbidden in document-parser/domain/
|
|
from fastapi import ...
|
|
from pydantic import ... # except BaseModel for value objects
|
|
import aiosqlite
|
|
from infra import ...
|
|
from persistence import ...
|
|
from api import ...
|
|
```
|
|
|
|
Imports that should NOT cross feature boundaries in the frontend:
|
|
|
|
```typescript
|
|
// features/analysis/ should NOT import from features/chunking/store
|
|
// features/document/ should NOT import from features/analysis/store
|
|
// Cross-feature communication goes through shared/ or events
|
|
```
|
|
|
|
## Tools & Commands
|
|
|
|
| Task | Command |
|
|
|------|---------|
|
|
| Backend lint | `cd document-parser && ruff check .` |
|
|
| Backend format | `cd document-parser && ruff format --check .` |
|
|
| Backend tests | `cd document-parser && pytest tests/ -v` |
|
|
| Frontend lint | `cd frontend && npx eslint src/` |
|
|
| Frontend type-check | `cd frontend && npm run type-check` |
|
|
| Frontend format | `cd frontend && npx prettier --check src/` |
|
|
| Frontend tests | `cd frontend && npm run test:run` |
|
|
| E2E API tests | `mvn test -f e2e/api/pom.xml -Dkarate.options="--tags @smoke"` |
|
|
| E2E UI tests | `mvn test -f e2e/ui/pom.xml -Dkarate.options="--tags @critical"` |
|
|
| Docker build | `docker compose build` |
|
|
| Docker health | `curl -s http://localhost:3000/api/health` |
|
|
| Dependency audit (Python) | `cd document-parser && pip audit` |
|
|
| Dependency audit (Node) | `cd frontend && npm audit` |
|