Exportación y borrado de cuenta
Configura inventario de privacidad, exportaciones autenticadas, borrado diferido, limpieza de proveedores, seudonimización y cancelación.
Sincronizado con el commit
7d452a6. Revisa este flujo y la retención con asesoría legal antes de producción.
Inventario probado
src/config/account-data-policy.ts asigna a cada tabla: eliminar, seudonimizar, conservar o no personal, y si se exporta. Una prueba compara el inventario con src/db/schema.ts; añadir una tabla sin decisión de privacidad rompe el build.
Credenciales, hashes, sesiones, tokens y secretos TOTP nunca se exportan. Registros financieros, de auditoría, ledger y espacios compartidos pueden conservarse tras reemplazar identificadores.
Exportar
POST /api/account/data-export requiere autenticación, mismo origen, límite de frecuencia e Idempotency-Key. Devuelve 202 y encola el trabajo. Consulta GET /api/account/data-export/{requestUuid}.
Al terminar devuelve un manifiesto y enlaces firmados de cinco minutos. Los artefactos siguen privados y caducan a los siete días por defecto.
Borrar
POST /api/account/deletion exige además una sesión de menos de 15 minutos. El periodo de gracia predeterminado es siete días; se cancela con DELETE y se consulta con GET.
Se bloquea al último owner de una organización compartida o al último administrador con acceso completo. Tras la gracia, el worker revoca credenciales, cancela Stripe, elimina objetos del espacio personal, limpia registros eliminables y seudonimiza finanzas, reservas, créditos y auditoría conservados.
src/config/account-lifecycle.ts controla gracia, retención, sesión fresca, eliminación del cliente Stripe, blocklist y duración de URLs. Son valores técnicos, no asesoría legal.
Mantén almacenamiento privado y cron activos, implementa hooks para todo proveedor nuevo, actualiza la política al crear tablas y prueba todo el flujo con una cuenta desechable. No registres payloads ni URLs firmadas.