OdooWiki OCA HUB

SQL Request Abstract

sql_request_abstract folder_open OCA/reporting-engine open_in_new
Tools Licencia: AGPL-3

Este módulo proporciona un modelo abstracto para gestionar solicitudes SQL Select en la base de datos. No es útil por sí mismo. Puedes ver un ejemplo de implementación en el módulo 'sql_export'. (mismo repositorio).

Funcionalidades implementadas

  • Añadir algunas restricciones en la solicitud sql:
  • solo puedes leer datos. No es posible actualizar, eliminar ni crear.
  • algunas tablas no están permitidas, porque podrían contener contraseñas o claves en claro. Por el momento ('ir_config_parameter').
  • La solicitud puede estar en estado 'draft' o 'SQL Valid'. Para ser válida, la solicitud debe ser limpiada, comprobada y probada. Todas estas operaciones pueden desactivarse en los módulos heredados.
  • Este módulo añade dos nuevos grupos:
  • SQL Request / User : Puede ver todas las solicitudes sql por defecto y ejecutarlas, si son válidas.
  • SQL Request / Manager : tiene acceso completo a las solicitudes sql.

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 19.0

Proporciona los bloques de construcción compartidos que utilizan otros módulos para almacenar, verificar y ejecutar de forma segura consultas SQL de solo lectura en Odoo. Añade una categoría de seguridad SQL Request con los grupos User y Manager y un formulario donde se puede escribir, validar y previsualizar una consulta.

Este es un módulo de base técnica: no añade su propio menú, pero define la pantalla y las reglas que reutilizan los módulos construidos sobre él (como las herramientas de exportación SQL).

En el formulario, los usuarios obtienen un nombre, una nota, un editor de consultas SQL con resaltado de sintaxis PostgreSQL y una barra de estado con los estados Draft y SQL Valid. Los managers ven tres botones: Validate SQL Expression, Preview Results y Set to Draft. La validación limpia la consulta (elimina los puntos y coma finales), rechaza palabras prohibidas como delete, drop, insert, alter, truncate, execute, create, update e ir_config_parameter, y luego intenta ejecutar la consulta dentro de un savepoint que se revierte después. Preview ejecuta la consulta y muestra las primeras 100 líneas de resultado.

Una consulta en Draft no se puede ejecutar. El acceso se puede limitar a grupos permitidos y usuarios permitidos específicos, y un indicador técnico registra cuándo cambian esos grupos. Una consulta puede ejecutarse opcionalmente contra una base de datos externa, pero solo si el archivo de configuración de Odoo define una; de lo contrario, se genera un error de validación. Las vistas materializadas requieren PostgreSQL 9.3 o posterior.

La seguridad se gestiona mediante dos grupos, SQL Request / User (leer y ejecutar solicitudes válidas) y SQL Request / Manager (derechos completos de creación, edición y eliminación). El modelo hereda mail.thread, por lo que los registros mantienen un chatter.

Depende de

mail

Lo necesitan otros módulos

Modelos y campos (1)
  • sql.request.mixin · modelo nuevoname, note, query, state, user_ids (Allowed Users), group_ids (Allowed Groups), has_group_changed, use_external_database

Texto generado por IA (DeepSeek) al leer el código de la versión 19.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 8 confirmadas, 1 sin información de 9 versiones.

Fuentes · Odoo 15.0

Confirmado el 2026-11-03 en la rama 15.0 de OCA/reporting-engine.

terminal Instalación y uso

Documentación de OCA · Odoo 19.0

Para configurar el uso de una base de datos externa, debe editar el archivo de configuración principal de su instancia y añadir la configuración de la base de datos externa con las siguientes claves: * external_db_user * external_db_password * external_db_name * external_db_host * external_db_port

Hereda el modelo:

from odoo import models

class MyModel(models.model)
    _name = 'my.model'
    _inherit = ['sql.request.mixin']

    _sql_request_groups_relation = 'my_model_groups_rel'

    _sql_request_users_relation = 'my_model_users_rel'

Ver implementaciones en los módulos bi_sql_editor y sql_export. (mismo repositorio OCA/reporting-engine)

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.