El bug está en toRow() en process-repo.ts, no en el ImportPage:
Some checks failed
/ Deploy to Cloudflare Pages (push) Has been cancelled

typescript// toRow() en process-repo.ts — líneas 4-24
// NUNCA incluye org_id en el payload del upsert
const row = {
  id: process.id,
  name: process.name,
  // ... otros campos
  // ← org_id ausente completamente
}
La cadena completa del fallo:

ImportPage.tsx sí tiene orgId: user!.orgId ?? null → el Process object tiene el valor correcto
process-repo.ts llama toRow() para construir el payload de Supabase
toRow() nunca pone org_id en el payload → Supabase recibe org_id = null (default)
La RLS chequea org_id = current_org() → null ≠ '2a956076-...' → 403
El error propaga y sale como toast genérico de archivo dañado

Esto pasó desapercibido hasta ahora porque platform_admin tiene is_platform_admin() que bypasea la verificación de org_id. La inserción con org_id = null le funciona a admins, nunca a client_editor.
El fix es quirúrgico: agregar una sola línea en toRow():
typescriptorg_id: process.orgId ?? null,
Eso es todo. Una línea en process-repo.ts. La restricción "no tocar process-repo.ts" de Etapa 5 era por razón equivocada (asumíamos que el repo no necesitaba cambios) — este es un bug que impide que Etapa 5 funcione en absoluto.
This commit is contained in:
2026-07-08 11:46:29 -03:00
parent 3044342ac1
commit fdbdc42470

View File

@@ -14,6 +14,7 @@ function toRow(process: Process, userId: string) {
automation_investment: process.automationInvestment,
group_id: process.groupId,
area_id: process.areaId,
org_id: process.orgId ?? null,
tags: process.tags,
// owner_id se preserva del valor existente en el proceso; solo se inicializa con userId en creates
owner_id: process.ownerId || userId,