Saltearse al contenido

Supabase

Este modulo proporciona integracion completa con Supabase a traves de sus APIs: Database (PostgREST) para operaciones CRUD con filtros avanzados, Storage para gestion de archivos (subir, descargar, listar, eliminar, URLs firmadas), Auth (GoTrue Admin) para administracion de usuarios (CRUD, invitaciones) y Edge Functions para invocar funciones serverless Deno.

Para la base de datos, los filtros se convierten automaticamente al formato PostgREST (column=op.value). Las operaciones UPDATE y DELETE requieren filtros obligatoriamente para proteger los datos. Las operaciones de Auth y Storage requieren la clave service_role.

ParametroTipoRequeridoDescripcion
credentials_idcredentialsSiCredencial Supabase (Project URL + API Keys)
operationtextSiOperacion: selectRows, insertRows, updateRows, deleteRows, rpc, storageUpload, storageDownload, storageList, storageDelete, authListUsers, authGetUser, authCreateUser, authUpdateUser, authDeleteUser, authInvite, invokeFunction
tabletextCondicionalNombre de la tabla o vista (operaciones DB)
selecttextNoColumnas a retornar (default: *). Soporta relaciones: *,posts(id,title)
filtersjsonCondicionalArray de filtros: [{column, op, value}]. Operadores: eq, neq, gt, gte, lt, lte, like, ilike, is, in, cs, cd, not
datajsonCondicionalDatos a insertar/actualizar
order_bytextNoColumna para ordenar
order_dirselectNoDireccion: asc, desc
limitnumberNoLimite de registros (default: 100)
offsetnumberNoDesplazamiento para paginacion
singlebooleanNoRetornar un solo registro como objeto
on_conflicttextNoColumna(s) para upsert
function_nametextCondicionalNombre de la funcion PostgreSQL o Edge Function
buckettextCondicionalNombre del bucket de Storage
pathtextCondicionalRuta del archivo en Storage
user_idtextCondicionalUUID del usuario (operaciones Auth)

Tipo de servicio: supabase. Se almacenan en la tabla servicecredentials.

Campos de configuracion:

  • projectUrl: URL del proyecto Supabase (ej: https://xxxx.supabase.co)
  • anonKey: Clave anonima del proyecto (para lectura publica)
  • serviceRoleKey: Clave de service_role (para operaciones admin, Auth, Storage)
{
"nextModule": null,
"data": [
{
"id": 1,
"name": "Juan Garcia",
"email": "juan@ejemplo.com",
"status": "active"
}
],
"_meta_": {
"operation": "selectRows",
"recordCount": 1,
"executionTime": "85ms"
}
}
{
"credentials_id": 1,
"operation": "selectRows",
"table": "customers",
"select": "id,name,email",
"filters": [{"column": "status", "op": "eq", "value": "active"}],
"order_by": "created_at",
"order_dir": "desc",
"limit": 50
}
{
"credentials_id": 1,
"operation": "insertRows",
"table": "orders",
"data": {"customer_id": 1, "total": 99.99, "status": "pending"}
}
  • Supabase PostgREST API: /rest/v1/
  • Supabase Storage API: /storage/v1/
  • Supabase Auth (GoTrue) API: /auth/v1/
  • Supabase Edge Functions: /functions/v1/
  • Documentacion: https://supabase.com/docs
  • Las operaciones UPDATE y DELETE requieren filtros obligatoriamente para evitar modificar/borrar toda la tabla
  • El operador “in” acepta arrays que se convierten automaticamente a formato PostgREST: (val1,val2)
  • El modo upsert se activa con on_conflict y usa la cabecera Prefer: resolution=merge-duplicates
  • El modo single retorna un objeto en vez de array (error 406 si hay mas de 1 resultado)
  • Storage detecta automaticamente el content-type por extension si no se especifica
  • Las URLs firmadas de Storage expiran segun el parametro expires_in (default: 3600 segundos)
  • Las operaciones de Auth requieren la clave service_role (no funcionan con anonKey)
  • Los Edge Functions se invocan con timeout extendido de 60 segundos
  • El timeout general de operaciones es de 30 segundos (120 para upload/download de Storage)
  • Airtable - Gestion de bases de datos Airtable
  • AWS S3 - Almacenamiento de archivos en Amazon S3