Compare commits
1 Commits
47cfc67ef4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
87f584b1fa |
@@ -1,6 +0,0 @@
|
||||
- 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 +0,0 @@
|
||||
- authentication.py
|
||||
@@ -1,4 +0,0 @@
|
||||
- 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 +0,0 @@
|
||||
- authorization.py
|
||||
9
doc/core/cache/features.md
vendored
9
doc/core/cache/features.md
vendored
@@ -1,5 +1,4 @@
|
||||
- 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
|
||||
- client für redis
|
||||
- kopie der datenbank
|
||||
- anfragen gehen wenn möglich immer an redis, nie an datenbank
|
||||
- änderungen in datenbank ändern auch immer redis
|
||||
|
||||
4
doc/core/cache/specs.md
vendored
4
doc/core/cache/specs.md
vendored
@@ -1 +1,3 @@
|
||||
- cache.py
|
||||
- redis_client.py
|
||||
- verbindung zu redis
|
||||
- CRUD für redis
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
- config
|
||||
- read .env into Settings object
|
||||
- liest die env
|
||||
|
||||
@@ -1 +1 @@
|
||||
- config.py
|
||||
- config.py - sicherheitskritische daten einlesen
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
- db
|
||||
- base setup for ORM
|
||||
- use SQLAlchemy
|
||||
- provide get_db() dependency
|
||||
- verbindung zur datenbank herstellen
|
||||
- session aufbauen
|
||||
- Base definieren
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
- db.py
|
||||
- verwendet SQLAlchemy
|
||||
- ORM
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
- di
|
||||
- global register for services
|
||||
- no direct service import between apps
|
||||
- services registrieren
|
||||
- services abrufen
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
- events
|
||||
- apps can react on events
|
||||
- apps can emit events
|
||||
- events persist in db (audit/replay)
|
||||
- allow wildcard subscribe (e.g. product.*)
|
||||
@@ -1 +0,0 @@
|
||||
- events.py
|
||||
@@ -1,2 +0,0 @@
|
||||
- i18n
|
||||
- internationalisation helper for DE/EN text fields
|
||||
@@ -1 +0,0 @@
|
||||
- i18n.py
|
||||
@@ -1,6 +1,3 @@
|
||||
- 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>
|
||||
- apps finden
|
||||
- reihenfolge nach abhängigkeit anpassen
|
||||
- apps laden
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
- main
|
||||
- entrypoint for backend
|
||||
- build fastAPI
|
||||
- run loader on lifespan startup
|
||||
- expose /health and core settings routes
|
||||
- einstiegspunkt
|
||||
- fastAPI bauen
|
||||
- loader aufrufen
|
||||
|
||||
@@ -1 +1 @@
|
||||
- main.py
|
||||
- event.py
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
- 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 +0,0 @@
|
||||
- middleware.py
|
||||
@@ -1,5 +0,0 @@
|
||||
- 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
|
||||
@@ -1,2 +0,0 @@
|
||||
- migrations.py
|
||||
- migrations/ (Alembic version store)
|
||||
@@ -1,2 +0,0 @@
|
||||
- seed
|
||||
- demo data (admin, demo customer, categories, products)
|
||||
@@ -1 +0,0 @@
|
||||
- seed.py
|
||||
@@ -1,6 +0,0 @@
|
||||
- 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 +0,0 @@
|
||||
- settings.py
|
||||
3
doc/systems/event/features.md
Normal file
3
doc/systems/event/features.md
Normal file
@@ -0,0 +1,3 @@
|
||||
- custom events aus den apps sammeln
|
||||
- events persistieren
|
||||
- helper methoden für events
|
||||
1
doc/systems/event/specs.md
Normal file
1
doc/systems/event/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- event.py
|
||||
1
doc/systems/subscriber/features.md
Normal file
1
doc/systems/subscriber/features.md
Normal file
@@ -0,0 +1 @@
|
||||
- subscriber registrieren
|
||||
1
doc/systems/subscriber/specs.md
Normal file
1
doc/systems/subscriber/specs.md
Normal file
@@ -0,0 +1 @@
|
||||
- subscriber.py
|
||||
Reference in New Issue
Block a user