6. Analýza závislosti na Base44
Přehled provázanosti
Base44 plní v aplikaci tři role najednou:
- Databáze — NoSQL entity store s REST + real-time SDK
- Backend runtime — serverless Deno funkce
- Auth provider — admin session management
- Scheduler — plánované spouštění funkcí (reminderDispatcher každých 5 min)
- Secrets manager —
RESEND_API_KEYa MS OAuth token - OAuth connector — MS Outlook připojení
Co je specifické pro Base44
1. SDK v celé aplikaci — VYSOKÁ provázanost
Ověřený fakt — base44Client.js je importován na desítkách míst:
import { base44 } from '@/api/base44Client';
// Přímé volání entit:
const events = await base44.entities.CalendarEvent.list('-date', 100);
const client = await base44.entities.Client.create({ ... });
Pattern base44.entities.EntityName.method() se opakuje v každé stránce a komponentě.
2. Backend SDK — Deno funkce
Ověřený fakt — každá serverless funkce používá:
import { createClientFromRequest } from 'npm:@base44/sdk@0.8.31';
const base44 = createClientFromRequest(req);
await base44.asServiceRole.entities.Booking.get(id);
await base44.asServiceRole.functions.invoke('sendNotification', payload);
await base44.asServiceRole.connectors.getConnection('outlook');
Funkce jsou psány jako Deno.serve() HTTP handlery — tato architektura je přenositelná, ale base44.asServiceRole.* volání je nutno nahradit vlastními databázovými přístupy.
3. Auth provider — STŘEDNÍ provázanost
Ověřený fakt — AuthContext.jsx volá Base44 pro ověření session:
// Odvozeno (přesný kód AuthContext.jsx nebyl čten, ale pattern je viditelný z App.jsx)
const { isLoadingAuth, authError } = useAuth();
Base44 auth se stará o admin přihlášení. Klientský OTP auth je vlastní implementace (přenositelná).
4. Scheduler — VYSOKÁ provázanost
Ověřený fakt — reminderDispatcher je spouštěn Base44 automation každých 5 minut. Toto není konfigurovatelné zvenčí, jde o proprietární funkci platformy.
5. Secrets — NÍZKÁ provázanost
Ověřený fakt — secrets (RESEND_API_KEY) jsou dostupné přes Deno.env.get(). Při migraci stačí nastavit stejné environment variables v novém prostředí.
Matice provázanosti
| Oblast | Provázanost | Složitost migrace |
|---|---|---|
| Databázové dotazy (entity SDK) | Kritická — všude | Vysoká — nutno přepsat na API volání |
| Backend funkce (Deno) | Střední — logika přenositelná | Střední — logika ok, runtime nutno nahradit |
| Admin autentizace | Střední | Střední — nutno implementovat vlastní JWT/session |
| Klient OTP auth | Nízká — vlastní kód | Nízká — přenositelné |
| Scheduler | Střední | Nízká — nahradí cron job nebo queue |
| MS Outlook connector | Nízká — standard OAuth | Nízká — OAuth je standardní |
| Stripe | Nízká | Nízká — přímá integrace bez Base44 vrstvy |
| Build / deploy | Nízká | Nízká — standardní Vite SPA |
| E-mail (Resend) | Nízká — přímé fetch volání | Minimální |
Co lze přenést bez změn
Ověřený fakt — přenositelné kusy:
- Veškerý UI kód (React komponenty, Tailwind, shadcn/ui)
- Logika výpočtu volných slotů (
CalendarUtils.js, backend slot logic) - Logika storno politiky s vrácením kreditu/balíčku
- Notifikační šablony a proměnné
- ICS generátor (kalendářní pozvánky)
- OTP autentizační flow klientů
- Datový model (entity schémata → SQL/NoSQL schémata)
- Routing struktura (react-router-dom)
Co je nutno přepsat nebo nahradit
| Co | Proč | Odhadovaná složitost |
|---|---|---|
base44.entities.* → vlastní API klient |
Base44 proprietární SDK | Vysoká (mnoho callsites) |
base44.functions.invoke() → vlastní HTTP fetch |
Přímé volání vlastního API | Střední |
Admin auth (AuthContext) → JWT/OAuth |
Base44 session management | Střední |
| Deno.serve() handlery → vlastní framework | Změna runtime (Node/PHP/Go) | Nízká (logika přenositelná) |
| Base44 scheduler → cron/queue | Proprietární automation | Nízká |
@base44/vite-plugin → odstranit |
Pravděpodobně Base44-specific plugin | Nízká |