Rastrum

Consola

Superficie de acciones privilegiadas para roles de admin, moderador y experto. Modelo de roles, auditoría y runbooks por acción.

Si no ves la píldora Consola en el encabezado, esta página todavía no aplica para ti — cada superficie privilegiada está protegida por una concesión de rol explícita.

# Para quién es

Admins

Gestionan roles de usuario, revisan credenciales de investigador, monitorean fallos de sincronización y cuotas de API, y auditan cada acción privilegiada.

Moderadores

Atienden contenido reportado, gestionan la cola de apelaciones y aplican suspensiones suaves con bitácora auditable.

Expertos

Revisan la cola de validación filtrada por sus taxa y monitorean su puntaje de experiencia por taxón.

# Qué incluye

La consola vive en /consola/ y agrupa 36+ pestañas por rol. La barra lateral y las píldoras son proyecciones de una sola fuente console-tabs.ts: agregar una nueva superficie es una entrada, no una ruta hecha a mano.

Pestañas de admin

Resumen, Usuarios, Roles, Credenciales, Bitácora, Cuotas de API, Fallos de sync, Ejecuciones de cron, Feature flags, Bans, Karma, Anomalías, Forense, Errores, Salud, Webhooks, Propuestas, más siete navegadores de entidades de solo lectura (Identificaciones, Notificaciones, Medios, Seguimientos, Listas, Proyectos, Cambios de taxón).

Pestañas de moderador

Resumen, Cola de reportes, Triaje de comentarios, Apelaciones.

Pestañas de experto

Resumen, Puntaje de experiencia, Cola de validación, Solicitar insignia de experto.

# Cómo funcionan los privilegios

Despachador del lado del servidor

Cada escritura privilegiada pasa por la Edge Function supabase/functions/admin/. El despachador reverifica el JWT, exige el rol requerido, ejecuta el handler e inserta un registro admin_audit en la misma transacción. Los navegadores nunca escriben directo a las tablas privilegiadas.

Predicado RLS: has_role(uid, role)

Todas las filas con privilegio usan has_role(), no flags desnormalizados como users.is_expert. Los roles también pueden tener vencimiento (expires_at) y revocarse automáticamente cada noche.

Regla de dos personas

Las acciones irreversibles pueden requerir aprobación de un segundo admin a través de admin_action_proposals. El despachador hace cumplir la regla cuando el feature flag está activo; las propuestas pendientes vencen cada hora.

# Observabilidad y forense

Anomalías

El cron horario detect_admin_anomalies() marca acciones fuera de horario (zona horaria por admin), concesiones masivas y patrones inusuales de escritura.

Resumen de salud

El snapshot semanal compute_admin_health_digest() alimenta la tarjeta principal en /consola/health/ con píldoras direccionales Δ y sparklines de 12 semanas.

Errores de funciones

Sumidero estructurado function_errors conectado al despachador. /consola/errors/ ofrece píldoras coloreadas por severidad, filtros por URL y reconocimiento individual o en lote.

Webhooks

Firmado HMAC-SHA256 saliente, vista detallada de entregas por webhook, replay con un clic y protección contra reenvío basada en nonce.

# Referencias

Módulo 24 — Consola admin — referencia de implementación

Runbook — Bootstrap de admin — primer admin / concesiones de rol

Runbook — Modelo de roles — concesiones admin / moderador / experto

Runbook — Bitácora de auditoría — consultando admin_audit

Runbook — Operación por acción — qué hace cada pestaña en el día a día

Runbook — Navegadores de entidades — plantilla paginada compartida

Doc de diseño — Consola admin — racional e historia

Reportar un problema

Mostrar diagnósticos

Entorno

 

Errores de consola

 

Peticiones fallidas