From 05847ee829fea6ff095c3bd7d88979f6c5a8f7ea Mon Sep 17 00:00:00 2001 From: CarterPerez-dev Date: Wed, 24 Dec 2025 07:15:58 -0500 Subject: [PATCH 1/2] official completion --- .env.example | 7 + .../versions/20251224_033104_initial.py | 67 ++ .../versions/2025_12_07_001_initial_schema.py | 28 - backend/app/__init__.py | 24 - backend/app/__main__.py | 25 +- backend/app/admin/__init__.py | 4 + backend/app/auth/__init__.py | 4 + backend/app/auth/routes.py | 5 +- backend/app/auth/service.py | 17 +- backend/app/config.py | 9 +- backend/app/factory.py | 2 + backend/app/user/__init__.py | 4 + backend/app/user/repository.py | 3 + backend/app/user/service.py | 13 +- backend/conftest.py | 9 +- backend/pyproject.toml | 13 +- backend/tests/integration/test_admin.py | 256 ++++ backend/tests/integration/test_users.py | 13 +- backend/uv.lock | 106 ++ docs/research/CLAUDE-CODE-PROGRAMMATIC.md | 1054 ----------------- .../CLAUDE-MAX-SUBSCRIPTION-HEADLESS.md | 725 ------------ .../minimal-production/backend/.env.example | 22 + .../minimal-production/backend/Dockerfile | 18 + examples/minimal-production/backend/README.md | 92 ++ .../minimal-production/backend/alembic.ini | 43 + .../minimal-production/backend/alembic/env.py | 115 ++ .../backend/alembic/script.py.mako | 25 + .../20251215_000001_initial_schema.py | 61 + .../backend/app/__main__.py | 19 + .../backend/app/auth/dependencies.py | 20 + .../backend/app/auth/routes.py | 63 + .../backend/app/auth/schemas.py | 15 + .../backend/app/auth/service.py | 82 ++ .../minimal-production/backend/app/config.py | 134 +++ .../backend/app/core/Base.py | 63 + .../backend/app/core/base_repository.py | 106 ++ .../backend/app/core/base_schema.py | 31 + .../backend/app/core/common_schemas.py | 33 + .../backend/app/core/constants.py | 12 + .../backend/app/core/database.py | 160 +++ .../backend/app/core/dependencies.py | 76 ++ .../backend/app/core/enums.py | 31 + .../backend/app/core/error_schemas.py | 27 + .../backend/app/core/exceptions.py | 146 +++ .../backend/app/core/health_routes.py | 67 ++ .../backend/app/core/responses.py | 36 + .../backend/app/core/security.py | 111 ++ .../minimal-production/backend/app/factory.py | 104 ++ .../backend/app/user/User.py | 37 + .../backend/app/user/dependencies.py | 20 + .../backend/app/user/repository.py | 91 ++ .../backend/app/user/routes.py | 82 ++ .../backend/app/user/schemas.py | 77 ++ .../backend/app/user/service.py | 94 ++ .../minimal-production/backend/pyproject.toml | 57 + .../minimal-production/docker-compose.yml | 42 + frontend/.gitignore | 1 + frontend/index.html | 2 +- frontend/package.json | 12 +- frontend/pnpm-lock.yaml | 39 + .../public/assets/android-chrome-192x192.png | Bin 86309 -> 25807 bytes .../public/assets/android-chrome-512x512.png | Bin 471801 -> 73395 bytes frontend/public/assets/apple-touch-icon.png | Bin 77169 -> 22963 bytes frontend/public/assets/favicon-16x16.png | Bin 911 -> 746 bytes frontend/public/assets/favicon-32x32.png | Bin 3142 -> 2032 bytes frontend/public/assets/favicon.ico | Bin 15406 -> 15406 bytes frontend/public/assets/site.webmanifest | 2 +- frontend/src/App.tsx | 13 +- frontend/src/api/hooks/useAdmin.ts | 15 +- frontend/src/api/types/auth.types.ts | 22 +- frontend/src/api/types/user.types.ts | 8 +- frontend/src/components/index.tsx | 4 + frontend/src/config.ts | 31 +- frontend/src/core/api/errors.ts | 44 +- frontend/src/core/app/routers.tsx | 39 +- frontend/src/core/app/shell.module.scss | 270 ++++- frontend/src/core/app/shell.tsx | 124 +- frontend/src/core/app/toast.module.scss | 59 +- frontend/src/core/lib/auth.form.store.ts | 43 + frontend/src/core/lib/index.ts | 3 +- .../lib/{ui.store.ts => shell.ui.store.ts} | 0 frontend/src/pages/admin/admin.module.scss | 468 ++++++++ frontend/src/pages/admin/index.tsx | 415 +++++++ .../src/pages/dashboard/dashboard.module.scss | 152 +++ frontend/src/pages/dashboard/index.tsx | 90 ++ frontend/src/pages/home/home.module.scss | 18 - frontend/src/pages/home/index.tsx | 17 - frontend/src/pages/landing/index.tsx | 97 ++ .../src/pages/landing/landing.module.scss | 161 +++ frontend/src/pages/login/index.tsx | 114 ++ frontend/src/pages/login/login.module.scss | 171 +++ frontend/src/pages/register/index.tsx | 164 +++ .../src/pages/register/register.module.scss | 171 +++ frontend/src/pages/settings/index.tsx | 95 ++ .../src/pages/settings/settings.module.scss | 109 ++ frontend/src/styles.scss | 8 +- frontend/src/styles/_fonts.scss | 114 +- frontend/src/styles/_mixins.scss | 250 +--- frontend/src/styles/_reset.scss | 42 +- frontend/src/styles/_tokens.scss | 273 ++--- frontend/stylelint.config.js | 10 + frontend/vite.config.ts | 4 +- infra/docker/fastapi.dev | 2 +- infra/docker/fastapi.prod | 2 +- 104 files changed, 5696 insertions(+), 2582 deletions(-) create mode 100644 backend/alembic/versions/20251224_033104_initial.py delete mode 100644 backend/alembic/versions/2025_12_07_001_initial_schema.py delete mode 100644 backend/app/__init__.py create mode 100644 backend/tests/integration/test_admin.py delete mode 100644 docs/research/CLAUDE-CODE-PROGRAMMATIC.md delete mode 100644 docs/research/CLAUDE-MAX-SUBSCRIPTION-HEADLESS.md create mode 100644 examples/minimal-production/backend/.env.example create mode 100644 examples/minimal-production/backend/Dockerfile create mode 100644 examples/minimal-production/backend/README.md create mode 100644 examples/minimal-production/backend/alembic.ini create mode 100644 examples/minimal-production/backend/alembic/env.py create mode 100644 examples/minimal-production/backend/alembic/script.py.mako create mode 100644 examples/minimal-production/backend/alembic/versions/20251215_000001_initial_schema.py create mode 100644 examples/minimal-production/backend/app/__main__.py create mode 100644 examples/minimal-production/backend/app/auth/dependencies.py create mode 100644 examples/minimal-production/backend/app/auth/routes.py create mode 100644 examples/minimal-production/backend/app/auth/schemas.py create mode 100644 examples/minimal-production/backend/app/auth/service.py create mode 100644 examples/minimal-production/backend/app/config.py create mode 100644 examples/minimal-production/backend/app/core/Base.py create mode 100644 examples/minimal-production/backend/app/core/base_repository.py create mode 100644 examples/minimal-production/backend/app/core/base_schema.py create mode 100644 examples/minimal-production/backend/app/core/common_schemas.py create mode 100644 examples/minimal-production/backend/app/core/constants.py create mode 100644 examples/minimal-production/backend/app/core/database.py create mode 100644 examples/minimal-production/backend/app/core/dependencies.py create mode 100644 examples/minimal-production/backend/app/core/enums.py create mode 100644 examples/minimal-production/backend/app/core/error_schemas.py create mode 100644 examples/minimal-production/backend/app/core/exceptions.py create mode 100644 examples/minimal-production/backend/app/core/health_routes.py create mode 100644 examples/minimal-production/backend/app/core/responses.py create mode 100644 examples/minimal-production/backend/app/core/security.py create mode 100644 examples/minimal-production/backend/app/factory.py create mode 100644 examples/minimal-production/backend/app/user/User.py create mode 100644 examples/minimal-production/backend/app/user/dependencies.py create mode 100644 examples/minimal-production/backend/app/user/repository.py create mode 100644 examples/minimal-production/backend/app/user/routes.py create mode 100644 examples/minimal-production/backend/app/user/schemas.py create mode 100644 examples/minimal-production/backend/app/user/service.py create mode 100644 examples/minimal-production/backend/pyproject.toml create mode 100644 examples/minimal-production/docker-compose.yml create mode 100644 frontend/src/components/index.tsx create mode 100644 frontend/src/core/lib/auth.form.store.ts rename frontend/src/core/lib/{ui.store.ts => shell.ui.store.ts} (100%) create mode 100644 frontend/src/pages/admin/admin.module.scss create mode 100644 frontend/src/pages/admin/index.tsx create mode 100644 frontend/src/pages/dashboard/dashboard.module.scss create mode 100644 frontend/src/pages/dashboard/index.tsx delete mode 100644 frontend/src/pages/home/home.module.scss delete mode 100644 frontend/src/pages/home/index.tsx create mode 100644 frontend/src/pages/landing/index.tsx create mode 100644 frontend/src/pages/landing/landing.module.scss create mode 100644 frontend/src/pages/login/index.tsx create mode 100644 frontend/src/pages/login/login.module.scss create mode 100644 frontend/src/pages/register/index.tsx create mode 100644 frontend/src/pages/register/register.module.scss create mode 100644 frontend/src/pages/settings/index.tsx create mode 100644 frontend/src/pages/settings/settings.module.scss diff --git a/.env.example b/.env.example index 162971a..a20a317 100644 --- a/.env.example +++ b/.env.example @@ -64,6 +64,13 @@ JWT_ALGORITHM=HS256 ACCESS_TOKEN_EXPIRE_MINUTES=15 REFRESH_TOKEN_EXPIRE_DAYS=7 +# ============================================================================= +# Admin Bootstrap (optional) +# ============================================================================= +# If set, registering with this email auto-promotes to admin role. +# Leave empty or remove to disable auto-admin (all users register as USER). +ADMIN_EMAIL= + # ============================================================================= # CORS (must match HOST PORTS above!) # ============================================================================= diff --git a/backend/alembic/versions/20251224_033104_initial.py b/backend/alembic/versions/20251224_033104_initial.py new file mode 100644 index 0000000..acf8814 --- /dev/null +++ b/backend/alembic/versions/20251224_033104_initial.py @@ -0,0 +1,67 @@ +"""initial + +Revision ID: 801b86be184b +Revises: +Create Date: 2025-12-24 03:31:04.712921 +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +revision: str = '801b86be184b' +down_revision: Union[str, None] = None +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('users', + sa.Column('email', sa.String(length=320), nullable=False), + sa.Column('hashed_password', sa.String(length=1024), nullable=False), + sa.Column('full_name', sa.String(length=255), nullable=True), + sa.Column('is_active', sa.Boolean(), nullable=False), + sa.Column('is_verified', sa.Boolean(), nullable=False), + sa.Column('role', sa.Enum('unknown', 'user', 'admin', name='userrole'), nullable=False), + sa.Column('token_version', sa.Integer(), nullable=False), + sa.Column('id', sa.Uuid(), nullable=False), + sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=False), + sa.Column('updated_at', sa.DateTime(timezone=True), nullable=True), + sa.PrimaryKeyConstraint('id', name=op.f('pk_users')) + ) + op.create_index(op.f('ix_users_email'), 'users', ['email'], unique=True) + op.create_table('refresh_tokens', + sa.Column('token_hash', sa.String(length=64), nullable=False), + sa.Column('user_id', sa.Uuid(), nullable=False), + sa.Column('family_id', sa.Uuid(), nullable=False), + sa.Column('device_id', sa.String(length=255), nullable=True), + sa.Column('device_name', sa.String(length=100), nullable=True), + sa.Column('ip_address', sa.String(length=45), nullable=True), + sa.Column('expires_at', sa.DateTime(timezone=True), nullable=False), + sa.Column('is_revoked', sa.Boolean(), nullable=False), + sa.Column('revoked_at', sa.DateTime(timezone=True), nullable=True), + sa.Column('id', sa.Uuid(), nullable=False), + sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=False), + sa.Column('updated_at', sa.DateTime(timezone=True), nullable=True), + sa.ForeignKeyConstraint(['user_id'], ['users.id'], name=op.f('fk_refresh_tokens_user_id_users'), ondelete='CASCADE'), + sa.PrimaryKeyConstraint('id', name=op.f('pk_refresh_tokens')) + ) + op.create_index(op.f('ix_refresh_tokens_expires_at'), 'refresh_tokens', ['expires_at'], unique=False) + op.create_index(op.f('ix_refresh_tokens_family_id'), 'refresh_tokens', ['family_id'], unique=False) + op.create_index(op.f('ix_refresh_tokens_token_hash'), 'refresh_tokens', ['token_hash'], unique=True) + op.create_index(op.f('ix_refresh_tokens_user_id'), 'refresh_tokens', ['user_id'], unique=False) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index(op.f('ix_refresh_tokens_user_id'), table_name='refresh_tokens') + op.drop_index(op.f('ix_refresh_tokens_token_hash'), table_name='refresh_tokens') + op.drop_index(op.f('ix_refresh_tokens_family_id'), table_name='refresh_tokens') + op.drop_index(op.f('ix_refresh_tokens_expires_at'), table_name='refresh_tokens') + op.drop_table('refresh_tokens') + op.drop_index(op.f('ix_users_email'), table_name='users') + op.drop_table('users') + # ### end Alembic commands ### diff --git a/backend/alembic/versions/2025_12_07_001_initial_schema.py b/backend/alembic/versions/2025_12_07_001_initial_schema.py deleted file mode 100644 index 1138d38..0000000 --- a/backend/alembic/versions/2025_12_07_001_initial_schema.py +++ /dev/null @@ -1,28 +0,0 @@ -"""initial_schema - -Revision ID: ee8bde7caa8b -Revises: -Create Date: 2025-12-07 21:27:04.856781 -""" -from typing import Sequence, Union - -from alembic import op -import sqlalchemy as sa - - -revision: str = 'ee8bde7caa8b' -down_revision: Union[str, None] = None -branch_labels: Union[str, Sequence[str], None] = None -depends_on: Union[str, Sequence[str], None] = None - - -def upgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - pass - # ### end Alembic commands ### - - -def downgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - pass - # ### end Alembic commands ### diff --git a/backend/app/__init__.py b/backend/app/__init__.py deleted file mode 100644 index 6dcb5de..0000000 --- a/backend/app/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -""" -ⒸAngelaMos | 2025 -__init__.py - -⠀⠀⠀⠀⠀⠴⣦⣤⡀⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⣨⣥⣄⣀⠀⡁⠀⠀⡀⡠⠀⠀⠀⠂⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⢠⣾⣿⣷⣮⣷⡦⠥⠈⡶⠮⣤⣀⡠⠀⡀⣐⣀⡈⠁⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⠟⠀⠠⠊⠉⠀⠀⢀⠉⠙⠚⠧⣦⣀⡀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⡏⠀⠀⠀⠀⠀⠠⠀⠁⠀⢤⠀⠀⠀⠨⡉⠛⠶⠤⣄⣄⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⡀⠀⠀⢰⠀⠍⡾⠆⠀⠀⣠⡦⠄⡀⠄⠀⠠⠀⠀⠀⠈⠙⠓⠦⢤⣀⡀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣶⣦⢠⡈⠀⠀⠀⠀⠀⠋⠛⠉⡂⠈⠙⠀⣰⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠺⠦⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠻⢿⣿⣿⣿⣿⣿⣾⣿⣿⣦⢤⡀⢀⣂⣨⠀⢅⢱⡔⠒⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠲⠴⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣎⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣾⣽⡿⢿⣿⣿⣿⣿⣿⣿⣿⣿⠳⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⠏⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠹⣦⣴⠖⠲⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠈⠀⠀⠀⠒⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢩⠢⣙⠿⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣆⠈⠛⢶⣌⡉⣻⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣷⣄⣤⣙⣿⣿⣿⣷⣄⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠟⠛⠟⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⡿⣿⣿⣿⣿⣿⣿⡿⠋⠉⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠙⠁⠘⢮⣛⡽⠛⠿⡿⠥⠀ - -""" diff --git a/backend/app/__main__.py b/backend/app/__main__.py index 9fca783..fab2856 100644 --- a/backend/app/__main__.py +++ b/backend/app/__main__.py @@ -2,6 +2,7 @@ ⒸAngelaMos | 2025 __main__.py """ + import uvicorn from config import settings @@ -12,8 +13,30 @@ if __name__ == "__main__": uvicorn.run( - "__main__:app", + "app.__main__:app", host = settings.HOST, port = settings.PORT, reload = settings.RELOAD, ) +""" + +⠀⠀⠀⠀⠀⠴⣦⣤⡀⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⣨⣥⣄⣀⠀⡁⠀⠀⡀⡠⠀⠀⠀⠂⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⢠⣾⣿⣷⣮⣷⡦⠥⠈⡶⠮⣤⣀⡠⠀⡀⣐⣀⡈⠁⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⠟⠀⠠⠊⠉⠀⠀⢀⠉⠙⠚⠧⣦⣀⡀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⡏⠀⠀⠀⠀⠀⠠⠀⠁⠀⢤⠀⠀⠀⠨⡉⠛⠶⠤⣄⣄⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⡀⠀⠀⢰⠀⠍⡾⠆⠀⠀⣠⡦⠄⡀⠄⠀⠠⠀⠀⠀⠈⠙⠓⠦⢤⣀⡀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣶⣦⢠⡈⠀⠀⠀⠀⠀⠋⠛⠉⡂⠈⠙⠀⣰⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠺⠦⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠻⢿⣿⣿⣿⣿⣿⣾⣿⣿⣦⢤⡀⢀⣂⣨⠀⢅⢱⡔⠒⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠲⠴⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣎⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣾⣽⡿⢿⣿⣿⣿⣿⣿⣿⣿⣿⠳⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⠏⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠹⣦⣴⠖⠲⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠈⠀⠀⠀⠒⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢩⠢⣙⠿⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣆⠈⠛⢶⣌⡉⣻⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣷⣄⣤⣙⣿⣿⣿⣷⣄⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠟⠛⠟⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⡿⣿⣿⣿⣿⣿⣿⡿⠋⠉⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠙⠁⠘⢮⣛⡽⠛⠿⡿⠥⠀ + +""" diff --git a/backend/app/admin/__init__.py b/backend/app/admin/__init__.py index e69de29..fa3dc88 100644 --- a/backend/app/admin/__init__.py +++ b/backend/app/admin/__init__.py @@ -0,0 +1,4 @@ +""" +ⒸAngelaMos | 2025 +Admin Domain +""" diff --git a/backend/app/auth/__init__.py b/backend/app/auth/__init__.py index e69de29..e2ef245 100644 --- a/backend/app/auth/__init__.py +++ b/backend/app/auth/__init__.py @@ -0,0 +1,4 @@ +""" +ⒸAngelaMos | 2025 +Auth Domain +""" diff --git a/backend/app/auth/routes.py b/backend/app/auth/routes.py index d6cee83..afbb10e 100644 --- a/backend/app/auth/routes.py +++ b/backend/app/auth/routes.py @@ -74,6 +74,7 @@ async def login( responses = {**AUTH_401} ) async def refresh_token( + response: Response, auth_service: AuthServiceDep, ip: ClientIP, refresh_token: str | None = Cookie(None), @@ -83,10 +84,12 @@ async def refresh_token( """ if not refresh_token: raise TokenError("Refresh token required") - return await auth_service.refresh_tokens( + result, new_refresh_token = await auth_service.refresh_tokens( refresh_token, ip_address = ip ) + set_refresh_cookie(response, new_refresh_token) + return result @router.post( diff --git a/backend/app/auth/service.py b/backend/app/auth/service.py index 0db8ea3..f0557a1 100644 --- a/backend/app/auth/service.py +++ b/backend/app/auth/service.py @@ -63,7 +63,11 @@ async def authenticate( raise InvalidCredentials() if new_hash: - await UserRepository.update_password(self.session, user, new_hash) + await UserRepository.update_password( + self.session, + user, + new_hash + ) access_token = create_access_token(user.id, user.token_version) @@ -115,7 +119,7 @@ async def refresh_tokens( device_id: str | None = None, device_name: str | None = None, ip_address: str | None = None, - ) -> TokenResponse: + ) -> tuple[TokenResponse, str]: """ Refresh access token using refresh token @@ -147,11 +151,14 @@ async def refresh_tokens( if user is None or not user.is_active: raise TokenError(message = "User not found or inactive") - await RefreshTokenRepository.revoke_token(self.session, stored_token) + await RefreshTokenRepository.revoke_token( + self.session, + stored_token + ) access_token = create_access_token(user.id, user.token_version) - _, new_hash, expires_at = create_refresh_token( + new_raw_token, new_hash, expires_at = create_refresh_token( user.id, stored_token.family_id ) @@ -166,7 +173,7 @@ async def refresh_tokens( ip_address = ip_address, ) - return TokenResponse(access_token = access_token) + return TokenResponse(access_token = access_token), new_raw_token async def logout( self, diff --git a/backend/app/config.py b/backend/app/config.py index b54b6c2..7ed8739 100644 --- a/backend/app/config.py +++ b/backend/app/config.py @@ -8,6 +8,7 @@ from functools import lru_cache from pydantic import ( + EmailStr, Field, RedisDsn, SecretStr, @@ -80,9 +81,9 @@ class Settings(BaseSettings): APP_NAME: str = "FastAPI Template" APP_VERSION: str = "1.0.0" - APP_SUMMARY: str = "FastAPI Backend Template" - APP_DESCRIPTION: str = "Async first boilerplate - JWT, Asyncdb, PostgreSQL" - APP_CONTACT_NAME: str = "AngelaMos" + APP_SUMMARY: str = "Developed CarterPerez-dev" + APP_DESCRIPTION: str = "FastAPI async first boilerplate - JWT, Asyncdb, PostgreSQL" + APP_CONTACT_NAME: str = "AngelaMos LLC" APP_CONTACT_EMAIL: str = "support@certgames.com" APP_LICENSE_NAME: str = "MIT" APP_LICENSE_URL: str = "https://github.com/CarterPerez-dev/fullstack-template/docs/templates/MIT" @@ -105,6 +106,8 @@ class Settings(BaseSettings): ACCESS_TOKEN_EXPIRE_MINUTES: int = Field(default = 15, ge = 5, le = 60) REFRESH_TOKEN_EXPIRE_DAYS: int = Field(default = 7, ge = 1, le = 30) + ADMIN_EMAIL: EmailStr | None = None + REDIS_URL: RedisDsn | None = None CORS_ORIGINS: list[str] = [ diff --git a/backend/app/factory.py b/backend/app/factory.py index 4a8066b..52903d9 100644 --- a/backend/app/factory.py +++ b/backend/app/factory.py @@ -80,7 +80,9 @@ def create_app() -> FastAPI: "url": settings.APP_LICENSE_URL, }, openapi_tags = OPENAPI_TAGS, + openapi_version = "3.1.0", lifespan = lifespan, + root_path = "/api" if not is_production else "", openapi_url = None if is_production else "/openapi.json", docs_url = None if is_production else "/docs", redoc_url = None if is_production else "/redoc", diff --git a/backend/app/user/__init__.py b/backend/app/user/__init__.py index e69de29..10f02dc 100644 --- a/backend/app/user/__init__.py +++ b/backend/app/user/__init__.py @@ -0,0 +1,4 @@ +""" +ⒸAngelaMos | 2025 +User Domain +""" diff --git a/backend/app/user/repository.py b/backend/app/user/repository.py index e1adfc9..1c0eba3 100644 --- a/backend/app/user/repository.py +++ b/backend/app/user/repository.py @@ -7,6 +7,7 @@ from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession +from config import UserRole from .User import User from core.base_repository import BaseRepository @@ -63,6 +64,7 @@ async def create_user( email: str, hashed_password: str, full_name: str | None = None, + role: UserRole = UserRole.USER, ) -> User: """ Create a new user @@ -71,6 +73,7 @@ async def create_user( email = email, hashed_password = hashed_password, full_name = full_name, + role = role, ) session.add(user) await session.flush() diff --git a/backend/app/user/service.py b/backend/app/user/service.py index e6e92f0..3a7d085 100644 --- a/backend/app/user/service.py +++ b/backend/app/user/service.py @@ -8,6 +8,7 @@ AsyncSession, ) +from config import settings, UserRole from core.exceptions import ( EmailAlreadyExists, InvalidCredentials, @@ -43,15 +44,22 @@ async def create_user( """ Register a new user """ - if await UserRepository.email_exists(self.session, user_data.email): + if await UserRepository.email_exists(self.session, + user_data.email): raise EmailAlreadyExists(user_data.email) + role = UserRole.USER + if settings.ADMIN_EMAIL and user_data.email.lower( + ) == settings.ADMIN_EMAIL.lower(): + role = UserRole.ADMIN + hashed = await hash_password(user_data.password) user = await UserRepository.create_user( self.session, email = user_data.email, hashed_password = hashed, full_name = user_data.full_name, + role = role, ) return UserResponse.model_validate(user) @@ -154,7 +162,8 @@ async def admin_create_user( """ Admin creates a new user """ - if await UserRepository.email_exists(self.session, user_data.email): + if await UserRepository.email_exists(self.session, + user_data.email): raise EmailAlreadyExists(user_data.email) hashed = await hash_password(user_data.password) diff --git a/backend/conftest.py b/backend/conftest.py index 3e66866..9b95ea0 100644 --- a/backend/conftest.py +++ b/backend/conftest.py @@ -5,6 +5,11 @@ Test configuration, fixtures, and factories """ +import sys +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).parent / "app")) + import hashlib import secrets from datetime import ( @@ -83,7 +88,9 @@ async def client(db_session: AsyncSession) -> AsyncIterator[AsyncClient]: """ Async HTTP client with DB session override """ - from __main__ import app + from factory import create_app + + app = create_app() async def override_get_db(): yield db_session diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 071a175..07ea197 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "full-stack-template" version = "1.0.0" -description = "Production grade FastAPI template with async SQLAlchemy and JWT auth" +description = "FastAPI template with async SQLAlchemy and JWT auth" requires-python = ">=3.12" dependencies = [ @@ -34,6 +34,9 @@ dev = [ "mypy>=1.19.0", "types-redis>=4.6.0", "ruff>=0.14.8", + "pylint>=4.0.4", + "pylint-pydantic>=0.4.1", + "pylint-per-file-ignores>=3.2.0", "ty>=0.0.1a32", "pre-commit>=4.2.0", ] @@ -105,7 +108,7 @@ warn_unused_ignores = true disallow_untyped_defs = true disallow_incomplete_defs = true plugins = ["pydantic.mypy"] -exclude = ["alembic"] +exclude = ["alembic", ".venv", "venv"] [[tool.mypy.overrides]] module = ["tests.*", "conftest"] @@ -250,13 +253,13 @@ exclude_lines = [ [tool.ty.src] -include = ["src", "tests"] +include = ["app", "tests"] exclude = ["alembic/versions/**", ".venv/**"] respect-ignore-files = true [tool.ty.environment] python-version = "3.12" -root = ["./src"] +root = ["./app"] python = "./.venv" [tool.ty.rules] @@ -273,7 +276,7 @@ unresolved-reference = "warn" invalid-argument-type = "warn" [[tool.ty.overrides]] -include = ["src/repositories/**", "src/services/**"] +include = ["app/repositories/**", "app/services/**"] [tool.ty.overrides.rules] unresolved-attribute = "warn" diff --git a/backend/tests/integration/test_admin.py b/backend/tests/integration/test_admin.py new file mode 100644 index 0000000..6c97f62 --- /dev/null +++ b/backend/tests/integration/test_admin.py @@ -0,0 +1,256 @@ +""" +©AngelaMos | 2025 +test_admin.py +""" + +import pytest +from httpx import AsyncClient + +from user.User import User + + +URL_ADMIN_USERS = "/v1/admin/users" + + +def url_admin_user_by_id(user_id: str) -> str: + return f"{URL_ADMIN_USERS}/{user_id}" + + +@pytest.mark.asyncio +async def test_admin_create_user( + client: AsyncClient, + admin_user: User, + admin_auth_headers: dict[str, str], +): + """ + Admin can create a new user + """ + response = await client.post( + URL_ADMIN_USERS, + headers = admin_auth_headers, + json = { + "email": "adminmade@test.com", + "password": "ValidPass123", + "full_name": "Admin Created User", + }, + ) + + assert response.status_code == 201 + data = response.json() + assert data["email"] == "adminmade@test.com" + assert data["full_name"] == "Admin Created User" + assert "id" in data + assert "hashed_password" not in data + + +@pytest.mark.asyncio +async def test_admin_create_user_non_admin_forbidden( + client: AsyncClient, + test_user: User, + auth_headers: dict[str, str], +): + """ + Non admin cannot create user via admin endpoint + """ + response = await client.post( + URL_ADMIN_USERS, + headers = auth_headers, + json = { + "email": "shouldfail@test.com", + "password": "ValidPass123", + }, + ) + + assert response.status_code == 403 + + +@pytest.mark.asyncio +async def test_admin_create_user_duplicate_email( + client: AsyncClient, + admin_user: User, + admin_auth_headers: dict[str, str], + test_user: User, +): + """ + Admin create with duplicate email returns 409 + """ + response = await client.post( + URL_ADMIN_USERS, + headers = admin_auth_headers, + json = { + "email": test_user.email, + "password": "ValidPass123", + }, + ) + + assert response.status_code == 409 + + +@pytest.mark.asyncio +async def test_admin_get_user_by_id( + client: AsyncClient, + admin_user: User, + admin_auth_headers: dict[str, str], + test_user: User, +): + """ + Admin can get any user by ID + """ + response = await client.get( + url_admin_user_by_id(str(test_user.id)), + headers = admin_auth_headers, + ) + + assert response.status_code == 200 + data = response.json() + assert data["id"] == str(test_user.id) + assert data["email"] == test_user.email + + +@pytest.mark.asyncio +async def test_admin_get_user_not_found( + client: AsyncClient, + admin_user: User, + admin_auth_headers: dict[str, str], +): + """ + Admin get non existent user returns 404 + """ + fake_id = "00000000-0000-0000-0000-000000000000" + response = await client.get( + url_admin_user_by_id(fake_id), + headers = admin_auth_headers, + ) + + assert response.status_code == 404 + + +@pytest.mark.asyncio +async def test_admin_update_user( + client: AsyncClient, + admin_user: User, + admin_auth_headers: dict[str, str], + test_user: User, +): + """ + Admin can update any user + """ + response = await client.patch( + url_admin_user_by_id(str(test_user.id)), + headers = admin_auth_headers, + json = {"full_name": "Admin Updated Name"}, + ) + + assert response.status_code == 200 + data = response.json() + assert data["full_name"] == "Admin Updated Name" + assert data["id"] == str(test_user.id) + + +@pytest.mark.asyncio +async def test_admin_update_user_not_found( + client: AsyncClient, + admin_user: User, + admin_auth_headers: dict[str, str], +): + """ + Admin update non existent user returns 404 + """ + fake_id = "00000000-0000-0000-0000-000000000000" + response = await client.patch( + url_admin_user_by_id(fake_id), + headers = admin_auth_headers, + json = {"full_name": "Should Fail"}, + ) + + assert response.status_code == 404 + + +@pytest.mark.asyncio +async def test_admin_update_user_non_admin_forbidden( + client: AsyncClient, + test_user: User, + auth_headers: dict[str, str], +): + """ + Non admin cannot update via admin endpoint + """ + response = await client.patch( + url_admin_user_by_id(str(test_user.id)), + headers = auth_headers, + json = {"full_name": "Should Fail"}, + ) + + assert response.status_code == 403 + + +@pytest.mark.asyncio +async def test_admin_delete_user( + client: AsyncClient, + admin_user: User, + admin_auth_headers: dict[str, str], + db_session, +): + """ + Admin can delete a user + """ + from user.User import User as UserModel + from core.security import hash_password + + user_to_delete = UserModel( + email = "deleteme@test.com", + hashed_password = await hash_password("TestPass123"), + full_name = "Delete Me", + ) + db_session.add(user_to_delete) + await db_session.flush() + await db_session.refresh(user_to_delete) + user_id = str(user_to_delete.id) + + response = await client.delete( + url_admin_user_by_id(user_id), + headers = admin_auth_headers, + ) + + assert response.status_code == 204 + + get_response = await client.get( + url_admin_user_by_id(user_id), + headers = admin_auth_headers, + ) + assert get_response.status_code == 404 + + +@pytest.mark.asyncio +async def test_admin_delete_user_not_found( + client: AsyncClient, + admin_user: User, + admin_auth_headers: dict[str, str], +): + """ + Admin delete non existent user returns 404 + """ + fake_id = "00000000-0000-0000-0000-000000000000" + response = await client.delete( + url_admin_user_by_id(fake_id), + headers = admin_auth_headers, + ) + + assert response.status_code == 404 + + +@pytest.mark.asyncio +async def test_admin_delete_user_non_admin_forbidden( + client: AsyncClient, + test_user: User, + auth_headers: dict[str, str], +): + """ + Non admin cannot delete users + """ + response = await client.delete( + url_admin_user_by_id(str(test_user.id)), + headers = auth_headers, + ) + + assert response.status_code == 403 diff --git a/backend/tests/integration/test_users.py b/backend/tests/integration/test_users.py index 48f845d..46a0800 100644 --- a/backend/tests/integration/test_users.py +++ b/backend/tests/integration/test_users.py @@ -9,7 +9,8 @@ from user.User import User -URL_USERS = "/v1/admin/users" +URL_USERS = "/v1/users" +URL_ADMIN_USERS = "/v1/admin/users" URL_USER_ME = "/v1/users/me" @@ -17,6 +18,10 @@ def url_user_by_id(user_id: str) -> str: return f"{URL_USERS}/{user_id}" +def url_admin_user_by_id(user_id: str) -> str: + return f"{URL_ADMIN_USERS}/{user_id}" + + @pytest.mark.asyncio async def test_create_user(client: AsyncClient): """ @@ -179,7 +184,7 @@ async def test_list_users_admin_only( Non admin cannot list users (403). """ response = await client.get( - URL_USERS, + URL_ADMIN_USERS, headers = auth_headers, ) @@ -197,7 +202,7 @@ async def test_list_users_as_admin( Admin can list users with pagination """ response = await client.get( - URL_USERS, + URL_ADMIN_USERS, headers = admin_auth_headers, ) @@ -221,7 +226,7 @@ async def test_list_users_pagination( Pagination params work correctly """ response = await client.get( - URL_USERS, + URL_ADMIN_USERS, headers = admin_auth_headers, params = { "page": 1, diff --git a/backend/uv.lock b/backend/uv.lock index bfa5643..21cb83e 100644 --- a/backend/uv.lock +++ b/backend/uv.lock @@ -118,6 +118,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2f/f5/c36551e93acba41a59939ae6a0fb77ddb3f2e8e8caa716410c65f7341f72/asgi_lifespan-2.1.0-py3-none-any.whl", hash = "sha256:ed840706680e28428c01e14afb3875d7d76d3206f3d5b2f2294e059b5c23804f", size = 10895, upload-time = "2023-03-28T17:35:47.772Z" }, ] +[[package]] +name = "astroid" +version = "4.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/22/97df040e15d964e592d3a180598ace67e91b7c559d8298bdb3c949dc6e42/astroid-4.0.2.tar.gz", hash = "sha256:ac8fb7ca1c08eb9afec91ccc23edbd8ac73bb22cbdd7da1d488d9fb8d6579070", size = 405714, upload-time = "2025-11-09T21:21:18.373Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/ac/a85b4bfb4cf53221513e27f33cc37ad158fce02ac291d18bee6b49ab477d/astroid-4.0.2-py3-none-any.whl", hash = "sha256:d7546c00a12efc32650b19a2bb66a153883185d3179ab0d4868086f807338b9b", size = 276354, upload-time = "2025-11-09T21:21:16.54Z" }, +] + [[package]] name = "asyncpg" version = "0.31.0" @@ -396,6 +405,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/84/d0/205d54408c08b13550c733c4b85429e7ead111c7f0014309637425520a9a/deprecated-1.3.1-py2.py3-none-any.whl", hash = "sha256:597bfef186b6f60181535a29fbe44865ce137a5079f295b479886c82729d5f3f", size = 11298, upload-time = "2025-10-30T08:19:00.758Z" }, ] +[[package]] +name = "dill" +version = "0.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/12/80/630b4b88364e9a8c8c5797f4602d0f76ef820909ee32f0bacb9f90654042/dill-0.4.0.tar.gz", hash = "sha256:0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0", size = 186976, upload-time = "2025-04-16T00:41:48.867Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/3d/9373ad9c56321fdab5b41197068e1d8c25883b3fea29dd361f9b55116869/dill-0.4.0-py3-none-any.whl", hash = "sha256:44f54bf6412c2c8464c14e8243eb163690a9800dbe2c367330883b19c7561049", size = 119668, upload-time = "2025-04-16T00:41:47.671Z" }, +] + [[package]] name = "distlib" version = "0.4.0" @@ -598,6 +616,9 @@ dev = [ { name = "httpx" }, { name = "mypy" }, { name = "pre-commit" }, + { name = "pylint" }, + { name = "pylint-per-file-ignores" }, + { name = "pylint-pydantic" }, { name = "pytest" }, { name = "pytest-asyncio" }, { name = "pytest-cov" }, @@ -622,6 +643,9 @@ requires-dist = [ { name = "pydantic", specifier = ">=2.12.5,<3.0.0" }, { name = "pydantic-settings", specifier = ">=2.12.0,<3.0.0" }, { name = "pyjwt", specifier = ">=2.10.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=4.0.4" }, + { name = "pylint-per-file-ignores", marker = "extra == 'dev'", specifier = ">=3.2.0" }, + { name = "pylint-pydantic", marker = "extra == 'dev'", specifier = ">=0.4.1" }, { name = "pytest", marker = "extra == 'dev'", specifier = ">=9.0.2" }, { name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=1.3.0" }, { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.0.0" }, @@ -782,6 +806,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, ] +[[package]] +name = "isort" +version = "7.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/63/53/4f3c058e3bace40282876f9b553343376ee687f3c35a525dc79dbd450f88/isort-7.0.0.tar.gz", hash = "sha256:5513527951aadb3ac4292a41a16cbc50dd1642432f5e8c20057d414bdafb4187", size = 805049, upload-time = "2025-10-11T13:30:59.107Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/ed/e3705d6d02b4f7aea715a353c8ce193efd0b5db13e204df895d38734c244/isort-7.0.0-py3-none-any.whl", hash = "sha256:1bcabac8bc3c36c7fb7b98a76c8abb18e0f841a3ba81decac7691008592499c1", size = 94672, upload-time = "2025-10-11T13:30:57.665Z" }, +] + [[package]] name = "jinja2" version = "3.1.6" @@ -947,6 +980,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, ] +[[package]] +name = "mccabe" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", size = 9658, upload-time = "2022-01-24T01:14:51.113Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e", size = 7350, upload-time = "2022-01-24T01:14:49.62Z" }, +] + [[package]] name = "mdurl" version = "0.1.2" @@ -1246,6 +1288,61 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, ] +[[package]] +name = "pylint" +version = "4.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "astroid" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "dill" }, + { name = "isort" }, + { name = "mccabe" }, + { name = "platformdirs" }, + { name = "tomlkit" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5a/d2/b081da1a8930d00e3fc06352a1d449aaf815d4982319fab5d8cdb2e9ab35/pylint-4.0.4.tar.gz", hash = "sha256:d9b71674e19b1c36d79265b5887bf8e55278cbe236c9e95d22dc82cf044fdbd2", size = 1571735, upload-time = "2025-11-30T13:29:04.315Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/92/d40f5d937517cc489ad848fc4414ecccc7592e4686b9071e09e64f5e378e/pylint-4.0.4-py3-none-any.whl", hash = "sha256:63e06a37d5922555ee2c20963eb42559918c20bd2b21244e4ef426e7c43b92e0", size = 536425, upload-time = "2025-11-30T13:29:02.53Z" }, +] + +[[package]] +name = "pylint-per-file-ignores" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pylint" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/64/b2/cf916c3c8127282f60927a3fd382ef8e477e6ef090b3d1f1fedd62bff916/pylint_per_file_ignores-3.2.0.tar.gz", hash = "sha256:5eb30b2b64c49ca616b8940346b8b5b4973eeaa15700840c8b81a4b8ba565a02", size = 63854, upload-time = "2025-11-25T14:13:14.577Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/6a/09cbda0032e1040eea8c7daec3994e6d32b3edc26a81d226fd643537886b/pylint_per_file_ignores-3.2.0-py3-none-any.whl", hash = "sha256:8b995b7486f6652f942cf5721e24c29b72735fa911b6d22b65b2f87bad323590", size = 5576, upload-time = "2025-11-25T14:13:13.208Z" }, +] + +[[package]] +name = "pylint-plugin-utils" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pylint" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/73/85/24eaf5d0d078fc8799ae6d89faf326d6e4d27d862fc9a710a52ab07b7bb5/pylint_plugin_utils-0.9.0.tar.gz", hash = "sha256:5468d763878a18d5cc4db46eaffdda14313b043c962a263a7d78151b90132055", size = 10474, upload-time = "2025-06-24T07:14:00.534Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5e/c9/a3b871b0b590c49e38884af6dab58ab9711053bd5c39b8899b72e367b9f6/pylint_plugin_utils-0.9.0-py3-none-any.whl", hash = "sha256:16e9b84e5326ba893a319a0323fcc8b4bcc9c71fc654fcabba0605596c673818", size = 11129, upload-time = "2025-06-24T07:13:58.993Z" }, +] + +[[package]] +name = "pylint-pydantic" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "pylint" }, + { name = "pylint-plugin-utils" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/2d/ac/5de3c91c7f9354444af251f053cc9953c89cce1defa74b907f67be4f770a/pylint_pydantic-0.4.1-py3-none-any.whl", hash = "sha256:d1b937abe5c346d38de69ee1ada80c93d38ee2356addbabb687e2eb44036ac93", size = 16161, upload-time = "2025-10-27T08:03:33.641Z" }, +] + [[package]] name = "pytest" version = "9.0.2" @@ -1577,6 +1674,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a8/45/a132b9074aa18e799b891b91ad72133c98d8042c70f6240e4c5f9dabee2f/structlog-25.5.0-py3-none-any.whl", hash = "sha256:a8453e9b9e636ec59bd9e79bbd4a72f025981b3ba0f5837aebf48f02f37a7f9f", size = 72510, upload-time = "2025-10-27T08:28:21.535Z" }, ] +[[package]] +name = "tomlkit" +version = "0.13.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/18/0bbf3884e9eaa38819ebe46a7bd25dcd56b67434402b66a58c4b8e552575/tomlkit-0.13.3.tar.gz", hash = "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1", size = 185207, upload-time = "2025-06-05T07:13:44.947Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl", hash = "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0", size = 38901, upload-time = "2025-06-05T07:13:43.546Z" }, +] + [[package]] name = "ty" version = "0.0.1a32" diff --git a/docs/research/CLAUDE-CODE-PROGRAMMATIC.md b/docs/research/CLAUDE-CODE-PROGRAMMATIC.md deleted file mode 100644 index f0192e8..0000000 --- a/docs/research/CLAUDE-CODE-PROGRAMMATIC.md +++ /dev/null @@ -1,1054 +0,0 @@ -# Claude Code Programmatic Usage Research - -**Research Date:** 2025-12-14 -**Purpose:** Comprehensive investigation of using Claude Code programmatically as a backend API for FastAPI applications - ---- - -## Executive Summary - -Claude Code can be used programmatically through three primary approaches: - -1. **CLI with `-p` flag** - Direct subprocess calls for simple automation -2. **Claude Agent SDK** - Production-ready library (Python/TypeScript) that wraps the CLI -3. **FastAPI Integration** - REST API wrapper around Claude Code execution - -**Key Finding:** The Claude Agent SDK (formerly Claude Code SDK) is the recommended approach for FastAPI backend integration. It spawns the Claude CLI as a subprocess and handles authentication, tool execution, session management, and streaming automatically. - -**Context Access:** Claude Code can access database/application context through: -- **Direct prompt strings** (simple, works immediately) -- **MCP servers** (advanced, for repeated database access and efficient token usage) -- **Combination approach** (MCP for data sources, prompts for specific queries) - -**Authentication:** Production deployments should use `ANTHROPIC_API_KEY` environment variable for pay-per-use API billing. Subscription-based authentication requires browser OAuth and is not suitable for headless server environments. - ---- - -## 1. Calling Claude Code from Python Backend - -### Solution Summary - -Use the **Claude Agent SDK for Python** rather than raw subprocess calls. The SDK provides a production-ready abstraction over the Claude Code CLI with built-in tool execution, session management, and streaming support. - -### Detailed Analysis - -#### Understanding the Architecture - -The Claude Agent SDK follows this architecture: - -``` -Your FastAPI App → Claude Agent SDK (Python) → Claude CLI (subprocess) → Anthropic API -``` - -> "The SDK spawns the CLI as a subprocess; the CLI talks to the Anthropic API." - [Claude Code Python SDK](https://adrianomelo.com/posts/claude-code-python-sdk.html) - -The SDK abstracts subprocess management, JSON streaming, and message parsing while providing a rich type system for structured interactions. - -#### Installation and Setup - -**Step 1: Install Claude Code CLI** - -```bash -# macOS/Linux/WSL -curl -fsSL https://claude.ai/install.sh | bash - -# Or via npm -npm install -g @anthropic-ai/claude-code - -# Or via Homebrew (macOS) -brew install --cask claude-code -``` - -**Step 2: Install Claude Agent SDK** - -```bash -pip install claude-agent-sdk -``` - -**Step 3: Set Authentication** - -```bash -export ANTHROPIC_API_KEY=your-api-key-here -``` - -Get your API key from the [Anthropic Console](https://console.anthropic.com/). - -#### Basic Usage Pattern - -```python -import asyncio -from claude_agent_sdk import query, ClaudeAgentOptions - -async def main(): - async for message in query( - prompt="Find and fix the bug in auth.py", - options=ClaudeAgentOptions(allowed_tools=["Read", "Edit", "Bash"]) - ): - print(message) - -asyncio.run(main()) -``` - -#### FastAPI Integration Example - -```python -from fastapi import FastAPI, BackgroundTasks -from pydantic import BaseModel -from claude_agent_sdk import query, ClaudeAgentOptions -import asyncio - -app = FastAPI() - -class PromptRequest(BaseModel): - prompt: str - context: str | None = None - -class ClaudeResponse(BaseModel): - content: str - session_id: str | None = None - -@app.post("/api/claude/generate", response_model=ClaudeResponse) -async def generate_content(request: PromptRequest): - full_prompt = f"{request.context}\n\n{request.prompt}" if request.context else request.prompt - - result_content = "" - session_id = None - - async for message in query( - prompt=full_prompt, - options=ClaudeAgentOptions( - allowed_tools=["Read", "Write", "Edit", "Bash"], - permission_mode="bypassPermissions" - ) - ): - if hasattr(message, 'content'): - result_content += str(message.content) - if hasattr(message, 'session_id'): - session_id = message.session_id - - return ClaudeResponse(content=result_content, session_id=session_id) -``` - -### Alternative Approach: Direct CLI Usage - -For simpler use cases, you can call the CLI directly using the `-p` flag: - -```python -import subprocess -import json - -def call_claude_cli(prompt: str) -> dict: - """ - Call Claude Code CLI with -p flag for headless execution - """ - proc = subprocess.run( - ["claude", "-p", prompt, "--output-format", "json"], - capture_output=True, - text=True, - timeout=300 - ) - - if proc.returncode == 0: - return json.loads(proc.stdout) - else: - raise RuntimeError(f"Claude CLI failed: {proc.stderr}") - -result = call_claude_cli("What files are in this directory?") -``` - -**CLI Flags for Programmatic Use:** - -| Flag | Purpose | -|------|---------| -| `-p` or `--print` | Non-interactive mode, prints response and exits | -| `--output-format json` | Structured JSON output for parsing | -| `--output-format stream-json` | Streaming JSON events | -| `--max-turns N` | Limit agentic turns in non-interactive mode | -| `--verbose` | Enable verbose logging for debugging | -| `--system-prompt "text"` | Replace entire system prompt | -| `--append-system-prompt "text"` | Add to default prompt | - -### Production Best Practices - -1. **Use the SDK over raw subprocess calls** - Better error handling, type safety, session management -2. **Set timeouts** - Prevent hanging requests -3. **Handle streaming** - Process responses incrementally for better UX -4. **Use async/await** - Leverage FastAPI's async capabilities -5. **Implement retry logic** - Handle API rate limits and transient failures -6. **Monitor token usage** - Track costs and optimize context - ---- - -## 2. Database/Context Access for Programmatic Claude Code - -### Solution Summary - -Claude Code has two primary methods for accessing database and application context: - -1. **Direct Prompt Strings** - Pass context directly in the prompt (simple, immediate) -2. **MCP Servers** - Connect to databases via Model Context Protocol (efficient, reusable) - -For production FastAPI backends, a **hybrid approach** works best: use MCP servers for persistent database connections and direct prompts for specific query parameters. - -### Detailed Analysis - -#### Method 1: Passing Context via Prompt Strings - -**How It Works:** - -> "Claude Code supports several methods for providing data: copy and paste directly into prompts (the most common approach), piping into Claude Code (e.g., cat foo.txt | claude) for logs, CSVs, and large data, or telling Claude to pull data via bash commands." - [Claude Code Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices) - -**Example: FastAPI Backend Loading Database Context** - -```python -from fastapi import FastAPI -from sqlalchemy.ext.asyncio import AsyncSession -from claude_agent_sdk import query, ClaudeAgentOptions - -@app.post("/api/generate-email") -async def generate_email(user_id: int, db: AsyncSession): - user = await db.execute( - select(User).where(User.id == user_id) - ) - user_data = user.scalar_one() - - context = f""" - User Information: - - Name: {user_data.name} - - Email: {user_data.email} - - Purchase History: {user_data.orders} - - Preferences: {user_data.preferences} - """ - - prompt = "Write a personalized marketing email for this user" - - async for message in query( - prompt=f"{context}\n\n{prompt}", - options=ClaudeAgentOptions(allowed_tools=[]) - ): - # Process response - pass -``` - -**Advantages:** -- Simple and straightforward -- Works immediately without setup -- Full control over context - -**Disadvantages:** -- Repetitive data loading for similar queries -- Can consume large amounts of tokens -- No caching or optimization - -> "Loading entire directories into Claude for every request can be very expensive." - [Claude Context Optimization](https://github.com/zilliztech/claude-context) - -#### Method 2: MCP Server for Database Access - -**How It Works:** - -> "Claude Code can connect to hundreds of external tools and data sources through the Model Context Protocol (MCP), an open source standard for AI-tool integrations, giving Claude Code access to tools, databases, and APIs." - [Connect Claude Code to tools via MCP](https://code.claude.com/docs/en/mcp) - -**MCP Architecture:** - -``` -Claude Code (Client) → MCP Server → Your Database/API -``` - -The MCP server exposes database operations as "tools" that Claude Code can call programmatically. - -**Example: Database MCP Server** - -> "DBHub by Bytebase is an open-source MCP server that can expose databases (Postgres, MySQL, etc.) to Claude, allowing Claude to directly query the database for schema info or even data." - [Claude Code Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices) - -**Setting Up MCP Server for PostgreSQL:** - -```python -from claude_agent_sdk import query, ClaudeAgentOptions - -async def main(): - async for message in query( - prompt="Find emails of 10 random users who used feature ENG-4521", - options=ClaudeAgentOptions( - mcp_servers={ - "postgres": { - "command": "npx", - "args": ["-y", "@modelcontextprotocol/server-postgres"], - "env": { - "POSTGRES_URL": "postgresql://user:pass@localhost:5432/db" - } - } - } - ) - ): - print(message) -``` - -**Token Efficiency:** - -> "Instead of loading entire directories into Claude for every request, Claude Context efficiently stores your codebase in a vector database and only uses related code in context to keep costs manageable." - [Claude Context](https://github.com/zilliztech/claude-context) - -**Context Usage Comparison:** - -- **With all MCP tools enabled:** 143k/200k tokens (72%) - MCP tools consuming 82.0k tokens (41.0%) -- **With selective MCP tools:** 67k/200k tokens (34%) - MCP tools taking only 5.7k tokens (2.8%) - -#### Method 3: Hybrid Approach (Recommended for FastAPI) - -**Best Practice Pattern:** - -1. Configure MCP server for database connection (one-time setup) -2. Pass specific query parameters via prompt -3. Let Claude use MCP tools to fetch relevant data -4. Claude processes and returns results - -**Example Implementation:** - -```python -from fastapi import FastAPI -from claude_agent_sdk import query, ClaudeAgentOptions - -app = FastAPI() - -@app.post("/api/claude/analyze-users") -async def analyze_users(feature_id: str): - async for message in query( - prompt=f"Analyze user engagement for feature {feature_id} using the database", - options=ClaudeAgentOptions( - mcp_servers={ - "postgres": { - "command": "npx", - "args": ["-y", "@modelcontextprotocol/server-postgres"], - "env": { - "POSTGRES_URL": os.getenv("DATABASE_URL") - } - } - }, - allowed_tools=["Read", "Bash"] - ) - ): - # Process streaming response - pass -``` - -### When to Use Which Approach - -| Use Case | Recommended Method | Reason | -|----------|-------------------|--------| -| One-off queries with small data | Direct prompt | Simple, no setup needed | -| Repeated database queries | MCP server | Token efficient, reusable | -| Large datasets | MCP server | Avoids context window limits | -| Mixed sources (DB + files + APIs) | Hybrid | Best of both worlds | -| Production FastAPI backend | Hybrid | Flexible and efficient | - ---- - -## 3. MCP Server Architecture for Programmatic Usage - -### Solution Summary - -When using Claude Code programmatically via subprocess/SDK, you do **NOT** need to mount MCP servers on your FastAPI app (no `app.mount("/mcp", mcp)`). Instead, MCP servers are configured **within the Claude Agent SDK options** and run as separate processes that Claude Code connects to directly. - -### Detailed Analysis - -#### Understanding "Who Calls Who" - -**Critical Distinction:** - -1. **fastapi-mcp** - Exposes your FastAPI endpoints AS MCP tools FOR Claude to call -2. **Claude Agent SDK mcp_servers option** - Connects Claude TO external MCP servers - -These are two different patterns: - -**Pattern A: Claude calls your FastAPI tools (via fastapi-mcp)** -``` -User → Claude Desktop → MCP Proxy → Your FastAPI App (with fastapi-mcp) -``` - -**Pattern B: Your FastAPI app calls Claude (which uses MCP servers)** -``` -User → Your FastAPI App → Claude Agent SDK → Claude CLI → External MCP Server → Database -``` - -For your use case (FastAPI backend calling Claude Code), you want **Pattern B**. - -#### MCP Server Architecture Explanation - -> "The Model Context Protocol defines a client-server architecture for tool use. An MCP server wraps an external service or data source behind a common protocol (with defined actions, or 'tools'), while an MCP client (like Claude Code or other AI agent frameworks) connects to the server to invoke those tools." - [Claude Code as an MCP Server](https://www.ksred.com/claude-code-as-an-mcp-server-an-interesting-capability-worth-understanding/) - -**Call Flow:** - -``` -1. User clicks button in React -2. React → FastAPI endpoint -3. FastAPI → Claude Agent SDK (query function) -4. SDK spawns Claude CLI subprocess -5. Claude CLI connects to MCP server (separate process) -6. MCP server queries PostgreSQL -7. Results flow back through the chain -``` - -> "Client sends user message to the model. Model analyzes context and decides to call a tool exposed by MCP (or multiple tools). Client forwards the tool call to the MCP server over the chosen transport. Server executes the tool and returns results. Model receives tool output and composes the final answer to the user." - [Create a MCP Server for Claude Code](https://www.cometapi.com/create-a-mcp-server-for-claude-code/) - -#### Configuration in FastAPI Backend - -**You configure MCP servers in the SDK options, not on the FastAPI app:** - -```python -from fastapi import FastAPI -from claude_agent_sdk import query, ClaudeAgentOptions -import os - -app = FastAPI() - -@app.post("/api/generate") -async def generate_content(prompt: str): - async for message in query( - prompt=prompt, - options=ClaudeAgentOptions( - mcp_servers={ - "postgres": { - "command": "npx", - "args": ["-y", "@modelcontextprotocol/server-postgres"], - "env": { - "POSTGRES_URL": os.getenv("DATABASE_URL") - } - }, - "filesystem": { - "command": "npx", - "args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"] - } - } - ) - ): - yield message -``` - -**No `app.mount("/mcp", mcp)` needed** because: -- MCP servers are spawned as child processes by the Claude CLI -- They communicate via stdio/SSE/HTTP transports -- They're not part of your FastAPI application's HTTP routes - -#### When Would You Use fastapi-mcp? - -You would use `fastapi-mcp` if you wanted to **expose your FastAPI endpoints to Claude Desktop/CLI as tools**: - -```python -from fastapi import FastAPI -from fastapi_mcp import FastApiMCP - -app = FastAPI() - -@app.get("/users/{user_id}") -async def get_user(user_id: int): - return {"user": user_id} - -mcp = FastApiMCP(app=app) -mcp.mount() - -``` - -Then configure Claude Desktop to use your API: - -```json -{ - "mcpServers": { - "my-api": { - "command": "mcp-proxy", - "args": ["http://localhost:8000/mcp"] - } - } -} -``` - -> "The mcp-proxy proxies requests to a remote MCP server over SSE transport, wrapping your real server and translating Claude's SSE-based requests into regular HTTP requests that your FastAPI app understands." - [FastAPI-MCP Quick Start](https://thedocs.io/fastapi_mcp/quick_start/) - -**This is NOT what you want for your use case.** You want Claude Code to call external MCP servers (like database), not to call your FastAPI app. - -#### Claude Code as Both MCP Client and Server - -Interestingly, Claude Code can act as both: - -> "You can run claude mcp serve to expose Claude Code while Claude Code itself connects to GitHub and Postgres MCP servers. This means Claude Code can act as **both** an MCP client and an MCP server simultaneously, allowing for layered agent architectures." - [Claude Code as an MCP Server](https://www.ksred.com/claude-code-as-an-mcp-server-an-interesting-capability-worth-understanding/) - -But for your FastAPI backend use case, Claude Code is purely an MCP **client** connecting to database/tool servers. - ---- - -## 4. Production Deployment Considerations - -### Solution Summary - -For production deployment of Claude Code in a FastAPI backend: - -1. **Container Strategy:** Same container as FastAPI (simpler) or separate container (better isolation) -2. **Authentication:** Use `ANTHROPIC_API_KEY` environment variable (not subscription-based OAuth) -3. **Billing:** API pay-per-use is recommended for production over subscription plans -4. **Headless Mode:** Fully supported via environment variable authentication - -### Detailed Analysis - -#### Container Deployment Options - -**Option 1: Same Container (Recommended for MVP)** - -```dockerfile -FROM python:3.12-slim - -RUN apt-get update && apt-get install -y curl && \ - curl -fsSL https://claude.ai/install.sh | bash - -COPY requirements.txt . -RUN pip install -r requirements.txt - -COPY . . - -ENV ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} -ENV DATABASE_URL=${DATABASE_URL} - -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] -``` - -**Advantages:** -- Simpler deployment -- Fewer network hops -- Lower latency - -**Disadvantages:** -- Larger container image -- Tight coupling - -**Option 2: Separate Container (Recommended for Production)** - -```yaml - -services: - backend: - build: ./backend - environment: - - CLAUDE_SERVICE_URL=http://claude-service:8001 - depends_on: - - claude-service - - postgres - - claude-service: - build: ./claude-service - environment: - - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - volumes: - - ./workspace:/workspace - - postgres: - image: postgres:16 - environment: - - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} -``` - -**Claude Service Implementation:** - -```python - -from fastapi import FastAPI -from claude_agent_sdk import query, ClaudeAgentOptions - -app = FastAPI() - -@app.post("/execute") -async def execute_claude(prompt: str, context: dict = None): - async for message in query( - prompt=prompt, - options=ClaudeAgentOptions( - mcp_servers={ - "postgres": { - "command": "npx", - "args": ["-y", "@modelcontextprotocol/server-postgres"], - "env": {"POSTGRES_URL": os.getenv("DATABASE_URL")} - } - } - ) - ): - yield message -``` - -**Advantages:** -- Better isolation -- Independent scaling -- Cleaner architecture -- Can reuse claude-service across multiple apps - -#### Authentication in Containerized Environments - -**Critical Finding:** Subscription-based authentication (Claude Pro/Max) is NOT suitable for production containers. - -> "The SDK also supports authentication via third-party API providers like Amazon Bedrock (set CLAUDE_CODE_USE_BEDROCK=1 environment variable) and Google Vertex AI (set CLAUDE_CODE_USE_VERTEX=1 environment variable)." - [Claude Code SDK Python Authentication](https://support.claude.com/en/articles/12304248-managing-api-key-environment-variables-in-claude-code) - -**Authentication Hierarchy:** - -1. **ANTHROPIC_API_KEY (Recommended for Production)** - ```bash - export ANTHROPIC_API_KEY=sk-ant-api03-... - ``` - - Pay-per-use billing - - Headless compatible - - No browser OAuth required - - Works in containers - -2. **Subscription (Claude Pro/Max) - NOT for containers** - - Requires browser login (`claude auth login`) - - OAuth flow with callback - - Not suitable for headless servers - - Container deployment issues - -3. **Long-lived Access Tokens (Alternative)** - ```bash - claude setup-token - export CLAUDE_CODE_OAUTH_TOKEN= - ``` - - Works in containers - - Linked to subscription - - Can be mounted as secret - -**Docker Volume Mounting (Alternative to Environment Variables):** - -> "For Docker containers, you can mount the credential file as a read-only volume using `docker run -v ~/.config/claude-code/auth.json:/root/.config/claude-code/auth.json:ro -it my-dev-image`." - [Claude Code Docker Complete Guide](https://smartscope.blog/en/generative-ai/claude/claude-code-docker-guide/) - -**Recommended Production Pattern:** - -```dockerfile -FROM python:3.12-slim - -RUN curl -fsSL https://claude.ai/install.sh | bash -RUN pip install claude-agent-sdk - -ENV ANTHROPIC_API_KEY="" - -CMD ["python", "app.py"] -``` - -```bash -docker run -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY myapp -``` - -#### Headless Authentication Issues (2025 Status) - -**Known Issues:** - -> "There are known issues with headless mode authentication: Any time I attempt to run claude via claude -p 'test' it returns Invalid API key · Fix external API key. In a non-interactive environment, the CLI still requires executing /login even though an API key is provided." - [GitHub Issue #5666](https://github.com/anthropics/claude-code/issues/5666) - -**Workaround:** - -The Claude Agent SDK handles authentication better than raw CLI calls. Use the SDK instead of direct `claude -p` commands: - -```python - -from claude_agent_sdk import query, ClaudeAgentOptions -import os - -os.environ["ANTHROPIC_API_KEY"] = "your-key" - -async for message in query( - prompt="test", - options=ClaudeAgentOptions(setting_sources=None) -): - print(message) -``` - -**Verification:** - -> "Run /status in Claude Code periodically to verify your current authentication method. To verify if an API key is set as an environment variable, run /status in Claude Code." - [Managing API Key Environment Variables](https://support.claude.com/en/articles/12304248-managing-api-key-environment-variables-in-claude-code) - -#### Cost Comparison: Subscription vs API - -**Claude Max Subscription:** -- $100/month → 5x usage of Pro -- $200/month → 20x usage of Pro (Opus 4.5 access) - -**Anthropic API:** -- Claude Opus 4.5: $5.00/M input tokens, $25.00/M output tokens -- Claude Sonnet 4.5: $3.00/M input, $15.00/M output (≤200K context) -- Claude Sonnet 4.5: $6.00/M input, $22.50/M output (>200K context) - -**Value Analysis:** - -> "If you max out the $100 Max plan, that's approximately $7,400 worth of API usage equivalent, 74x the amount you pay. You can get $150 worth of API usage for the price of $20 a month with a Claude Pro subscription." - [LLM Subscriptions vs APIs Value](https://www.asad.pw/llm-subscriptions-vs-apis-value-for-money/) - -**Recommendation:** - -> "API is best for production deployments, automated pipelines, backends, or when you want to control exact spend. The API removes per-seat fees and allows unlimited developers behind a single deployment, but you pay per token." - [Claude Code Usage Limits and Subscription Plans](https://www.geeky-gadgets.com/claude-code-usage-limits-pricing-plans-guide-sept-2025/) - -**When to Use Each:** - -| Scenario | Recommendation | Reason | -|----------|----------------|--------| -| Development | Claude Max Subscription | Predictable costs, generous limits | -| CI/CD Automation | Anthropic API | Headless compatible | -| Production Backend | Anthropic API | Pay-per-use, scales with traffic | -| Multiple Developers | Anthropic API | No per-seat fees | -| High-volume | Anthropic API | Better cost control | -| Prototype/MVP | Claude Max Subscription | Faster setup | - ---- - -## 5. Complete Architecture Pattern - -### End-to-End Flow - -``` -┌─────────────┐ -│ React │ -│ Frontend │ -└──────┬──────┘ - │ 1. User clicks button - │ - ▼ -┌─────────────────────────────────────┐ -│ FastAPI Backend │ -│ ┌──────────────────────────────┐ │ -│ │ 2. Load context from │ │ -│ │ PostgreSQL │ │ -│ │ │ │ -│ │ user_data = await db.query() │ │ -│ └──────────────────────────────┘ │ -│ │ -│ ┌──────────────────────────────┐ │ -│ │ 3. Call Claude Agent SDK │ │ -│ │ │ │ -│ │ async for msg in query( │ │ -│ │ prompt=prompt, │ │ -│ │ options={ │ │ -│ │ mcp_servers={ │ │ -│ │ "postgres": {...} │ │ -│ │ } │ │ -│ │ } │ │ -│ │ ) │ │ -│ └──────────────────────────────┘ │ -└──────────┬──────────────────────────┘ - │ - ▼ -┌─────────────────────────┐ -│ Claude Agent SDK │ -│ (Python Library) │ -└──────────┬──────────────┘ - │ 4. Spawns subprocess - │ - ▼ -┌─────────────────────────┐ -│ Claude Code CLI │ -│ (claude binary) │ -└──────────┬──────────────┘ - │ 5. API request - │ - ▼ -┌─────────────────────────┐ -│ Anthropic API │ -│ (Claude Opus/Sonnet) │ -└──────────┬──────────────┘ - │ - │ 6. Needs data - │ - ▼ -┌─────────────────────────┐ -│ MCP Server │ -│ (Database Proxy) │ -└──────────┬──────────────┘ - │ 7. SQL query - │ - ▼ -┌─────────────────────────┐ -│ PostgreSQL Database │ -└─────────────────────────┘ -``` - -### Complete Implementation Example - -```python - -from fastapi import FastAPI, HTTPException -from fastapi.responses import StreamingResponse -from pydantic import BaseModel -from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine -from sqlalchemy.orm import sessionmaker -from claude_agent_sdk import query, ClaudeAgentOptions -import os -import json - -app = FastAPI() - -DATABASE_URL = os.getenv("DATABASE_URL") -engine = create_async_engine(DATABASE_URL) -AsyncSessionLocal = sessionmaker(engine, class_=AsyncSession, expire_on_commit=False) - -class GenerateRequest(BaseModel): - user_id: int - prompt: str - -async def get_db(): - async with AsyncSessionLocal() as session: - yield session - -@app.post("/api/generate-email") -async def generate_email(request: GenerateRequest): - async with AsyncSessionLocal() as db: - result = await db.execute( - select(User).where(User.id == request.user_id) - ) - user = result.scalar_one_or_none() - - if not user: - raise HTTPException(status_code=404, detail="User not found") - - context = f""" - User Profile: - - Name: {user.name} - - Email: {user.email} - - Join Date: {user.created_at} - - Total Orders: {len(user.orders)} - - Preferences: {user.preferences} - """ - - full_prompt = f"{context}\n\n{request.prompt}" - - async def stream_response(): - async for message in query( - prompt=full_prompt, - options=ClaudeAgentOptions( - allowed_tools=[], - permission_mode="bypassPermissions", - mcp_servers={ - "postgres": { - "command": "npx", - "args": ["-y", "@modelcontextprotocol/server-postgres"], - "env": { - "POSTGRES_URL": DATABASE_URL - } - } - } - ) - ): - if hasattr(message, 'content'): - yield json.dumps({"content": message.content}) + "\n" - - return StreamingResponse(stream_response(), media_type="application/x-ndjson") - -@app.post("/api/analyze-database") -async def analyze_database(query_prompt: str): - async def stream_response(): - async for message in query( - prompt=f"Using the postgres MCP server, {query_prompt}", - options=ClaudeAgentOptions( - mcp_servers={ - "postgres": { - "command": "npx", - "args": ["-y", "@modelcontextprotocol/server-postgres"], - "env": { - "POSTGRES_URL": os.getenv("DATABASE_URL") - } - } - } - ) - ): - if hasattr(message, 'content'): - yield json.dumps({"data": message.content}) + "\n" - - return StreamingResponse(stream_response(), media_type="application/x-ndjson") - -if __name__ == "__main__": - import uvicorn - uvicorn.run(app, host="0.0.0.0", port=8000) -``` - -### React Frontend Integration - -```typescript - -import { useState } from 'react'; - -export function EmailGenerator() { - const [loading, setLoading] = useState(false); - const [content, setContent] = useState(''); - - const handleGenerate = async () => { - setLoading(true); - setContent(''); - - const response = await fetch('/api/generate-email', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ - user_id: 123, - prompt: 'Write a personalized welcome email' - }) - }); - - const reader = response.body?.getReader(); - const decoder = new TextDecoder(); - - while (true) { - const { done, value } = await reader!.read(); - if (done) break; - - const chunk = decoder.decode(value); - const lines = chunk.split('\n').filter(Boolean); - - for (const line of lines) { - const data = JSON.parse(line); - setContent(prev => prev + data.content); - } - } - - setLoading(false); - }; - - return ( -
- -
{content}
-
- ); -} -``` - -### Docker Compose Setup - -```yaml - -services: - postgres: - image: postgres:16-alpine - environment: - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} - POSTGRES_DB: myapp - volumes: - - postgres_data:/var/lib/postgresql/data - ports: - - "5432:5432" - - backend: - build: ./backend - environment: - - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - - DATABASE_URL=postgresql+asyncpg://postgres:${POSTGRES_PASSWORD}@postgres:5432/myapp - depends_on: - - postgres - ports: - - "8000:8000" - volumes: - - ./backend:/app - - frontend: - build: ./frontend - environment: - - VITE_API_URL=http://localhost:8000 - ports: - - "5173:5173" - volumes: - - ./frontend:/app - -volumes: - postgres_data: -``` - -### Backend Dockerfile - -```dockerfile - -FROM python:3.12-slim - -WORKDIR /app - -RUN apt-get update && \ - apt-get install -y curl nodejs npm git && \ - curl -fsSL https://claude.ai/install.sh | bash && \ - apt-get clean - -COPY requirements.txt . -RUN pip install --no-cache-dir -r requirements.txt - -COPY . . - -ENV PYTHONUNBUFFERED=1 - -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"] -``` - ---- - -## Key Takeaways - -### 1. Use the Claude Agent SDK (Not Raw CLI) - -The SDK provides production-ready abstractions over subprocess management, authentication, streaming, and error handling. It's the recommended approach for FastAPI backends. - -### 2. MCP Servers Are Optional But Powerful - -For simple prompts with small context, pass data directly in the prompt. For repeated database access or large datasets, configure MCP servers within the SDK options. - -### 3. MCP Servers Are NOT Mounted on FastAPI - -You don't use `app.mount("/mcp", mcp)` for this use case. MCP servers are configured in the `ClaudeAgentOptions` and run as separate processes that Claude Code connects to. - -### 4. Use API Key Authentication for Production - -Set `ANTHROPIC_API_KEY` environment variable. Subscription-based authentication (Claude Pro/Max) requires browser OAuth and doesn't work well in containerized headless environments. - -### 5. API Billing Is Better for Production - -Pay-per-use API billing scales better than subscriptions for production backends. It removes per-seat fees and provides precise cost control. - -### 6. Streaming Is Important for UX - -Implement streaming responses to show progress to users. The SDK supports async streaming out of the box. - -### 7. Session Management Enables Context - -Use session IDs to maintain conversation context across multiple requests. This enables multi-turn interactions. - ---- - -## Sources and References - -### Official Documentation -- [Claude Agent SDK Overview](https://platform.claude.com/docs/en/api/agent-sdk/overview) - Official SDK documentation -- [Claude Code CLI Reference](https://code.claude.com/docs/en/cli-reference) - CLI flags and programmatic usage -- [Connect Claude Code to tools via MCP](https://code.claude.com/docs/en/mcp) - MCP server configuration -- [Managing API Key Environment Variables](https://support.claude.com/en/articles/12304248-managing-api-key-environment-variables-in-claude-code) - Authentication methods -- [Using Claude Code with your Pro or Max plan](https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan) - Subscription integration - -### Technical Guides -- [Claude Code Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices) - Official best practices for agentic coding -- [Building Agents with the Claude Agent SDK](https://www.anthropic.com/engineering/building-agents-with-the-claude-agent-sdk) - Agent development patterns -- [Introducing the Model Context Protocol](https://www.anthropic.com/news/model-context-protocol) - MCP standard explanation - -### Integration Examples -- [claude-code-fastapi by e2b-dev](https://github.com/e2b-dev/claude-code-fastapi) - FastAPI wrapper for Claude Code with E2B sandboxes -- [claude-code-api by codingworkflow](https://github.com/codingworkflow/claude-code-api) - OpenAI-compatible API gateway -- [fastapi-nextjs-docker-github-actions-reference](https://github.com/raveenb/fastapi-nextjs-docker-github-actions-reference) - Full-stack reference with CI/CD - -### MCP Resources -- [FastAPI-MCP by tadata-org](https://github.com/tadata-org/fastapi_mcp) - Expose FastAPI endpoints as MCP tools -- [How to Use FastAPI MCP Server](https://huggingface.co/blog/lynn-mikami/fastapi-mcp-server) - Integration guide -- [Model Context Protocol Servers](https://github.com/modelcontextprotocol/servers) - Official MCP server implementations - -### Cost and Deployment -- [Claude Pricing Explained](https://intuitionlabs.ai/articles/claude-pricing-plans-api-costs) - Subscription vs API comparison -- [LLM Subscriptions vs APIs Value](https://www.asad.pw/llm-subscriptions-vs-apis-value-for-money/) - Cost analysis -- [Claude Code Docker Complete Guide](https://smartscope.blog/en/generative-ai/claude/claude-code-docker-guide/) - Containerization patterns -- [Configure Claude Code | Docker Docs](https://docs.docker.com/ai/sandboxes/claude-code/) - Official Docker integration - -### Community Resources -- [Claude Code Python SDK Guide](https://adrianomelo.com/posts/claude-code-python-sdk.html) - SDK architecture explanation -- [A Practical Guide to the Python Claude Code SDK](https://www.eesel.ai/blog/python-claude-code-sdk) - 2025 SDK guide -- [Optimising MCP Server Context Usage](https://scottspence.com/posts/optimising-mcp-server-context-usage-in-claude-code) - Token optimization -- [Claude Code as an MCP Server](https://www.ksred.com/claude-code-as-an-mcp-server-an-interesting-capability-worth-understanding/) - Dual role explanation - -### GitHub Issues -- [Issue #5666: Invalid API Key in headless mode](https://github.com/anthropics/claude-code/issues/5666) - Authentication challenges -- [Issue #7100: Document Headless/Remote Authentication](https://github.com/anthropics/claude-code/issues/7100) - CI/CD authentication -- [Issue #1736: Re-authenticating in Docker container](https://github.com/anthropics/claude-code/issues/1736) - Container deployment - ---- - -**Research Completed:** 2025-12-14 -**Last Updated:** 2025-12-14 -**Status:** Comprehensive - Ready for implementation diff --git a/docs/research/CLAUDE-MAX-SUBSCRIPTION-HEADLESS.md b/docs/research/CLAUDE-MAX-SUBSCRIPTION-HEADLESS.md deleted file mode 100644 index cd3f9c7..0000000 --- a/docs/research/CLAUDE-MAX-SUBSCRIPTION-HEADLESS.md +++ /dev/null @@ -1,725 +0,0 @@ -# Claude Max Subscription Programmatic Access Research - -**Research Date:** 2025-12-14 -**Focus:** Using Claude Max ($200/month) subscription programmatically in headless FastAPI backend environments -**Critical Question:** Can we use Max subscription instead of paying additional API costs? - ---- - -## Executive Summary - -**ANSWER: YES, BUT WITH SIGNIFICANT CAVEATS** - -Claude Max subscriptions CAN be used programmatically in headless environments through Claude Code's OAuth authentication system. However, this approach exists in a **policy gray area** and has several production limitations: - -### Key Findings: -1. **Technical Feasibility:** ✅ Possible via `CLAUDE_CODE_OAUTH_TOKEN` environment variable -2. **Official Support:** ⚠️ Limited - designed for interactive use, headless support is undocumented -3. **Terms of Service:** ⚠️ Unclear if automated usage violates ToS for consumer subscriptions -4. **Production Viability:** ⚠️ OAuth tokens expire (8-12 hours), requiring refresh mechanisms -5. **Cost Savings:** ✅ Significant - Max subscription vs. per-token API pricing - ---- - -## Solution Summary - -Claude Max subscriptions provide programmatic access through **Claude Code** using OAuth 2.0 authentication. You can authenticate in headless environments by: - -1. Running `claude setup-token` to generate long-lived OAuth tokens -2. Injecting tokens via `CLAUDE_CODE_OAUTH_TOKEN` environment variable in Docker containers -3. Mounting `~/.claude/.credentials.json` as a volume for persistent authentication -4. Using the unofficial `claude_max` Python package that wraps this authentication - -**However:** This approach is NOT officially documented for production server use and may violate consumer subscription terms of service. Anthropic's official position is that API usage should use the separate Anthropic API with commercial terms. - ---- - -## Detailed Analysis - -### 1. Authentication Methods for Headless Environments - -#### Option A: OAuth Token Environment Variable - -**How it works:** -```bash -# Generate token interactively -claude setup-token - -# Export token for headless use -export CLAUDE_CODE_OAUTH_TOKEN="sk-ant-oat01-your-token-here" - -# Run Claude Code programmatically -claude status -``` - -**Token Format:** -- Access tokens: `sk-ant-oat01-...` (expires in 8-12 hours) -- Refresh tokens: `sk-ant-ort01-...` (longer-lived, but also expires) - -**Docker Usage:** -```bash -docker run --rm -it \ - -e CLAUDE_CODE_OAUTH_TOKEN="sk-ant-oat01-..." \ - -v $(pwd):/app \ - your-fastapi-image -``` - -**Sources:** -- [Setup Container Authentication - Claude Did This](https://claude-did-this.com/claude-hub/getting-started/setup-container-guide) -- [GitHub Issue #7100 - Headless Authentication Documentation](https://github.com/anthropics/claude-code/issues/7100) -- [Claude Code SDK Docker Repository](https://github.com/cabinlab/claude-code-sdk-docker) - ---- - -#### Option B: Mount Authentication Credentials Volume - -**Directory Structure:** -``` -~/.claude/ -├── .credentials.json # OAuth tokens (access + refresh) -├── settings.local.json # User preferences -└── [project data] -``` - -**Docker Compose Example:** -```yaml -services: - fastapi: - image: your-fastapi-image - volumes: - - ~/.claude:/root/.claude:ro # Mount read-only for security - - ./app:/app -``` - -**Advantages:** -- Automatic token refresh handled by Claude Code -- No need to manually extract tokens -- More secure than environment variables - -**Disadvantages:** -- Requires initial interactive authentication -- Credentials tied to host machine -- Not suitable for cloud deployments without pre-setup - -**Sources:** -- [Docker Docs - Configure Claude Code](https://docs.docker.com/ai/sandboxes/claude-code/) -- [GitHub Issue #1736 - Avoiding Re-authentication](https://github.com/anthropics/claude-code/issues/1736) -- [Medium - Running Claude Code in Docker Containers](https://medium.com/rigel-computer-com/running-claude-code-in-docker-containers-one-project-one-container-1601042bf49c) - ---- - -#### Option C: claude_max Python Package - -**What it is:** -An unofficial Python package published to PyPI (June 15, 2025) that programmatically accesses Claude Code's authentication system to use Max subscriptions for API-style completions. - -**How it works:** -- Implements OAuth 2.0 with PKCE security -- Extracts authentication from Claude Code -- Provides API-compatible interface using subscription credits - -**Usage Pattern:** -```python -from claude_max import ClaudeMax - -# Initialize with Max subscription credentials -client = ClaudeMax() - -# Make API-style calls using subscription -response = client.complete( - model="claude-opus-4-5", - messages=[{"role": "user", "content": "Hello"}] -) -``` - -**Critical Warning:** -> "Claude Max subscribers pay $200/month, yet there's no official way to use subscriptions for automation, with the only workaround involving fragile OAuth token extraction that may violate ToS." - -**Sources:** -- [How I Built claude_max - Substack Article](https://idsc2025.substack.com/p/how-i-built-claude_max-to-unlock) -- [Maximizing Claude Max Subscription - Deeplearning.fr](https://deeplearning.fr/maximizing-your-claude-max-subscription-complete-guide-to-automated-workflows-with-claude-code-and-windsurf/) - ---- - -### 2. Mobile Apps and Browser Wrappers Authentication - -**Research Question:** How do mobile Claude apps use Max subscription if not through API? - -**Finding:** Mobile apps and browser extensions use the **same OAuth 2.0 flow** as Claude Code: - -1. User logs in with claude.ai credentials -2. OAuth authorization flow with PKCE -3. Receives access token (`sk-ant-oat01-...`) and refresh token (`sk-ant-ort01-...`) -4. Stores tokens locally for subsequent requests -5. Automatically refreshes when access token expires - -**Key Insight:** -Mobile apps are **consumer-facing interactive applications**, which aligns with the Max subscription terms of service. A headless FastAPI backend is a **server-to-server automation**, which may NOT align with consumer subscription terms. - -**Authentication Endpoint:** -``` -POST https://console.anthropic.com/v1/oauth/token -{ - "grant_type": "refresh_token", - "refresh_token": "sk-ant-ort01-...", - "client_id": "9d1c250a-e61b-44d9-88ed-5944d1962f5e" -} -``` - -**Sources:** -- [Claude Code Provider - Roo Code Documentation](https://docs.roocode.com/providers/claude-code) -- [GitHub - claude-token-refresh Tool](https://github.com/RavenStorm-bit/claude-token-refresh) -- [Unlock Claude API from Claude Pro/Max](https://www.alif.web.id/posts/claude-oauth-api-key) - ---- - -### 3. Long-Lived Access Tokens from Claude Max - -#### Token Lifespan - -| Token Type | Prefix | Lifespan | Purpose | -|------------|--------|----------|---------| -| Access Token | `sk-ant-oat01-...` | 8-12 hours | Authenticate API requests | -| Refresh Token | `sk-ant-ort01-...` | Days to weeks | Obtain new access tokens | -| API Key | `sk-ant-api03-...` | Indefinite | Anthropic API (separate billing) | - -#### `claude setup-token` Command - -**Purpose:** Generate long-lived OAuth tokens for headless/CI/CD environments - -**Usage:** -```bash -# Interactive setup -claude setup-token - -# Output: -# "Your OAuth token: sk-ant-oat01-ABCxyz..." -# "Save this token securely - it provides full access to your account" - -# Use in environment -export CLAUDE_CODE_OAUTH_TOKEN="sk-ant-oat01-ABCxyz..." -``` - -**Known Issues:** -- Tokens still expire after 8-12 hours -- No official documentation for production use -- Refresh token handling required for long-running services - -**Bug Reports:** -> "OAuth tokens expire during long-running autonomous tasks, causing 401 authentication_error failures that require manual /login intervention." - -**Sources:** -- [GitHub Issue #8938 - setup-token Not Enough to Authenticate](https://github.com/anthropics/claude-code/issues/8938) -- [GitHub Issue #12447 - OAuth Token Expiration Disrupts Workflows](https://github.com/anthropics/claude-code/issues/12447) -- [Elixir Mix Task Documentation](https://hexdocs.pm/claude_agent_sdk/Mix.Tasks.Claude.SetupToken.html) - ---- - -### 4. Subscription Usage vs API Usage - -#### How to Verify You're Using Subscription (Not API) - -**Method 1: `/status` Command** -```bash -claude status - -# Expected output for subscription: -# Authentication: Claude Max Subscription -# Usage: 45 of 900 messages remaining (resets in 3h 22m) -# Cost: Included in subscription - -# Expected output for API: -# Authentication: API Key -# Usage: $12.45 this month -# Cost: Pay-per-token -``` - -**Method 2: Check Environment Variables** -```bash -# Priority order (first found wins): -# 1. ANTHROPIC_API_KEY → Uses API (costs money) -# 2. CLAUDE_CODE_OAUTH_TOKEN → Uses subscription -# 3. ~/.claude/.credentials.json → Uses subscription - -# Ensure API key is NOT set: -echo $ANTHROPIC_API_KEY -# Should be empty for subscription use -``` - -**Method 3: Check Billing Dashboard** - -Subscription usage shows as: -- **$0.00 per request** in API console -- Messages count against 5-hour rolling window -- No per-token charges - -API usage shows as: -- **$X.XX per request** based on token count -- Cumulative monthly charges -- Detailed token breakdown - -**Rate Limits Comparison:** - -| Plan | Messages (5hr) | Prompts (5hr) | Weekly Capacity | -|------|---------------|---------------|-----------------| -| Max 5x ($100) | ~225 | 50-200 | 140-280hr Sonnet / 15-35hr Opus | -| Max 20x ($200) | ~900 | 200-800 | 240-480hr Sonnet / 24-40hr Opus | -| API | Unlimited* | Unlimited* | Based on tier/spending | - -*API has separate rate limits based on tier - -**Important Note:** -> "Both Pro and Max plans offer usage limits that are shared across Claude and Claude Code, meaning all activity in both tools counts against the same usage limits." - -**Sources:** -- [Using Claude Code with Pro or Max Plan - Claude Help](https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan) -- [About Claude's Max Plan Usage - Claude Help](https://support.claude.com/en/articles/11014257-about-claude-s-max-plan-usage) -- [GitHub Issue #1721 - Need Usage Gauge](https://github.com/anthropics/claude-code/issues/1721) -- [GitHub Issue #1287 - Misleading Cost Command Output](https://github.com/anthropics/claude-code/issues/1287) - ---- - -### 5. Terms of Service and Policy Analysis - -#### Official Anthropic Position - -**Subscription vs. API Separation:** -> "A paid Claude subscription enhances your chat experience but doesn't include access to the Claude API or Console, requiring separate sign-up for API usage." - -**Consumer vs. Commercial Terms:** -> "The consumer terms updates apply to users on Claude Free, Pro, and Max plans (including when they use Claude Code), but they do not apply to services under Commercial Terms, including API use." - -**Key Implication:** -Max subscriptions fall under **consumer terms**, which are designed for interactive human use. Headless server automation may be considered outside the intended use case. - -#### Policy Gray Area - -**The Problem:** -- Claude Code technically supports headless mode -- `CLAUDE_CODE_OAUTH_TOKEN` exists for automation -- But terms of service don't explicitly permit automated usage for consumer subscriptions - -**Community Concern:** -> "Claude Max subscribers pay $200/month, yet there's no official way to use subscriptions for automation... it's unclear if token extraction workarounds violate ToS. This situation undermines the value proposition of Claude Max for developers who want to integrate Claude Code into workflows." - -**Feature Request (GitHub Issue #1454):** -Title: "Feature Request: Machine to Machine Authentication for Claude Max Subscriptions" - -Status: Open (no official response confirming or denying legitimacy) - -#### Risk Assessment for Production Use - -| Risk Factor | Level | Mitigation | -|-------------|-------|------------| -| Account suspension | Medium | Use for personal projects, not enterprise | -| Token expiration | High | Implement refresh token logic | -| Policy changes | Medium | Monitor Anthropic announcements | -| Lack of support | High | No SLA for subscription-based automation | -| ToS violation | Unknown | Consult legal/Anthropic directly | - -**Recommended Approach:** -1. **For personal/development:** Use Max subscription with awareness of limitations -2. **For production/enterprise:** Use official Anthropic API with commercial terms -3. **For cost optimization:** Evaluate if Max subscription ($200/month) covers your usage vs. API costs - -**Sources:** -- [Feature Request #1454 - Machine to Machine Auth](https://github.com/anthropics/claude-code/issues/1454) -- [Why Pay Separately for API - Claude Help](https://support.anthropic.com/en/articles/9876003-i-have-a-paid-claude-subscription-pro-max-team-or-enterprise-plans-why-do-i-have-to-pay-separately-to-use-the-claude-api-and-console) -- [Updates to Consumer Terms - Anthropic News](https://www.anthropic.com/news/updates-to-our-consumer-terms) -- [Claude vs Claude API vs Claude Code - 16x Engineer](https://eval.16x.engineer/blog/claude-vs-claude-api-vs-claude-code) - ---- - -## Alternative Approaches (If Subscription Headless Doesn't Work) - -### Option 1: Hybrid Architecture - -**Design:** -- FastAPI backend uses official Anthropic API for production -- Claude Code (Max subscription) used for development/testing only -- Separate billing but predictable costs - -**Cost Structure:** -- Development: $200/month Max subscription -- Production: Pay-per-token API (budget based on usage) - ---- - -### Option 2: WebSocket Proxy to Local Claude Code - -**Architecture:** -``` -FastAPI Backend (Server) - ↓ WebSocket Connection -Local Claude Code Instance (Developer Machine) - ↓ OAuth Authentication -Claude Max Subscription -``` - -**Advantages:** -- Definitely uses Max subscription -- No ToS concerns (interactive use) - -**Disadvantages:** -- Not suitable for production deployment -- Requires developer machine always running -- Single point of failure - ---- - -### Option 3: Official Enterprise Plan - -**What it is:** -Enterprise plans may have different terms allowing automated usage. - -**Next Steps:** -Contact Anthropic sales to inquire about: -- Enterprise API access using subscription model -- Custom rate limits -- Commercial terms for automated workflows - -**Sources:** -- [Claude Pricing - Anthropic](https://claude.com/pricing) - ---- - -## Production Implementation Guide - -### If Proceeding with Max Subscription Headless (Despite Risks) - -#### Step 1: Generate OAuth Tokens - -```bash -# On development machine -claude setup-token - -# Save output securely -# Access token: sk-ant-oat01-... -# Refresh token: sk-ant-ort01-... (from ~/.claude/.credentials.json) -``` - -#### Step 2: Docker Container Setup - -**Dockerfile:** -```dockerfile -FROM python:3.12-slim - -# Install Claude Code -RUN pip install claude-code - -# Copy application -COPY ./app /app -WORKDIR /app - -# Environment variable will be injected at runtime -ENV CLAUDE_CODE_OAUTH_TOKEN="" - -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] -``` - -**docker-compose.yml:** -```yaml -version: '3.8' - -services: - fastapi: - build: . - environment: - # CRITICAL: Do NOT set ANTHROPIC_API_KEY - # It takes precedence over OAuth token - CLAUDE_CODE_OAUTH_TOKEN: ${CLAUDE_CODE_OAUTH_TOKEN} - volumes: - - ./app:/app - ports: - - "8000:8000" - -secrets: - claude_oauth_token: - file: ./secrets/claude_oauth_token.txt -``` - -#### Step 3: Token Refresh Mechanism - -**Python Implementation:** -```python -import httpx -import json -from pathlib import Path - -class ClaudeMaxAuth: - def __init__(self): - self.credentials_path = Path.home() / ".claude" / ".credentials.json" - self.access_token = None - self.refresh_token = None - self._load_credentials() - - def _load_credentials(self): - """Load tokens from credentials file or environment""" - if self.credentials_path.exists(): - with open(self.credentials_path) as f: - creds = json.load(f) - oauth = creds.get("claudeAiOauth", {}) - self.access_token = oauth.get("accessToken") - self.refresh_token = oauth.get("refreshToken") - - async def refresh_access_token(self): - """Refresh expired access token""" - async with httpx.AsyncClient() as client: - response = await client.post( - "https://console.anthropic.com/v1/oauth/token", - json={ - "grant_type": "refresh_token", - "refresh_token": self.refresh_token, - "client_id": "9d1c250a-e61b-44d9-88ed-5944d1962f5e" - } - ) - response.raise_for_status() - data = response.json() - self.access_token = data["access_token"] - # Update credentials file - self._save_credentials() - - def _save_credentials(self): - """Save updated tokens back to credentials file""" - # Implementation details... - pass -``` - -**Usage in FastAPI:** -```python -from fastapi import FastAPI, Depends -from claude_max import ClaudeMaxAuth - -app = FastAPI() -auth = ClaudeMaxAuth() - -async def get_claude_client(): - """Dependency that ensures fresh tokens""" - # Check if token needs refresh (implement logic) - if auth.token_expired(): - await auth.refresh_access_token() - return auth - -@app.post("/api/chat") -async def chat( - request: ChatRequest, - claude: ClaudeMaxAuth = Depends(get_claude_client) -): - # Use claude.access_token for requests - pass -``` - -#### Step 4: Monitoring and Fallback - -**Monitor subscription usage:** -```python -import subprocess - -def check_subscription_status(): - """Check Claude Code subscription status""" - result = subprocess.run( - ["claude", "status"], - capture_output=True, - text=True - ) - # Parse output to check remaining quota - return result.stdout -``` - -**Implement fallback to API:** -```python -async def make_claude_request(prompt: str): - """Try subscription first, fallback to API""" - try: - # Try subscription - response = await request_via_subscription(prompt) - return response - except QuotaExceededError: - # Fallback to API - logging.warning("Subscription quota exceeded, using API") - return await request_via_api(prompt) -``` - ---- - -## Critical Production Considerations - -### 1. Token Expiration Handling - -**Problem:** -Access tokens expire every 8-12 hours, causing service interruptions. - -**Solutions:** -- Implement automatic refresh before expiration -- Use refresh token rotation -- Monitor token validity and proactively refresh -- Have API key fallback for emergencies - -### 2. Rate Limit Management - -**Max Subscription Limits:** -- 900 messages / 5 hours (Max 20x plan) -- 200-800 prompts / 5 hours for Claude Code - -**Strategies:** -- Implement request queuing -- Track usage against 5-hour rolling window -- Return 429 errors when approaching limit -- Cache responses to reduce requests - -### 3. Shared Quota Between Web and Code - -**Critical Issue:** -> "Usage limits are shared between Claude Code and web claude.ai usage" - -**Implications:** -- If you use claude.ai in browser, it reduces FastAPI quota -- No way to reserve capacity for backend only -- Unpredictable availability during high web usage - -**Mitigation:** -- Use separate Claude account for backend -- Monitor total usage across all channels -- Set up alerts for high usage - -### 4. No Service Level Agreement (SLA) - -**Risk:** -- No guaranteed uptime for subscription-based access -- No support for programmatic usage issues -- Changes can break implementation without notice - -**Mitigation:** -- Don't use for mission-critical services -- Always have API fallback -- Monitor Anthropic announcements - ---- - -## Cost-Benefit Analysis - -### Scenario 1: Light Usage (< $200/month API cost) - -**Recommendation:** Use Anthropic API directly - -**Reasoning:** -- Simpler implementation -- Official support -- Commercial terms -- Predictable costs - -### Scenario 2: Heavy Usage ($200-$1000/month API cost) - -**Recommendation:** Max subscription for development, API for production - -**Reasoning:** -- Max subscription saves development costs -- API provides production reliability -- Total cost still lower than pure API -- Clear separation of concerns - -### Scenario 3: Very Heavy Usage (> $1000/month API cost) - -**Recommendation:** Contact Anthropic for Enterprise plan - -**Reasoning:** -- Custom pricing available -- Potentially subscription-style billing for automation -- Dedicated support -- SLA guarantees - ---- - -## Final Recommendations - -### ✅ Use Max Subscription Headless If: -- Personal project or internal tool -- Comfortable with policy gray area -- Can handle occasional service disruptions -- Have technical ability to implement token refresh -- Usage fits within Max limits ($200/month tier) - -### ❌ Do NOT Use Max Subscription Headless If: -- Production customer-facing service -- Enterprise/commercial application -- Need SLA guarantees -- Usage exceeds Max limits -- Uncomfortable with potential ToS violations - -### ✅ Recommended Approach: -1. **Development:** Use Max subscription ($200/month) -2. **Staging:** Use Max subscription with monitoring -3. **Production:** Use official Anthropic API with commercial terms -4. **Cost Optimization:** Evaluate usage patterns after 1 month - ---- - -## Authoritative Sources Summary - -### Official Documentation: -- [Using Claude Code with Pro or Max - Claude Help](https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan) -- [Docker Configure Claude Code](https://docs.docker.com/ai/sandboxes/claude-code/) -- [Claude Code Development Containers](https://code.claude.com/docs/en/devcontainer) - -### Community Resources: -- [GitHub - claude-code-sdk-docker](https://github.com/cabinlab/claude-code-sdk-docker) -- [Setup Container Authentication Guide](https://claude-did-this.com/claude-hub/getting-started/setup-container-guide) -- [GitHub - claude-token-refresh Tool](https://github.com/RavenStorm-bit/claude-token-refresh) - -### Technical Analysis: -- [How I Built claude_max - Substack](https://idsc2025.substack.com/p/how-i-built-claude_max-to-unlock) -- [Claude vs Claude API vs Claude Code](https://eval.16x.engineer/blog/claude-vs-claude-api-vs-claude-code) - -### GitHub Issues (Feature Requests & Bugs): -- [Issue #1454 - Machine to Machine Auth for Max](https://github.com/anthropics/claude-code/issues/1454) -- [Issue #7100 - Document Headless Authentication](https://github.com/anthropics/claude-code/issues/7100) -- [Issue #12447 - OAuth Token Expiration](https://github.com/anthropics/claude-code/issues/12447) -- [Issue #8938 - setup-token Not Enough](https://github.com/anthropics/claude-code/issues/8938) - ---- - -## Open Questions (Require Official Anthropic Response) - -1. **Is programmatic use of Max subscriptions permitted under consumer ToS?** - - Status: Unclear - - Action: Submit support ticket to Anthropic - -2. **Will Max subscriptions ever support official headless/server authentication?** - - Status: Feature request open (Issue #1454) - - Action: Monitor GitHub issues - -3. **What is the intended use case for `claude setup-token` command?** - - Status: Undocumented - - Action: Request official documentation - -4. **Are there Enterprise plans with subscription-style pricing for automation?** - - Status: Unknown - - Action: Contact Anthropic sales - ---- - -## Conclusion - -**YES, you CAN use Claude Max subscription programmatically in headless FastAPI backends** through OAuth token authentication, but this approach: - -1. ✅ **Works technically** - Multiple methods available -2. ⚠️ **Exists in policy gray area** - ToS unclear on automated usage -3. ⚠️ **Requires token refresh implementation** - Not zero-maintenance -4. ⚠️ **Has production limitations** - No SLA, shared quotas, expiring tokens -5. ✅ **Saves significant costs** - $200/month vs potentially thousands in API fees - -**Recommended path forward:** -1. Prototype with Max subscription to prove concept -2. Measure actual usage patterns -3. Calculate API costs for production scale -4. **If costs < $200/month:** Switch to official API -5. **If costs > $200/month:** Continue with Max but implement robust fallback -6. **If costs >> $1000/month:** Contact Anthropic for Enterprise pricing - -**Critical action item:** Submit support ticket to Anthropic asking explicitly if programmatic use of Max subscriptions for headless server environments is permitted under current ToS. - ---- - -**Research Completed:** 2025-12-14 -**Last Updated:** 2025-12-14 -**Next Review:** Monitor GitHub issues and Anthropic announcements monthly diff --git a/examples/minimal-production/backend/.env.example b/examples/minimal-production/backend/.env.example new file mode 100644 index 0000000..0e643f6 --- /dev/null +++ b/examples/minimal-production/backend/.env.example @@ -0,0 +1,22 @@ +# Application +APP_NAME="Minimal FastAPI Template" +ENVIRONMENT=development +DEBUG=false + +# Server +HOST=0.0.0.0 +PORT=8000 +RELOAD=true + +# Database +DATABASE_URL=postgresql://user:password@localhost:5432/dbname +DB_POOL_SIZE=20 +DB_MAX_OVERFLOW=10 + +# JWT +SECRET_KEY=your-secret-key-min-32-characters-long +JWT_ALGORITHM=HS256 +ACCESS_TOKEN_EXPIRE_MINUTES=30 + +# CORS +CORS_ORIGINS=["http://localhost:3420","http://localhost:8420"] diff --git a/examples/minimal-production/backend/Dockerfile b/examples/minimal-production/backend/Dockerfile new file mode 100644 index 0000000..1091caa --- /dev/null +++ b/examples/minimal-production/backend/Dockerfile @@ -0,0 +1,18 @@ +FROM python:3.12-slim + +WORKDIR /app + +RUN apt-get update && apt-get install -y \ + gcc \ + postgresql-client \ + && rm -rf /var/lib/apt/lists/* + +COPY pyproject.toml ./ +RUN pip install --no-cache-dir -e ".[dev]" + +COPY . . + +ENV PYTHONPATH=/app/app +ENV PYTHONUNBUFFERED=1 + +CMD ["sh", "-c", "alembic upgrade head && uvicorn __main__:app --host 0.0.0.0 --port 8000"] diff --git a/examples/minimal-production/backend/README.md b/examples/minimal-production/backend/README.md new file mode 100644 index 0000000..947b706 --- /dev/null +++ b/examples/minimal-production/backend/README.md @@ -0,0 +1,92 @@ +# Minimal FastAPI Template + +A minimal production-ready FastAPI template with JWT authentication and PostgreSQL. + +## Features + +- FastAPI with async/await +- JWT access token authentication +- PostgreSQL with SQLAlchemy 2.0 (async) +- Alembic migrations +- Domain-driven structure +- Docker and docker-compose setup + +## Quick Start + +1. Copy `.env.example` to `.env` and update the values: +```bash +cp .env.example .env +``` + +2. Start the services: +```bash +docker-compose up -d +``` + +The API will be available at http://localhost:8000 + +API docs at http://localhost:8000/docs + +## Project Structure + +``` +backend/ +├── app/ +│ ├── auth/ # Authentication domain +│ ├── core/ # Core utilities and shared code +│ ├── user/ # User domain +│ ├── config.py # Application settings +│ ├── factory.py # FastAPI app factory +│ └── __main__.py # Entry point +├── alembic/ # Database migrations +├── pyproject.toml # Dependencies +├── Dockerfile +└── .env.example +``` + +## Development + +Install dependencies: +```bash +cd backend +pip install -e ".[dev]" +``` + +Run locally: +```bash +cd backend/app +python -m uvicorn __main__:app --reload +``` + +Create new migration: +```bash +cd backend +alembic revision --autogenerate -m "description" +``` + +Run migrations: +```bash +cd backend +alembic upgrade head +``` + +## API Endpoints + +- `POST /v1/users` - Register new user +- `POST /v1/auth/login` - Login (returns access token) +- `GET /v1/auth/me` - Get current user +- `POST /v1/auth/logout` - Logout (placeholder) +- `POST /v1/users/change-password` - Change password +- `GET /health` - Health check +- `GET /health/detailed` - Detailed health check + +## Extending + +This is a minimal starting point. You can add: +- Refresh tokens +- Email verification +- Password reset +- User roles +- Rate limiting (add Redis + slowapi) +- Structured logging (add structlog) +- More domains following the same pattern diff --git a/examples/minimal-production/backend/alembic.ini b/examples/minimal-production/backend/alembic.ini new file mode 100644 index 0000000..fc4ddbe --- /dev/null +++ b/examples/minimal-production/backend/alembic.ini @@ -0,0 +1,43 @@ +[alembic] +script_location = alembic +prepend_sys_path = . +version_path_separator = os +file_template = %%(year)d%%(month).2d%%(day).2d_%%(hour).2d%%(minute).2d%%(second).2d_%%(slug)s + +sqlalchemy.url = driver://user:pass@localhost/dbname + +[post_write_hooks] + +[loggers] +keys = root,sqlalchemy,alembic + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/examples/minimal-production/backend/alembic/env.py b/examples/minimal-production/backend/alembic/env.py new file mode 100644 index 0000000..3cc55c2 --- /dev/null +++ b/examples/minimal-production/backend/alembic/env.py @@ -0,0 +1,115 @@ +""" +ⒸAngelaMos | 2025 +env.py +""" +import asyncio +import sys +from pathlib import Path +from logging.config import fileConfig + +from alembic import context +from sqlalchemy import pool +from sqlalchemy.engine import Connection +from sqlalchemy.ext.asyncio import async_engine_from_config + + +sys.path.insert(0, str(Path(__file__).resolve().parent.parent / "app")) + +from config import settings +from core.Base import Base +from user.User import User + + +config = context.config + + +def render_item(type_, obj, autogen_context): + """ + Custom renderer for alembic autogenerate + """ + import sqlalchemy as sa + + if isinstance(obj, sa.DateTime): + return "sa.DateTime(timezone=True)" + + return False + + +if config.config_file_name is not None: + fileConfig(config.config_file_name) + +target_metadata = Base.metadata + + +def get_url() -> str: + """ + Get database URL from settings + """ + return str(settings.DATABASE_URL) + + +def run_migrations_offline() -> None: + """ + Run migrations in 'offline' mode + """ + url = get_url() + context.configure( + url = url, + target_metadata = target_metadata, + literal_binds = True, + dialect_opts = {"paramstyle": "named"}, + compare_type = True, + compare_server_default = True, + render_item = render_item, + ) + + with context.begin_transaction(): + context.run_migrations() + + +def do_run_migrations(connection: Connection) -> None: + """ + Run migrations with connection + """ + context.configure( + connection = connection, + target_metadata = target_metadata, + compare_type = True, + compare_server_default = True, + render_item = render_item, + ) + + with context.begin_transaction(): + context.run_migrations() + + +async def run_async_migrations() -> None: + """ + Run migrations in async mode + """ + configuration = config.get_section(config.config_ini_section, {}) + configuration["sqlalchemy.url"] = get_url() + + connectable = async_engine_from_config( + configuration, + prefix = "sqlalchemy.", + poolclass = pool.NullPool, + ) + + async with connectable.connect() as connection: + await connection.run_sync(do_run_migrations) + + await connectable.dispose() + + +def run_migrations_online() -> None: + """ + Run migrations in 'online' mode + """ + asyncio.run(run_async_migrations()) + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/examples/minimal-production/backend/alembic/script.py.mako b/examples/minimal-production/backend/alembic/script.py.mako new file mode 100644 index 0000000..17dcba0 --- /dev/null +++ b/examples/minimal-production/backend/alembic/script.py.mako @@ -0,0 +1,25 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +revision: str = ${repr(up_revision)} +down_revision: Union[str, None] = ${repr(down_revision)} +branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)} +depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)} + + +def upgrade() -> None: + ${upgrades if upgrades else "pass"} + + +def downgrade() -> None: + ${downgrades if downgrades else "pass"} diff --git a/examples/minimal-production/backend/alembic/versions/20251215_000001_initial_schema.py b/examples/minimal-production/backend/alembic/versions/20251215_000001_initial_schema.py new file mode 100644 index 0000000..60068ad --- /dev/null +++ b/examples/minimal-production/backend/alembic/versions/20251215_000001_initial_schema.py @@ -0,0 +1,61 @@ +"""initial_schema + +Revision ID: 000001 +Revises: +Create Date: 2025-12-15 00:00:01.000000 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +revision: str = '000001' +down_revision: Union[str, None] = None +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + op.create_table( + 'users', + sa.Column('id', + sa.Uuid(), + nullable = False), + sa.Column('email', + sa.String(length = 320), + nullable = False), + sa.Column( + 'hashed_password', + sa.String(length = 1024), + nullable = False + ), + sa.Column( + 'is_active', + sa.Boolean(), + nullable = False, + server_default = sa.text('true') + ), + sa.Column( + 'created_at', + sa.DateTime(timezone = True), + server_default = sa.text('now()'), + nullable = False + ), + sa.Column( + 'updated_at', + sa.DateTime(timezone = True), + nullable = True + ), + sa.PrimaryKeyConstraint('id', + name = op.f('pk_users')), + sa.UniqueConstraint('email', + name = op.f('uq_users_email')) + ) + op.create_index(op.f('ix_email'), 'users', ['email'], unique = True) + + +def downgrade() -> None: + op.drop_index(op.f('ix_email'), table_name = 'users') + op.drop_table('users') diff --git a/examples/minimal-production/backend/app/__main__.py b/examples/minimal-production/backend/app/__main__.py new file mode 100644 index 0000000..9fca783 --- /dev/null +++ b/examples/minimal-production/backend/app/__main__.py @@ -0,0 +1,19 @@ +""" +ⒸAngelaMos | 2025 +__main__.py +""" +import uvicorn + +from config import settings +from factory import create_app + + +app = create_app() + +if __name__ == "__main__": + uvicorn.run( + "__main__:app", + host = settings.HOST, + port = settings.PORT, + reload = settings.RELOAD, + ) diff --git a/examples/minimal-production/backend/app/auth/dependencies.py b/examples/minimal-production/backend/app/auth/dependencies.py new file mode 100644 index 0000000..76ff48b --- /dev/null +++ b/examples/minimal-production/backend/app/auth/dependencies.py @@ -0,0 +1,20 @@ +""" +ⒸAngelaMos | 2025 +dependencies.py +""" + +from typing import Annotated +from fastapi import Depends + +from core.dependencies import DBSession +from .service import AuthService + + +def get_auth_service(db: DBSession) -> AuthService: + """ + Dependency for Auth service + """ + return AuthService(db) + + +AuthServiceDep = Annotated[AuthService, Depends(get_auth_service)] diff --git a/examples/minimal-production/backend/app/auth/routes.py b/examples/minimal-production/backend/app/auth/routes.py new file mode 100644 index 0000000..6797cc4 --- /dev/null +++ b/examples/minimal-production/backend/app/auth/routes.py @@ -0,0 +1,63 @@ +""" +ⒸAngelaMos | 2025 +routes.py +""" + +from typing import Annotated + +from fastapi import ( + APIRouter, + Depends, + status, +) +from fastapi.security import ( + OAuth2PasswordRequestForm, +) + +from core.dependencies import CurrentUser +from .schemas import TokenWithUserResponse +from user.schemas import UserResponse +from .dependencies import AuthServiceDep +from core.responses import AUTH_401 + + +router = APIRouter(prefix = "/auth", tags = ["auth"]) + + +@router.post( + "/login", + response_model = TokenWithUserResponse, + responses = {**AUTH_401} +) +async def login( + auth_service: AuthServiceDep, + form_data: Annotated[OAuth2PasswordRequestForm, + Depends()], +) -> TokenWithUserResponse: + """ + Login with email and password + """ + return await auth_service.login( + email = form_data.username, + password = form_data.password, + ) + + +@router.get("/me", response_model = UserResponse, responses = {**AUTH_401}) +async def get_current_user(current_user: CurrentUser) -> UserResponse: + """ + Get current authenticated user + """ + return UserResponse.model_validate(current_user) + + +@router.post( + "/logout", + status_code = status.HTTP_204_NO_CONTENT, + responses = {**AUTH_401} +) +async def logout(_: CurrentUser) -> None: + """ + Logout current session + """ + pass diff --git a/examples/minimal-production/backend/app/auth/schemas.py b/examples/minimal-production/backend/app/auth/schemas.py new file mode 100644 index 0000000..a52e723 --- /dev/null +++ b/examples/minimal-production/backend/app/auth/schemas.py @@ -0,0 +1,15 @@ +""" +ⒸAngelaMos | 2025 +schemas.py +""" + +from core.base_schema import BaseSchema +from user.schemas import UserResponse + + +class TokenWithUserResponse(BaseSchema): + """ + Login response with access token and user data + """ + access_token: str + user: UserResponse diff --git a/examples/minimal-production/backend/app/auth/service.py b/examples/minimal-production/backend/app/auth/service.py new file mode 100644 index 0000000..8257916 --- /dev/null +++ b/examples/minimal-production/backend/app/auth/service.py @@ -0,0 +1,82 @@ +""" +ⒸAngelaMos | 2025 +service.py +""" + +from sqlalchemy.ext.asyncio import ( + AsyncSession, +) + +from core.exceptions import ( + InvalidCredentials, +) +from core.security import ( + create_access_token, + verify_password_with_timing_safety, +) +from user.User import User +from user.repository import UserRepository +from .schemas import ( + TokenWithUserResponse, +) +from user.schemas import UserResponse + + +class AuthService: + """ + Business logic for authentication operations + """ + def __init__(self, session: AsyncSession) -> None: + self.session = session + + async def authenticate( + self, + email: str, + password: str, + ) -> tuple[str, + User]: + """ + Authenticate user and create access token + """ + user = await UserRepository.get_by_email(self.session, email) + hashed_password = user.hashed_password if user else None + + is_valid, new_hash = await verify_password_with_timing_safety( + password, hashed_password + ) + + if not is_valid or user is None: + raise InvalidCredentials() + + if not user.is_active: + raise InvalidCredentials() + + if new_hash: + await UserRepository.update_password( + self.session, + user, + new_hash + ) + + access_token = create_access_token(user.id) + + return access_token, user + + async def login( + self, + email: str, + password: str, + ) -> TokenWithUserResponse: + """ + Login and return token with user data + """ + access_token, user = await self.authenticate( + email, + password, + ) + + response = TokenWithUserResponse( + access_token = access_token, + user = UserResponse.model_validate(user), + ) + return response diff --git a/examples/minimal-production/backend/app/config.py b/examples/minimal-production/backend/app/config.py new file mode 100644 index 0000000..4597215 --- /dev/null +++ b/examples/minimal-production/backend/app/config.py @@ -0,0 +1,134 @@ +""" +ⒸAngelaMos | 2025 +config.py +""" + +from pathlib import Path +from typing import Literal +from functools import lru_cache + +from pydantic import ( + Field, + SecretStr, + PostgresDsn, + model_validator, +) +from pydantic_settings import ( + BaseSettings, + SettingsConfigDict, +) + +from core.constants import ( + API_PREFIX, + API_VERSION, + EMAIL_MAX_LENGTH, + PASSWORD_HASH_MAX_LENGTH, + PASSWORD_MAX_LENGTH, + PASSWORD_MIN_LENGTH, +) +from core.enums import ( + Environment, + HealthStatus, + TokenType, +) + + +__all__ = [ + "API_PREFIX", + "API_VERSION", + "EMAIL_MAX_LENGTH", + "PASSWORD_HASH_MAX_LENGTH", + "PASSWORD_MAX_LENGTH", + "PASSWORD_MIN_LENGTH", + "Environment", + "HealthStatus", + "Settings", + "TokenType", + "get_settings", + "settings", +] + +_PROJECT_ROOT = Path(__file__).resolve().parent.parent.parent +_ENV_FILE = _PROJECT_ROOT / ".env" + + +class Settings(BaseSettings): + """ + Application settings loaded from environment variables + """ + model_config = SettingsConfigDict( + env_file = _ENV_FILE, + env_file_encoding = "utf-8", + case_sensitive = False, + extra = "ignore", + ) + + APP_NAME: str = "Minimal FastAPI Template" + APP_VERSION: str = "1.0.0" + APP_SUMMARY: str = "Minimal FastAPI Backend Template" + APP_DESCRIPTION: str = "Simple async backend with JWT auth and PostgreSQL" + + ENVIRONMENT: Environment = Environment.DEVELOPMENT + DEBUG: bool = False + + HOST: str = "0.0.0.0" + PORT: int = 8000 + RELOAD: bool = True + + DATABASE_URL: PostgresDsn + DB_POOL_SIZE: int = Field(default = 20, ge = 5, le = 100) + DB_MAX_OVERFLOW: int = Field(default = 10, ge = 0, le = 50) + DB_POOL_TIMEOUT: int = Field(default = 30, ge = 10) + DB_POOL_RECYCLE: int = Field(default = 1800, ge = 300) + + SECRET_KEY: SecretStr = Field(..., min_length = 32) + JWT_ALGORITHM: Literal["HS256", "HS384", "HS512"] = "HS256" + ACCESS_TOKEN_EXPIRE_MINUTES: int = Field( + default = 30, + ge = 5, + le = 120 + ) + + CORS_ORIGINS: list[str] = [ + "http://localhost", + "http://localhost:3420", + "http://localhost:8420", + ] + CORS_ALLOW_CREDENTIALS: bool = True + CORS_ALLOW_METHODS: list[str] = [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE", + "OPTIONS" + ] + CORS_ALLOW_HEADERS: list[str] = ["*"] + + PAGINATION_DEFAULT_SIZE: int = Field(default = 20, ge = 1, le = 100) + PAGINATION_MAX_SIZE: int = Field(default = 100, ge = 1, le = 500) + + @model_validator(mode = "after") + def validate_production_settings(self) -> "Settings": + """ + Enforce security constraints in production environment + """ + if self.ENVIRONMENT == Environment.PRODUCTION: + if self.DEBUG: + raise ValueError("DEBUG must be False in production") + if self.CORS_ORIGINS == ["*"]: + raise ValueError( + "CORS_ORIGINS cannot be ['*'] in production" + ) + return self + + +@lru_cache +def get_settings() -> Settings: + """ + Cached settings instance to avoid repeated env parsing + """ + return Settings() + + +settings = get_settings() diff --git a/examples/minimal-production/backend/app/core/Base.py b/examples/minimal-production/backend/app/core/Base.py new file mode 100644 index 0000000..deecde3 --- /dev/null +++ b/examples/minimal-production/backend/app/core/Base.py @@ -0,0 +1,63 @@ +""" +ⒸAngelaMos | 2025 +Base.py +""" + +from uuid import UUID +from datetime import UTC, datetime + +import uuid6 +from sqlalchemy.orm import ( + Mapped, + mapped_column, + DeclarativeBase, +) +from sqlalchemy import ( + DateTime, + MetaData, + func, +) +from sqlalchemy.ext.asyncio import AsyncAttrs + + +NAMING_CONVENTION = { + "ix": "ix_%(column_0_label)s", + "uq": "uq_%(table_name)s_%(column_0_name)s", + "ck": "ck_%(table_name)s_%(constraint_name)s", + "fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s", + "pk": "pk_%(table_name)s", +} + + +class Base(AsyncAttrs, DeclarativeBase): + """ + Base class for all SQLAlchemy models + """ + metadata = MetaData(naming_convention = NAMING_CONVENTION) + + +class UUIDMixin: + """ + Mixin for UUID v7 primary key + """ + id: Mapped[UUID] = mapped_column( + primary_key = True, + default = uuid6.uuid7, + ) + + +class TimestampMixin: + """ + Mixin for created_at and updated_at timestamps + """ + created_at: Mapped[datetime] = mapped_column( + DateTime(timezone = True), + default = lambda: datetime.now(UTC), + server_default = func.now(), + ) + updated_at: Mapped[datetime | None] = mapped_column( + DateTime(timezone = True), + default = None, + onupdate = lambda: datetime.now(UTC), + server_onupdate = func.now(), + ) diff --git a/examples/minimal-production/backend/app/core/base_repository.py b/examples/minimal-production/backend/app/core/base_repository.py new file mode 100644 index 0000000..030ea6a --- /dev/null +++ b/examples/minimal-production/backend/app/core/base_repository.py @@ -0,0 +1,106 @@ +""" +ⒸAngelaMos | 2025 +base_repository.py +""" + +from collections.abc import Sequence +from typing import ( + Any, + Generic, + TypeVar, +) +from uuid import UUID + +from sqlalchemy import func, select +from sqlalchemy.ext.asyncio import AsyncSession + +from .Base import Base + + +ModelT = TypeVar("ModelT", bound = Base) + + +class BaseRepository(Generic[ModelT]): + """ + Generic repository with common CRUD operations + """ + model: type[ModelT] + + @classmethod + async def get_by_id( + cls, + session: AsyncSession, + id: UUID, + ) -> ModelT | None: + """ + Get a single record by ID + """ + return await session.get(cls.model, id) + + @classmethod + async def get_multi( + cls, + session: AsyncSession, + skip: int = 0, + limit: int = 100, + ) -> Sequence[ModelT]: + """ + Get multiple records with pagination + """ + result = await session.execute( + select(cls.model).offset(skip).limit(limit) + ) + return result.scalars().all() + + @classmethod + async def count(cls, session: AsyncSession) -> int: + """ + Count total records + """ + result = await session.execute( + select(func.count()).select_from(cls.model) + ) + return result.scalar_one() + + @classmethod + async def create( + cls, + session: AsyncSession, + **kwargs: Any, + ) -> ModelT: + """ + Create a new record + """ + instance = cls.model(**kwargs) + session.add(instance) + await session.flush() + await session.refresh(instance) + return instance + + @classmethod + async def update( + cls, + session: AsyncSession, + instance: ModelT, + **kwargs: Any, + ) -> ModelT: + """ + Update an existing record + """ + for key, value in kwargs.items(): + setattr(instance, key, value) + await session.flush() + await session.refresh(instance) + return instance + + @classmethod + async def delete( + cls, + session: AsyncSession, + instance: ModelT, + ) -> None: + """ + Delete a record + """ + await session.delete(instance) + await session.flush() diff --git a/examples/minimal-production/backend/app/core/base_schema.py b/examples/minimal-production/backend/app/core/base_schema.py new file mode 100644 index 0000000..9c26c0e --- /dev/null +++ b/examples/minimal-production/backend/app/core/base_schema.py @@ -0,0 +1,31 @@ +""" +ⒸAngelaMos | 2025 +base.py +""" + +from uuid import UUID +from datetime import datetime + +from pydantic import ( + BaseModel, + ConfigDict, +) + + +class BaseSchema(BaseModel): + """ + Base schema with common configuration + """ + model_config = ConfigDict( + from_attributes = True, + str_strip_whitespace = True, + ) + + +class BaseResponseSchema(BaseSchema): + """ + Base schema for API responses with common fields + """ + id: UUID + created_at: datetime + updated_at: datetime | None = None diff --git a/examples/minimal-production/backend/app/core/common_schemas.py b/examples/minimal-production/backend/app/core/common_schemas.py new file mode 100644 index 0000000..3abe927 --- /dev/null +++ b/examples/minimal-production/backend/app/core/common_schemas.py @@ -0,0 +1,33 @@ +""" +ⒸAngelaMos | 2025 +common_schemas.py +""" + +from config import HealthStatus +from .base_schema import BaseSchema + + +class HealthResponse(BaseSchema): + """ + Health check response + """ + status: HealthStatus + environment: str + version: str + + +class HealthDetailedResponse(HealthResponse): + """ + Detailed health check with database status + """ + database: HealthStatus + + +class AppInfoResponse(BaseSchema): + """ + Root endpoint response with API information + """ + name: str + version: str + environment: str + docs_url: str | None diff --git a/examples/minimal-production/backend/app/core/constants.py b/examples/minimal-production/backend/app/core/constants.py new file mode 100644 index 0000000..180b4c6 --- /dev/null +++ b/examples/minimal-production/backend/app/core/constants.py @@ -0,0 +1,12 @@ +""" +ⒸAngelaMos | 2025 +constants.py +""" + +EMAIL_MAX_LENGTH = 320 +PASSWORD_MIN_LENGTH = 8 +PASSWORD_MAX_LENGTH = 128 +PASSWORD_HASH_MAX_LENGTH = 1024 + +API_VERSION = "v1" +API_PREFIX = f"/{API_VERSION}" diff --git a/examples/minimal-production/backend/app/core/database.py b/examples/minimal-production/backend/app/core/database.py new file mode 100644 index 0000000..03ffeef --- /dev/null +++ b/examples/minimal-production/backend/app/core/database.py @@ -0,0 +1,160 @@ +""" +ⒸAngelaMos | 2025 +database.py +""" + +import contextlib +from collections.abc import ( + AsyncIterator, + Iterator, +) + +from sqlalchemy import create_engine +from sqlalchemy.engine import Engine +from sqlalchemy.engine.url import make_url +from sqlalchemy.ext.asyncio import ( + AsyncEngine, + AsyncSession, + AsyncConnection, + async_sessionmaker, + create_async_engine, +) +from sqlalchemy.orm import Session, sessionmaker + +from config import settings + + +class DatabaseSessionManager: + """ + Manages database connections and sessions for both sync and async contexts + """ + def __init__(self) -> None: + self._async_engine: AsyncEngine | None = None + self._sync_engine: Engine | None = None + self._async_sessionmaker: async_sessionmaker[AsyncSession + ] | None = None + self._sync_sessionmaker: sessionmaker[Session] | None = None + + def init(self, database_url: str) -> None: + """ + Initialize database engines and session factories + """ + base_url = make_url(database_url) + + async_url = base_url.set(drivername = "postgresql+asyncpg") + self._async_engine = create_async_engine( + async_url, + pool_size = settings.DB_POOL_SIZE, + max_overflow = settings.DB_MAX_OVERFLOW, + pool_timeout = settings.DB_POOL_TIMEOUT, + pool_recycle = settings.DB_POOL_RECYCLE, + pool_pre_ping = True, + echo = settings.DEBUG, + ) + self._async_sessionmaker = async_sessionmaker( + bind = self._async_engine, + class_ = AsyncSession, + autocommit = False, + autoflush = False, + expire_on_commit = False, + ) + + sync_url = base_url.set(drivername = "postgresql+psycopg2") + self._sync_engine = create_engine( + sync_url, + pool_size = settings.DB_POOL_SIZE, + max_overflow = settings.DB_MAX_OVERFLOW, + pool_timeout = settings.DB_POOL_TIMEOUT, + pool_recycle = settings.DB_POOL_RECYCLE, + pool_pre_ping = True, + echo = settings.DEBUG, + ) + self._sync_sessionmaker = sessionmaker( + bind = self._sync_engine, + autocommit = False, + autoflush = False, + expire_on_commit = False, + ) + + async def close(self) -> None: + """ + Dispose of all database connections + """ + if self._async_engine: + await self._async_engine.dispose() + self._async_engine = None + self._async_sessionmaker = None + + if self._sync_engine: + self._sync_engine.dispose() + self._sync_engine = None + self._sync_sessionmaker = None + + @contextlib.asynccontextmanager + async def session(self) -> AsyncIterator[AsyncSession]: + """ + Async context manager for database sessions + + Handles commit on success, rollback on exception + """ + if self._async_sessionmaker is None: + raise RuntimeError("DatabaseSessionManager is not initialized") + + session = self._async_sessionmaker() + try: + yield session + await session.commit() + except Exception: + await session.rollback() + raise + finally: + await session.close() + + @contextlib.asynccontextmanager + async def connect(self) -> AsyncIterator[AsyncConnection]: + """ + Async context manager for raw database connections + """ + if self._async_engine is None: + raise RuntimeError("DatabaseSessionManager is not initialized") + + async with self._async_engine.begin() as connection: + yield connection + + @property + def sync_engine(self) -> Engine: + """ + Sync engine for Alembic migrations + """ + if self._sync_engine is None: + raise RuntimeError("DatabaseSessionManager is not initialized") + return self._sync_engine + + @contextlib.contextmanager + def sync_session(self) -> Iterator[Session]: + """ + Sync context manager for migrations and CLI tools + """ + if self._sync_sessionmaker is None: + raise RuntimeError("DatabaseSessionManager is not initialized") + + session = self._sync_sessionmaker() + try: + yield session + session.commit() + except Exception: + session.rollback() + raise + finally: + session.close() + + +sessionmanager = DatabaseSessionManager() + + +async def get_db_session() -> AsyncIterator[AsyncSession]: + """ + FastAPI dependency for database sessions + """ + async with sessionmanager.session() as session: + yield session diff --git a/examples/minimal-production/backend/app/core/dependencies.py b/examples/minimal-production/backend/app/core/dependencies.py new file mode 100644 index 0000000..38e4122 --- /dev/null +++ b/examples/minimal-production/backend/app/core/dependencies.py @@ -0,0 +1,76 @@ +""" +ⒸAngelaMos | 2025 +dependencies.py +""" + +from __future__ import annotations + +from typing import Annotated +from uuid import UUID + +import jwt +from fastapi import Depends +from fastapi.security import OAuth2PasswordBearer +from sqlalchemy.ext.asyncio import AsyncSession + +from config import ( + API_PREFIX, + TokenType, +) +from .database import get_db_session +from .exceptions import ( + InactiveUser, + TokenError, + UserNotFound, +) +from user.User import User +from .security import decode_access_token +from user.repository import UserRepository + + +oauth2_scheme = OAuth2PasswordBearer( + tokenUrl = f"{API_PREFIX}/auth/login", + auto_error = True, +) + +DBSession = Annotated[AsyncSession, Depends(get_db_session)] + + +async def get_current_user( + token: Annotated[str, + Depends(oauth2_scheme)], + db: DBSession, +) -> User: + """ + Validate access token and return current user + """ + try: + payload = decode_access_token(token) + except jwt.InvalidTokenError as e: + raise TokenError(message = str(e)) from e + + if payload.get("type") != TokenType.ACCESS.value: + raise TokenError(message = "Invalid token type") + + user_id = UUID(payload["sub"]) + user = await UserRepository.get_by_id(db, user_id) + + if user is None: + raise UserNotFound(identifier = str(user_id)) + + return user + + +async def get_current_active_user( + user: Annotated[User, + Depends(get_current_user)], +) -> User: + """ + Ensure user is active + """ + if not user.is_active: + raise InactiveUser() + return user + + +CurrentUser = Annotated["User", Depends(get_current_active_user)] diff --git a/examples/minimal-production/backend/app/core/enums.py b/examples/minimal-production/backend/app/core/enums.py new file mode 100644 index 0000000..e232c70 --- /dev/null +++ b/examples/minimal-production/backend/app/core/enums.py @@ -0,0 +1,31 @@ +""" +ⒸAngelaMos | 2025 +enums.py +""" + +from enum import Enum + + +class Environment(str, Enum): + """ + Application environment + """ + DEVELOPMENT = "development" + STAGING = "staging" + PRODUCTION = "production" + + +class TokenType(str, Enum): + """ + JWT token types + """ + ACCESS = "access" + + +class HealthStatus(str, Enum): + """ + Health check status values + """ + HEALTHY = "healthy" + UNHEALTHY = "unhealthy" + DEGRADED = "degraded" diff --git a/examples/minimal-production/backend/app/core/error_schemas.py b/examples/minimal-production/backend/app/core/error_schemas.py new file mode 100644 index 0000000..ec877f9 --- /dev/null +++ b/examples/minimal-production/backend/app/core/error_schemas.py @@ -0,0 +1,27 @@ +""" +ⒸAngelaMos | 2025 +error_schemas.py +""" + +from typing import ClassVar +from pydantic import Field, ConfigDict +from core.base_schema import BaseSchema + + +class ErrorDetail(BaseSchema): + """ + Standard error response format + """ + detail: str = Field(..., description = "Human readable error message") + type: str = Field(..., description = "Exception class name") + + model_config: ClassVar[ConfigDict] = ConfigDict( + json_schema_extra = { + "examples": [ + { + "detail": "User with id '123' not found", + "type": "UserNotFound" + } + ] + } + ) diff --git a/examples/minimal-production/backend/app/core/exceptions.py b/examples/minimal-production/backend/app/core/exceptions.py new file mode 100644 index 0000000..6669bbb --- /dev/null +++ b/examples/minimal-production/backend/app/core/exceptions.py @@ -0,0 +1,146 @@ +""" +ⒸAngelaMos | 2025 +exceptions.py +""" + +from typing import Any + + +class BaseAppException(Exception): + """ + Base exception for all application specific errors + """ + def __init__( + self, + message: str, + status_code: int = 500, + extra: dict[str, + Any] | None = None, + ) -> None: + self.message = message + self.status_code = status_code + self.extra = extra or {} + super().__init__(self.message) + + +class ResourceNotFound(BaseAppException): + """ + Raised when a requested resource does not exist + """ + def __init__( + self, + resource: str, + identifier: str | int, + extra: dict[str, + Any] | None = None, + ) -> None: + super().__init__( + message = f"{resource} with id '{identifier}' not found", + status_code = 404, + extra = extra, + ) + self.resource = resource + self.identifier = identifier + + +class ConflictError(BaseAppException): + """ + Raised when an operation conflicts with existing state + """ + def __init__( + self, + message: str, + extra: dict[str, + Any] | None = None, + ) -> None: + super().__init__( + message = message, + status_code = 409, + extra = extra + ) + + +class AuthenticationError(BaseAppException): + """ + Raised when authentication fails + """ + def __init__( + self, + message: str = "Authentication failed", + extra: dict[str, + Any] | None = None, + ) -> None: + super().__init__( + message = message, + status_code = 401, + extra = extra + ) + + +class TokenError(AuthenticationError): + """ + Raised for JWT token specific errors + """ + def __init__( + self, + message: str = "Invalid or expired token", + extra: dict[str, + Any] | None = None, + ) -> None: + super().__init__(message = message, extra = extra) + + +class UserNotFound(ResourceNotFound): + """ + Raised when a user is not found + """ + def __init__( + self, + identifier: str | int, + extra: dict[str, + Any] | None = None, + ) -> None: + super().__init__( + resource = "User", + identifier = identifier, + extra = extra + ) + + +class EmailAlreadyExists(ConflictError): + """ + Raised when attempting to register with an existing email + """ + def __init__( + self, + email: str, + extra: dict[str, + Any] | None = None + ) -> None: + super().__init__( + message = f"Email '{email}' is already registered", + extra = extra, + ) + self.email = email + + +class InvalidCredentials(AuthenticationError): + """ + Raised when login credentials are invalid + """ + def __init__(self, extra: dict[str, Any] | None = None) -> None: + super().__init__( + message = "Invalid email or password", + extra = extra + ) + + +class InactiveUser(AuthenticationError): + """ + Raised when an inactive user attempts to authenticate + """ + def __init__(self, extra: dict[str, Any] | None = None) -> None: + super().__init__( + message = "User account is inactive", + extra = extra + ) diff --git a/examples/minimal-production/backend/app/core/health_routes.py b/examples/minimal-production/backend/app/core/health_routes.py new file mode 100644 index 0000000..ad19718 --- /dev/null +++ b/examples/minimal-production/backend/app/core/health_routes.py @@ -0,0 +1,67 @@ +""" +ⒸAngelaMos | 2025 +health_routes.py +""" + +from fastapi import ( + APIRouter, + status, +) +from sqlalchemy import text + +from config import ( + settings, + HealthStatus, +) +from .common_schemas import ( + HealthResponse, + HealthDetailedResponse, +) +from .database import sessionmanager + + +router = APIRouter(tags = ["health"]) + + +@router.get( + "/health", + response_model = HealthResponse, + status_code = status.HTTP_200_OK, +) +async def health_check() -> HealthResponse: + """ + Basic health check + """ + return HealthResponse( + status = HealthStatus.HEALTHY, + environment = settings.ENVIRONMENT.value, + version = settings.APP_VERSION, + ) + + +@router.get( + "/health/detailed", + response_model = HealthDetailedResponse, + status_code = status.HTTP_200_OK, +) +async def health_check_detailed() -> HealthDetailedResponse: + """ + Detailed health check including database connectivity + """ + db_status = HealthStatus.UNHEALTHY + + try: + async with sessionmanager.connect() as conn: + await conn.execute(text("SELECT 1")) + db_status = HealthStatus.HEALTHY + except Exception: + db_status = HealthStatus.UNHEALTHY + + overall = HealthStatus.HEALTHY if db_status == HealthStatus.HEALTHY else HealthStatus.DEGRADED + + return HealthDetailedResponse( + status = overall, + environment = settings.ENVIRONMENT.value, + version = settings.APP_VERSION, + database = db_status, + ) diff --git a/examples/minimal-production/backend/app/core/responses.py b/examples/minimal-production/backend/app/core/responses.py new file mode 100644 index 0000000..04b0172 --- /dev/null +++ b/examples/minimal-production/backend/app/core/responses.py @@ -0,0 +1,36 @@ +""" +ⒸAngelaMos | 2025 +responses.py +""" + +from typing import Any + +from .error_schemas import ErrorDetail + + +AUTH_401: dict[int | str, + dict[str, + Any]] = { + 401: { + "model": ErrorDetail, + "description": "Authentication failed" + }, + } + +NOT_FOUND_404: dict[int | str, + dict[str, + Any]] = { + 404: { + "model": ErrorDetail, + "description": "Resource not found" + }, + } + +CONFLICT_409: dict[int | str, + dict[str, + Any]] = { + 409: { + "model": ErrorDetail, + "description": "Resource conflict" + }, + } diff --git a/examples/minimal-production/backend/app/core/security.py b/examples/minimal-production/backend/app/core/security.py new file mode 100644 index 0000000..0957e31 --- /dev/null +++ b/examples/minimal-production/backend/app/core/security.py @@ -0,0 +1,111 @@ +""" +ⒸAngelaMos | 2025 +security.py +""" + +import asyncio +from datetime import ( + UTC, + datetime, + timedelta, +) +from typing import Any +from uuid import UUID + +import jwt +from pwdlib import PasswordHash + +from config import ( + settings, + TokenType, +) + + +password_hasher = PasswordHash.recommended() + + +async def hash_password(password: str) -> str: + """ + Hash password using Argon2id + """ + return await asyncio.to_thread(password_hasher.hash, password) + + +async def verify_password(plain_password: str, + hashed_password: str) -> tuple[bool, + str | None]: + """ + Verify password and check if rehash is needed + """ + try: + return await asyncio.to_thread( + password_hasher.verify_and_update, + plain_password, + hashed_password + ) + except Exception: + return False, None + + +DUMMY_HASH = password_hasher.hash( + "dummy_password_for_timing_attack_prevention" +) + + +async def verify_password_with_timing_safety( + plain_password: str, + hashed_password: str | None, +) -> tuple[bool, + str | None]: + """ + Verify password with constant time behavior to prevent user enumeration + """ + if hashed_password is None: + await asyncio.to_thread( + password_hasher.verify, + plain_password, + DUMMY_HASH + ) + return False, None + return await verify_password(plain_password, hashed_password) + + +def create_access_token( + user_id: UUID, + extra_claims: dict[str, + Any] | None = None, +) -> str: + """ + Create a short lived access token + """ + now = datetime.now(UTC) + payload = { + "sub": str(user_id), + "type": TokenType.ACCESS.value, + "iat": now, + "exp": + now + timedelta(minutes = settings.ACCESS_TOKEN_EXPIRE_MINUTES), + } + if extra_claims: + payload.update(extra_claims) + + return jwt.encode( + payload, + settings.SECRET_KEY.get_secret_value(), + algorithm = settings.JWT_ALGORITHM, + ) + + +def decode_access_token(token: str) -> dict[str, Any]: + """ + Decode and validate an access token + """ + return jwt.decode( + token, + settings.SECRET_KEY.get_secret_value(), + algorithms = [settings.JWT_ALGORITHM], + options = {"require": ["exp", + "sub", + "iat", + "type"]}, + ) diff --git a/examples/minimal-production/backend/app/factory.py b/examples/minimal-production/backend/app/factory.py new file mode 100644 index 0000000..8f17a52 --- /dev/null +++ b/examples/minimal-production/backend/app/factory.py @@ -0,0 +1,104 @@ +""" +ⒸAngelaMos | 2025 +factory.py +""" + +from collections.abc import AsyncIterator +from contextlib import asynccontextmanager + +from fastapi import FastAPI, Request +from fastapi.middleware.cors import CORSMiddleware +from fastapi.responses import JSONResponse + +from config import settings, Environment, API_PREFIX +from core.database import sessionmanager +from core.exceptions import BaseAppException +from core.common_schemas import AppInfoResponse +from core.health_routes import router as health_router +from user.routes import router as user_router +from auth.routes import router as auth_router + + +@asynccontextmanager +async def lifespan(app: FastAPI) -> AsyncIterator[None]: + """ + Application lifespan handler for startup and shutdown + """ + sessionmanager.init(str(settings.DATABASE_URL)) + yield + await sessionmanager.close() + + +OPENAPI_TAGS = [ + { + "name": "root", + "description": "API information" + }, + { + "name": "health", + "description": "Health check endpoints" + }, + { + "name": "auth", + "description": "Authentication" + }, + { + "name": "users", + "description": "User operations" + }, +] + + +def create_app() -> FastAPI: + """ + Application factory + """ + is_production = settings.ENVIRONMENT == Environment.PRODUCTION + + app = FastAPI( + title = settings.APP_NAME, + summary = settings.APP_SUMMARY, + description = settings.APP_DESCRIPTION, + version = settings.APP_VERSION, + openapi_tags = OPENAPI_TAGS, + lifespan = lifespan, + openapi_url = None if is_production else "/openapi.json", + docs_url = None if is_production else "/docs", + redoc_url = None if is_production else "/redoc", + ) + + app.add_middleware( + CORSMiddleware, + allow_origins = settings.CORS_ORIGINS, + allow_credentials = settings.CORS_ALLOW_CREDENTIALS, + allow_methods = settings.CORS_ALLOW_METHODS, + allow_headers = settings.CORS_ALLOW_HEADERS, + ) + + @app.exception_handler(BaseAppException) + async def app_exception_handler( + request: Request, + exc: BaseAppException, + ) -> JSONResponse: + return JSONResponse( + status_code = exc.status_code, + content = { + "detail": exc.message, + "type": exc.__class__.__name__, + }, + ) + + @app.get("/", response_model = AppInfoResponse, tags = ["root"]) + async def root() -> AppInfoResponse: + return AppInfoResponse( + name = settings.APP_NAME, + version = settings.APP_VERSION, + environment = settings.ENVIRONMENT.value, + docs_url = None if is_production else "/docs", + ) + + app.include_router(health_router) + app.include_router(auth_router, prefix = API_PREFIX) + app.include_router(user_router, prefix = API_PREFIX) + + return app diff --git a/examples/minimal-production/backend/app/user/User.py b/examples/minimal-production/backend/app/user/User.py new file mode 100644 index 0000000..b697a06 --- /dev/null +++ b/examples/minimal-production/backend/app/user/User.py @@ -0,0 +1,37 @@ +""" +ⒸAngelaMos | 2025 +User.py +""" + +from sqlalchemy import String +from sqlalchemy.orm import ( + Mapped, + mapped_column, +) + +from config import ( + EMAIL_MAX_LENGTH, + PASSWORD_HASH_MAX_LENGTH, +) +from core.Base import ( + Base, + TimestampMixin, + UUIDMixin, +) + + +class User(Base, UUIDMixin, TimestampMixin): + """ + User account model + """ + __tablename__ = "users" + + email: Mapped[str] = mapped_column( + String(EMAIL_MAX_LENGTH), + unique = True, + index = True, + ) + hashed_password: Mapped[str] = mapped_column( + String(PASSWORD_HASH_MAX_LENGTH) + ) + is_active: Mapped[bool] = mapped_column(default = True) diff --git a/examples/minimal-production/backend/app/user/dependencies.py b/examples/minimal-production/backend/app/user/dependencies.py new file mode 100644 index 0000000..3eb0fab --- /dev/null +++ b/examples/minimal-production/backend/app/user/dependencies.py @@ -0,0 +1,20 @@ +""" +ⒸAngelaMos | 2025 +dependencies.py +""" + +from typing import Annotated +from fastapi import Depends + +from core.dependencies import DBSession +from .service import UserService + + +def get_user_service(db: DBSession) -> UserService: + """ + Dependency for User service + """ + return UserService(db) + + +UserServiceDep = Annotated[UserService, Depends(get_user_service)] diff --git a/examples/minimal-production/backend/app/user/repository.py b/examples/minimal-production/backend/app/user/repository.py new file mode 100644 index 0000000..d551f4a --- /dev/null +++ b/examples/minimal-production/backend/app/user/repository.py @@ -0,0 +1,91 @@ +""" +ⒸAngelaMos | 2025 +repository.py +""" +from uuid import UUID + +from sqlalchemy import select +from sqlalchemy.ext.asyncio import AsyncSession + +from .User import User +from core.base_repository import BaseRepository + + +class UserRepository(BaseRepository[User]): + """ + Repository for User model database operations + """ + model = User + + @classmethod + async def get_by_email( + cls, + session: AsyncSession, + email: str, + ) -> User | None: + """ + Get user by email address + """ + result = await session.execute( + select(User).where(User.email == email) + ) + return result.scalars().first() + + @classmethod + async def get_by_id( + cls, + session: AsyncSession, + id: UUID, + ) -> User | None: + """ + Get user by ID + """ + return await session.get(User, id) + + @classmethod + async def email_exists( + cls, + session: AsyncSession, + email: str, + ) -> bool: + """ + Check if email is already registered + """ + result = await session.execute( + select(User.id).where(User.email == email) + ) + return result.scalars().first() is not None + + @classmethod + async def create_user( + cls, + session: AsyncSession, + email: str, + hashed_password: str, + ) -> User: + """ + Create a new user + """ + user = User( + email = email, + hashed_password = hashed_password, + ) + session.add(user) + await session.flush() + await session.refresh(user) + return user + + @classmethod + async def update_password( + cls, + session: AsyncSession, + user: User, + hashed_password: str, + ) -> User: + """ + Update user password + """ + user.hashed_password = hashed_password + await session.flush() + await session.refresh(user) + return user diff --git a/examples/minimal-production/backend/app/user/routes.py b/examples/minimal-production/backend/app/user/routes.py new file mode 100644 index 0000000..7089472 --- /dev/null +++ b/examples/minimal-production/backend/app/user/routes.py @@ -0,0 +1,82 @@ +""" +ⒸAngelaMos | 2025 +routes.py +""" + +from uuid import UUID + +from fastapi import ( + APIRouter, + status, +) + +from core.dependencies import CurrentUser +from core.responses import ( + AUTH_401, + CONFLICT_409, + NOT_FOUND_404, +) +from .schemas import ( + PasswordChange, + UserCreate, + UserResponse, +) +from .dependencies import UserServiceDep + + +router = APIRouter(prefix = "/users", tags = ["users"]) + + +@router.post( + "", + response_model = UserResponse, + status_code = status.HTTP_201_CREATED, + responses = {**CONFLICT_409}, +) +async def create_user( + user_service: UserServiceDep, + user_data: UserCreate, +) -> UserResponse: + """ + Register a new user + """ + return await user_service.create_user(user_data) + + +@router.get( + "/{user_id}", + response_model = UserResponse, + responses = { + **AUTH_401, + **NOT_FOUND_404 + }, +) +async def get_user( + user_service: UserServiceDep, + user_id: UUID, + _: CurrentUser, +) -> UserResponse: + """ + Get user by ID + """ + return await user_service.get_user_by_id(user_id) + + +@router.post( + "/change-password", + status_code = status.HTTP_204_NO_CONTENT, + responses = {**AUTH_401} +) +async def change_password( + user_service: UserServiceDep, + current_user: CurrentUser, + data: PasswordChange, +) -> None: + """ + Change current user password + """ + await user_service.change_password( + current_user, + data.current_password, + data.new_password, + ) diff --git a/examples/minimal-production/backend/app/user/schemas.py b/examples/minimal-production/backend/app/user/schemas.py new file mode 100644 index 0000000..3623c69 --- /dev/null +++ b/examples/minimal-production/backend/app/user/schemas.py @@ -0,0 +1,77 @@ +""" +ⒸAngelaMos | 2025 +schemas.py +""" + +from pydantic import ( + Field, + EmailStr, + field_validator, +) + +from config import ( + PASSWORD_MAX_LENGTH, + PASSWORD_MIN_LENGTH, +) +from core.base_schema import ( + BaseSchema, + BaseResponseSchema, +) + + +class UserCreate(BaseSchema): + """ + Schema for user registration + """ + email: EmailStr + password: str = Field( + min_length = PASSWORD_MIN_LENGTH, + max_length = PASSWORD_MAX_LENGTH + ) + + @field_validator("password") + @classmethod + def validate_password_strength(cls, v: str) -> str: + """ + Ensure password has minimum complexity + """ + if not any(c.isupper() for c in v): + raise ValueError( + "Password must contain at least one uppercase letter" + ) + if not any(c.isdigit() for c in v): + raise ValueError("Password must contain at least one digit") + return v + + +class UserResponse(BaseResponseSchema): + """ + Schema for user API responses + """ + email: EmailStr + is_active: bool + + +class PasswordChange(BaseSchema): + """ + Schema for password change + """ + current_password: str + new_password: str = Field( + min_length = PASSWORD_MIN_LENGTH, + max_length = PASSWORD_MAX_LENGTH + ) + + @field_validator("new_password") + @classmethod + def validate_password_strength(cls, v: str) -> str: + """ + Ensure password has minimum complexity + """ + if not any(c.isupper() for c in v): + raise ValueError( + "Password must contain at least one uppercase letter" + ) + if not any(c.isdigit() for c in v): + raise ValueError("Password must contain at least one digit") + return v diff --git a/examples/minimal-production/backend/app/user/service.py b/examples/minimal-production/backend/app/user/service.py new file mode 100644 index 0000000..682be9d --- /dev/null +++ b/examples/minimal-production/backend/app/user/service.py @@ -0,0 +1,94 @@ +""" +ⒸAngelaMos | 2025 +service.py +""" + +from uuid import UUID +from sqlalchemy.ext.asyncio import ( + AsyncSession, +) + +from core.exceptions import ( + EmailAlreadyExists, + InvalidCredentials, + UserNotFound, +) +from core.security import ( + hash_password, + verify_password, +) +from .schemas import ( + UserCreate, + UserResponse, +) +from .User import User +from .repository import UserRepository + + +class UserService: + """ + Business logic for user operations + """ + def __init__(self, session: AsyncSession) -> None: + self.session = session + + async def create_user( + self, + user_data: UserCreate, + ) -> UserResponse: + """ + Register a new user + """ + if await UserRepository.email_exists(self.session, + user_data.email): + raise EmailAlreadyExists(user_data.email) + + hashed = await hash_password(user_data.password) + user = await UserRepository.create_user( + self.session, + email = user_data.email, + hashed_password = hashed, + ) + return UserResponse.model_validate(user) + + async def get_user_by_id( + self, + user_id: UUID, + ) -> UserResponse: + """ + Get user by ID + """ + user = await UserRepository.get_by_id(self.session, user_id) + if not user: + raise UserNotFound(str(user_id)) + return UserResponse.model_validate(user) + + async def change_password( + self, + user: User, + current_password: str, + new_password: str, + ) -> None: + """ + Change user password + """ + is_valid, _ = await verify_password(current_password, user.hashed_password) + if not is_valid: + raise InvalidCredentials() + + hashed = await hash_password(new_password) + await UserRepository.update_password(self.session, user, hashed) + + async def deactivate_user( + self, + user: User, + ) -> UserResponse: + """ + Deactivate user account + """ + updated = await UserRepository.update( + self.session, + user, + is_active = False + ) + return UserResponse.model_validate(updated) diff --git a/examples/minimal-production/backend/pyproject.toml b/examples/minimal-production/backend/pyproject.toml new file mode 100644 index 0000000..066ffc3 --- /dev/null +++ b/examples/minimal-production/backend/pyproject.toml @@ -0,0 +1,57 @@ +[project] +name = "minimal-fastapi-template" +version = "1.0.0" +description = "Minimal production FastAPI template with async SQLAlchemy and JWT auth" +requires-python = ">=3.12" + +dependencies = [ + "fastapi[standard]>=0.123.0,<1.0.0", + "pydantic>=2.12.5,<3.0.0", + "pydantic-settings>=2.12.0,<3.0.0", + "psycopg2-binary>=2.9.11", + "sqlalchemy>=2.0.44,<3.0.0", + "alembic>=1.17.0,<2.0.0", + "asyncpg>=0.31.0,<1.0.0", + "python-multipart>=0.0.20", + "pyjwt>=2.10.0", + "pwdlib[argon2]>=0.3.0", + "uuid6>=2025.0.1", + "gunicorn>=23.0.0", + "uvicorn[standard]>=0.38.0", +] + +[project.optional-dependencies] +dev = [ + "pytest>=9.0.2", + "pytest-asyncio>=1.3.0", + "httpx>=0.28.1", + "aiosqlite>=0.21.0", + "ruff>=0.14.8", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["app"] + +[tool.ruff] +target-version = "py312" +line-length = 88 +src = ["app"] +exclude = ["alembic"] + +[tool.ruff.lint] +select = [ + "E", # pycodestyle errors + "W", # pycodestyle warnings + "F", # pyflakes + "B", # flake8-bugbear + "C4", # flake8-comprehensions + "UP", # pyupgrade +] +ignore = [ + "E501", # line too long + "B008", # function call in default argument (FastAPI Depends) +] diff --git a/examples/minimal-production/docker-compose.yml b/examples/minimal-production/docker-compose.yml new file mode 100644 index 0000000..8c62715 --- /dev/null +++ b/examples/minimal-production/docker-compose.yml @@ -0,0 +1,42 @@ +# ========================================= +# AngelaMos | 2025 +# ========================================= + +services: + db: + image: postgres:18-alpine + environment: + POSTGRES_USER: user + POSTGRES_PASSWORD: password + POSTGRES_DB: minimal_db + ports: + - "5432:5432" + volumes: + - postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U user"] + interval: 10s + timeout: 5s + retries: 5 + + backend: + build: + context: ./backend + dockerfile: Dockerfile + ports: + - "8000:8000" + depends_on: + db: + condition: service_healthy + environment: + DATABASE_URL: postgresql://user:password@db:5432/minimal_db + SECRET_KEY: dev-secret-key-change-in-production-min32chars + ENVIRONMENT: development + DEBUG: "true" + RELOAD: "true" + volumes: + - ./backend:/app + command: sh -c "alembic upgrade head && uvicorn __main__:app --host 0.0.0.0 --port 8000 --reload" + +volumes: + postgres_data: diff --git a/frontend/.gitignore b/frontend/.gitignore index a547bf3..61cb0c2 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -11,6 +11,7 @@ node_modules dist dist-ssr *.local +.vite # Editor directories and files .vscode/* diff --git a/frontend/index.html b/frontend/index.html index 130ce76..047ef6a 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -26,7 +26,7 @@ /> Full Stack Template =18'} + core-js@1.2.7: + resolution: {integrity: sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA==} + deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. + cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} @@ -1112,6 +1125,17 @@ packages: peerDependencies: react: '>=16.13.1' + react-icon@1.0.0: + resolution: {integrity: sha512-VzSlpBHnLanVw79mOxyq98hWDi6DlxK9qPiZ1bAK6bLurMBCaxO/jjyYUrRx9+JGLc/NbnwOmyE/W5Qglbb2QA==} + peerDependencies: + babel-runtime: ^5.3.3 + react: '>=0.12.0' + + react-icons@5.5.0: + resolution: {integrity: sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==} + peerDependencies: + react: '*' + react-refresh@0.18.0: resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} engines: {node: '>=0.10.0'} @@ -1844,6 +1868,10 @@ snapshots: transitivePeerDependencies: - debug + babel-runtime@5.8.38: + dependencies: + core-js: 1.2.7 + balanced-match@2.0.0: {} baseline-browser-mapping@2.9.5: {} @@ -1897,6 +1925,8 @@ snapshots: cookie@1.1.1: {} + core-js@1.2.7: {} + cosmiconfig@9.0.0(typescript@5.9.3): dependencies: env-paths: 2.2.1 @@ -2293,6 +2323,15 @@ snapshots: '@babel/runtime': 7.28.4 react: 19.2.1 + react-icon@1.0.0(babel-runtime@5.8.38)(react@19.2.1): + dependencies: + babel-runtime: 5.8.38 + react: 19.2.1 + + react-icons@5.5.0(react@19.2.1): + dependencies: + react: 19.2.1 + react-refresh@0.18.0: {} react-router-dom@7.10.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1): diff --git a/frontend/public/assets/android-chrome-192x192.png b/frontend/public/assets/android-chrome-192x192.png index a3757a1b267fa9b59d8d9e4fb23cdc1aa1408ab6..01d0a08ef524c65021a71f0c177b9d1317e7f986 100644 GIT binary patch literal 25807 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 Y0AmFKXH)ky(f|Me07*qoM6N<$f=BZ*!~g&Q diff --git a/frontend/public/assets/android-chrome-512x512.png b/frontend/public/assets/android-chrome-512x512.png index e448650c2e061d8e104498d020d15d9bb2aaeff6..3ea8cdf11b8d0d1d377fdcaf1dbe370d4e278bd3 100644 GIT binary patch literal 73395 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%0Aq;P^m<|We$(VC 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 gF)%Qokv0KRi0n{r~^~ literal 471801 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%0DgzW)eFx*ujeO>;TK4ILC?Q1 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 IqBbEf?dzeddi(H9oE(NdQ(m!RT2X>o(L8( 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 Xy)M5;9R)_z{U4 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 $Kw*R9@G&>JOb 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

JOp>rYqKG?U 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

sq@j4#83!c~m&ZwUgy-1jCS+~sK~ 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 z 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 diff --git a/frontend/public/assets/favicon-16x16.png b/frontend/public/assets/favicon-16x16.png index d55aa3e1b8cf55f8c4b2113a14330bbb428c146d..75b629057922810860dc3c601c2f0821ded14213 100644 GIT binary patch delta 723 zcmV;^0xbQH2kHfoBYy&)Nkl=Fn@(YLGZGSOffw@O>b{6 z9rX{GfAc!Hd>{_np9wccv-Eoj_vR*(_6-bGw^`#2tYVGWBsGJ zW`A(&W;rQFBSS+&tk>VeIq(t7^LC;?4`5$h*wZ5cd~P@9o^G^SEmbuS@kM8F?tC&u z1qG~UpJ6WNEPuRzi)zt=IyUYgV0LDj6nzqLeO-ZKMnWVhhC-IxpCBtN#{YL0x66g9 zu8~6#5rH1jNhe6p%Er<4fuB|@<1LT)o|T5x5Xbh5cH$drNouG;+0=^1VHb6hNdTYE z$K>!3vQItielxKX5k=~-1g><*M}7Yd;#zWjzH7JmZ?(An9^yTeCWjX8|E=ps8? zTdWv!kPBl@m&=H9{XyRG5{=#<>Lil@bHePe&6qJfZsWM{m6(QR?7}F$f?z%?4_j_N z%fj!uHyn~!3?#tmXbl$zM^L0?aKEXUBc+#FxZA+99eDL?g-Q1o^2#dKCQPDEG6|r+ zauvN^Pk&xs9%W@^d>tLbX0zc^sX4akz%n(3vbcn#qGCxb1`;4MGZUG4f{p8?#0zi1 zWHO;tD#R3IZZ0JyCDhi|l3!7YDprRsIT@qy zGR3}N3jxTYG{{ra*>0>OAt8Z^iV6}F6G;~C=S)s_A1ak9SR05#0AeOgqea{H6rD~- zb#-+>l#`l@Qmq!t2kajJ00960^8hPd00006Nkln zbx|QeVgX1wH&<*c_S-_H(Kyzicrynk;Vm%LARSG>>n%ia%P zJ@IymY41TX<*AqkONA7U>!7BPPGu>tml&auoY7I^5uLWl&={ag!RkVWR9qvK)baTg z>e<&{^8DGiJpFi&iD@u#Yzp~2A3eNJapObcg)(|7Pb8TozfdHZo2S_^$R^Y5Y~4fs zd2zwD(Iv6GOn+xGp<~&^<8e0btf7=57Mnqf#E50`C@qRhfU04$efS9$S*W_59;2ZH0zDZG zu#iu^KbxydGN?sChAhfCJ^z<#qfO5+(ew~LpO2|%rhn><4#`A<;zACq+on7}%i{-S za)~JGrDd2*(L*}fOd4}!lbg@6f3Srf)d@vHsA{#&xZhXe&iyu>haxFit(S+;UmH_k7^lVxZsYa#3uy4?6cj&ZwxD%J4 z-_O`~P~F~uUawC!og^3xa9gSI&*>>IUL0|Let(G)y9To4|Jyo^Rv+7OsEZq>Y0>ZZ zQJORjM-G3TUh?YdmX2Xi7hzM0S?sY*uRkCh)`&*KL^Mt4jW7i5SngbLNCks_mhx#9 z3OVwbB=<{8+}&7}SUBifkWR0QB|4qFx}nnQV%xU3V9^r$yMkO@y{U72am7uoEyaDB z!g4h+H-{%dF(fp7bIczvFA>_rqZ+fZFx6UJgmf@Pcr~9*Nvael=T|g)7O{AOvHLDR zJ}hS<4`(1lEx@JH=+f<5Sk{P!I4~HPyafON|Nk%a9*6({00v1!K~w_(Y`>U=E!yox P00000NkvXXu0mjfWUjkN diff --git a/frontend/public/assets/favicon-32x32.png b/frontend/public/assets/favicon-32x32.png index 2487a8d1f77adc61bbb2ab05fb1e499925cb8950..338e90d0fd359ba5da2ff517a1a4f32f0f40e78c 100644 GIT binary patch delta 2019 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 diff --git a/frontend/public/assets/favicon.ico b/frontend/public/assets/favicon.ico index c21815553b87eb9d0d9b520e15e3135006aaf2b1..cf61746755465b30f5c1eeed6b0b18bf3bf7501e 100644 GIT binary patch literal 15406 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 CMk=I{8!q1CG+W*~= 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 O|N8G=E%1MBf&U35k!G#{ diff --git a/frontend/public/assets/site.webmanifest b/frontend/public/assets/site.webmanifest index 640d50d..45dc8a2 100644 --- a/frontend/public/assets/site.webmanifest +++ b/frontend/public/assets/site.webmanifest @@ -1 +1 @@ -{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#000000","display":"standalone"} +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index ef4c938..77f8c36 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -17,7 +17,18 @@ export default function App(): React.ReactElement {

diff --git a/frontend/src/api/hooks/useAdmin.ts b/frontend/src/api/hooks/useAdmin.ts index 2d5a5b2..b339b0d 100644 --- a/frontend/src/api/hooks/useAdmin.ts +++ b/frontend/src/api/hooks/useAdmin.ts @@ -124,8 +124,8 @@ export const useAdminCreateUser = (): UseMutationResult< return useMutation({ mutationFn: performAdminCreateUser, - onSuccess: (): void => { - void queryClient.invalidateQueries({ queryKey: adminQueries.users.all() }) + onSuccess: async (): Promise => { + await queryClient.invalidateQueries({ queryKey: adminQueries.users.all() }) toast.success(USER_SUCCESS_MESSAGES.CREATED) }, @@ -172,10 +172,13 @@ export const useAdminUpdateUser = (): UseMutationResult< return useMutation({ mutationFn: performAdminUpdateUser, - onSuccess: (data: UserResponse, variables: AdminUpdateUserParams): void => { + onSuccess: async ( + data: UserResponse, + variables: AdminUpdateUserParams + ): Promise => { queryClient.setQueryData(adminQueries.users.byId(variables.id), data) - void queryClient.invalidateQueries({ queryKey: adminQueries.users.all() }) + await queryClient.invalidateQueries({ queryKey: adminQueries.users.all() }) toast.success(USER_SUCCESS_MESSAGES.UPDATED) }, @@ -198,10 +201,10 @@ export const useAdminDeleteUser = (): UseMutationResult => return useMutation({ mutationFn: performAdminDeleteUser, - onSuccess: (_, id: string): void => { + onSuccess: async (_, id: string): Promise => { queryClient.removeQueries({ queryKey: adminQueries.users.byId(id) }) - void queryClient.invalidateQueries({ queryKey: adminQueries.users.all() }) + await queryClient.invalidateQueries({ queryKey: adminQueries.users.all() }) toast.success(USER_SUCCESS_MESSAGES.DELETED) }, diff --git a/frontend/src/api/types/auth.types.ts b/frontend/src/api/types/auth.types.ts index c79d015..bf1ff76 100644 --- a/frontend/src/api/types/auth.types.ts +++ b/frontend/src/api/types/auth.types.ts @@ -6,16 +6,18 @@ import { z } from 'zod' import { PASSWORD_CONSTRAINTS } from '@/config' -export enum UserRole { - UNKNOWN = 'unknown', - USER = 'user', - ADMIN = 'admin', -} +export const UserRole = { + UNKNOWN: 'unknown', + USER: 'user', + ADMIN: 'admin', +} as const + +export type UserRole = (typeof UserRole)[keyof typeof UserRole] export const userResponseSchema = z.object({ id: z.string().uuid(), created_at: z.string().datetime(), - updated_at: z.string().datetime(), + updated_at: z.string().datetime().nullable(), email: z.string().email(), full_name: z.string().nullable(), is_active: z.boolean(), @@ -106,12 +108,12 @@ export const isValidLogoutAllResponse = ( } export class AuthResponseError extends Error { - constructor( - message: string, - public readonly endpoint?: string - ) { + readonly endpoint?: string + + constructor(message: string, endpoint?: string) { super(message) this.name = 'AuthResponseError' + this.endpoint = endpoint Object.setPrototypeOf(this, AuthResponseError.prototype) } } diff --git a/frontend/src/api/types/user.types.ts b/frontend/src/api/types/user.types.ts index 1c6a498..2fd3623 100644 --- a/frontend/src/api/types/user.types.ts +++ b/frontend/src/api/types/user.types.ts @@ -92,12 +92,12 @@ export const isValidAdminUserCreateRequest = ( } export class UserResponseError extends Error { - constructor( - message: string, - public readonly endpoint?: string - ) { + readonly endpoint?: string + + constructor(message: string, endpoint?: string) { super(message) this.name = 'UserResponseError' + this.endpoint = endpoint Object.setPrototypeOf(this, UserResponseError.prototype) } } diff --git a/frontend/src/components/index.tsx b/frontend/src/components/index.tsx new file mode 100644 index 0000000..6b0a732 --- /dev/null +++ b/frontend/src/components/index.tsx @@ -0,0 +1,4 @@ +/** + * ©AngelaMos | 2025 + * index.tsx + */ diff --git a/frontend/src/config.ts b/frontend/src/config.ts index 37d8e99..f175b96 100644 --- a/frontend/src/config.ts +++ b/frontend/src/config.ts @@ -2,29 +2,30 @@ // © AngelaMos | 2025 // config.ts // =================== +const API_VERSION = 'v1' export const API_ENDPOINTS = { AUTH: { - LOGIN: '/auth/login', - REFRESH: '/auth/refresh', - LOGOUT: '/auth/logout', - LOGOUT_ALL: '/auth/logout-all', - ME: '/auth/me', - CHANGE_PASSWORD: '/auth/change-password', + LOGIN: `/${API_VERSION}/auth/login`, + REFRESH: `/${API_VERSION}/auth/refresh`, + LOGOUT: `/${API_VERSION}/auth/logout`, + LOGOUT_ALL: `/${API_VERSION}/auth/logout-all`, + ME: `/${API_VERSION}/auth/me`, + CHANGE_PASSWORD: `/${API_VERSION}/auth/change-password`, }, USERS: { - BASE: '/users', - BY_ID: (id: string) => `/users/${id}`, - ME: '/users/me', - REGISTER: '/users', + BASE: `/${API_VERSION}/users`, + BY_ID: (id: string) => `/${API_VERSION}/users/${id}`, + ME: `/${API_VERSION}/users/me`, + REGISTER: `/${API_VERSION}/users`, }, ADMIN: { USERS: { - LIST: '/admin/users', - CREATE: '/admin/users', - BY_ID: (id: string) => `/admin/users/${id}`, - UPDATE: (id: string) => `/admin/users/${id}`, - DELETE: (id: string) => `/admin/users/${id}`, + LIST: `/${API_VERSION}/admin/users`, + CREATE: `/${API_VERSION}/admin/users`, + BY_ID: (id: string) => `/${API_VERSION}/admin/users/${id}`, + UPDATE: (id: string) => `/${API_VERSION}/admin/users/${id}`, + DELETE: (id: string) => `/${API_VERSION}/admin/users/${id}`, }, }, } as const diff --git a/frontend/src/core/api/errors.ts b/frontend/src/core/api/errors.ts index 33ee936..fde5ec6 100644 --- a/frontend/src/core/api/errors.ts +++ b/frontend/src/core/api/errors.ts @@ -5,27 +5,36 @@ import type { AxiosError } from 'axios' -export enum ApiErrorCode { - NETWORK_ERROR = 'NETWORK_ERROR', - VALIDATION_ERROR = 'VALIDATION_ERROR', - AUTHENTICATION_ERROR = 'AUTHENTICATION_ERROR', - AUTHORIZATION_ERROR = 'AUTHORIZATION_ERROR', - NOT_FOUND = 'NOT_FOUND', - CONFLICT = 'CONFLICT', - RATE_LIMITED = 'RATE_LIMITED', - SERVER_ERROR = 'SERVER_ERROR', - UNKNOWN_ERROR = 'UNKNOWN_ERROR', -} +export const ApiErrorCode = { + NETWORK_ERROR: 'NETWORK_ERROR', + VALIDATION_ERROR: 'VALIDATION_ERROR', + AUTHENTICATION_ERROR: 'AUTHENTICATION_ERROR', + AUTHORIZATION_ERROR: 'AUTHORIZATION_ERROR', + NOT_FOUND: 'NOT_FOUND', + CONFLICT: 'CONFLICT', + RATE_LIMITED: 'RATE_LIMITED', + SERVER_ERROR: 'SERVER_ERROR', + UNKNOWN_ERROR: 'UNKNOWN_ERROR', +} as const + +export type ApiErrorCode = (typeof ApiErrorCode)[keyof typeof ApiErrorCode] export class ApiError extends Error { + readonly code: ApiErrorCode + readonly statusCode: number + readonly details?: Record + constructor( message: string, - public readonly code: ApiErrorCode, - public readonly statusCode: number, - public readonly details?: Record + code: ApiErrorCode, + statusCode: number, + details?: Record ) { super(message) this.name = 'ApiError' + this.code = code + this.statusCode = statusCode + this.details = details } getUserMessage(): string { @@ -56,14 +65,13 @@ interface ApiErrorResponse { message?: string } -export function transformAxiosError( - error: AxiosError -): ApiError { +export function transformAxiosError(error: AxiosError): ApiError { if (!error.response) { return new ApiError('Network error', ApiErrorCode.NETWORK_ERROR, 0) } - const { status, data } = error.response + const { status } = error.response + const data = error.response.data as ApiErrorResponse | undefined let message = 'An error occurred' let details: Record | undefined diff --git a/frontend/src/core/app/routers.tsx b/frontend/src/core/app/routers.tsx index a86926a..cb2473c 100644 --- a/frontend/src/core/app/routers.tsx +++ b/frontend/src/core/app/routers.tsx @@ -10,23 +10,31 @@ import { ProtectedRoute } from './protected-route' import { Shell } from './shell' const routes: RouteObject[] = [ + { + path: ROUTES.HOME, + lazy: () => import('@/pages/landing'), + }, + { + path: ROUTES.LOGIN, + lazy: () => import('@/pages/login'), + }, + { + path: ROUTES.REGISTER, + lazy: () => import('@/pages/register'), + }, { element: , children: [ { element: , children: [ - { - path: ROUTES.HOME, - lazy: () => import('@/pages/home'), - }, { path: ROUTES.DASHBOARD, - lazy: () => import('@/pages/home'), + lazy: () => import('@/pages/dashboard'), }, { path: ROUTES.SETTINGS, - lazy: () => import('@/pages/home'), + lazy: () => import('@/pages/settings'), }, ], }, @@ -37,21 +45,22 @@ const routes: RouteObject[] = [ children: [ { element: , - children: [], + children: [ + { + path: ROUTES.ADMIN.USERS, + lazy: () => import('@/pages/admin'), + }, + ], }, ], }, { - path: ROUTES.LOGIN, - lazy: () => import('@/pages/home'), - }, - { - path: ROUTES.REGISTER, - lazy: () => import('@/pages/home'), + path: ROUTES.UNAUTHORIZED, + lazy: () => import('@/pages/landing'), }, { - path: ROUTES.UNAUTHORIZED, - lazy: () => import('@/pages/home'), + path: '*', + lazy: () => import('@/pages/landing'), }, ] diff --git a/frontend/src/core/app/shell.module.scss b/frontend/src/core/app/shell.module.scss index 8b0d30e..0776d7d 100644 --- a/frontend/src/core/app/shell.module.scss +++ b/frontend/src/core/app/shell.module.scss @@ -5,6 +5,10 @@ @use '@/styles' as *; +$sidebar-width: 240px; +$sidebar-collapsed-width: 64px; +$header-height: 56px; + .shell { display: flex; min-height: 100vh; @@ -16,19 +20,184 @@ top: 0; left: 0; bottom: 0; - width: 260px; - background: var(--color-surface); - border-right: 1px solid var(--color-border); - overflow-y: auto; + width: $sidebar-width; + background: $bg-surface-100; + border-right: 1px solid $border-default; + display: flex; + flex-direction: column; z-index: $z-fixed; + @include transition-fast; + + &.collapsed { + width: $sidebar-collapsed-width; + } - @include breakpoint-down('md') { + @include breakpoint-down('sm') { transform: translateX(-100%); - transition: transform $duration-normal $ease-in-out; &.open { transform: translateX(0); } + + &.collapsed { + width: $sidebar-width; + } + } +} + +.sidebarHeader { + height: $header-height; + padding: 0 $space-3; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid $border-default; + + .sidebar.collapsed & { + justify-content: center; + padding: 0; + } +} + +.logo { + font-size: $font-size-base; + font-weight: $font-weight-semibold; + color: $text-default; + @include transition-fast; + + .sidebar.collapsed & { + display: none; + } +} + +.nav { + flex: 1; + padding: $space-3; + display: flex; + flex-direction: column; + gap: $space-1; +} + +.navItem { + display: flex; + align-items: center; + gap: $space-3; + padding: $space-2 $space-3; + border-radius: $radius-md; + font-size: $font-size-sm; + color: $text-light; + @include transition-fast; + + @include hover { + background: $bg-surface-200; + color: $text-default; + } + + &.active { + background: $bg-selection; + color: $text-default; + } + + .sidebar.collapsed & { + justify-content: center; + } +} + +.navIcon { + width: 17px; + height: 17px; + flex-shrink: 0; +} + +.navLabel { + @include transition-fast; + + .sidebar.collapsed & { + display: none; + } +} + +.adminItem { + margin-top: auto; + border-top: 1px solid $border-default; + padding-top: $space-3; +} + +.collapseBtn { + width: 45px; + height: 45px; + border-radius: $radius-md; + color: $text-light; + @include flex-center; + @include transition-fast; + + svg { + width: 23.5px; + height: 23.5px; + } + + @include hover { + background: $bg-surface-200; + color: $text-default; + } + + @include breakpoint-down('sm') { + display: none; + } +} + +.sidebarFooter { + padding: $space-3; + border-top: 1px solid $border-default; +} + +.logoutBtn { + width: 100%; + display: flex; + align-items: center; + gap: $space-3; + padding: $space-3; + border-radius: $radius-md; + font-size: $font-size-sm; + color: $text-default; + @include transition-fast; + + @include hover { + background: $bg-surface-200; + } + + .sidebar.collapsed & { + justify-content: center; + + .logoutText { + display: none; + } + } +} + +.logoutIcon { + width: 18px; + height: 18px; + flex-shrink: 0; +} + +.logoutText { + font-weight: $font-weight-medium; + @include transition-fast; +} + +.overlay { + position: fixed; + inset: 0; + background: rgb(0, 0, 0, 50%); + z-index: calc($z-fixed - 1); + display: none; + border: none; + padding: 0; + cursor: pointer; + + @include breakpoint-down('sm') { + display: block; } } @@ -36,35 +205,100 @@ flex: 1; display: flex; flex-direction: column; - margin-left: 260px; + margin-left: $sidebar-width; min-width: 0; + @include transition-fast; + + &.collapsed { + margin-left: $sidebar-collapsed-width; + } - @include breakpoint-down('md') { + @include breakpoint-down('sm') { margin-left: 0; + + &.collapsed { + margin-left: 0; + } } } .header { position: sticky; top: 0; - height: 64px; - background: var(--color-surface); - border-bottom: 1px solid var(--color-border); + height: $header-height; + background: $bg-surface-100; + border-bottom: 1px solid $border-default; z-index: $z-sticky; - @include flex-between; - padding: 0 $space-6; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 $space-4; +} + +.headerLeft { + display: flex; + align-items: center; + gap: $space-3; +} + +.menuBtn { + display: none; + width: 36px; + height: 36px; + border-radius: $radius-md; + color: $text-light; + align-items: center; + justify-content: center; + @include transition-fast; + + svg { + width: 20px; + height: 20px; + } + + @include hover { + background: $bg-surface-200; + color: $text-default; + } + + @media (width <= 479px) { + display: flex; + } +} + +.pageTitle { + font-size: $font-size-base; + font-weight: $font-weight-medium; + color: $text-default; + margin-left: 7px; +} + +.headerRight { + display: flex; + align-items: center; + gap: $space-3; +} + +.avatar { + width: 32px; + height: 32px; + border-radius: $radius-full; + background: $bg-surface-300; + color: $text-light; + font-size: $font-size-sm; + font-weight: $font-weight-medium; + @include flex-center; } .content { flex: 1; - padding: $space-6; overflow-y: auto; } .loading { @include flex-center; height: 100%; - color: var(--color-text-muted); + color: $text-muted; } .error { @@ -72,7 +306,7 @@ height: 100%; gap: $space-4; padding: $space-6; - color: var(--color-error); + color: $error-default; h2 { font-size: $font-size-xl; @@ -80,10 +314,10 @@ } pre { - font-family: $font-code; + font-family: $font-mono; font-size: $font-size-sm; padding: $space-4; - background: var(--color-bg-subtle); + background: $bg-surface-200; border-radius: $radius-lg; overflow-x: auto; max-width: 100%; diff --git a/frontend/src/core/app/shell.tsx b/frontend/src/core/app/shell.tsx index 16ffc60..7384217 100644 --- a/frontend/src/core/app/shell.tsx +++ b/frontend/src/core/app/shell.tsx @@ -5,9 +5,25 @@ import { Suspense } from 'react' import { ErrorBoundary } from 'react-error-boundary' -import { Outlet } from 'react-router-dom' +import { GiCardAceClubs, GiCardJoker, GiExitDoor } from 'react-icons/gi' +import { LuChevronLeft, LuChevronRight, LuMenu, LuShield } from 'react-icons/lu' +import { NavLink, Outlet, useLocation } from 'react-router-dom' +import { useLogout } from '@/api/hooks' +import { ROUTES } from '@/config' +import { useIsAdmin, useUIStore, useUser } from '@/core/lib' import styles from './shell.module.scss' +const NAV_ITEMS = [ + { path: ROUTES.DASHBOARD, label: 'Dashboard', icon: GiCardJoker }, + { path: ROUTES.SETTINGS, label: 'Settings', icon: GiCardAceClubs }, +] + +const ADMIN_NAV_ITEM = { + path: ROUTES.ADMIN.USERS, + label: 'Admin', + icon: LuShield, +} + function ShellErrorFallback({ error }: { error: Error }): React.ReactElement { return (
@@ -21,13 +37,113 @@ function ShellLoading(): React.ReactElement { return
Loading...
} +function getPageTitle(pathname: string, isAdmin: boolean): string { + if (isAdmin && pathname === ADMIN_NAV_ITEM.path) { + return ADMIN_NAV_ITEM.label + } + const item = NAV_ITEMS.find((i) => i.path === pathname) + return item?.label ?? 'Dashboard' +} + export function Shell(): React.ReactElement { + const location = useLocation() + const { sidebarOpen, sidebarCollapsed, toggleSidebar, toggleSidebarCollapsed } = + useUIStore() + const { mutate: logout } = useLogout() + const isAdmin = useIsAdmin() + const user = useUser() + + const pageTitle = getPageTitle(location.pathname, isAdmin) + const avatarLetter = + user?.full_name?.[0]?.toUpperCase() ?? user?.email?.[0]?.toUpperCase() ?? 'U' + return (
- + + + {sidebarOpen && ( + +

{pageTitle}

+
-
-
{/* Header content */}
+
+
{avatarLetter}
+
+
diff --git a/frontend/src/core/app/toast.module.scss b/frontend/src/core/app/toast.module.scss index fa05002..d50ab7f 100644 --- a/frontend/src/core/app/toast.module.scss +++ b/frontend/src/core/app/toast.module.scss @@ -7,52 +7,61 @@ :global { [data-sonner-toaster] { - --normal-bg: var(--color-surface); - --normal-border: var(--color-border); - --normal-text: var(--color-text); + --normal-bg: #{$bg-surface-100}; + --normal-border: #{$border-default}; + --normal-text: #{$text-default}; - --success-bg: #{$success-900}; - --success-border: #{$success-700}; - --success-text: #{$success-100}; + --success-bg: #{$bg-surface-100}; + --success-border: #{$border-default}; + --success-text: #{$text-default}; - --error-bg: #{$error-900}; - --error-border: #{$error-700}; - --error-text: #{$error-100}; + --error-bg: #{$bg-surface-100}; + --error-border: #{$error-default}; + --error-text: #{$text-default}; - --warning-bg: #{$warning-900}; - --warning-border: #{$warning-700}; - --warning-text: #{$warning-100}; + --warning-bg: #{$bg-surface-100}; + --warning-border: #{$border-default}; + --warning-text: #{$text-default}; - --info-bg: #{$info-900}; - --info-border: #{$info-700}; - --info-text: #{$info-100}; + --info-bg: #{$bg-surface-100}; + --info-border: #{$border-default}; + --info-text: #{$text-default}; - font-family: var(--font-sans); + font-family: $font-sans; } [data-sonner-toast] { - border-radius: $radius-lg; - padding: $space-4; + border-radius: $radius-md; + padding: $space-3 $space-4; font-size: $font-size-sm; - box-shadow: $shadow-lg; + border: 1px solid $border-default; + background: $bg-surface-100; + color: $text-default; [data-title] { font-weight: $font-weight-medium; } [data-description] { - color: inherit; - opacity: 0.85; + color: $text-light; + font-size: $font-size-xs; } [data-close-button] { - @include reset-button; - @include transition-colors; - border-radius: $radius-md; + background: none; + border: none; + padding: 0; + cursor: pointer; + color: $text-muted; + @include transition-fast; @include hover { - background: rgb(255 255 255 / 10%); + color: $text-default; } } } + + [data-sonner-toast][data-type='error'] { + border-color: $error-default; + } } diff --git a/frontend/src/core/lib/auth.form.store.ts b/frontend/src/core/lib/auth.form.store.ts new file mode 100644 index 0000000..22c422c --- /dev/null +++ b/frontend/src/core/lib/auth.form.store.ts @@ -0,0 +1,43 @@ +/** + * ©AngelaMos | 2025 + * auth.form.store.ts + */ + +import { create } from 'zustand' +import { devtools, persist } from 'zustand/middleware' + +interface AuthFormState { + loginEmail: string + registerEmail: string + setLoginEmail: (email: string) => void + setRegisterEmail: (email: string) => void + clearLoginForm: () => void + clearRegisterForm: () => void +} + +export const useAuthFormStore = create()( + devtools( + persist( + (set) => ({ + loginEmail: '', + registerEmail: '', + + setLoginEmail: (email) => + set({ loginEmail: email }, false, 'authForm/setLoginEmail'), + + setRegisterEmail: (email) => + set({ registerEmail: email }, false, 'authForm/setRegisterEmail'), + + clearLoginForm: () => + set({ loginEmail: '' }, false, 'authForm/clearLoginForm'), + + clearRegisterForm: () => + set({ registerEmail: '' }, false, 'authForm/clearRegisterForm'), + }), + { + name: 'auth-form-storage', + } + ), + { name: 'AuthFormStore' } + ) +) diff --git a/frontend/src/core/lib/index.ts b/frontend/src/core/lib/index.ts index 7fcffd5..191757f 100644 --- a/frontend/src/core/lib/index.ts +++ b/frontend/src/core/lib/index.ts @@ -3,5 +3,6 @@ // index.ts // =================== +export * from './auth.form.store' export * from './auth.store' -export * from './ui.store' +export * from './shell.ui.store' diff --git a/frontend/src/core/lib/ui.store.ts b/frontend/src/core/lib/shell.ui.store.ts similarity index 100% rename from frontend/src/core/lib/ui.store.ts rename to frontend/src/core/lib/shell.ui.store.ts diff --git a/frontend/src/pages/admin/admin.module.scss b/frontend/src/pages/admin/admin.module.scss new file mode 100644 index 0000000..ef51500 --- /dev/null +++ b/frontend/src/pages/admin/admin.module.scss @@ -0,0 +1,468 @@ +// =================== +// © AngelaMos | 2025 +// admin.module.scss +// =================== + +@use '@/styles' as *; + +.page { + padding: $space-6; + min-height: calc(100vh - 56px); + background-color: $bg-default; +} + +.header { + @include flex-between; + margin-bottom: $space-6; +} + +.title { + font-size: $font-size-2xl; + font-weight: $font-weight-semibold; + color: $text-default; +} + +.createBtn { + display: flex; + align-items: center; + gap: $space-2; + padding: $space-2 $space-4; + background-color: $white; + border: none; + border-radius: $radius-md; + font-size: $font-size-sm; + font-weight: $font-weight-medium; + color: $black; + cursor: pointer; + @include transition-fast; + + @include hover { + filter: brightness(0.9); + } + + &:disabled { + opacity: 0.5; + cursor: not-allowed; + } + + svg { + width: 16px; + height: 16px; + } +} + +.table { + width: 100%; + background: $bg-surface-100; + border: 1px solid $border-default; + border-radius: $radius-lg; + overflow: hidden; +} + +.tableHeader { + display: grid; + grid-template-columns: 2fr 1fr 1fr 1fr 100px; + gap: $space-4; + padding: $space-3 $space-4; + background: $bg-surface-200; + border-bottom: 1px solid $border-default; + + @include breakpoint-down('md') { + display: none; + } +} + +.tableHeaderCell { + font-size: $font-size-xs; + font-weight: $font-weight-medium; + color: $text-lighter; + text-transform: uppercase; + letter-spacing: $tracking-wide; +} + +.tableBody { + @include flex-column; +} + +.tableRow { + display: grid; + grid-template-columns: 2fr 1fr 1fr 1fr 100px; + gap: $space-4; + padding: $space-3 $space-4; + border-bottom: 1px solid $border-default; + @include transition-fast; + + &:last-child { + border-bottom: none; + } + + @include hover { + background: $bg-surface-75; + } + + @include breakpoint-down('md') { + grid-template-columns: 1fr; + gap: $space-2; + } +} + +.tableCell { + display: flex; + align-items: center; + font-size: $font-size-sm; + color: $text-default; + min-width: 0; + + @include breakpoint-down('md') { + &::before { + content: attr(data-label); + font-size: $font-size-xs; + color: $text-lighter; + margin-right: $space-2; + min-width: 80px; + } + } +} + +.email { + @include truncate; +} + +.badge { + display: inline-flex; + align-items: center; + padding: $space-1 $space-2; + border-radius: $radius-full; + font-size: $font-size-xs; + font-weight: $font-weight-medium; + + &.admin { + background: $bg-selection; + color: $text-default; + } + + &.user { + background: $bg-surface-200; + color: $text-light; + } + + &.active { + background: hsl(142 76% 36% / 20%); + color: hsl(142, 76%, 46%); + } + + &.inactive { + background: hsl(0 72% 51% / 20%); + color: $error-light; + } +} + +.actions { + display: flex; + gap: $space-2; + justify-content: flex-end; + + @include breakpoint-down('md') { + justify-content: flex-start; + } +} + +.actionBtn { + width: 32px; + height: 32px; + @include flex-center; + border: 1px solid $border-default; + border-radius: $radius-md; + background: transparent; + color: $text-light; + cursor: pointer; + @include transition-fast; + + @include hover { + background: $bg-surface-200; + color: $text-default; + } + + &.delete { + @include hover { + border-color: $error-default; + color: $error-default; + } + } + + svg { + width: 16px; + height: 16px; + } +} + +.pagination { + @include flex-between; + padding: $space-4; + border-top: 1px solid $border-default; +} + +.paginationInfo { + font-size: $font-size-sm; + color: $text-lighter; +} + +.paginationBtns { + display: flex; + gap: $space-2; +} + +.paginationBtn { + padding: $space-2 $space-3; + border: 1px solid $border-default; + border-radius: $radius-md; + background: transparent; + font-size: $font-size-sm; + color: $text-light; + cursor: pointer; + @include transition-fast; + + @include hover { + background: $bg-surface-200; + color: $text-default; + } + + &:disabled { + opacity: 0.5; + cursor: not-allowed; + } +} + +.empty { + @include flex-column-center; + padding: $space-12; + color: $text-muted; + font-size: $font-size-sm; +} + +.loading { + @include flex-center; + padding: $space-12; + color: $text-muted; +} + +.modal { + position: fixed; + inset: 0; + z-index: $z-modal; + @include flex-center; +} + +.modalOverlay { + @include absolute-fill; + background: rgb(0, 0, 0, 70%); +} + +.modalContent { + position: relative; + width: 100%; + max-width: 400px; + margin: $space-4; + background: $bg-surface-100; + border: 1px solid $border-default; + border-radius: $radius-lg; + padding: $space-6; +} + +.modalHeader { + @include flex-between; + margin-bottom: $space-5; +} + +.modalTitle { + font-size: $font-size-lg; + font-weight: $font-weight-semibold; + color: $text-default; +} + +.modalClose { + width: 32px; + height: 32px; + @include flex-center; + border: none; + border-radius: $radius-md; + background: transparent; + color: $text-light; + cursor: pointer; + @include transition-fast; + + @include hover { + background: $bg-surface-200; + color: $text-default; + } + + svg { + width: 20px; + height: 20px; + } +} + +.form { + @include flex-column; + gap: $space-4; +} + +.field { + @include flex-column; + gap: $space-2; +} + +.label { + font-size: $font-size-sm; + font-weight: $font-weight-medium; + color: $text-default; +} + +.input { + width: 100%; + height: 44px; + padding: 0 $space-3; + background: transparent; + border: 1px solid $border-default; + border-radius: $radius-md; + font-size: $font-size-sm; + color: $text-default; + @include transition-fast; + + &::placeholder { + color: $text-muted; + } + + &:focus { + outline: none; + border-color: $border-strong; + } +} + +.select { + width: 100%; + height: 44px; + padding: 0 $space-3; + background: transparent; + border: 1px solid $border-default; + border-radius: $radius-md; + font-size: $font-size-sm; + color: $text-default; + cursor: pointer; + @include transition-fast; + + &:focus { + outline: none; + border-color: $border-strong; + } + + option { + background: $bg-surface-100; + color: $text-default; + } +} + +.checkbox { + display: flex; + align-items: center; + gap: $space-2; + cursor: pointer; + + input { + width: 18px; + height: 18px; + accent-color: $white; + } + + span { + font-size: $font-size-sm; + color: $text-light; + } +} + +.formActions { + display: flex; + gap: $space-3; + margin-top: $space-2; +} + +.submitBtn { + flex: 1; + height: 44px; + @include flex-center; + background: $white; + border: none; + border-radius: $radius-md; + font-size: $font-size-sm; + font-weight: $font-weight-medium; + color: $black; + cursor: pointer; + @include transition-fast; + + @include hover { + filter: brightness(0.9); + } + + &:disabled { + opacity: 0.5; + cursor: not-allowed; + } +} + +.cancelBtn { + flex: 1; + height: 44px; + @include flex-center; + background: transparent; + border: 1px solid $border-default; + border-radius: $radius-md; + font-size: $font-size-sm; + font-weight: $font-weight-medium; + color: $text-light; + cursor: pointer; + @include transition-fast; + + @include hover { + background: $bg-surface-200; + color: $text-default; + } +} + +.deleteConfirm { + @include flex-column; + gap: $space-4; +} + +.deleteText { + font-size: $font-size-sm; + color: $text-light; + line-height: $line-height-relaxed; +} + +.deleteEmail { + font-weight: $font-weight-medium; + color: $text-default; +} + +.deleteBtn { + flex: 1; + height: 44px; + @include flex-center; + background: $error-default; + border: none; + border-radius: $radius-md; + font-size: $font-size-sm; + font-weight: $font-weight-medium; + color: $white; + cursor: pointer; + @include transition-fast; + + @include hover { + filter: brightness(0.9); + } + + &:disabled { + opacity: 0.5; + cursor: not-allowed; + } +} diff --git a/frontend/src/pages/admin/index.tsx b/frontend/src/pages/admin/index.tsx new file mode 100644 index 0000000..49e8034 --- /dev/null +++ b/frontend/src/pages/admin/index.tsx @@ -0,0 +1,415 @@ +/** + * ©AngelaMos | 2025 + * index.tsx + */ + +import { useState } from 'react' +import { LuPencil, LuPlus, LuTrash2, LuX } from 'react-icons/lu' +import { + useAdminCreateUser, + useAdminDeleteUser, + useAdminUpdateUser, + useAdminUsers, +} from '@/api/hooks' +import type { UserResponse } from '@/api/types' +import { UserRole } from '@/api/types' +import { PAGINATION } from '@/config' +import styles from './admin.module.scss' + +type ModalState = + | { type: 'closed' } + | { type: 'create' } + | { type: 'edit'; user: UserResponse } + | { type: 'delete'; user: UserResponse } + +export function Component(): React.ReactElement { + const [page, setPage] = useState(PAGINATION.DEFAULT_PAGE) + const [modal, setModal] = useState({ type: 'closed' }) + + const { data, isLoading } = useAdminUsers({ + page, + size: PAGINATION.DEFAULT_SIZE, + }) + const createUser = useAdminCreateUser() + const updateUser = useAdminUpdateUser() + const deleteUser = useAdminDeleteUser() + + const handleCreate = (formData: FormData): void => { + const email = formData.get('email') as string + const password = formData.get('password') as string + const fullName = (formData.get('fullName') as string) || undefined + const role = formData.get('role') as UserRole + const isActive = formData.get('isActive') === 'on' + + createUser.mutate( + { email, password, full_name: fullName, role, is_active: isActive }, + { onSuccess: () => setModal({ type: 'closed' }) } + ) + } + + const handleUpdate = (userId: string, formData: FormData): void => { + const email = formData.get('email') as string + const fullName = (formData.get('fullName') as string) || undefined + const role = formData.get('role') as UserRole + const isActive = formData.get('isActive') === 'on' + + updateUser.mutate( + { + id: userId, + data: { email, full_name: fullName, role, is_active: isActive }, + }, + { onSuccess: () => setModal({ type: 'closed' }) } + ) + } + + const handleDelete = (userId: string): void => { + deleteUser.mutate(userId, { onSuccess: () => setModal({ type: 'closed' }) }) + } + + const totalPages = data ? Math.ceil(data.total / PAGINATION.DEFAULT_SIZE) : 0 + + return ( +
+
+

Users

+ +
+ +
+
+
Email
+
Name
+
Role
+
Status
+
Actions
+
+ +
+ {isLoading &&
Loading...
} + + {!isLoading && data?.items.length === 0 && ( +
No users found
+ )} + + {data?.items.map((user) => ( +
+
+ {user.email} +
+
+ {user.full_name ?? '—'} +
+
+ + {user.role} + +
+
+ + {user.is_active ? 'Active' : 'Inactive'} + +
+
+ + +
+
+ ))} +
+ + {data && data.total > PAGINATION.DEFAULT_SIZE && ( +
+ + Page {page} of {totalPages} ({data.total} users) + +
+ + +
+
+ )} +
+ + {modal.type === 'create' && ( +
+ +
+
{ + e.preventDefault() + handleCreate(new FormData(e.currentTarget)) + }} + > +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+
+
+
+ )} + + {modal.type === 'edit' && ( +
+ +
+
{ + e.preventDefault() + handleUpdate(modal.user.id, new FormData(e.currentTarget)) + }} + > +
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+
+
+ + )} + + {modal.type === 'delete' && ( +
+ +
+
+

+ Are you sure you want to delete{' '} + {modal.user.email}? + This action cannot be undone. +

+
+ + +
+
+ + + )} + + ) +} + +Component.displayName = 'AdminUsers' diff --git a/frontend/src/pages/dashboard/dashboard.module.scss b/frontend/src/pages/dashboard/dashboard.module.scss new file mode 100644 index 0000000..ecac295 --- /dev/null +++ b/frontend/src/pages/dashboard/dashboard.module.scss @@ -0,0 +1,152 @@ +// =================== +// © AngelaMos | 2025 +// dashboard.module.scss +// =================== + +@use '@/styles' as *; + +.page { + min-height: calc(100vh - 56px); + padding: $space-6; + background-color: $bg-default; +} + +.container { + max-width: 800px; + margin: 0 auto; +} + +.header { + margin-bottom: $space-6; +} + +.title { + font-size: $font-size-2xl; + font-weight: $font-weight-semibold; + color: $text-default; + margin-bottom: $space-2; +} + +.subtitle { + font-size: $font-size-sm; + color: $text-lighter; +} + +.userCard { + display: flex; + align-items: center; + gap: $space-4; + padding: $space-5; + background: $bg-surface-100; + border: 1px solid $border-default; + border-radius: $radius-lg; + margin-bottom: $space-8; +} + +.avatar { + width: 56px; + height: 56px; + border-radius: $radius-full; + background: $bg-surface-300; + color: $text-default; + font-size: $font-size-xl; + font-weight: $font-weight-semibold; + @include flex-center; + flex-shrink: 0; +} + +.userInfo { + @include flex-column; + gap: $space-1; + min-width: 0; +} + +.userName { + font-size: $font-size-base; + font-weight: $font-weight-medium; + color: $text-default; + @include truncate; +} + +.userEmail { + font-size: $font-size-sm; + color: $text-light; + @include truncate; +} + +.userRole { + display: inline-flex; + align-self: flex-start; + padding: $space-0-5 $space-2; + background: $bg-surface-200; + border-radius: $radius-full; + font-size: $font-size-xs; + color: $text-lighter; + text-transform: uppercase; + letter-spacing: $tracking-wide; +} + +.section { + margin-bottom: $space-8; +} + +.sectionTitle { + font-size: $font-size-sm; + font-weight: $font-weight-medium; + color: $text-light; + text-transform: uppercase; + letter-spacing: $tracking-wide; + margin-bottom: $space-4; +} + +.grid { + display: grid; + gap: $space-4; + + @include breakpoint-up('md') { + grid-template-columns: repeat(3, 1fr); + } +} + +.card { + padding: $space-4; + background: $bg-surface-100; + border: 1px solid $border-default; + border-radius: $radius-lg; +} + +.hookName { + display: inline-block; + font-size: $font-size-sm; + font-weight: $font-weight-medium; + color: $text-default; + background: $bg-surface-200; + padding: $space-1 $space-2; + border-radius: $radius-sm; + margin-bottom: $space-2; +} + +.description { + font-size: $font-size-sm; + color: $text-light; + margin-bottom: $space-2; + line-height: $line-height-relaxed; +} + +.file { + font-size: $font-size-xs; + color: $text-muted; + font-family: $font-mono; +} + +.list { + @include flex-column; + gap: $space-2; + padding-left: $space-5; + list-style: disc; + + li { + font-size: $font-size-sm; + color: $text-light; + } +} diff --git a/frontend/src/pages/dashboard/index.tsx b/frontend/src/pages/dashboard/index.tsx new file mode 100644 index 0000000..5d3f97e --- /dev/null +++ b/frontend/src/pages/dashboard/index.tsx @@ -0,0 +1,90 @@ +/** + * ©AngelaMos | 2025 + * index.tsx + */ + +import { useUser } from '@/core/lib' +import styles from './dashboard.module.scss' + +const AVAILABLE_STORES = [ + { + name: 'useUser()', + file: 'core/lib/auth.store.ts', + description: 'Get current authenticated user', + }, + { + name: 'useIsAuthenticated()', + file: 'core/lib/auth.store.ts', + description: 'Check if user is logged in', + }, + { + name: 'useIsAdmin()', + file: 'core/lib/auth.store.ts', + description: 'Check if user has admin role', + }, +] + +const SUGGESTED_FEATURES = [ + 'User stats and metrics', + 'Recent activity feed', + 'Quick actions', + 'Charts and analytics', + 'Notifications overview', + 'Task/project summary', +] + +export function Component(): React.ReactElement { + const user = useUser() + + return ( +
+
+
+

+ Welcome{user?.full_name ? `, ${user.full_name}` : ''} +

+

+ Template page — build your dashboard here +

+
+ +
+
+ {user?.full_name?.[0]?.toUpperCase() ?? + user?.email?.[0]?.toUpperCase() ?? + 'U'} +
+
+ {user?.full_name ?? 'User'} + {user?.email} + {user?.role} +
+
+ +
+

Available Stores

+
+ {AVAILABLE_STORES.map((store) => ( +
+ {store.name} +

{store.description}

+ {store.file} +
+ ))} +
+
+ +
+

Suggested Features

+
    + {SUGGESTED_FEATURES.map((feature) => ( +
  • {feature}
  • + ))} +
+
+
+
+ ) +} + +Component.displayName = 'Dashboard' diff --git a/frontend/src/pages/home/home.module.scss b/frontend/src/pages/home/home.module.scss deleted file mode 100644 index 5aff896..0000000 --- a/frontend/src/pages/home/home.module.scss +++ /dev/null @@ -1,18 +0,0 @@ -// =================== -// © AngelaMos | 2025 -// home.module.scss -// =================== - -@use '@/styles' as *; - -.home { - h1 { - font-size: $font-size-3xl; - font-weight: $font-weight-bold; - margin-bottom: $space-4; - } - - p { - color: var(--color-text-muted); - } -} diff --git a/frontend/src/pages/home/index.tsx b/frontend/src/pages/home/index.tsx deleted file mode 100644 index 88ce814..0000000 --- a/frontend/src/pages/home/index.tsx +++ /dev/null @@ -1,17 +0,0 @@ -/** - * ©AngelaMos | 2025 - * index.tsx - */ - -import styles from './home.module.scss' - -export function Component(): React.ReactElement { - return ( -
-

Home

-

Welcome to the template.

-
- ) -} - -Component.displayName = 'Home' diff --git a/frontend/src/pages/landing/index.tsx b/frontend/src/pages/landing/index.tsx new file mode 100644 index 0000000..17d697a --- /dev/null +++ b/frontend/src/pages/landing/index.tsx @@ -0,0 +1,97 @@ +/** + * ©AngelaMos | 2025 + * index.tsx + */ + +import { FiGithub } from 'react-icons/fi' +import { Link } from 'react-router-dom' +import { ROUTES } from '@/config' +import styles from './landing.module.scss' + +export function Component(): React.ReactElement { + return ( +
+ ) +} + +Component.displayName = 'Landing' diff --git a/frontend/src/pages/landing/landing.module.scss b/frontend/src/pages/landing/landing.module.scss new file mode 100644 index 0000000..3013e87 --- /dev/null +++ b/frontend/src/pages/landing/landing.module.scss @@ -0,0 +1,161 @@ +// =================== +// © AngelaMos | 2025 +// landing.module.scss +// =================== + +@use '@/styles' as *; + +.page { + min-height: 100vh; + min-height: 100dvh; + @include flex-column-center; + background-color: $bg-default; + background-image: radial-gradient( + circle, + $bg-landing 1px, + transparent 1px + ); + background-size: 20px 20px; + padding: $space-8; +} + +.header { + text-align: center; + margin-bottom: $space-5; +} + +.title { + font-size: $font-size-4xl; + font-weight: $font-weight-semibold; + color: $text-default; + letter-spacing: $tracking-tight; + margin-bottom: $space-2; +} + +.subtitle { + font-size: $font-size-lg; + color: $text-light; + margin-bottom: $space-3; +} + +.github { + display: inline-flex; + color: $text-muted; + font-size: $font-size-2xl; + @include transition-fast; + + @include hover { + &:hover { + color: $text-default; + } + } +} + +.content { + max-width: 800px; + text-align: center; +} + +.description { + font-size: $font-size-base; + color: $text-light; + line-height: $line-height-relaxed; + margin-bottom: $space-8; +} + +.sections { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: $space-6; + margin-bottom: $space-10; + text-align: left; + + @include breakpoint-down(md) { + grid-template-columns: 1fr; + } +} + +.section { + padding: $space-5; + background-color: $bg-surface-75; + border: 1px solid $border-muted; + border-radius: $radius-lg; +} + +.sectionTitle { + font-size: $font-size-sm; + font-weight: $font-weight-semibold; + color: $text-default; + margin-bottom: $space-3; + letter-spacing: $tracking-wide; + text-transform: uppercase; +} + +.features { + list-style: none; + padding: 0; + margin: 0; + display: flex; + flex-direction: column; + gap: $space-2; + + li { + font-size: $font-size-sm; + color: $text-muted; + + &::before { + content: '→'; + margin-right: $space-2; + color: $text-lighter; + } + } +} + +.actions { + display: flex; + gap: $space-3; + justify-content: center; + flex-wrap: wrap; +} + +.button { + display: inline-flex; + align-items: center; + justify-content: center; + padding: $space-3 $space-5; + font-size: $font-size-sm; + font-weight: $font-weight-medium; + color: $bg-default; + background-color: $text-default; + border-radius: $radius-md; + text-decoration: none; + @include transition-fast; + + @include hover { + &:hover { + filter: brightness(0.9); + } + } +} + +.buttonOutline { + display: inline-flex; + align-items: center; + justify-content: center; + padding: $space-3 $space-5; + font-size: $font-size-sm; + font-weight: $font-weight-medium; + color: $text-default; + background-color: transparent; + border: 1px solid $border-default; + border-radius: $radius-md; + text-decoration: none; + @include transition-fast; + + @include hover { + &:hover { + border-color: $border-strong; + background-color: $bg-surface-75; + } + } +} diff --git a/frontend/src/pages/login/index.tsx b/frontend/src/pages/login/index.tsx new file mode 100644 index 0000000..13caa91 --- /dev/null +++ b/frontend/src/pages/login/index.tsx @@ -0,0 +1,114 @@ +/** + * ©AngelaMos | 2025 + * index.tsx + */ + +import { useState } from 'react' +import { LuEye, LuEyeOff } from 'react-icons/lu' +import { Link, useNavigate } from 'react-router-dom' +import { toast } from 'sonner' +import { useLogin } from '@/api/hooks' +import { loginRequestSchema } from '@/api/types' +import { ROUTES } from '@/config' +import { useAuthFormStore } from '@/core/lib' +import styles from './login.module.scss' + +export function Component(): React.ReactElement { + const navigate = useNavigate() + const login = useLogin() + + const { loginEmail, setLoginEmail, clearLoginForm } = useAuthFormStore() + const [password, setPassword] = useState('') + const [showPassword, setShowPassword] = useState(false) + + const handleSubmit = (e: React.FormEvent): void => { + e.preventDefault() + + const result = loginRequestSchema.safeParse({ + username: loginEmail, + password, + }) + + if (!result.success) { + const firstError = result.error.issues[0] + toast.error(firstError.message) + return + } + + login.mutate(result.data, { + onSuccess: () => { + clearLoginForm() + navigate(ROUTES.DASHBOARD) + }, + }) + } + + return ( +
+
+
+

Login

+

Welcome back

+
+ +
+
+ + setLoginEmail(e.target.value)} + autoComplete="email" + /> +
+ +
+ +
+ setPassword(e.target.value)} + autoComplete="current-password" + /> + +
+
+ + +
+ +

+ Don't have an account?{' '} + + Sign up + +

+
+
+ ) +} + +Component.displayName = 'Login' diff --git a/frontend/src/pages/login/login.module.scss b/frontend/src/pages/login/login.module.scss new file mode 100644 index 0000000..6d01ed2 --- /dev/null +++ b/frontend/src/pages/login/login.module.scss @@ -0,0 +1,171 @@ +// =================== +// © AngelaMos | 2025 +// login.module.scss +// =================== + +@use '@/styles' as *; + +.page { + min-height: 100vh; + min-height: 100dvh; + @include flex-center; + background-color: $bg-default; + background-image: radial-gradient( + circle, + $bg-page 1px, + transparent 1px + ); + background-size: 22px 22px; + padding: $space-4; +} + +.card { + width: 100%; + max-width: 400px; + background-color: $black; + background-image: radial-gradient( + circle, + $bg-card 1px, + transparent 1px + ); + background-size: 20px 20px; + border: 1px solid $border-default; + border-radius: $radius-lg; + padding: $space-8; +} + +.header { + margin-bottom: $space-6; +} + +.title { + font-size: $font-size-2xl; + font-weight: $font-weight-semibold; + color: $white; + margin-bottom: $space-2; +} + +.subtitle { + font-size: $font-size-sm; + color: $text-light; +} + +.form { + @include flex-column; + gap: $space-5; +} + +.field { + @include flex-column; + gap: $space-2; +} + +.label { + font-size: $font-size-sm; + font-weight: $font-weight-medium; + color: $white; +} + +.input { + width: 100%; + height: 48px; + padding: 0 $space-4; + background-color: transparent; + border: 1px solid $border-default; + border-radius: $radius-md; + font-size: $font-size-base; + color: $white; + @include transition-fast; + + &::placeholder { + color: $text-muted; + } + + &:focus { + outline: none; + border-color: $border-strong; + } + + &[aria-invalid='true'] { + border-color: $error-default; + } +} + +.inputWrapper { + position: relative; + width: 100%; +} + +.eyeButton { + position: absolute; + right: $space-3; + top: 50%; + transform: translateY(-50%); + display: flex; + align-items: center; + justify-content: center; + background: transparent; + border: none; + color: $text-muted; + cursor: pointer; + padding: $space-1; + @include transition-fast; + + &:hover { + color: $white; + } + + svg { + width: 20px; + height: 20px; + } +} + +.error { + font-size: $font-size-xs; + color: $error-default; +} + +.submit { + width: 100%; + height: 48px; + margin-top: $space-2; + display: flex; + align-items: center; + justify-content: center; + background-color: $white; + border: none; + border-radius: $radius-md; + font-size: $font-size-base; + font-weight: $font-weight-medium; + color: $black; + cursor: pointer; + @include transition-fast; + + @include hover { + filter: brightness(0.9); + } + + &:disabled { + opacity: 0.5; + cursor: not-allowed; + } +} + +.footer { + margin-top: $space-6; + text-align: center; + font-size: $font-size-sm; + color: $text-light; +} + +.link { + color: $text-default; + text-decoration: underline; + text-underline-offset: 4px; + @include transition-fast; + + @include hover { + color: $text-light; + } +} diff --git a/frontend/src/pages/register/index.tsx b/frontend/src/pages/register/index.tsx new file mode 100644 index 0000000..f0f003f --- /dev/null +++ b/frontend/src/pages/register/index.tsx @@ -0,0 +1,164 @@ +/** + * ©AngelaMos | 2025 + * index.tsx + */ + +import { useState } from 'react' +import { LuEye, LuEyeOff } from 'react-icons/lu' +import { Link, useNavigate } from 'react-router-dom' +import { toast } from 'sonner' +import { z } from 'zod' +import { useRegister } from '@/api/hooks' +import { userCreateRequestSchema } from '@/api/types' +import { PASSWORD_CONSTRAINTS, ROUTES } from '@/config' +import { useAuthFormStore } from '@/core/lib' +import styles from './register.module.scss' + +const registerFormSchema = userCreateRequestSchema + .extend({ + confirmPassword: z + .string() + .min( + PASSWORD_CONSTRAINTS.MIN_LENGTH, + `Password must be at least ${PASSWORD_CONSTRAINTS.MIN_LENGTH} characters` + ) + .max(PASSWORD_CONSTRAINTS.MAX_LENGTH), + }) + .refine((data) => data.password === data.confirmPassword, { + message: 'Passwords do not match', + path: ['confirmPassword'], + }) + +export function Component(): React.ReactElement { + const navigate = useNavigate() + const register = useRegister() + + const { registerEmail, setRegisterEmail, clearRegisterForm } = + useAuthFormStore() + const [password, setPassword] = useState('') + const [confirmPassword, setConfirmPassword] = useState('') + const [showPassword, setShowPassword] = useState(false) + const [showConfirmPassword, setShowConfirmPassword] = useState(false) + + const handleSubmit = (e: React.FormEvent): void => { + e.preventDefault() + + const result = registerFormSchema.safeParse({ + email: registerEmail, + password, + confirmPassword, + }) + + if (!result.success) { + const firstError = result.error.issues[0] + toast.error(firstError.message) + return + } + + register.mutate( + { email: result.data.email, password: result.data.password }, + { + onSuccess: () => { + clearRegisterForm() + toast.success('Account created successfully') + navigate(ROUTES.LOGIN) + }, + } + ) + } + + return ( +
+
+
+

Sign up

+

Create a new account

+
+ +
+
+ + setRegisterEmail(e.target.value)} + autoComplete="email" + /> +
+ +
+ +
+ setPassword(e.target.value)} + autoComplete="new-password" + /> + +
+
+ +
+ +
+ setConfirmPassword(e.target.value)} + autoComplete="new-password" + /> + +
+
+ + +
+ +

+ Already have an account?{' '} + + Login + +

+
+
+ ) +} + +Component.displayName = 'Register' diff --git a/frontend/src/pages/register/register.module.scss b/frontend/src/pages/register/register.module.scss new file mode 100644 index 0000000..55ad571 --- /dev/null +++ b/frontend/src/pages/register/register.module.scss @@ -0,0 +1,171 @@ +// =================== +// © AngelaMos | 2025 +// register.module.scss +// =================== + +@use '@/styles' as *; + +.page { + min-height: 100vh; + min-height: 100dvh; + @include flex-center; + background-color: $bg-default; + background-image: radial-gradient( + circle, + $bg-page 1px, + transparent 1px + ); + background-size: 22px 22px; + padding: $space-4; +} + +.card { + width: 100%; + max-width: 400px; + background-color: $black; + background-image: radial-gradient( + circle, + $bg-card 1px, + transparent 1px + ); + background-size: 20px 20px; + border: 1px solid $border-default; + border-radius: $radius-lg; + padding: $space-8; +} + +.header { + margin-bottom: $space-6; +} + +.title { + font-size: $font-size-2xl; + font-weight: $font-weight-semibold; + color: $white; + margin-bottom: $space-2; +} + +.subtitle { + font-size: $font-size-sm; + color: $text-light; +} + +.form { + @include flex-column; + gap: $space-5; +} + +.field { + @include flex-column; + gap: $space-2; +} + +.label { + font-size: $font-size-sm; + font-weight: $font-weight-medium; + color: $white; +} + +.input { + width: 100%; + height: 48px; + padding: 0 $space-4; + background-color: transparent; + border: 1px solid $border-default; + border-radius: $radius-md; + font-size: $font-size-base; + color: $white; + @include transition-fast; + + &::placeholder { + color: $text-muted; + } + + &:focus { + outline: none; + border-color: $border-strong; + } + + &[aria-invalid='true'] { + border-color: $error-default; + } +} + +.inputWrapper { + position: relative; + width: 100%; +} + +.eyeButton { + position: absolute; + right: $space-3; + top: 50%; + transform: translateY(-50%); + display: flex; + align-items: center; + justify-content: center; + background: transparent; + border: none; + color: $text-muted; + cursor: pointer; + padding: $space-1; + @include transition-fast; + + &:hover { + color: $white; + } + + svg { + width: 20px; + height: 20px; + } +} + +.error { + font-size: $font-size-xs; + color: $error-default; +} + +.submit { + width: 100%; + height: 48px; + margin-top: $space-2; + display: flex; + align-items: center; + justify-content: center; + background-color: $white; + border: none; + border-radius: $radius-md; + font-size: $font-size-base; + font-weight: $font-weight-medium; + color: $black; + cursor: pointer; + @include transition-fast; + + @include hover { + filter: brightness(0.9); + } + + &:disabled { + opacity: 0.5; + cursor: not-allowed; + } +} + +.footer { + margin-top: $space-6; + text-align: center; + font-size: $font-size-sm; + color: $text-light; +} + +.link { + color: $text-default; + text-decoration: underline; + text-underline-offset: 4px; + @include transition-fast; + + @include hover { + color: $text-light; + } +} diff --git a/frontend/src/pages/settings/index.tsx b/frontend/src/pages/settings/index.tsx new file mode 100644 index 0000000..8a22eb6 --- /dev/null +++ b/frontend/src/pages/settings/index.tsx @@ -0,0 +1,95 @@ +/** + * ©AngelaMos | 2025 + * index.tsx + */ + +import styles from './settings.module.scss' + +const AVAILABLE_HOOKS = [ + { + name: 'useUpdateProfile()', + file: 'api/hooks/useUsers.ts', + description: 'Update user profile (full_name)', + endpoint: 'PATCH /api/v1/users/me', + }, + { + name: 'useChangePassword()', + file: 'api/hooks/useAuth.ts', + description: 'Change password (current + new)', + endpoint: 'POST /api/v1/auth/change-password', + }, +] + +const AVAILABLE_STORES = [ + { + name: 'useAuthStore()', + file: 'core/lib/auth.store.ts', + description: 'Access user state, logout, updateUser', + }, + { + name: 'useUser()', + file: 'core/lib/auth.store.ts', + description: 'Get current user from store', + }, +] + +export function Component(): React.ReactElement { + return ( +
+
+
+

Settings

+

+ Template page — available hooks and stores for building your settings + UI +

+
+ +
+

Available Hooks

+
+ {AVAILABLE_HOOKS.map((hook) => ( +
+ {hook.name} +

{hook.description}

+
+ {hook.file} + {hook.endpoint} +
+
+ ))} +
+
+ +
+

Available Stores

+
+ {AVAILABLE_STORES.map((store) => ( +
+ {store.name} +

{store.description}

+
+ {store.file} +
+
+ ))} +
+
+ +
+

Suggested Features

+
    +
  • Profile form (full name, avatar)
  • +
  • Change password form
  • +
  • Email preferences
  • +
  • Theme toggle (dark/light)
  • +
  • Notification settings
  • +
  • Delete account
  • +
+
+
+
+ ) +} + +Component.displayName = 'Settings' diff --git a/frontend/src/pages/settings/settings.module.scss b/frontend/src/pages/settings/settings.module.scss new file mode 100644 index 0000000..16d8585 --- /dev/null +++ b/frontend/src/pages/settings/settings.module.scss @@ -0,0 +1,109 @@ +// =================== +// © AngelaMos | 2025 +// settings.module.scss +// =================== + +@use '@/styles' as *; + +.page { + min-height: calc(100vh - 56px); + padding: $space-6; + background-color: $bg-default; +} + +.container { + max-width: 800px; + margin: 0 auto; +} + +.header { + margin-bottom: $space-8; +} + +.title { + font-size: $font-size-2xl; + font-weight: $font-weight-semibold; + color: $text-default; + margin-bottom: $space-2; +} + +.subtitle { + font-size: $font-size-sm; + color: $text-lighter; +} + +.section { + margin-bottom: $space-8; +} + +.sectionTitle { + font-size: $font-size-sm; + font-weight: $font-weight-medium; + color: $text-light; + text-transform: uppercase; + letter-spacing: $tracking-wide; + margin-bottom: $space-4; +} + +.grid { + display: grid; + gap: $space-4; + + @include breakpoint-up('md') { + grid-template-columns: repeat(2, 1fr); + } +} + +.card { + padding: $space-4; + background: $bg-surface-100; + border: 1px solid $border-default; + border-radius: $radius-lg; +} + +.hookName { + display: inline-block; + font-size: $font-size-sm; + font-weight: $font-weight-medium; + color: $text-default; + background: $bg-surface-200; + padding: $space-1 $space-2; + border-radius: $radius-sm; + margin-bottom: $space-2; +} + +.description { + font-size: $font-size-sm; + color: $text-light; + margin-bottom: $space-3; + line-height: $line-height-relaxed; +} + +.meta { + @include flex-column; + gap: $space-1; +} + +.file { + font-size: $font-size-xs; + color: $text-lighter; + font-family: $font-mono; +} + +.endpoint { + font-size: $font-size-xs; + color: $text-muted; + font-family: $font-mono; +} + +.list { + @include flex-column; + gap: $space-2; + padding-left: $space-5; + list-style: disc; + + li { + font-size: $font-size-sm; + color: $text-light; + } +} diff --git a/frontend/src/styles.scss b/frontend/src/styles.scss index e95b5f2..4ac95fe 100644 --- a/frontend/src/styles.scss +++ b/frontend/src/styles.scss @@ -16,14 +16,14 @@ min-height: 100dvh; display: flex; flex-direction: column; - background: var(--color-bg); + background: $bg-default; } .app { flex: 1; display: flex; flex-direction: column; - background: var(--color-bg); - color: var(--color-text); - font-family: var(--font-sans); + background: $bg-default; + color: $text-default; + font-family: $font-sans; } diff --git a/frontend/src/styles/_fonts.scss b/frontend/src/styles/_fonts.scss index 27a244b..4f51788 100644 --- a/frontend/src/styles/_fonts.scss +++ b/frontend/src/styles/_fonts.scss @@ -5,114 +5,8 @@ @use 'tokens' as *; -// ============================================================================ -// FONT IMPORTS -// ============================================================================ +$font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', Roboto, + 'Helvetica Neue', Arial, sans-serif; -// System font stack (no external imports needed) -$font-system: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, - 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', - 'Noto Color Emoji'; - -$font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', - monospace; - -// ============================================================================ -// FONT FACE DECLARATIONS (uncomment and customize as needed) -// ============================================================================ - -// Example: Inter font -// @font-face { -// font-family: 'Inter'; -// font-style: normal; -// font-weight: 100 900; -// font-display: swap; -// src: url('/fonts/Inter-Variable.woff2') format('woff2'); -// } - -// Example: Custom font with multiple weights -// @font-face { -// font-family: 'CustomFont'; -// font-style: normal; -// font-weight: 400; -// font-display: swap; -// src: url('/fonts/CustomFont-Regular.woff2') format('woff2'); -// } -// -// @font-face { -// font-family: 'CustomFont'; -// font-style: normal; -// font-weight: 700; -// font-display: swap; -// src: url('/fonts/CustomFont-Bold.woff2') format('woff2'); -// } - -// FONT FAMILY VARIABLES -$font-sans: $font-system; -$font-display: $font-system; -$font-body: $font-system; -$font-code: $font-mono; - -// FONT UTILITY CLASSES -%font-display { - font-family: $font-display; - font-weight: $font-weight-bold; - line-height: $line-height-tight; - letter-spacing: $tracking-tight; -} - -%font-heading { - font-family: $font-sans; - font-weight: $font-weight-semibold; - line-height: $line-height-tight; - letter-spacing: $tracking-tight; -} - -%font-subheading { - font-family: $font-sans; - font-weight: $font-weight-medium; - line-height: $line-height-snug; - letter-spacing: $tracking-normal; -} - -%font-body { - font-family: $font-body; - font-weight: $font-weight-regular; - line-height: $line-height-normal; - letter-spacing: $tracking-normal; -} - -%font-body-medium { - font-family: $font-body; - font-weight: $font-weight-medium; - line-height: $line-height-normal; - letter-spacing: $tracking-normal; -} - -%font-caption { - font-family: $font-body; - font-weight: $font-weight-regular; - line-height: $line-height-normal; - letter-spacing: $tracking-wide; -} - -%font-label { - font-family: $font-sans; - font-weight: $font-weight-medium; - line-height: $line-height-none; - letter-spacing: $tracking-wide; - text-transform: uppercase; -} - -%font-code { - font-family: $font-code; - font-weight: $font-weight-regular; - line-height: $line-height-normal; - letter-spacing: $tracking-normal; -} - -// BASE TYPOGRAPHY SETUP -:root { - --font-sans: #{$font-sans}; - --font-mono: #{$font-mono}; -} +$font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, + 'Liberation Mono', monospace; diff --git a/frontend/src/styles/_mixins.scss b/frontend/src/styles/_mixins.scss index b9d3da7..6b5b1ba 100644 --- a/frontend/src/styles/_mixins.scss +++ b/frontend/src/styles/_mixins.scss @@ -3,12 +3,10 @@ // _mixins.scss // =================== -@use 'sass:math'; @use 'sass:map'; @use 'sass:list'; @use 'tokens' as *; -// BREAKPOINT MIXINS $breakpoints: ( 'xs': $breakpoint-xs, 'sm': $breakpoint-sm, @@ -16,7 +14,6 @@ $breakpoints: ( 'lg': $breakpoint-lg, 'xl': $breakpoint-xl, '2xl': $breakpoint-2xl, - '3xl': $breakpoint-3xl, ); @mixin breakpoint-up($size) { @@ -26,66 +23,11 @@ $breakpoints: ( } @mixin breakpoint-down($size) { - @media (width <= calc(map.get($breakpoints, $size) - 1px)) { + @media (width < map.get($breakpoints, $size)) { @content; } } -@mixin breakpoint-between($min, $max) { - @media (min-width: map.get($breakpoints, $min)) and (width <= calc(map.get($breakpoints, $max) - 1px)) { - @content; - } -} - -@mixin breakpoint-only($size) { - $keys: map.keys($breakpoints); - $index: list.index($keys, $size); - $next-index: $index + 1; - - @if $next-index <= list.length($keys) { - $next-key: list.nth($keys, $next-index); - @include breakpoint-between($size, $next-key) { - @content; - } - } @else { - @include breakpoint-up($size) { - @content; - } - } -} - - -@mixin container($name: null) { - container-type: inline-size; - @if $name { - container-name: #{$name}; - } -} - -@mixin container-up($min-width, $name: null) { - @if $name { - @container #{$name} (min-width: #{$min-width}) { - @content; - } - } @else { - @container (min-width: #{$min-width}) { - @content; - } - } -} - -@function fluid-size($min-size, $max-size, $min-vw: 360px, $max-vw: 1536px) { - $slope: math.div($max-size - $min-size, $max-vw - $min-vw); - $intercept: $min-size - ($slope * $min-vw); - @return clamp(#{$min-size}, #{$intercept} + #{$slope * 100}vw, #{$max-size}); -} - -@mixin fluid-type($min-size, $max-size, $min-vw: 360px, $max-vw: 1536px) { - font-size: fluid-size($min-size, $max-size, $min-vw, $max-vw); -} - - -// FLEXBOX UTILITIES @mixin flex-center { display: flex; align-items: center; @@ -98,18 +40,6 @@ $breakpoints: ( justify-content: space-between; } -@mixin flex-start { - display: flex; - align-items: center; - justify-content: flex-start; -} - -@mixin flex-end { - display: flex; - align-items: center; - justify-content: flex-end; -} - @mixin flex-column { display: flex; flex-direction: column; @@ -122,20 +52,6 @@ $breakpoints: ( justify-content: center; } -// GRID UTILITIES -@mixin grid-auto-fit($min-width: 250px, $gap: $space-4) { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(min(100%, #{$min-width}), 1fr)); - gap: $gap; -} - -@mixin grid-auto-fill($min-width: 250px, $gap: $space-4) { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(min(100%, #{$min-width}), 1fr)); - gap: $gap; -} - -// ACCESSIBILITY @mixin sr-only { position: absolute; width: 1px; @@ -149,37 +65,6 @@ $breakpoints: ( border: 0; } -@mixin sr-only-focusable { - @include sr-only; - - &:focus, - &:active { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - clip-path: none; - white-space: normal; - } -} - -@mixin focus-ring($color: currentcolor, $offset: 2px, $width: 2px) { - &:focus-visible { - outline: #{$width} solid #{$color}; - outline-offset: #{$offset}; - } -} - -@mixin focus-ring-inset($color: currentcolor, $width: 2px) { - &:focus-visible { - outline: #{$width} solid #{$color}; - outline-offset: -#{$width}; - } -} - -// TRUNCATION @mixin truncate { overflow: hidden; text-overflow: ellipsis; @@ -193,102 +78,23 @@ $breakpoints: ( overflow: hidden; } -// BUTTON RESET -@mixin reset-button { - appearance: none; - background: none; - border: none; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - cursor: pointer; - text-align: inherit; - - &:disabled { - cursor: not-allowed; - opacity: 0.6; - } -} - -// INPUT RESET -@mixin reset-input { - appearance: none; - background: transparent; - border: none; - padding: 0; - margin: 0; - font: inherit; - color: inherit; - outline: none; - - &::placeholder { - color: inherit; - opacity: 0.5; - } -} - -// SCROLLBAR -@mixin hide-scrollbar { - -ms-overflow-style: none; - scrollbar-width: none; - - &::-webkit-scrollbar { - display: none; - } -} - -@mixin thin-scrollbar($thumb-color: rgb(255 255 255 / 20%), $track-color: transparent) { - scrollbar-width: thin; - scrollbar-color: #{$thumb-color} #{$track-color}; - - &::-webkit-scrollbar { - width: 6px; - height: 6px; - } - - &::-webkit-scrollbar-track { - background: #{$track-color}; - } - - &::-webkit-scrollbar-thumb { - background: #{$thumb-color}; - border-radius: 3px; - } -} - -// TRANSITIONS -@mixin transition($properties: all, $duration: $duration-normal, $easing: $ease-in-out) { - transition-property: #{$properties}; - transition-duration: #{$duration}; - transition-timing-function: #{$easing}; -} - -@mixin transition-transform($duration: $duration-normal, $easing: $ease-in-out) { - transition: transform #{$duration} #{$easing}; +@mixin transition-fast { + transition-property: background-color, border-color, color, opacity; + transition-duration: $duration-fast; + transition-timing-function: $ease-out; } -@mixin transition-opacity($duration: $duration-normal, $easing: $ease-in-out) { - transition: opacity #{$duration} #{$easing}; +@mixin transition-normal { + transition-property: background-color, border-color, color, opacity; + transition-duration: $duration-normal; + transition-timing-function: $ease-out; } -@mixin transition-colors($duration: $duration-normal, $easing: $ease-in-out) { - transition: color #{$duration} #{$easing}, - background-color #{$duration} #{$easing}, - border-color #{$duration} #{$easing}; -} - -// POSITION UTILITIES @mixin absolute-fill { position: absolute; inset: 0; } -@mixin fixed-fill { - position: fixed; - inset: 0; -} - @mixin absolute-center { position: absolute; top: 50%; @@ -296,20 +102,6 @@ $breakpoints: ( transform: translate(-50%, -50%); } -// ASPECT RATIO (for older browser support alongside native) -@mixin aspect-ratio($width, $height) { - aspect-ratio: #{$width} / #{$height}; - - @supports not (aspect-ratio: 1 / 1) { - &::before { - content: ''; - display: block; - padding-top: calc(#{$height} / #{$width} * 100%); - } - } -} - -// INTERACTIVE STATES @mixin hover { @media (hover: hover) and (pointer: fine) { &:hover { @@ -318,25 +110,11 @@ $breakpoints: ( } } -@mixin active { - &:active { - @content; - } -} - -@mixin hover-active { - @include hover { - @content; - } - - @include active { - @content; - } -} +@mixin hide-scrollbar { + -ms-overflow-style: none; + scrollbar-width: none; -// LAYER MANAGEMENT (CSS Cascade Layers) -@mixin layer($name) { - @layer #{$name} { - @content; + &::-webkit-scrollbar { + display: none; } } diff --git a/frontend/src/styles/_reset.scss b/frontend/src/styles/_reset.scss index 4d4cdd0..b6af56b 100644 --- a/frontend/src/styles/_reset.scss +++ b/frontend/src/styles/_reset.scss @@ -3,6 +3,9 @@ // _reset.scss // =================== +@use 'tokens' as *; +@use 'fonts' as *; + *, *::before, *::after { @@ -33,11 +36,14 @@ html { body { min-height: 100vh; min-height: 100dvh; - line-height: 1.5; + line-height: $line-height-normal; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; + background-color: $bg-default; + color: $text-default; + font-family: $font-sans; } h1, @@ -46,9 +52,10 @@ h3, h4, h5, h6 { - line-height: 1.1; + line-height: $line-height-tight; text-wrap: balance; overflow-wrap: break-word; + font-weight: $font-weight-semibold; } p { @@ -61,20 +68,11 @@ ol { list-style: none; } -ul[role='list'], -ol[role='list'] { - list-style: none; -} - a { color: inherit; text-decoration: none; } -a:not([class]) { - text-decoration-skip-ink: auto; -} - img, picture, video, @@ -102,7 +100,7 @@ input[type='tel'], input[type='url'], textarea, select { - font-size: 1rem; + font-size: $font-size-sm; appearance: none; } @@ -132,7 +130,7 @@ textarea:not([rows]) { } :focus-visible { - outline: 2px solid currentColor; + outline: 2px solid $border-strong; outline-offset: 2px; } @@ -146,7 +144,7 @@ textarea:not([rows]) { [disabled] { cursor: not-allowed; - opacity: 0.6; + opacity: 0.5; } dialog { @@ -159,10 +157,6 @@ summary { cursor: pointer; } -progress { - vertical-align: baseline; -} - @media (prefers-reduced-motion: reduce) { *, *::before, @@ -182,8 +176,8 @@ progress { } ::-webkit-scrollbar { - width: 8px; - height: 8px; + width: 6px; + height: 6px; } ::-webkit-scrollbar-track { @@ -191,14 +185,14 @@ progress { } ::-webkit-scrollbar-thumb { - background: rgb(255 255 255 / 20%); - border-radius: 4px; + background: $border-default; + border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { - background: rgb(255 255 255 / 30%); + background: $border-strong; } ::selection { - background-color: rgb(255 255 255 / 20%); + background-color: $bg-selection; } diff --git a/frontend/src/styles/_tokens.scss b/frontend/src/styles/_tokens.scss index 14838b7..be1f6dd 100644 --- a/frontend/src/styles/_tokens.scss +++ b/frontend/src/styles/_tokens.scss @@ -8,81 +8,59 @@ // ============================================================================ $space-0: 0; $space-px: 1px; -$space-0-5: 0.125rem; // 2px -$space-1: 0.25rem; // 4px -$space-1-5: 0.375rem; // 6px -$space-2: 0.5rem; // 8px -$space-2-5: 0.625rem; // 10px -$space-3: 0.75rem; // 12px -$space-3-5: 0.875rem; // 14px -$space-4: 1rem; // 16px -$space-5: 1.25rem; // 20px -$space-6: 1.5rem; // 24px -$space-7: 1.75rem; // 28px -$space-8: 2rem; // 32px -$space-9: 2.25rem; // 36px -$space-10: 2.5rem; // 40px -$space-11: 2.75rem; // 44px -$space-12: 3rem; // 48px -$space-14: 3.5rem; // 56px -$space-16: 4rem; // 64px -$space-20: 5rem; // 80px -$space-24: 6rem; // 96px -$space-28: 7rem; // 112px -$space-32: 8rem; // 128px -$space-36: 9rem; // 144px -$space-40: 10rem; // 160px -$space-44: 11rem; // 176px -$space-48: 12rem; // 192px -$space-52: 13rem; // 208px -$space-56: 14rem; // 224px -$space-60: 15rem; // 240px -$space-64: 16rem; // 256px -$space-72: 18rem; // 288px -$space-80: 20rem; // 320px -$space-96: 24rem; // 384px - -// ============================================================================ -// TYPOGRAPHY SCALE (1.25 ratio - Major Third) -// ============================================================================ -$font-size-3xs: 0.512rem; // ~8px -$font-size-2xs: 0.64rem; // ~10px -$font-size-xs: 0.75rem; // 12px -$font-size-sm: 0.875rem; // 14px -$font-size-base: 1rem; // 16px -$font-size-md: 1.125rem; // 18px -$font-size-lg: 1.25rem; // 20px -$font-size-xl: 1.5rem; // 24px -$font-size-2xl: 1.875rem; // 30px -$font-size-3xl: 2.25rem; // 36px -$font-size-4xl: 3rem; // 48px -$font-size-5xl: 3.75rem; // 60px -$font-size-6xl: 4.5rem; // 72px -$font-size-7xl: 6rem; // 96px -$font-size-8xl: 8rem; // 128px +$space-0-5: 0.125rem; +$space-1: 0.25rem; +$space-1-5: 0.375rem; +$space-2: 0.5rem; +$space-2-5: 0.625rem; +$space-3: 0.75rem; +$space-3-5: 0.875rem; +$space-4: 1rem; +$space-5: 1.25rem; +$space-6: 1.5rem; +$space-7: 1.75rem; +$space-8: 2rem; +$space-9: 2.25rem; +$space-10: 2.5rem; +$space-11: 2.75rem; +$space-12: 3rem; +$space-14: 3.5rem; +$space-16: 4rem; +$space-20: 5rem; +$space-24: 6rem; +$space-28: 7rem; +$space-32: 8rem; + +// ============================================================================ +// TYPOGRAPHY SCALE +// ============================================================================ +$font-size-3xs: 0.625rem; +$font-size-2xs: 0.6875rem; +$font-size-xs: 0.75rem; +$font-size-sm: 0.875rem; +$font-size-base: 1rem; +$font-size-lg: 1.125rem; +$font-size-xl: 1.25rem; +$font-size-2xl: 1.5rem; +$font-size-3xl: 1.875rem; +$font-size-4xl: 2.25rem; +$font-size-5xl: 3rem; // ============================================================================ // FONT WEIGHTS // ============================================================================ -$font-weight-thin: 100; -$font-weight-extralight: 200; -$font-weight-light: 300; $font-weight-regular: 400; $font-weight-medium: 500; $font-weight-semibold: 600; -$font-weight-bold: 700; -$font-weight-extrabold: 800; -$font-weight-black: 900; // ============================================================================ // LINE HEIGHTS // ============================================================================ $line-height-none: 1; -$line-height-tight: 1.1; -$line-height-snug: 1.25; +$line-height-tight: 1.2; +$line-height-snug: 1.375; $line-height-normal: 1.5; $line-height-relaxed: 1.625; -$line-height-loose: 2; // ============================================================================ // LETTER SPACING @@ -92,131 +70,56 @@ $tracking-tight: -0.025em; $tracking-normal: 0; $tracking-wide: 0.025em; $tracking-wider: 0.05em; -$tracking-widest: 0.1em; // ============================================================================ -// COLORS (OKLCH - Modern Color Space) +// COLORS // ============================================================================ +$white: hsl(0, 0%, 100%); +$black: hsl(0, 0%, 0%); -// Neutrals (grayscale) -$gray-50: oklch(98% 0 0deg); -$gray-100: oklch(95% 0 0deg); -$gray-200: oklch(90% 0 0deg); -$gray-300: oklch(80% 0 0deg); -$gray-400: oklch(65% 0 0deg); -$gray-500: oklch(50% 0 0deg); -$gray-600: oklch(40% 0 0deg); -$gray-700: oklch(30% 0 0deg); -$gray-800: oklch(20% 0 0deg); -$gray-900: oklch(12% 0 0deg); -$gray-950: oklch(8% 0 0deg); +// Auth +$bg-page: hsl(0, 0%, 10.5%); +$bg-card: hsl(0, 0%, 6.2%); -// Primary (Blue) -$primary-50: oklch(97% 0.02 250deg); -$primary-100: oklch(93% 0.04 250deg); -$primary-200: oklch(87% 0.08 250deg); -$primary-300: oklch(78% 0.12 250deg); -$primary-400: oklch(68% 0.16 250deg); -$primary-500: oklch(58% 0.2 250deg); -$primary-600: oklch(50% 0.2 250deg); -$primary-700: oklch(42% 0.18 250deg); -$primary-800: oklch(35% 0.15 250deg); -$primary-900: oklch(28% 0.12 250deg); -$primary-950: oklch(20% 0.08 250deg); +// Home/landing +$bg-landing: hsl(0, 0%, 10.8%); -// Success (Green) -$success-50: oklch(97% 0.03 145deg); -$success-100: oklch(93% 0.06 145deg); -$success-200: oklch(87% 0.1 145deg); -$success-300: oklch(78% 0.14 145deg); -$success-400: oklch(68% 0.18 145deg); -$success-500: oklch(58% 0.18 145deg); -$success-600: oklch(50% 0.16 145deg); -$success-700: oklch(42% 0.14 145deg); -$success-800: oklch(35% 0.12 145deg); -$success-900: oklch(28% 0.1 145deg); +$bg-default: hsl(0, 0%, 7.1%); +$bg-alternative: hsl(0, 0%, 5.9%); +$bg-surface-75: hsl(0, 0%, 9%); +$bg-surface-100: hsl(0, 0%, 12.2%); +$bg-surface-200: hsl(0, 0%, 14.1%); +$bg-surface-300: hsl(0, 0%, 16.1%); +$bg-control: hsl(0, 0%, 10%); +$bg-selection: hsl(0, 0%, 19.2%); +$bg-overlay: hsl(0, 0%, 14.1%); +$bg-overlay-hover: hsl(0, 0%, 18%); -// Warning (Yellow/Orange) -$warning-50: oklch(98% 0.03 85deg); -$warning-100: oklch(95% 0.06 85deg); -$warning-200: oklch(90% 0.1 85deg); -$warning-300: oklch(85% 0.14 85deg); -$warning-400: oklch(78% 0.18 80deg); -$warning-500: oklch(72% 0.18 75deg); -$warning-600: oklch(62% 0.16 70deg); -$warning-700: oklch(52% 0.14 65deg); -$warning-800: oklch(42% 0.12 60deg); -$warning-900: oklch(32% 0.1 55deg); +$border-muted: hsl(0, 0%, 11.1%); +$border-default: hsl(0, 0%, 18%); +$border-strong: hsl(0, 0%, 22.4%); +$border-stronger: hsl(0, 0%, 27.1%); +$border-control: hsl(0, 0%, 22.4%); -// Error (Red) -$error-50: oklch(97% 0.02 25deg); -$error-100: oklch(93% 0.04 25deg); -$error-200: oklch(87% 0.08 25deg); -$error-300: oklch(78% 0.14 25deg); -$error-400: oklch(65% 0.2 25deg); -$error-500: oklch(55% 0.22 25deg); -$error-600: oklch(48% 0.2 25deg); -$error-700: oklch(40% 0.18 25deg); -$error-800: oklch(33% 0.14 25deg); -$error-900: oklch(25% 0.1 25deg); +$text-default: hsl(0, 0%, 98%); +$text-light: hsl(0, 0%, 70.6%); +$text-lighter: hsl(0, 0%, 53.7%); +$text-muted: hsl(0, 0%, 30.2%); -// Info (Cyan) -$info-50: oklch(97% 0.02 200deg); -$info-100: oklch(93% 0.04 200deg); -$info-200: oklch(87% 0.08 200deg); -$info-300: oklch(78% 0.12 200deg); -$info-400: oklch(68% 0.16 200deg); -$info-500: oklch(58% 0.18 200deg); -$info-600: oklch(50% 0.16 200deg); -$info-700: oklch(42% 0.14 200deg); -$info-800: oklch(35% 0.12 200deg); -$info-900: oklch(28% 0.1 200deg); - -// ============================================================================ -// SEMANTIC COLORS (Light/Dark aware via CSS custom properties) -// ============================================================================ -:root { - --color-bg: #{$gray-950}; - --color-bg-subtle: #{$gray-900}; - --color-bg-muted: #{$gray-800}; - --color-surface: #{$gray-900}; - --color-surface-raised: #{$gray-800}; - --color-border: #{$gray-800}; - --color-border-subtle: #{$gray-700}; - --color-text: #{$gray-50}; - --color-text-muted: #{$gray-400}; - --color-text-subtle: #{$gray-500}; - --color-primary: #{$primary-500}; - --color-primary-hover: #{$primary-400}; - --color-success: #{$success-500}; - --color-warning: #{$warning-500}; - --color-error: #{$error-500}; - --color-info: #{$info-500}; -} +$error-default: hsl(0, 72%, 51%); +$error-light: hsl(0, 72%, 65%); // ============================================================================ // BORDER RADIUS // ============================================================================ $radius-none: 0; -$radius-sm: 0.125rem; // 2px -$radius-md: 0.25rem; // 4px -$radius-lg: 0.5rem; // 8px -$radius-xl: 0.75rem; // 12px -$radius-2xl: 1rem; // 16px -$radius-3xl: 1.5rem; // 24px +$radius-xs: 2px; +$radius-sm: 4px; +$radius-md: 6px; +$radius-lg: 8px; +$radius-xl: 12px; $radius-full: 9999px; -// ============================================================================ -// SHADOWS -// ============================================================================ -$shadow-xs: 0 1px 2px 0 oklch(0% 0 0deg / 5%); -$shadow-sm: 0 1px 3px 0 oklch(0% 0 0deg / 10%), 0 1px 2px -1px oklch(0% 0 0deg / 10%); -$shadow-md: 0 4px 6px -1px oklch(0% 0 0deg / 10%), 0 2px 4px -2px oklch(0% 0 0deg / 10%); -$shadow-lg: 0 10px 15px -3px oklch(0% 0 0deg / 10%), 0 4px 6px -4px oklch(0% 0 0deg / 10%); -$shadow-xl: 0 20px 25px -5px oklch(0% 0 0deg / 10%), 0 8px 10px -6px oklch(0% 0 0deg / 10%); -$shadow-2xl: 0 25px 50px -12px oklch(0% 0 0deg / 25%); -$shadow-inner: inset 0 2px 4px 0 oklch(0% 0 0deg / 5%); - // ============================================================================ // Z-INDEX SCALE // ============================================================================ @@ -237,20 +140,14 @@ $z-max: 9999; // ============================================================================ $duration-instant: 0ms; $duration-fast: 100ms; -$duration-normal: 200ms; -$duration-slow: 300ms; -$duration-slower: 500ms; -$duration-slowest: 700ms; +$duration-normal: 150ms; +$duration-slow: 200ms; -$ease-linear: linear; -$ease-in: cubic-bezier(0.4, 0, 1, 1); $ease-out: cubic-bezier(0, 0, 0.2, 1); $ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); -$ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1); -$ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55); // ============================================================================ -// BREAKPOINTS (SCSS only - can't use in CSS custom properties) +// BREAKPOINTS // ============================================================================ $breakpoint-xs: 360px; $breakpoint-sm: 480px; @@ -258,20 +155,14 @@ $breakpoint-md: 768px; $breakpoint-lg: 1024px; $breakpoint-xl: 1280px; $breakpoint-2xl: 1536px; -$breakpoint-3xl: 1920px; // ============================================================================ // CONTAINER WIDTHS // ============================================================================ -$container-xs: 20rem; // 320px -$container-sm: 24rem; // 384px -$container-md: 28rem; // 448px -$container-lg: 32rem; // 512px -$container-xl: 36rem; // 576px -$container-2xl: 42rem; // 672px -$container-3xl: 48rem; // 768px -$container-4xl: 56rem; // 896px -$container-5xl: 64rem; // 1024px -$container-6xl: 72rem; // 1152px -$container-7xl: 80rem; // 1280px +$container-xs: 20rem; +$container-sm: 24rem; +$container-md: 28rem; +$container-lg: 32rem; +$container-xl: 36rem; +$container-2xl: 42rem; $container-full: 100%; diff --git a/frontend/stylelint.config.js b/frontend/stylelint.config.js index 987c49d..56ebd7b 100755 --- a/frontend/stylelint.config.js +++ b/frontend/stylelint.config.js @@ -76,6 +76,16 @@ export default { 'custom-property-empty-line-before': null, 'no-descending-specificity': null, + + 'media-feature-name-no-unknown': [ + true, + { + ignoreMediaFeatureNames: ['map'], + }, + ], + + 'color-function-notation': null, + 'hue-degree-notation': null, }, ignoreFiles: [ 'node_modules/**', diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index f96a39c..80bdb5e 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -23,9 +23,7 @@ export default defineConfig(({ mode }) => { css: { preprocessorOptions: { - scss: { - api: 'modern-compiler', - }, + scss: {}, }, }, diff --git a/infra/docker/fastapi.dev b/infra/docker/fastapi.dev index 9adbf65..2df53f1 100644 --- a/infra/docker/fastapi.dev +++ b/infra/docker/fastapi.dev @@ -31,4 +31,4 @@ RUN --mount=type=cache,target=/root/.cache/uv \ EXPOSE 8000 -CMD ["sh", "-c", "uv run alembic upgrade head && uv run uvicorn __main__:app --host 0.0.0.0 --port 8000 --reload"] +CMD ["sh", "-c", "uv run alembic upgrade head && uv run uvicorn app.__main__:app --host 0.0.0.0 --port 8000 --reload"] diff --git a/infra/docker/fastapi.prod b/infra/docker/fastapi.prod index 363f993..b7b7ad6 100644 --- a/infra/docker/fastapi.prod +++ b/infra/docker/fastapi.prod @@ -56,4 +56,4 @@ EXPOSE 8000 HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')" || exit 1 -CMD ["sh", "-c", "alembic upgrade head && gunicorn __main__:app --worker-class uvicorn.workers.UvicornWorker --workers 4 --bind 0.0.0.0:8000 --max-requests 1000 --max-requests-jitter 100 --access-logfile - --error-logfile -"] +CMD ["sh", "-c", "alembic upgrade head && gunicorn app.__main__:app --worker-class uvicorn.workers.UvicornWorker --workers 4 --bind 0.0.0.0:8000 --max-requests 1000 --max-requests-jitter 100 --access-logfile - --error-logfile -"] From 29845f2034673da51542b04c6d8bfc96923b12b9 Mon Sep 17 00:00:00 2001 From: CarterPerez-dev Date: Wed, 24 Dec 2025 07:32:10 -0500 Subject: [PATCH 2/2] official completion --fix prod --- backend/pyproject.toml | 2 +- frontend/src/pages/admin/index.tsx | 2 +- frontend/vite.config.ts | 22 +++++--- infra/docker/frontend-builder.prod | 4 +- infra/nginx/nginx.prod.conf | 81 ++++++++++++++++++++++++++++++ 5 files changed, 101 insertions(+), 10 deletions(-) create mode 100644 infra/nginx/nginx.prod.conf diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 07ea197..b62c78b 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -167,7 +167,6 @@ load-plugins = [ "pylint_per_file_ignores", ] persistent = true -suggestion-mode = true ignore = [ "alembic", "venv", @@ -219,6 +218,7 @@ disable = [ [tool.pylint-per-file-ignores] "alembic/env.py" = "no-member" "conftest.py" = "import-outside-toplevel" +"app/__main__.py" = "pointless-string-statement" [tool.pylint.format] max-line-length = 95 diff --git a/frontend/src/pages/admin/index.tsx b/frontend/src/pages/admin/index.tsx index 49e8034..53fa22a 100644 --- a/frontend/src/pages/admin/index.tsx +++ b/frontend/src/pages/admin/index.tsx @@ -23,7 +23,7 @@ type ModalState = | { type: 'delete'; user: UserResponse } export function Component(): React.ReactElement { - const [page, setPage] = useState(PAGINATION.DEFAULT_PAGE) + const [page, setPage] = useState(PAGINATION.DEFAULT_PAGE) const [modal, setModal] = useState({ type: 'closed' }) const { data, isLoading } = useAdminUsers({ diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 80bdb5e..a8d5d47 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -40,15 +40,25 @@ export default defineConfig(({ mode }) => { }, build: { - target: 'ES2022', + target: 'esnext', + cssTarget: 'chrome100', sourcemap: isDev ? true : 'hidden', - minify: 'esbuild', + minify: 'oxc', rollupOptions: { output: { - manualChunks: { - 'vendor-react': ['react', 'react-dom', 'react-router-dom'], - 'vendor-query': ['@tanstack/react-query'], - 'vendor-state': ['zustand'], + manualChunks(id: string): string | undefined { + if (id.includes('node_modules')) { + if (id.includes('react-dom') || id.includes('react-router')) { + return 'vendor-react' + } + if (id.includes('@tanstack/react-query')) { + return 'vendor-query' + } + if (id.includes('zustand')) { + return 'vendor-state' + } + } + return undefined }, }, }, diff --git a/infra/docker/frontend-builder.prod b/infra/docker/frontend-builder.prod index a9f50d3..5aecf69 100644 --- a/infra/docker/frontend-builder.prod +++ b/infra/docker/frontend-builder.prod @@ -41,8 +41,8 @@ RUN rm -rf /usr/share/nginx/html/* && \ COPY --from=builder /app/dist /usr/share/nginx/html -COPY infra/nginx/nginx.conf /etc/nginx/nginx.conf -COPY infra/nginx/prod.nginx /etc/nginx/conf.d/default.conf +COPY --chown=nginx:nginx infra/nginx/nginx.prod.conf /etc/nginx/nginx.conf +COPY --chown=nginx:nginx infra/nginx/prod.nginx /etc/nginx/conf.d/default.conf RUN chown -R nginx:nginx /usr/share/nginx/html && \ chown -R nginx:nginx /var/cache/nginx && \ diff --git a/infra/nginx/nginx.prod.conf b/infra/nginx/nginx.prod.conf new file mode 100644 index 0000000..644b74d --- /dev/null +++ b/infra/nginx/nginx.prod.conf @@ -0,0 +1,81 @@ +# AngelaMos | 2025 +# nginx.prod.conf +# Production nginx configuration (no dev frontend upstream) + +worker_processes auto; +worker_rlimit_nofile 65535; + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + +events { + worker_connections 4096; + multi_accept on; + use epoll; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + # WebSocket upgrade handling + map $http_upgrade $connection_upgrade { + default upgrade; + '' close; + } + + upstream backend { + server backend:8000 max_fails=3 fail_timeout=30s; + keepalive 32; + keepalive_requests 1000; + keepalive_timeout 60s; + } + + limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s; + limit_req_zone $binary_remote_addr zone=auth_limit:10m rate=1r/s; + limit_conn_zone $binary_remote_addr zone=conn_limit:10m; + limit_req_status 429; + + log_format main_timed '$remote_addr - $remote_user [$time_local] ' + '"$request" $status $body_bytes_sent ' + '"$http_referer" "$http_user_agent" ' + 'rt=$request_time uct="$upstream_connect_time" ' + 'uht="$upstream_header_time" urt="$upstream_response_time"'; + + sendfile on; + tcp_nopush on; + tcp_nodelay on; + keepalive_timeout 65; + types_hash_max_size 2048; + server_tokens off; + + # Buffer sizes + client_body_buffer_size 128k; + client_header_buffer_size 16k; + client_max_body_size 10m; + large_client_header_buffers 4 16k; + + client_body_timeout 12s; + client_header_timeout 12s; + send_timeout 10s; + + gzip on; + gzip_vary on; + gzip_proxied any; + gzip_comp_level 6; + gzip_min_length 256; + gzip_types + text/plain + text/css + text/xml + text/javascript + application/json + application/javascript + application/xml+rss + application/atom+xml + image/svg+xml; + gzip_disable "msie6"; + + # Include server blocks + include /etc/nginx/conf.d/*.conf; +}
+
+

Full Stack Template

+

by Carter Perez

+
+ + +
+ +
+

+ Boilerplate for medium-large scale applications. Built with modern + patterns, strict typing, and security best practices. +

+ +
+
+

Frontend

+
    +
  • React 19 + TypeScript with strict mode
  • +
  • TanStack Query for server state caching
  • +
  • Zustand stores with persistence
  • +
  • Axios interceptors with auto token refresh
  • +
  • Zod runtime validation on API responses
  • +
  • SCSS modules with design tokens
  • +
+
+ +
+

Backend

+
    +
  • DDD + DI Architecture
  • +
  • FastAPI with async/await throughout
  • +
  • SQLAlchemy 2.0+ async with connection pooling
  • +
  • JWT auth with token rotation and replay detection
  • +
  • Argon2id hashing with timing safe verification
  • +
  • Pydantic v2 strict validation
  • +
+
+ +
+

Infrastructure

+
    +
  • Docker Compose with dev/prod configs
  • +
  • Nginx reverse proxy with rate limiting
  • +
  • PostgreSQL 18 + Redis 7
  • +
  • Health checks and graceful shutdown
  • +
+
+ +
+

DevOps

+
    +
  • GitHub Actions CI (Ruff, Pylint, Mypy, Biome)
  • +
  • Strict type checking on both ends
  • +
  • Alembic async migrations
  • +
+
+
+ +
+ + Try Auth Flow + + + API Docs + +
+
+

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 UgzpNzz5oCK07*qoM6N<$g3uE8V*mgE diff --git a/frontend/public/assets/apple-touch-icon.png b/frontend/public/assets/apple-touch-icon.png index a058f267adc7248b08eb882870ba49e43d09df43..ec126db919dc679289e9ef69e842e82d8c5bbf5d 100644 GIT binary patch literal 22963 zcmXt9Q*Rqd)s z1vzm9I2^byU%ntnN{A?dUz`7Xz(9eYd8eS5zI;LcA}J!M;_>w&2ew;v0dv&$D`0PPa3J(vjqJ z2GNBU3lM7d~zX}rLC2w8RfQAHVxCaQyyqoOj+d z!#DAjcMPPG9xeARhQx9NGD zQ`-gpN32FeFtnPDB5zNZ(o`8OTXlUOXKWt3p_rW?k$Ho-f&01npC51bOEuc+=+tV- zlnE?e4;H+@4d+^1R;%Qzj$?wQaz$a&@#ML5M&so8cn1$s0;RV_WqDWS_Ap$ITW1YY zhmD^sA)MCBG#P9v&PS7y?#Q3d`$(==8>_URXH|8j+I&6V*4yj>jiK-?mkoNIj3aYE zX^b-ULlHkHF(Lr!!w2Y1w^pk_2$I!mQ9|DzhnPgNA+BgR=<~LN*o;qVzEx2-*%&2u|zt} zZ8)mO8))_Va4IzU-%{xW@jL7U@V%dqKAtX!r%*Mf9{h+Fs3o&# zzfVO{t1=&ur7HEIs`}aKZ_HZr=A@e0_A$+UeKLr|uX4LL{J3Ua2OE3NA*M>)Qdn5% zVwytbb?f-jP^Y`aDwpUWd;5}=WxLcEk%)alBiY8t#?r(>2^QT#SJxrVqj&PG+Z76h ztFT(C%w+KE-txJZ1s8`*p5JRlRP^859;e*TVN89C{vb%YU*Qp7cb#c#Kkw`MC_euB z)s>(7p8_jvRvYb}hh_@m1YYIuX4m=lSc%8qmuBYwoeaN<;yx68%txdHSzb3KUyt+r zm2?RU!CjR$^sNrO-JPeUSxPBm65rBq-(T)^zxnJ0LN~jd&Z8}PIMZmi%6x*Z{T~