Invariantes
Once reglas que impone la base de datos, haga lo que haga la aplicación o un agente.
Estas reglas se imponen en Postgres, no solo en la interfaz. Cada una tiene una prueba que intenta romperla y comprueba que la escritura se rechaza.
| # | Regla, en lenguaje sencillo | Cómo se impone |
|---|---|---|
| 1 | Solo la tienda puede cambiar el estado de facturación, la gama, el complemento de IA o el fin de periodo de un módulo. | Esas columnas solo pueden escribirse con el rol de servicio; los propietarios solo pueden cambiar enabled. |
| 2 | Los módulos nuevos empiezan bloqueados, y un módulo bloqueado no puede activarse. | Valor predeterminado de la columna más un disparador de protección sobre los módulos del espacio de trabajo. |
| 3 | Un módulo que está bloqueado, desactivado o en none para ti no muestra ninguna fila. | Un ayudante de acceso (so_can_access) en cada política de lectura. |
| 4 | Aprobar, lanzar o abortar una misión exige publish. Quien aprueba y quien lanza quedan siempre registrados como la persona que lo hace, y un lanzamiento necesita antes una aprobación. | Disparador de protección de las misiones. |
| 5 | No hay lanzamiento con una unidad inmovilizada, una reserva de batería por debajo de 20 % o una altitud por encima de 120 m sin una exención. | Restricciones de comprobación más el disparador de protección de las misiones. |
| 6 | Las órdenes al vehículo exigen publish en Flota, se registran a nombre de quien llama y los agentes nunca pueden enviarlas. | Política de inserción que fija issued_by en quien llama, más el tope de los agentes. |
| 7 | Devolver una unidad al servicio exige publish en Mantenimiento y debe hacerlo alguien distinto del técnico que hizo el trabajo. | Disparador de protección de las órdenes de trabajo (cuatro ojos). |
| 8 | Los registros de vuelo son de solo adición: nadie puede editar ni borrar uno después de escribirlo. | No hay concesiones de inserción, actualización ni borrado para los usuarios que han iniciado sesión; los escribe el sistema. |
| 9 | Solo puedes marcar tus notificaciones como leídas; no puedes reescribirlas. | Concesión a nivel de columna solo sobre read_at. |
| 10 | Las entradas de auditoría se escriben siempre como quien llama; nadie puede falsificar una en nombre de otra persona, de un agente o del sistema. | Política de inserción. |
| 11 | Solo los propietarios y los administradores cambian el acceso a los módulos, y los agentes nunca pasan de edit. | Políticas más un disparador de protección del acceso a los módulos. |
Los límites de la regla 5 vienen del paquete de reglas compartido (LIMITS). Son valores predeterminados, no asesoramiento legal; comprueba la normativa de tu país.
Consulta también Seguridad.