Modelo de datos (schema overview)
Resumen
Neon Postgres 16 centraliza identidad (Folks), portal (Desk) y metadatos Splora/Kalista. Migraciones Alembic en apps/folks/alembic/ y SQL en Splora.
folks_users
- PK
idUUID,username,emailcifrado,tier,user_code,kal_crypto_version. - Soft delete:
deleted_at. - OAuth: tabla
linked_providers,oauth_credentialscon refresh cifrado.
Sesiones
refresh_tokens: opaque hash, user_id, expiración, user agent metadata.
Desk
| Tabla | Rol |
|---|---|
desk_support_tickets |
Tickets + status/category/product |
desk_support_replies |
Hilos |
desk_community_posts |
Comunidad |
desk_wiki_pages |
slug, title, body_md, section, published |
desk_wiki_revisions |
Historial ediciones staff |
desk_wiki_redirects |
Slug renames (0010) |
desk_audit_log |
Acciones staff |
Kalista
Metadatos en Postgres compartido: drive_folder_id, staging pointers — no transacciones plaintext.
Splora
Tablas splora_tokens, splora_rules, event storage según migraciones 001–003.
Convenciones Alembic
Revisiones numeradas 0001, 0002, … en Folks. Desk migrations embebidas o en mismo chain según deploy.