fastapi-fullstack 0.1.18__tar.gz → 0.2.0__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_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/.gitignore +6 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/PKG-INFO +39 -27
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/README.md +35 -23
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/pyproject.toml +4 -4
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/CLAUDE.md +1 -1
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/README.md +19 -19
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/db/models/user.py +10 -10
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/schemas/user.py +2 -2
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/README.md +19 -19
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/LICENSE +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/fastapi_gen/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/fastapi_gen/cli.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/fastapi_gen/config.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/fastapi_gen/generator.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/fastapi_gen/prompts.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/VARIABLES.md +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/cookiecutter.json +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/hooks/post_gen_project.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/.env.prod.example +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/.github/workflows/ci.yml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/.gitignore +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/.gitlab-ci.yml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/AGENTS.md +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/Makefile +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/.dockerignore +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/.env.example +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/.pre-commit-config.yaml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/Dockerfile +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/alembic/env.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/alembic/script.py.mako +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/alembic/versions/.gitkeep +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/alembic.ini +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/admin.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/agents/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/agents/assistant.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/agents/crewai_assistant.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/agents/deepagents_assistant.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/agents/langchain_assistant.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/agents/langgraph_assistant.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/agents/prompts.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/agents/tools/datetime_tool.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/deps.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/exception_handlers.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/router.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/agent.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/auth.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/conversations.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/health.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/items.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/oauth.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/sessions.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/users.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/webhooks.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/routes/v1/ws.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/api/versioning.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/clients/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/clients/redis.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/commands/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/commands/cleanup.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/commands/example.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/commands/seed.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/core/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/core/cache.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/core/config.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/core/csrf.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/core/exceptions.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/core/logfire_setup.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/core/middleware.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/core/oauth.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/core/rate_limit.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/core/sanitize.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/core/security.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/db/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/db/base.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/db/models/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/db/models/conversation.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/db/models/item.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/db/models/session.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/db/models/webhook.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/db/session.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/main.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/pipelines/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/pipelines/base.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/repositories/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/repositories/base.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/repositories/conversation.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/repositories/item.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/repositories/session.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/repositories/user.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/repositories/webhook.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/schemas/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/schemas/base.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/schemas/conversation.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/schemas/item.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/schemas/session.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/schemas/token.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/schemas/webhook.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/services/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/services/conversation.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/services/item.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/services/session.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/services/user.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/services/webhook.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/worker/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/worker/arq_app.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/worker/celery_app.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/worker/taskiq_app.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/examples.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/schedules.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/app/worker/tasks/taskiq_examples.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/cli/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/cli/commands.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/pyproject.toml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/scripts/.gitkeep +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/api/__init__.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_auth.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_exceptions.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_health.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_items.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_metrics.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/api/test_users.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/conftest.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/test_admin.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/test_agents.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/test_clients.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/test_commands.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/test_core.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/test_pipelines.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/test_repositories.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/test_security.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/test_services.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/backend/tests/test_worker.py +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/docker-compose.dev.yml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/docker-compose.frontend.yml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/docker-compose.prod.yml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/docker-compose.yml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/docs/adding_features.md +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/docs/architecture.md +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/docs/patterns.md +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/docs/testing.md +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/.dockerignore +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/.env.example +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/.gitignore +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/.prettierignore +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/.prettierrc +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/Dockerfile +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/e2e/auth.setup.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/e2e/auth.spec.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/e2e/chat.spec.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/e2e/home.spec.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/instrumentation.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/messages/en.json +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/messages/pl.json +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/next.config.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/package.json +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/playwright.config.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/postcss.config.mjs +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/layout.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/login/page.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(auth)/register/page.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/chat/page.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/dashboard/page.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/layout.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/(dashboard)/profile/page.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/auth/callback/page.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/layout.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/[locale]/page.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/login/route.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/logout/route.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/me/route.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/oauth-callback/route.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/refresh/route.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/auth/register/route.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/messages/route.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/[id]/route.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/conversations/route.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/api/health/route.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/globals.css +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/layout.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/app/providers.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/index.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/login-form.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/auth/register-form.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chat-container.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/chat-input.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/conversation-sidebar.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/copy-button.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/index.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/local-conversation-sidebar.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/markdown-content.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/message-item.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/message-list.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-approval-dialog.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/chat/tool-call-card.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/icons/google-icon.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/icons/index.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/language-switcher.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/header.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/index.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/layout/sidebar.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/index.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/theme-provider.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/theme/theme-toggle.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/badge.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/button.test.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/button.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/card.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/index.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/input.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/label.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/components/ui/sheet.tsx +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/index.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-auth.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-chat.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-conversations.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-local-chat.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/hooks/use-websocket.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/i18n.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/lib/api-client.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/lib/constants.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/lib/server-api.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/lib/utils.test.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/lib/utils.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/middleware.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/stores/auth-store.test.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/stores/auth-store.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/stores/chat-sidebar-store.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/stores/chat-store.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/stores/conversation-store.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/stores/index.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/stores/local-chat-store.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/stores/sidebar-store.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/stores/theme-store.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/types/api.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/types/auth.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/types/chat.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/types/conversation.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/src/types/index.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/tsconfig.json +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/vitest.config.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/frontend/vitest.setup.ts +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/kubernetes/configmap.yaml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/kubernetes/deployment.yaml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/kubernetes/ingress.yaml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/kubernetes/kustomization.yaml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/kubernetes/namespace.yaml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/kubernetes/secret.yaml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/kubernetes/service.yaml +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/nginx/nginx.conf +0 -0
- {fastapi_fullstack-0.1.18 → fastapi_fullstack-0.2.0}/template/{{cookiecutter.project_slug}}/nginx/ssl/.gitkeep +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastapi-fullstack
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Full-stack FastAPI + Next.js template generator with PydanticAI/LangChain agents, WebSocket streaming, 20+ enterprise integrations, and Logfire/LangSmith observability. Ship AI apps fast. CLI tool to generate production-ready FastAPI + Next.js projects with AI agents, auth, and observability.
|
|
5
|
-
Project-URL: Homepage, https://github.com/vstorm-co/full-stack-
|
|
6
|
-
Project-URL: Documentation, https://github.com/vstorm-co/full-stack-
|
|
7
|
-
Project-URL: Repository, https://github.com/vstorm-co/full-stack-
|
|
5
|
+
Project-URL: Homepage, https://github.com/vstorm-co/full-stack-ai-agent-template
|
|
6
|
+
Project-URL: Documentation, https://github.com/vstorm-co/full-stack-ai-agent-template#readme
|
|
7
|
+
Project-URL: Repository, https://github.com/vstorm-co/full-stack-ai-agent-template
|
|
8
8
|
Author-email: Vstorm <hr@vstorm.co>
|
|
9
9
|
License: MIT
|
|
10
10
|
License-File: LICENSE
|
|
@@ -55,9 +55,9 @@ Description-Content-Type: text/markdown
|
|
|
55
55
|
<p align="center">
|
|
56
56
|
<a href="https://pypi.org/project/fastapi-fullstack/"><img src="https://img.shields.io/pypi/v/fastapi-fullstack?color=green&logo=pypi&logoColor=white" alt="PyPI"></a>
|
|
57
57
|
<a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.11+-blue?logo=python&logoColor=white" alt="Python 3.11+"></a>
|
|
58
|
-
<a href="https://github.com/vstorm-co/full-stack-
|
|
58
|
+
<a href="https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/LICENSE"><img src="https://img.shields.io/github/license/vstorm-co/full-stack-ai-agent-template?color=blue" alt="License"></a>
|
|
59
59
|
<img src="https://img.shields.io/badge/coverage-100%25-brightgreen" alt="Coverage">
|
|
60
|
-
<a href="https://github.com/vstorm-co/full-stack-
|
|
60
|
+
<a href="https://github.com/vstorm-co/full-stack-ai-agent-template/stargazers"><img src="https://img.shields.io/github/stars/vstorm-co/full-stack-ai-agent-template?style=flat&logo=github&color=yellow" alt="GitHub Stars"></a>
|
|
61
61
|
</p>
|
|
62
62
|
|
|
63
63
|
<p align="center">
|
|
@@ -74,7 +74,7 @@ Description-Content-Type: text/markdown
|
|
|
74
74
|
|
|
75
75
|
## Related Projects
|
|
76
76
|
|
|
77
|
-
> **Building advanced AI agents?** Check out [pydantic-
|
|
77
|
+
> **Building advanced AI agents?** Check out [pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents) — a deepagent framework built on pydantic-ai for building Claude Code-style AI agents with filesystem tools, subagent delegation, persistent memory, context management, cost tracking, and an interactive CLI.
|
|
78
78
|
|
|
79
79
|
---
|
|
80
80
|
|
|
@@ -182,7 +182,7 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
|
|
|
182
182
|
## 🎬 Demo
|
|
183
183
|
|
|
184
184
|
<p align="center">
|
|
185
|
-
<img src="https://raw.githubusercontent.com/vstorm-co/full-stack-
|
|
185
|
+
<img src="https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/app_start.gif" alt="FastAPI Fullstack Generator Demo">
|
|
186
186
|
</p>
|
|
187
187
|
|
|
188
188
|
---
|
|
@@ -192,26 +192,26 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
|
|
|
192
192
|
### Chat Interface
|
|
193
193
|
| Light Mode | Dark Mode |
|
|
194
194
|
|:---:|:---:|
|
|
195
|
-
|  |  |
|
|
196
196
|
|
|
197
197
|
### Authentication
|
|
198
198
|
| Register | Login |
|
|
199
199
|
|:---:|:---:|
|
|
200
|
-
|  |  |
|
|
201
201
|
|
|
202
202
|
### Observability
|
|
203
203
|
| Logfire (PydanticAI) | LangSmith (LangChain) |
|
|
204
204
|
|:---:|:---:|
|
|
205
|
-
|  |  |
|
|
206
206
|
|
|
207
207
|
### Admin, Monitoring & API
|
|
208
208
|
| Celery Flower | SQLAdmin Panel |
|
|
209
209
|
|:---:|:---:|
|
|
210
|
-
|  |  |
|
|
211
211
|
|
|
212
212
|
| API Documentation |
|
|
213
213
|
|:---:|
|
|
214
|
-
|  |
|
|
215
215
|
|
|
216
216
|
---
|
|
217
217
|
|
|
@@ -399,7 +399,7 @@ graph LR
|
|
|
399
399
|
| **Services** | Business logic, orchestration |
|
|
400
400
|
| **Repositories** | Data access, queries |
|
|
401
401
|
|
|
402
|
-
See [Architecture Documentation](https://github.com/vstorm-co/full-stack-
|
|
402
|
+
See [Architecture Documentation](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/architecture.md) for details.
|
|
403
403
|
|
|
404
404
|
---
|
|
405
405
|
|
|
@@ -503,7 +503,7 @@ Each framework has its own observability solution:
|
|
|
503
503
|
| **PydanticAI** | [Logfire](https://logfire.pydantic.dev) | Agent runs, tool calls, token usage |
|
|
504
504
|
| **LangChain** | [LangSmith](https://smith.langchain.com) | Traces, feedback, datasets |
|
|
505
505
|
|
|
506
|
-
See [AI Agent Documentation](https://github.com/vstorm-co/full-stack-
|
|
506
|
+
See [AI Agent Documentation](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) for more.
|
|
507
507
|
|
|
508
508
|
---
|
|
509
509
|
|
|
@@ -749,13 +749,13 @@ fastapi-fullstack new
|
|
|
749
749
|
|
|
750
750
|
| Document | Description |
|
|
751
751
|
|----------|-------------|
|
|
752
|
-
| [Architecture](https://github.com/vstorm-co/full-stack-
|
|
753
|
-
| [Frontend](https://github.com/vstorm-co/full-stack-
|
|
754
|
-
| [AI Agent](https://github.com/vstorm-co/full-stack-
|
|
755
|
-
| [Observability](https://github.com/vstorm-co/full-stack-
|
|
756
|
-
| [Deployment](https://github.com/vstorm-co/full-stack-
|
|
757
|
-
| [Development](https://github.com/vstorm-co/full-stack-
|
|
758
|
-
| [Changelog](https://github.com/vstorm-co/full-stack-
|
|
752
|
+
| [Architecture](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/architecture.md) | Repository + Service pattern, layered design |
|
|
753
|
+
| [Frontend](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/frontend.md) | Next.js setup, auth, state management |
|
|
754
|
+
| [AI Agent](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) | PydanticAI, tools, WebSocket streaming |
|
|
755
|
+
| [Observability](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/observability.md) | Logfire integration, tracing, metrics |
|
|
756
|
+
| [Deployment](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/deployment.md) | Docker, Kubernetes, production setup |
|
|
757
|
+
| [Development](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/development.md) | Local setup, testing, debugging |
|
|
758
|
+
| [Changelog](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/CHANGELOG.md) | Version history and release notes |
|
|
759
759
|
|
|
760
760
|
---
|
|
761
761
|
|
|
@@ -778,16 +778,28 @@ This project is inspired by:
|
|
|
778
778
|
|
|
779
779
|
## 🤝 Contributing
|
|
780
780
|
|
|
781
|
-
Contributions are welcome! Please read our [Contributing Guide](https://github.com/vstorm-co/full-stack-
|
|
781
|
+
Contributions are welcome! Please read our [Contributing Guide](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/CONTRIBUTING.md) for details.
|
|
782
782
|
|
|
783
783
|
---
|
|
784
784
|
|
|
785
785
|
## 📄 License
|
|
786
786
|
|
|
787
|
-
MIT License - see [LICENSE](https://github.com/vstorm-co/full-stack-
|
|
787
|
+
MIT License - see [LICENSE](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/LICENSE) for details.
|
|
788
788
|
|
|
789
789
|
---
|
|
790
790
|
|
|
791
|
-
<
|
|
792
|
-
|
|
793
|
-
|
|
791
|
+
<div align="center">
|
|
792
|
+
|
|
793
|
+
### Need help implementing this in your company?
|
|
794
|
+
|
|
795
|
+
<p>We're <a href="https://vstorm.co"><b>Vstorm</b></a> — an Applied Agentic AI Engineering Consultancy<br>with 30+ production AI agent implementations.</p>
|
|
796
|
+
|
|
797
|
+
<a href="https://vstorm.co/contact-us/">
|
|
798
|
+
<img src="https://img.shields.io/badge/Talk%20to%20us%20%E2%86%92-0066FF?style=for-the-badge&logoColor=white" alt="Talk to us">
|
|
799
|
+
</a>
|
|
800
|
+
|
|
801
|
+
<br><br>
|
|
802
|
+
|
|
803
|
+
Made with ❤️ by <a href="https://vstorm.co"><b>Vstorm</b></a>
|
|
804
|
+
|
|
805
|
+
</div>
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
<p align="center">
|
|
16
16
|
<a href="https://pypi.org/project/fastapi-fullstack/"><img src="https://img.shields.io/pypi/v/fastapi-fullstack?color=green&logo=pypi&logoColor=white" alt="PyPI"></a>
|
|
17
17
|
<a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.11+-blue?logo=python&logoColor=white" alt="Python 3.11+"></a>
|
|
18
|
-
<a href="https://github.com/vstorm-co/full-stack-
|
|
18
|
+
<a href="https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/LICENSE"><img src="https://img.shields.io/github/license/vstorm-co/full-stack-ai-agent-template?color=blue" alt="License"></a>
|
|
19
19
|
<img src="https://img.shields.io/badge/coverage-100%25-brightgreen" alt="Coverage">
|
|
20
|
-
<a href="https://github.com/vstorm-co/full-stack-
|
|
20
|
+
<a href="https://github.com/vstorm-co/full-stack-ai-agent-template/stargazers"><img src="https://img.shields.io/github/stars/vstorm-co/full-stack-ai-agent-template?style=flat&logo=github&color=yellow" alt="GitHub Stars"></a>
|
|
21
21
|
</p>
|
|
22
22
|
|
|
23
23
|
<p align="center">
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
|
|
35
35
|
## Related Projects
|
|
36
36
|
|
|
37
|
-
> **Building advanced AI agents?** Check out [pydantic-
|
|
37
|
+
> **Building advanced AI agents?** Check out [pydantic-deepagents](https://github.com/vstorm-co/pydantic-deepagents) — a deepagent framework built on pydantic-ai for building Claude Code-style AI agents with filesystem tools, subagent delegation, persistent memory, context management, cost tracking, and an interactive CLI.
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
@@ -142,7 +142,7 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
|
|
|
142
142
|
## 🎬 Demo
|
|
143
143
|
|
|
144
144
|
<p align="center">
|
|
145
|
-
<img src="https://raw.githubusercontent.com/vstorm-co/full-stack-
|
|
145
|
+
<img src="https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/app_start.gif" alt="FastAPI Fullstack Generator Demo">
|
|
146
146
|
</p>
|
|
147
147
|
|
|
148
148
|
---
|
|
@@ -152,26 +152,26 @@ Generated projects include **CLAUDE.md** and **AGENTS.md** files optimized for A
|
|
|
152
152
|
### Chat Interface
|
|
153
153
|
| Light Mode | Dark Mode |
|
|
154
154
|
|:---:|:---:|
|
|
155
|
-
|  |  |
|
|
156
156
|
|
|
157
157
|
### Authentication
|
|
158
158
|
| Register | Login |
|
|
159
159
|
|:---:|:---:|
|
|
160
|
-
|  |  |
|
|
161
161
|
|
|
162
162
|
### Observability
|
|
163
163
|
| Logfire (PydanticAI) | LangSmith (LangChain) |
|
|
164
164
|
|:---:|:---:|
|
|
165
|
-
|  |  |
|
|
166
166
|
|
|
167
167
|
### Admin, Monitoring & API
|
|
168
168
|
| Celery Flower | SQLAdmin Panel |
|
|
169
169
|
|:---:|:---:|
|
|
170
|
-
|  |  |
|
|
171
171
|
|
|
172
172
|
| API Documentation |
|
|
173
173
|
|:---:|
|
|
174
|
-
|  |
|
|
175
175
|
|
|
176
176
|
---
|
|
177
177
|
|
|
@@ -359,7 +359,7 @@ graph LR
|
|
|
359
359
|
| **Services** | Business logic, orchestration |
|
|
360
360
|
| **Repositories** | Data access, queries |
|
|
361
361
|
|
|
362
|
-
See [Architecture Documentation](https://github.com/vstorm-co/full-stack-
|
|
362
|
+
See [Architecture Documentation](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/architecture.md) for details.
|
|
363
363
|
|
|
364
364
|
---
|
|
365
365
|
|
|
@@ -463,7 +463,7 @@ Each framework has its own observability solution:
|
|
|
463
463
|
| **PydanticAI** | [Logfire](https://logfire.pydantic.dev) | Agent runs, tool calls, token usage |
|
|
464
464
|
| **LangChain** | [LangSmith](https://smith.langchain.com) | Traces, feedback, datasets |
|
|
465
465
|
|
|
466
|
-
See [AI Agent Documentation](https://github.com/vstorm-co/full-stack-
|
|
466
|
+
See [AI Agent Documentation](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) for more.
|
|
467
467
|
|
|
468
468
|
---
|
|
469
469
|
|
|
@@ -709,13 +709,13 @@ fastapi-fullstack new
|
|
|
709
709
|
|
|
710
710
|
| Document | Description |
|
|
711
711
|
|----------|-------------|
|
|
712
|
-
| [Architecture](https://github.com/vstorm-co/full-stack-
|
|
713
|
-
| [Frontend](https://github.com/vstorm-co/full-stack-
|
|
714
|
-
| [AI Agent](https://github.com/vstorm-co/full-stack-
|
|
715
|
-
| [Observability](https://github.com/vstorm-co/full-stack-
|
|
716
|
-
| [Deployment](https://github.com/vstorm-co/full-stack-
|
|
717
|
-
| [Development](https://github.com/vstorm-co/full-stack-
|
|
718
|
-
| [Changelog](https://github.com/vstorm-co/full-stack-
|
|
712
|
+
| [Architecture](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/architecture.md) | Repository + Service pattern, layered design |
|
|
713
|
+
| [Frontend](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/frontend.md) | Next.js setup, auth, state management |
|
|
714
|
+
| [AI Agent](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) | PydanticAI, tools, WebSocket streaming |
|
|
715
|
+
| [Observability](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/observability.md) | Logfire integration, tracing, metrics |
|
|
716
|
+
| [Deployment](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/deployment.md) | Docker, Kubernetes, production setup |
|
|
717
|
+
| [Development](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/development.md) | Local setup, testing, debugging |
|
|
718
|
+
| [Changelog](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/CHANGELOG.md) | Version history and release notes |
|
|
719
719
|
|
|
720
720
|
---
|
|
721
721
|
|
|
@@ -738,16 +738,28 @@ This project is inspired by:
|
|
|
738
738
|
|
|
739
739
|
## 🤝 Contributing
|
|
740
740
|
|
|
741
|
-
Contributions are welcome! Please read our [Contributing Guide](https://github.com/vstorm-co/full-stack-
|
|
741
|
+
Contributions are welcome! Please read our [Contributing Guide](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/CONTRIBUTING.md) for details.
|
|
742
742
|
|
|
743
743
|
---
|
|
744
744
|
|
|
745
745
|
## 📄 License
|
|
746
746
|
|
|
747
|
-
MIT License - see [LICENSE](https://github.com/vstorm-co/full-stack-
|
|
747
|
+
MIT License - see [LICENSE](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/LICENSE) for details.
|
|
748
748
|
|
|
749
749
|
---
|
|
750
750
|
|
|
751
|
-
<
|
|
752
|
-
|
|
753
|
-
|
|
751
|
+
<div align="center">
|
|
752
|
+
|
|
753
|
+
### Need help implementing this in your company?
|
|
754
|
+
|
|
755
|
+
<p>We're <a href="https://vstorm.co"><b>Vstorm</b></a> — an Applied Agentic AI Engineering Consultancy<br>with 30+ production AI agent implementations.</p>
|
|
756
|
+
|
|
757
|
+
<a href="https://vstorm.co/contact-us/">
|
|
758
|
+
<img src="https://img.shields.io/badge/Talk%20to%20us%20%E2%86%92-0066FF?style=for-the-badge&logoColor=white" alt="Talk to us">
|
|
759
|
+
</a>
|
|
760
|
+
|
|
761
|
+
<br><br>
|
|
762
|
+
|
|
763
|
+
Made with ❤️ by <a href="https://vstorm.co"><b>Vstorm</b></a>
|
|
764
|
+
|
|
765
|
+
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "fastapi-fullstack"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.2.0"
|
|
4
4
|
description = "Full-stack FastAPI + Next.js template generator with PydanticAI/LangChain agents, WebSocket streaming, 20+ enterprise integrations, and Logfire/LangSmith observability. Ship AI apps fast. CLI tool to generate production-ready FastAPI + Next.js projects with AI agents, auth, and observability."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
@@ -68,9 +68,9 @@ docs = [
|
|
|
68
68
|
fastapi-fullstack = "fastapi_gen.cli:main"
|
|
69
69
|
|
|
70
70
|
[project.urls]
|
|
71
|
-
Homepage = "https://github.com/vstorm-co/full-stack-
|
|
72
|
-
Documentation = "https://github.com/vstorm-co/full-stack-
|
|
73
|
-
Repository = "https://github.com/vstorm-co/full-stack-
|
|
71
|
+
Homepage = "https://github.com/vstorm-co/full-stack-ai-agent-template"
|
|
72
|
+
Documentation = "https://github.com/vstorm-co/full-stack-ai-agent-template#readme"
|
|
73
|
+
Repository = "https://github.com/vstorm-co/full-stack-ai-agent-template"
|
|
74
74
|
|
|
75
75
|
[build-system]
|
|
76
76
|
requires = ["hatchling"]
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Project Overview
|
|
4
4
|
|
|
5
|
-
**{{ cookiecutter.project_name }}** - FastAPI application generated with [Full-Stack FastAPI + Next.js Template](https://github.com/vstorm-co/full-stack-
|
|
5
|
+
**{{ cookiecutter.project_name }}** - FastAPI application generated with [Full-Stack FastAPI + Next.js Template](https://github.com/vstorm-co/full-stack-ai-agent-template).
|
|
6
6
|
|
|
7
7
|
**Stack:** FastAPI + Pydantic v2
|
|
8
8
|
{%- if cookiecutter.use_postgresql %}, PostgreSQL (async){%- endif %}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Full-Stack FastAPI + Next.js Template for AI/LLM Applications
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
|
-
<a href="https://github.com/vstorm-co/full-stack-
|
|
5
|
-
<a href="https://github.com/vstorm-co/full-stack-
|
|
4
|
+
<a href="https://github.com/vstorm-co/full-stack-ai-agent-template/stargazers"><img src="https://img.shields.io/github/stars/vstorm-co/full-stack-ai-agent-template?style=flat&logo=github&color=yellow" alt="GitHub Stars"></a>
|
|
5
|
+
<a href="https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/LICENSE"><img src="https://img.shields.io/github/license/vstorm-co/full-stack-ai-agent-template?color=blue" alt="License"></a>
|
|
6
6
|
<a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.11%20%7C%203.12%20%7C%203.13-blue?logo=python&logoColor=white" alt="Python"></a>
|
|
7
7
|
<a href="https://pypi.org/project/fastapi-fullstack/"><img src="https://img.shields.io/pypi/v/fastapi-fullstack?color=green&logo=pypi&logoColor=white" alt="PyPI"></a>
|
|
8
8
|
<img src="https://img.shields.io/badge/coverage-100%25-brightgreen" alt="Coverage">
|
|
@@ -95,7 +95,7 @@ This template gives you all of that out of the box, with **20+ configurable inte
|
|
|
95
95
|
## 🎬 Demo
|
|
96
96
|
|
|
97
97
|
<p align="center">
|
|
98
|
-
<img src="https://raw.githubusercontent.com/vstorm-co/full-stack-
|
|
98
|
+
<img src="https://raw.githubusercontent.com/vstorm-co/full-stack-ai-agent-template/main/assets/app_start.gif" alt="FastAPI Fullstack Generator Demo">
|
|
99
99
|
</p>
|
|
100
100
|
|
|
101
101
|
---
|
|
@@ -292,26 +292,26 @@ make create-admin # Create admin user
|
|
|
292
292
|
### Chat Interface
|
|
293
293
|
| Light Mode | Dark Mode |
|
|
294
294
|
|:---:|:---:|
|
|
295
|
-
|  |  |
|
|
296
296
|
|
|
297
297
|
### Authentication
|
|
298
298
|
| Register | Login |
|
|
299
299
|
|:---:|:---:|
|
|
300
|
-
|  |  |
|
|
301
301
|
|
|
302
302
|
### Observability
|
|
303
303
|
| Logfire (PydanticAI) | LangSmith (LangChain) |
|
|
304
304
|
|:---:|:---:|
|
|
305
|
-
|  |  |
|
|
306
306
|
|
|
307
307
|
### Admin, Monitoring & API
|
|
308
308
|
| Celery Flower | SQLAdmin Panel |
|
|
309
309
|
|:---:|:---:|
|
|
310
|
-
|  |  |
|
|
311
311
|
|
|
312
312
|
| API Documentation |
|
|
313
313
|
|:---:|
|
|
314
|
-
|  |
|
|
315
315
|
|
|
316
316
|
---
|
|
317
317
|
|
|
@@ -375,7 +375,7 @@ graph LR
|
|
|
375
375
|
| **Services** | Business logic, orchestration |
|
|
376
376
|
| **Repositories** | Data access, queries |
|
|
377
377
|
|
|
378
|
-
See [Architecture Documentation](https://github.com/vstorm-co/full-stack-
|
|
378
|
+
See [Architecture Documentation](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/architecture.md) for details.
|
|
379
379
|
|
|
380
380
|
---
|
|
381
381
|
|
|
@@ -479,7 +479,7 @@ Each framework has its own observability solution:
|
|
|
479
479
|
| **PydanticAI** | [Logfire](https://logfire.pydantic.dev) | Agent runs, tool calls, token usage |
|
|
480
480
|
| **LangChain** | [LangSmith](https://smith.langchain.com) | Traces, feedback, datasets |
|
|
481
481
|
|
|
482
|
-
See [AI Agent Documentation](https://github.com/vstorm-co/full-stack-
|
|
482
|
+
See [AI Agent Documentation](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) for more.
|
|
483
483
|
|
|
484
484
|
---
|
|
485
485
|
|
|
@@ -1059,18 +1059,18 @@ fastapi-fullstack new
|
|
|
1059
1059
|
|
|
1060
1060
|
| Document | Description |
|
|
1061
1061
|
|----------|-------------|
|
|
1062
|
-
| [Architecture](https://github.com/vstorm-co/full-stack-
|
|
1063
|
-
| [Frontend](https://github.com/vstorm-co/full-stack-
|
|
1064
|
-
| [AI Agent](https://github.com/vstorm-co/full-stack-
|
|
1065
|
-
| [Observability](https://github.com/vstorm-co/full-stack-
|
|
1066
|
-
| [Deployment](https://github.com/vstorm-co/full-stack-
|
|
1067
|
-
| [Development](https://github.com/vstorm-co/full-stack-
|
|
1062
|
+
| [Architecture](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/architecture.md) | Repository + Service pattern, layered design |
|
|
1063
|
+
| [Frontend](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/frontend.md) | Next.js setup, auth, state management |
|
|
1064
|
+
| [AI Agent](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/ai-agent.md) | PydanticAI, tools, WebSocket streaming |
|
|
1065
|
+
| [Observability](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/observability.md) | Logfire integration, tracing, metrics |
|
|
1066
|
+
| [Deployment](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/deployment.md) | Docker, Kubernetes, production setup |
|
|
1067
|
+
| [Development](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/docs/development.md) | Local setup, testing, debugging |
|
|
1068
1068
|
|
|
1069
1069
|
---
|
|
1070
1070
|
|
|
1071
1071
|
## Star History
|
|
1072
1072
|
|
|
1073
|
-
[](https://www.star-history.com/#vstorm-co/full-stack-ai-agent-template&type=date&legend=top-left)
|
|
1074
1074
|
|
|
1075
1075
|
---
|
|
1076
1076
|
|
|
@@ -1087,13 +1087,13 @@ This project is inspired by:
|
|
|
1087
1087
|
|
|
1088
1088
|
## 🤝 Contributing
|
|
1089
1089
|
|
|
1090
|
-
Contributions are welcome! Please read our [Contributing Guide](https://github.com/vstorm-co/full-stack-
|
|
1090
|
+
Contributions are welcome! Please read our [Contributing Guide](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/CONTRIBUTING.md) for details.
|
|
1091
1091
|
|
|
1092
1092
|
---
|
|
1093
1093
|
|
|
1094
1094
|
## 📄 License
|
|
1095
1095
|
|
|
1096
|
-
MIT License - see [LICENSE](https://github.com/vstorm-co/full-stack-
|
|
1096
|
+
MIT License - see [LICENSE](https://github.com/vstorm-co/full-stack-ai-agent-template/blob/main/LICENSE) for details.
|
|
1097
1097
|
|
|
1098
1098
|
---
|
|
1099
1099
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"""User database model using SQLModel."""
|
|
3
3
|
|
|
4
4
|
import uuid
|
|
5
|
-
from enum import
|
|
5
|
+
from enum import StrEnum
|
|
6
6
|
{%- if cookiecutter.enable_session_management %}
|
|
7
7
|
from typing import TYPE_CHECKING
|
|
8
8
|
{%- endif %}
|
|
@@ -19,7 +19,7 @@ if TYPE_CHECKING:
|
|
|
19
19
|
{%- endif %}
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
class UserRole(
|
|
22
|
+
class UserRole(StrEnum):
|
|
23
23
|
"""User role enumeration.
|
|
24
24
|
|
|
25
25
|
Roles hierarchy (higher includes lower permissions):
|
|
@@ -81,7 +81,7 @@ class User(TimestampMixin, SQLModel, table=True):
|
|
|
81
81
|
"""User database model."""
|
|
82
82
|
|
|
83
83
|
import uuid
|
|
84
|
-
from enum import
|
|
84
|
+
from enum import StrEnum
|
|
85
85
|
{%- if cookiecutter.enable_session_management %}
|
|
86
86
|
from typing import TYPE_CHECKING
|
|
87
87
|
{%- endif %}
|
|
@@ -98,7 +98,7 @@ if TYPE_CHECKING:
|
|
|
98
98
|
{%- endif %}
|
|
99
99
|
|
|
100
100
|
|
|
101
|
-
class UserRole(
|
|
101
|
+
class UserRole(StrEnum):
|
|
102
102
|
"""User role enumeration.
|
|
103
103
|
|
|
104
104
|
Roles hierarchy (higher includes lower permissions):
|
|
@@ -159,7 +159,7 @@ class User(Base, TimestampMixin):
|
|
|
159
159
|
"""User database model using SQLModel."""
|
|
160
160
|
|
|
161
161
|
import uuid
|
|
162
|
-
from enum import
|
|
162
|
+
from enum import StrEnum
|
|
163
163
|
{%- if cookiecutter.enable_session_management %}
|
|
164
164
|
from typing import TYPE_CHECKING
|
|
165
165
|
{%- endif %}
|
|
@@ -175,7 +175,7 @@ if TYPE_CHECKING:
|
|
|
175
175
|
{%- endif %}
|
|
176
176
|
|
|
177
177
|
|
|
178
|
-
class UserRole(
|
|
178
|
+
class UserRole(StrEnum):
|
|
179
179
|
"""User role enumeration.
|
|
180
180
|
|
|
181
181
|
Roles hierarchy (higher includes lower permissions):
|
|
@@ -237,7 +237,7 @@ class User(TimestampMixin, SQLModel, table=True):
|
|
|
237
237
|
"""User database model."""
|
|
238
238
|
|
|
239
239
|
import uuid
|
|
240
|
-
from enum import
|
|
240
|
+
from enum import StrEnum
|
|
241
241
|
{%- if cookiecutter.enable_session_management %}
|
|
242
242
|
from typing import TYPE_CHECKING
|
|
243
243
|
{%- endif %}
|
|
@@ -253,7 +253,7 @@ if TYPE_CHECKING:
|
|
|
253
253
|
{%- endif %}
|
|
254
254
|
|
|
255
255
|
|
|
256
|
-
class UserRole(
|
|
256
|
+
class UserRole(StrEnum):
|
|
257
257
|
"""User role enumeration.
|
|
258
258
|
|
|
259
259
|
Roles hierarchy (higher includes lower permissions):
|
|
@@ -314,14 +314,14 @@ class User(Base, TimestampMixin):
|
|
|
314
314
|
"""User document model for MongoDB."""
|
|
315
315
|
|
|
316
316
|
from datetime import UTC, datetime
|
|
317
|
-
from enum import
|
|
317
|
+
from enum import StrEnum
|
|
318
318
|
from typing import Optional
|
|
319
319
|
|
|
320
320
|
from beanie import Document
|
|
321
321
|
from pydantic import EmailStr, Field
|
|
322
322
|
|
|
323
323
|
|
|
324
|
-
class UserRole(
|
|
324
|
+
class UserRole(StrEnum):
|
|
325
325
|
"""User role enumeration.
|
|
326
326
|
|
|
327
327
|
Roles hierarchy (higher includes lower permissions):
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{%- if cookiecutter.use_jwt %}
|
|
2
2
|
"""User schemas."""
|
|
3
3
|
|
|
4
|
-
from enum import
|
|
4
|
+
from enum import StrEnum
|
|
5
5
|
from uuid import UUID
|
|
6
6
|
|
|
7
7
|
from pydantic import EmailStr, Field
|
|
@@ -9,7 +9,7 @@ from pydantic import EmailStr, Field
|
|
|
9
9
|
from app.schemas.base import BaseSchema, TimestampSchema
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
class UserRole(
|
|
12
|
+
class UserRole(StrEnum):
|
|
13
13
|
"""User role enumeration for API schemas."""
|
|
14
14
|
|
|
15
15
|
ADMIN = "admin"
|