Skip to main content
Esta página es parte de una habilidad de agente de codificación con IA y está escrita para agentes, no para humanos. Para la documentación de Base44 legible por humanos, consulta la documentación para desarrolladores.

Configuración del cliente

Cómo crear y configurar el cliente de Base44.

Contenido

En apps generadas por Base44

Dentro de una app de Base44, el cliente se crea y configura automáticamente. Impórtalo desde @/api/base44Client y úsalo como base44:
const tasks = await base44.entities.Task.list();

En apps externas

Al usar Base44 como backend desde una app externa, instala el SDK y crea un cliente llamando a createClient() directamente:
npm install @base44/sdk
import { createClient } from "@base44/sdk";

// IMPORTANTE: El nombre del parámetro es 'appId' (NO 'clientId', NO 'id')
// IMPORTANTE: onError debe estar anidado dentro del objeto 'options'
const base44 = createClient({
  appId: "your-app-id",          // Requerido: Usa el parámetro 'appId'
  token: "optional-user-token",  // Opcional: para solicitudes preautenticadas
  options: {                      // Opcional: opciones de configuración
    onError: (error) => {         // Opcional: manejador de errores (debe estar en options)
      console.error("Base44 error:", error);
    }
  }
});
Errores comunes:
  • createClient({ clientId: "..." }) - Nombre de parámetro INCORRECTO
  • createClient({ id: "..." }) - Nombre de parámetro INCORRECTO
  • createClient({ appId: "...", onError: ... }) - INCORRECTO: onError debe estar en options
  • createClient({ appId: "..." }) - Nombre de parámetro CORRECTO
  • createClient({ appId: "...", options: { onError: ... } }) - CORRECTO: onError en options

En funciones de backend

createClientFromRequest() está diseñado para funciones de backend alojadas en Base44. Extrae la autenticación de las cabeceras de solicitud que Base44 inyecta y devuelve un cliente que incluye acceso de rol de servicio (base44.asServiceRole). Para frontends y backends externos, usa createClient() en su lugar.
import { createClientFromRequest } from "@base44/sdk";

Deno.serve(async (req) => {
  const base44 = createClientFromRequest(req);
  
  // El cliente hereda la autenticación de la solicitud
  const user = await base44.auth.me();
  
  return Response.json({ user });
});

Modos de autenticación

ModoCómo obtenerloPermisos
AnónimocreateClient({ appId }) sin tokenSolo datos públicos
UsuarioDespués de loginViaEmailPassword() o mediante createClientFromRequestDatos propios del usuario
Rol de serviciobase44.asServiceRole.* en backendAcceso completo de administrador

Modo anónimo

Sin autenticación. Solo puede acceder a recursos públicos.
const base44 = createClient({ appId: "your-app-id" });

// Solo funciona si la entidad Task permite lectura anónima
const publicTasks = await base44.entities.Task.list();

Modo usuario

Después de que el usuario inicia sesión, el cliente incluye automáticamente su token.
const base44 = createClient({ appId: "your-app-id" });

// El inicio de sesión establece el token
await base44.auth.loginViaEmailPassword("user@example.com", "password");

// Las solicitudes posteriores están autenticadas
const user = await base44.auth.me();
const myTasks = await base44.entities.Task.list();  // filtrado por permisos

Modo rol de servicio

Acceso de nivel administrador. Solo backend.
// Dentro de una función de backend
Deno.serve(async (req) => {
  const base44 = createClientFromRequest(req);
  
  // Modo usuario - respeta permisos
  const myTasks = await base44.entities.Task.list();
  
  // Rol de servicio - evita permisos
  const allTasks = await base44.asServiceRole.entities.Task.list();
  const allUsers = await base44.asServiceRole.entities.User.list();
  const oauthToken = await base44.asServiceRole.connectors.getAccessToken("slack");
  
  return Response.json({ myTasks, allTasks });
});

Módulos disponibles

El cliente expone estos módulos:
base44.agents        // Conversaciones de IA
base44.analytics     // Rastreo de eventos
base44.appLogs       // Registro de uso de app
base44.auth          // Autenticación
base44.connectors    // Flujos OAuth por usuario (UserConnectorsModule)
base44.entities      // Operaciones CRUD
base44.functions     // Invocación de funciones de backend
base44.integrations  // Servicios de terceros
base44.users         // Invitaciones de usuario

// Solo rol de servicio (backend)
base44.asServiceRole.agents
base44.asServiceRole.appLogs
base44.asServiceRole.connectors  // Tokens OAuth con ámbito de app (ConnectorsModule)
base44.asServiceRole.entities
base44.asServiceRole.functions
base44.asServiceRole.integrations
base44.asServiceRole.sso         // Generación de tokens SSO

Métodos del cliente

El cliente proporciona estos métodos:
// Establecer el token de autenticación para todas las solicitudes posteriores
base44.setToken(newToken);

// Limpiar conexiones WebSocket (llama cuando termines con el cliente)
base44.cleanup();

setToken

Actualiza el token de autenticación para todas las solicitudes API posteriores y conexiones WebSocket.
// Después de recibir un token (por ejemplo, de autenticación externa)
base44.setToken("new-jwt-token");

cleanup

Desconecta las conexiones WebSocket. Llama cuando termines con el cliente o cuando el componente se desmonte.
// Limpieza al desmontar componente (ejemplo React)
useEffect(() => {
  return () => base44.cleanup();
}, []);

Opciones de configuración del cliente

createClient({
  appId: "your-app-id",      // Requerido: DEBE usar 'appId' (no 'clientId' o 'id')
  token: "jwt-token",        // Opcional: token de autenticación preestablecido
  options: {                 // Opcional: opciones de configuración
    onError: (error) => {}   // Opcional: manejador de errores global (debe estar en options)
  }
});
⚠️ Crítico:
  • El nombre del parámetro es appId, no clientId o id. Usar el nombre de parámetro incorrecto causará errores.
  • El manejador onError debe estar anidado dentro del objeto options, no en el nivel superior.

Definiciones de tipos

CreateClientConfig

/** Configuración para crear un cliente de Base44. */
interface CreateClientConfig {
  /** El ID de app de Base44 (requerido). */
  appId: string;
  /** Token de autenticación de usuario. Se usa para autenticar como un usuario específico. */
  token?: string;
  /** @internal Token de rol de servicio; solo se establece automáticamente en funciones de backend alojadas en Base44. */
  serviceToken?: string;
  /** Opciones adicionales del cliente. */
  options?: CreateClientOptions;
}

/** Opciones para crear un cliente de Base44. */
interface CreateClientOptions {
  /** Manejador de errores opcional llamado cuando ocurre un error de API. */
  onError?: (error: Error) => void;
}

Base44Client

/** La instancia del cliente de Base44. */
interface Base44Client {
  /** Módulo Agents para gestionar conversaciones de agente de IA. */
  agents: AgentsModule;
  /** Módulo Analytics para rastrear eventos personalizados. */
  analytics: AnalyticsModule;
  /** Módulo App logs para rastrear el uso de la app. */
  appLogs: AppLogsModule;
  /** Módulo Auth para autenticación y gestión de usuarios. */
  auth: AuthModule;
  /** Módulo Entities para operaciones CRUD en tus modelos de datos. */
  entities: EntitiesModule;
  /** Módulo Functions para invocar funciones de backend personalizadas. */
  functions: FunctionsModule;
  /** Módulo Integrations para llamar a métodos de integración prediseñados. */
  integrations: IntegrationsModule;

  /** Función de limpieza para desconectar conexiones WebSocket. */
  cleanup(): void;

  /** Establece un nuevo token de autenticación para todas las solicitudes posteriores. */
  setToken(newToken: string): void;

  /** Flujos OAuth por usuario. Cada usuario final tiene su propia conexión. */
  connectors: UserConnectorsModule;

  /** Proporciona acceso a módulos con permisos elevados de rol de servicio (solo backend). */
  readonly asServiceRole: {
    agents: AgentsModule;
    appLogs: AppLogsModule;
    /** Tokens OAuth con ámbito de app. Todos los usuarios comparten la misma cuenta conectada. */
    connectors: ConnectorsModule;
    entities: EntitiesModule;
    functions: FunctionsModule;
    integrations: IntegrationsModule;
    /** Generación de token SSO para usuarios. */
    sso: SsoModule;
    cleanup(): void;
  };
}
Esta página fue traducida usando IA. Para obtener la información más precisa y actualizada, consulta la versión en inglés.