update
This commit is contained in:
6
doc/core/authentication/features.md
Normal file
6
doc/core/authentication/features.md
Normal 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
|
||||
1
doc/core/authentication/specs.md
Normal file
1
doc/core/authentication/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- authentication.py
|
||||
4
doc/core/authorization/features.md
Normal file
4
doc/core/authorization/features.md
Normal 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
|
||||
1
doc/core/authorization/specs.md
Normal file
1
doc/core/authorization/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- authorization.py
|
||||
5
doc/core/cache/features.md
vendored
Normal file
5
doc/core/cache/features.md
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
- cache
|
||||
- shared read-store / cache client (Redis today)
|
||||
- backend writes, frontend reads
|
||||
- apps keep the cache in sync via event handlers (projectors), not the core client
|
||||
- room for growth: CacheProvider abstraction so the read-store becomes swappable
|
||||
1
doc/core/cache/specs.md
vendored
Normal file
1
doc/core/cache/specs.md
vendored
Normal file
@@ -0,0 +1 @@
|
||||
- cache.py
|
||||
2
doc/core/config/features.md
Normal file
2
doc/core/config/features.md
Normal file
@@ -0,0 +1,2 @@
|
||||
- config
|
||||
- read .env into Settings object
|
||||
1
doc/core/config/specs.md
Normal file
1
doc/core/config/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- config.py
|
||||
4
doc/core/db/features.md
Normal file
4
doc/core/db/features.md
Normal file
@@ -0,0 +1,4 @@
|
||||
- db
|
||||
- base setup for ORM
|
||||
- use SQLAlchemy
|
||||
- provide get_db() dependency
|
||||
1
doc/core/db/specs.md
Normal file
1
doc/core/db/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- db.py
|
||||
3
doc/core/di/features.md
Normal file
3
doc/core/di/features.md
Normal file
@@ -0,0 +1,3 @@
|
||||
- di
|
||||
- global register for services
|
||||
- no direct service import between apps
|
||||
1
doc/core/di/specs.md
Normal file
1
doc/core/di/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- di.py
|
||||
5
doc/core/events/features.md
Normal file
5
doc/core/events/features.md
Normal file
@@ -0,0 +1,5 @@
|
||||
- events
|
||||
- apps can react on events
|
||||
- apps can emit events
|
||||
- events persist in db (audit/replay)
|
||||
- allow wildcard subscribe (e.g. product.*)
|
||||
1
doc/core/events/specs.md
Normal file
1
doc/core/events/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- events.py
|
||||
2
doc/core/i18n/features.md
Normal file
2
doc/core/i18n/features.md
Normal file
@@ -0,0 +1,2 @@
|
||||
- i18n
|
||||
- internationalisation helper for DE/EN text fields
|
||||
1
doc/core/i18n/specs.md
Normal file
1
doc/core/i18n/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- i18n.py
|
||||
6
doc/core/loader/features.md
Normal file
6
doc/core/loader/features.md
Normal file
@@ -0,0 +1,6 @@
|
||||
- loader
|
||||
- load apps as python module
|
||||
- discover apps/*/manifest.yaml
|
||||
- order by app dependency (topological sort), circles not allowed
|
||||
- check for conflicts
|
||||
- mount each app router under /api/<app>
|
||||
1
doc/core/loader/specs.md
Normal file
1
doc/core/loader/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- loader.py
|
||||
5
doc/core/main/features.md
Normal file
5
doc/core/main/features.md
Normal file
@@ -0,0 +1,5 @@
|
||||
- main
|
||||
- entrypoint for backend
|
||||
- build fastAPI
|
||||
- run loader on lifespan startup
|
||||
- expose /health and core settings routes
|
||||
1
doc/core/main/specs.md
Normal file
1
doc/core/main/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- main.py
|
||||
4
doc/core/middleware/features.md
Normal file
4
doc/core/middleware/features.md
Normal 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
|
||||
1
doc/core/middleware/specs.md
Normal file
1
doc/core/middleware/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- middleware.py
|
||||
5
doc/core/migrations/features.md
Normal file
5
doc/core/migrations/features.md
Normal 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
|
||||
2
doc/core/migrations/specs.md
Normal file
2
doc/core/migrations/specs.md
Normal file
@@ -0,0 +1,2 @@
|
||||
- migrations.py
|
||||
- migrations/ (Alembic version store)
|
||||
2
doc/core/seed/features.md
Normal file
2
doc/core/seed/features.md
Normal file
@@ -0,0 +1,2 @@
|
||||
- seed
|
||||
- demo data (admin, demo customer, categories, products)
|
||||
1
doc/core/seed/specs.md
Normal file
1
doc/core/seed/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- seed.py
|
||||
6
doc/core/settings/features.md
Normal file
6
doc/core/settings/features.md
Normal 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)
|
||||
1
doc/core/settings/specs.md
Normal file
1
doc/core/settings/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- settings.py
|
||||
Reference in New Issue
Block a user