template-saas/docs/02-integraciones/INT-005-storage.md
rckrdmrd 50a821a415
Some checks failed
CI / Backend CI (push) Has been cancelled
CI / Frontend CI (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / CI Summary (push) Has been cancelled
[SIMCO-V38] feat: Actualizar a SIMCO v3.8.0
- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8
- Actualizaciones de configuracion

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 08:53:08 -06:00

3.3 KiB

id title type status priority provider category multi_tenant version created_date updated_date
INT-005 Integracion Storage Providers Integration Implemented P1 S3/R2/MinIO Storage true 1.0.0 2026-01-07 2026-01-10

INT-005: Storage Integration

Metadata

Campo Valor
Codigo INT-005
Proveedor AWS S3, Cloudflare R2, MinIO
Tipo Storage
Estado Implementado
Multi-tenant Si
Fecha integracion 2026-01-10

Documentacion completa: Ver SAAS-011-storage.md

Resumen

Integracion multi-proveedor para almacenamiento de archivos.

Proveedores Soportados

  • AWS S3
  • Cloudflare R2
  • MinIO (self-hosted)

Caracteristicas

  • Upload directo con URLs pre-firmadas
  • Cuotas de almacenamiento por plan
  • Tipos MIME permitidos configurables
  • Metadata de archivos en base de datos

Configuracion

# AWS S3
STORAGE_PROVIDER=s3
AWS_S3_BUCKET=my-bucket
AWS_S3_REGION=us-east-1
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...

# Cloudflare R2
STORAGE_PROVIDER=r2
R2_ACCOUNT_ID=...
R2_ACCESS_KEY_ID=...
R2_SECRET_ACCESS_KEY=...
R2_BUCKET=my-bucket

# MinIO
STORAGE_PROVIDER=minio
MINIO_ENDPOINT=localhost:9000
MINIO_ACCESS_KEY=...
MINIO_SECRET_KEY=...
MINIO_BUCKET=my-bucket

Rate Limits

Limite Valor Accion si excede
Requests/seg 3500 (S3 PUT), 5500 (S3 GET) Retry con backoff exponencial
Tamanio archivo Segun plan del tenant Rechazar upload

Manejo de Errores

Codigo Descripcion Accion
400 Bad Request Log + no retry
401 Unauthorized Renovar credenciales
403 Forbidden Verificar permisos bucket
429 Rate Limited Backoff exponencial
500 Server Error Retry con backoff

Fallbacks

Estrategia Storage Fallback

Escenario Estrategia
S3 no disponible Fallback automatico a R2
R2 no disponible Fallback a MinIO local
Todos fallan Encolar upload para retry posterior
Cuota excedida Rechazar con mensaje claro al usuario

Multi-region

  • Primary: us-east-1 (S3)
  • Failover: eu-west-1 (R2 o S3 EU)
  • Replicacion: Asincrona cada 5 minutos para archivos criticos

Configuracion Failover

const storageProviders = [
  { name: 's3', priority: 1, region: 'us-east-1' },
  { name: 'r2', priority: 2 },
  { name: 'minio', priority: 3, endpoint: 'localhost:9000' }
];

Circuit Breaker

  • Umbral apertura: 3 fallos consecutivos
  • Timeout semi-abierto: 30 segundos
  • Fallback: Siguiente provider en prioridad

Multi-tenant

  • Credenciales: Por tenant (cada tenant puede tener su propio bucket/proveedor)
  • Configuracion: Por tenant via tenant_config
  • Aislamiento: Prefijo tenant_id en todas las operaciones (path: /{tenant_id}/...)

Testing

Sandbox/Test Mode

  • MinIO local para desarrollo
  • Buckets de prueba separados de produccion
  • Fixtures disponibles para testing unitario

Monitoreo

Metrica Descripcion Alerta
Latencia Tiempo de respuesta >2s
Errores Tasa de errores >1%
Disponibilidad Uptime del servicio <99.9%

Referencias

  • Modulo relacionado: SAAS-011-storage.md

Ultima actualizacion: 2026-01-10 Version: 1.0.0