feat(db): Hito 2 — esquema y RLS de events + push_tokens (I-F-N05-01-01, I-F-N05-01-03, I-F-N06-01-01)#242
Merged
Merged
Conversation
…able (I-F-N05-01-01)
…igüedad (I-F-N06-01-01)
…h_tokens a los tipos
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resumen
Prepara la base de datos para el Hito 2 (MVP Calendario + Notificaciones Push):
completa el esquema de
eventsypush_tokenscon migraciones aditivas ycorrige las policies RLS de
eventsal modelo definitivo (manager own).Desbloquea la implementación del CRUD de eventos, la vista de calendario y el
registro de tokens push.
Cambios
events— migración aditiva (I-F-N05-01-01)event_colorcon la paleta de eventos de DESIGN.md:brown(reuniones) ·sea(formaciones) ·sage(externos) ·amber(urgente) ·parchment(cierre de temporada).all_day boolean default false,color_tag event_color default 'brown'.title1–200,description≤5000,location≤200.author_idpasa a nullable con FKON DELETE SET NULL: los eventoscorporativos se conservan si se elimina el perfil del autor.
events_color_tag_idx+ comentarios de semántica en columnas.events— RLS correctiva (I-F-N05-01-03)20260618400000_rls_events.sql, dondecualquier manager podía escribir sobre cualquier evento.
author_id = auth.uid(); UPDATE/DELETEsolo admin o propietario; eventos huérfanos (
author_idnull) solo admin.push_tokens— migración aditiva (I-F-N06-01-01)device_nameylast_seen_at+ índicepush_tokens_last_seen_idx,base para la purga de tokens con >60 días de inactividad.
Tipos
lib/database.types.tsactualizado (enumevent_colory columnas nuevas).Delta aplicado a mano siguiendo las convenciones del generador: esta versión
del CLI exige
supabase loginincluso paragen types --local. Tras login,regenerar para normalizar (debería producir el mismo contenido).
Decisiones aplicadas (cerradas el 2026-07-16 en Notion)
ON DELETE SET NULL)color_tagVerificación
supabase db reset: las 3 migraciones aplican sin errores sobre el histórico completo.supabase test db supabase/tests/rls/: 206 tests en 24 ficheros, todos en verde, incluidos:rls_events.sqlreescrito: 15 casos (positivo + negativo por operación y rol,suplantación de
author_id, eventos huérfanos).schema_events.sqlyschema_push_tokens.sqlnuevos (estructura, enum,defaults, constraint de longitud, regla
SET NULLde la FK).tsc --noEmit: limpio.Notas para el reviewer
db pusha producción, la migración RLS endurece permisos:si algún manager editaba eventos ajenos, dejará de poder. Es el comportamiento
decidido, pero conviene avisar antes del despliegue.
author_idnullable de la migración anterior.