Documentation Index
Fetch the complete documentation index at: https://wiki.vivla.com/llms.txt
Use this file to discover all available pages before exploring further.
Cloudinary
Modulo de gestion de imagenes que proporciona upload, almacenamiento, transformacion y eliminacion via Cloudinary SDK.
Configuracion
| Variable de entorno | Requerida | Descripcion |
|---|
CLOUDINARY_CLOUD_NAME | Si | Nombre del cloud |
CLOUDINARY_API_KEY | Si | API key |
CLOUDINARY_API_SECRET | Si | API secret |
Servicio
CloudinaryService expone los siguientes metodos:
Upload
| Metodo | Descripcion |
|---|
uploadImage(file, folder, publicId?) | Upload de buffer a carpeta especifica |
uploadFromUrl(url, folder, publicId?) | Download + upload desde URL (crop 200x200 para avatars) |
generateSignedUploadUrl(folder) | URL firmada para upload desde cliente |
Consulta
| Metodo | Descripcion |
|---|
getOptimizedUrl(publicId, transformation?) | URL optimizada con transformaciones |
getImageDetails(publicId) | Metadata de imagen |
Eliminacion
| Metodo | Descripcion |
|---|
deleteImage(publicId) | Eliminar imagen |
deleteMultipleImages(publicIds) | Eliminacion en lote |
Uso por otros modulos
| Modulo | Uso | Endpoint |
|---|
| Surveys | Upload de imagenes para definiciones de encuestas | POST /surveys/upload-image (max 5MB) |
| Permissions | Upload de imagenes para modulos y grupos | Via FileInterceptor |
| Chat Users | Avatars de usuario (crop 200x200, face-focused) | Sync desde Firebase |
Las transformaciones se aplican via URL parameters:
interface CloudinaryTransformation {
width?: number
height?: number
crop?: string // 'fill', 'fit', 'thumb', etc.
gravity?: string // 'face', 'center', 'auto'
quality?: string // 'auto', number
format?: string // 'webp', 'jpg', 'png'
}
Estructura de modulo
apps/backend/src/shared/cloudinary/
cloudinary.module.ts # Standard module (not global)
cloudinary.service.ts # Cloudinary SDK wrapper