This commit is contained in:
Marek
2026-04-19 19:23:16 +02:00
23 changed files with 122 additions and 14 deletions

View File

@@ -0,0 +1,6 @@
- authentication
- "who are you?"
- password hashing with argon2
- JWT (15 min access) with refresh (30 days)
- identity dependencies (current_user_claims, optional_user, get_current_user_id, oauth2_scheme)
- room for growth: OAuth/SSO, API-tokens for third-party apps, 2FA, refresh-token rotation, impersonation

View File

@@ -0,0 +1 @@
- authentication.py

View File

@@ -0,0 +1,4 @@
- authorization
- "what are you allowed to do?"
- role checks (require_admin today)
- room for growth: require_role, require_permission, per-resource checks (owner-of), B2B approval workflows, per-app permissions for marketplace apps

View File

@@ -0,0 +1 @@
- authorization.py

View File

@@ -0,0 +1,2 @@
- i18n
- internationalisation helper for DE/EN text fields

1
doc/core/i18n/specs.md Normal file
View File

@@ -0,0 +1 @@
- i18n.py

View File

@@ -0,0 +1,4 @@
- middleware
- central place to install FastAPI middlewares (install_middlewares(app))
- today: CORS (allowed origins from .env)
- room for growth: request-id, access logging, rate-limit, security headers (HSTS/CSP), compression

View File

@@ -0,0 +1 @@
- middleware.py

View File

@@ -0,0 +1,5 @@
- migrations
- orchestrator (migrations.py): discover per-app migration folders (apps/<name>/migrations/), configure alembic version_locations dynamically, coordinate multi-head merging
- startup check: fail fast if schema is not up to date
- migrations/ directory: alembic version store (today still holds all migrations centrally; per-app folders are the target state)
- use alembic

View File

@@ -0,0 +1,2 @@
- migrations.py
- migrations/ (Alembic version store)

View File

@@ -0,0 +1,2 @@
- seed
- demo data (admin, demo customer, categories, products)

1
doc/core/seed/specs.md Normal file
View File

@@ -0,0 +1 @@
- seed.py

View File

@@ -0,0 +1,6 @@
- settings
- key-value store for shop settings (runtime-changeable, e.g. shop_name, currency)
- postgres is source of truth
- mirrored to redis on write
- emits core.settings_updated event
- distinct from config (which only reads .env infrastructure values)

View File

@@ -0,0 +1 @@
- settings.py