Přeskočit obsah

12. Technologický dluh

Pracovní seznam k 3. 9. 2026. Tento dokument drží věci, které vědomě necháváme na postupné dořešení. Nejde o chyby k okamžité opravě, ale o místa, která nesmí zmizet z radaru při migraci z Base44 kompatibility na vlastní backend.

Autentizace a perimetr

  • Dočasná route /api/functions/clientAuth byla odstraněna. Frontendové base44.functions.invoke("clientAuth", ...) je centrálně směrované na /api/public/client_auth.
  • Obecný dispatcher /api/functions/{name} je zúžený na whitelist známých staff-auth kompatibilních funkcí.
  • Frontendové base44.functions.invoke(...) používá centrální explicitní mapu vlastních /api a /api/public endpointů.
  • Některé klientské komponenty mimo ClientAuthContext stále zapisují neo_client do localStorage. Po přepnutí na explicitní /api/public endpointy ponechat localStorage nejvýše jako UI cache, ne jako zdroj autentizace.
  • Interní /api zatím používá obecný AuthMiddleware, který nekontroluje role. Cílově má být nahrazen nebo rozšířen o explicitní staff role/oprávnění.

Klientský a terapeutský portál

  • clientBooking v PHP backendu není plně implementovaný jako veřejný/klientský /api/public surface.
  • Terapeutské portálové endpointy mají cílově patřit pod /api/public, ne pod interní staff /api, pokud jsou dostupné z internetu mimo intranet/VPN.
  • Veřejné onboarding, platba, storno a voucher flow potřebují vlastní token-only nebo client-auth endpointy, ne obecné Base44 kompatibilní funkce.
  • Onboarding souhlasy a podpis se nemají dlouhodobě ukládat přes obecný Client.update z frontendu.
  • Klientský výběr podle client_id nesmí být považovaný za autentizaci.

Databáze

  • Změny schématu pro onboarding tokeny, klientské souhlasy, klientské sessions a OTP challenges jsou vedené přímo v schema.sql/schema_test.sql; samostatné inkrementální SQL patche nepoužívat.
  • E-mailový login a SMS ověření klientského telefonu už používají 6místné jednorázové heslo uložené jen jako HMAC hash; dořešit produkční monitoring SMS chyb a nízkého kreditu.
  • Cílově rozdělit staff/client sessions na staff_sessions a client_sessions.

Nasazení

  • APP_URL musí být produkční veřejná doména, ne localhost.
  • Proxy musí umět rozlišit veřejné cesty a intranetové/staff cesty.
  • /api/test/tokens je veřejná diagnostická route a před produkcí musí být odstraněná nebo chráněná.