Desk Entrar

Historial de decisiones de arquitectura (ADR)

Documentación técnica Actualizado 24 jun 2026

Resumen

Registro de decisiones técnicas significativas del ecosistema zolski.net (Jun 2026). Formato: contexto → opciones → decisión → consecuencias.

ADR-001: Folks como IdP propio vs Auth0/Supabase Auth

Contexto: SSO multi-app en *.zolski.net. Opciones: delegar a Auth0; Supabase Auth; IdP propio. Decisión: Folks custom con JWT ES256 y cookies .zolski.net. Consecuencias: control total de tiers y OAuth linking; costo de mantener auth in-house.

ADR-002: .kal v3pin vs v3 (password Folks)

Contexto: vault cifrado con password implica pérdida al reset Folks. Decisión: v3pin — PIN aleatorio 6 chars, Argon2id browser-only. Consecuencias: UX de PIN extra; zero-knowledge real; migración obligatoria v3→v3pin.

ADR-003: Client-side render dashboard vs SSR processed/

Contexto: plaintext en processed/{id}.json en Railway. Decisión: KAL_V3_CLIENT_RENDER=1 — historial solo en RAM del browser. Consecuencias: menor superficie server; más lógica crypto en frontend.

ADR-004: Tier admin como valor vs flag is_admin

Decisión: admin es un tier más en la jerarquía (rank 4), no columna booleana separada. Consecuencias: un solo modelo para permisos; can_actor_modify_target uniforme.

ADR-005: Soft delete usuarios y tickets

Decisión: deleted_at timestamp en lugar de DELETE físico inmediato. Consecuencias: auditoría y recuperación; queries filtran deleted_at IS NULL.

ADR-006: CodeMirror 6 vs alternativas (wiki editor)

Decisión: CodeMirror 6 vendored + marked.js + DOMPurify para editor híbrido Desk. Consecuencias: bundle controlado; paridad server/client documentada.

ADR-007: Vendoring vs CDN

Decisión: dependencias frontend críticas (marked, DOMPurify, CodeMirror) en /static/vendor/. Consecuencias: builds reproducibles; sin SPOF CDN en prod.

ADR-008: Railway/Neon vs self-hosted

Estado: pendiente evaluación 2026 H2. Contexto: costos Railway + Neon vs VPS propio. Decisión actual: mantener Railway compute + Neon Postgres + Cloudflare edge.

Ver también