Skip to content

6. Analýza závislosti na Base44

Přehled provázanosti

Base44 plní v aplikaci tři role najednou:

  1. Databáze — NoSQL entity store s REST + real-time SDK
  2. Backend runtime — serverless Deno funkce
  3. Auth provider — admin session management
  4. Scheduler — plánované spouštění funkcí (reminderDispatcher každých 5 min)
  5. Secrets managerRESEND_API_KEY a MS OAuth token
  6. OAuth connector — MS Outlook připojení

Co je specifické pro Base44

1. SDK v celé aplikaci — VYSOKÁ provázanost

Ověřený faktbase44Client.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ý faktAuthContext.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ý faktreminderDispatcher 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á