Lanzamiento de plpgsql_wrap 1.0
Toronto, Canadá – 19 de mayo de 2026
Utilidad wrap para PL/pgSQL de PostgreSQL
plpgsql_wrap es una extensión para PostgreSQL que permite ofuscar el código fuente PL/pgSQL, de modo que resulte ilegible para los usuarios, manteniendo al mismo tiempo su plena capacidad de ejecución dentro de la base de datos PostgreSQL. Su uso está orientado principalmente a la protección de propiedad intelectual y lógica de negocio sensible al compartir código con terceros. La herramienta ofrece una funcionalidad comparable a la función y utilidad WRAP de Oracle.
Se ha publicado plpgsql_wrap 1.0, la primera versión pública de la herramienta. Es compatible con versiones de PostgreSQL >= 12.
Los procedimientos almacenados pueden escribirse usando LANGUAGE plpgsql_wrap; el código fuente se valida y, posteriormente, se cifra directamente con AES-256-GCM en pg_proc.prosrc.
A partir de esto, los usuarios ya no pueden acceder al código fuente en texto plano de los procedimientos almacenados, salvo que dispongan de la clave de cifrado.
pg_dump tampoco expone el código en texto plano, y su salida puede restaurarse directamente. Se aceptan blobs previamente envueltos al momento de ejecutar CREATE.
Funciona igual que LANGUAGE plpgsql, con la única diferencia del nombre del lenguaje: plpgsql_wrap.
Ejemplo de uso:
CREATE OR REPLACE FUNCTION public.calculate_bonus(emp_id int, yr int) RETURNS numeric LANGUAGE plpgsql_wrap AS $$ DECLARE v_salary numeric; BEGIN SELECT salary INTO v_salary FROM employees WHERE id = emp_id; RETURN v_salary * 0.15; -- confidential formula END; $$; -- Calling, permissions, overloading, results - all identical to plpgsql: SELECT calculate_bonus(42, 2024);
En la tabla de catálogo pg_proc, el código está ofuscado:
SELECT substring(prosrc, 1, 50)||'...' AS wrapped_code FROM pg_proc WHERE proname = 'calculate_bonus'; wrapped_code ------------------------------------------------------- PLPGSQLWRAP:1:5752415001f5db365c6c185b66081ff0a23d... (1 line)
Esto también es lo que se mostrará en la salida de pg_dump.
La función plpgsql_wrap.unwrap_procedure() permite recuperar el código fuente en texto claro utilizando la clave de cifrado. Para más detalles, consulten la documentación.
Enlaces y créditos
plpgsql_wrap es un proyecto abierto. Se agradece cualquier contribución para mejorar la herramienta. Pueden enviar sus ideas, solicitudes de características o parches utilizando las herramientas de GitHub.
Enlaces :
- Documentación: https://github.com/hexacluster/plpgsql_wrap/
- Descarga: https://github.com/hexacluster/plpgsql_wrap/releases/
- Soporte de la comunidad: utilicen la herramienta para reportes de GitHub en https://github.com/hexacluster/plpgsql_wrap/issues
- Soporte comercial: póngasse en contacto con Hexacluster
Sobre plpgsql_wrap
El objetivo de esta extensión es ofrecer una función que permite ofuscar el código fuente en PL/pgSQL. Su uso principal es proteger la propiedad intelectual o la lógica de negocio sensible al momento de distribuir el código.
Este es un proyecto creado y mantenido por Gilles Darold en HexaCluster Corp.

