Install
$ agentstack add skill-avibebuilder-claude-prime-backend-fastapi-python ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Backend FastAPI Python
Project-specific conventions for FastAPI with SQLModel, pydantic-settings, and async SQLAlchemy.
Architecture Decisions
- Services are stateless functions — Not classes. First param is
db: AsyncSession. - Generic response wrapper — Always use
ApiResponse[T]for consistency. - Dependencies chain —
get_current_user->require_auth->require_admin. - Module-scoped config — Each module can have its own
{module}_config.py. - Error codes for frontend —
AppException(status, message, error_code).
Gotchas
- SQLModel
Relationship()fields are NOT included in API responses by default. You must explicitly add them tomodel_configor use a separate response schema with those fields. AsyncSession.refresh()does not load relationships. After commit, re-query with.options(selectinload(...))if you need related objects.- Pydantic V2 uses
model_validatornotvalidator. The@validatordecorator is V1 and will break silently or raise deprecation warnings. Depends()in FastAPI creates a NEW instance per request — don't store state in dependency return values expecting it to persist.- Background tasks (
BackgroundTasks) run AFTER the response is sent. If they fail, the client already got a 200. Use proper task queues (Celery, ARQ) for anything that must not silently fail. - Alembic
--autogeneratemisses: table renames (generates drop+create), index changes on existing columns, andEnumtype modifications in PostgreSQL. Always review generated migrations. async defendpoints block the event loop if you call sync I/O inside them. Userun_in_executorfor sync libraries or define the endpoint asdef(FastAPI runs sync endpoints in a threadpool).HTTPExceptionfrom FastAPI andHTTPExceptionfrom Starlette are different classes. Importing the wrong one causes middleware to miss exception handlers.- SQLAlchemy's
lazy="selectin"on relationships causes N+1 queries in async sessions. Use explicitselectinload()in queries instead. Optional[str] = Nonein query params makes the field optional.str = Nonealso works but loses type information — prefer the explicitOptionalform.- When using
response_model, FastAPI filters OUT any fields not in the model. If your response is missing data, check that the response model includes all fields, not just the ORM model.
References
| When you need... | Read | |------------------|------| | Directory layout | [file-structure.md](./references/file-structure.md) | | Settings and env vars | [configuration.md](./references/configuration.md) | | Database sessions and connections | [database.md](./references/database.md) | | ORM models | [models.md](./references/models.md) | | Request/response schemas | [schemas.md](./references/schemas.md) | | Router and endpoint patterns | [routing.md](./references/routing.md) | | Service layer patterns | [services.md](./references/services.md) | | Dependency injection | [dependencies.md](./references/dependencies.md) | | Middleware setup | [middleware.md](./references/middleware.md) | | Error handling | [error-handling.md](./references/error-handling.md) | | Auth flow example | [auth.md](./references/auth.md) |
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: avibebuilder
- Source: avibebuilder/claude-prime
- License: MIT
- Homepage: https://claudeprime.avibebuilder.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.