{"id":19417,"date":"2026-09-17T23:04:19","date_gmt":"2026-09-17T21:04:19","guid":{"rendered":"https:\/\/hopla.tech\/?p=19417"},"modified":"2026-09-17T23:04:20","modified_gmt":"2026-09-17T21:04:20","slug":"rls-postgresql-aplicaciones-multi-tenant","status":"publish","type":"post","link":"https:\/\/hopla.tech\/en\/rls-postgresql-aplicaciones-multi-tenant\/","title":{"rendered":"RLS en PostgreSQL para aplicaciones multi-tenant: c\u00f3mo aislar los datos de cada cliente"},"content":{"rendered":"<p class=\"wp-block-paragraph\">En una aplicaci\u00f3n multi-tenant, varios clientes comparten una misma plataforma, pero sus datos deben permanecer estrictamente aislados. Esta separaci\u00f3n no puede depender solo de la l\u00f3gica de la aplicaci\u00f3n. Cuando una consulta se construye de forma incorrecta, un filtro se omite o un servicio reutiliza credenciales con demasiados privilegios, el riesgo de exposici\u00f3n entre clientes aumenta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Row Level Security, o RLS, permite reforzar ese aislamiento directamente en PostgreSQL. Su objetivo es controlar qu\u00e9 filas puede consultar, insertar, actualizar o eliminar cada usuario, rol o cliente, aplicando pol\u00edticas en la propia base de datos. De este modo, la seguridad se acerca al dato y no queda limitada al c\u00f3digo de la aplicaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En entornos empresariales, RLS en PostgreSQL resulta especialmente relevante para plataformas SaaS, portales B2B, soluciones internas compartidas y arquitecturas donde diferentes unidades, clientes o grupos deben operar sobre una misma base de datos sin acceder a informaci\u00f3n que no les corresponde.<\/p>\n\n\n\n<h2 id=\"h-que-es-rls-en-postgresql-y-por-que-encaja-en-arquitecturas-multi-tenant\" class=\"wp-block-heading\"><strong>Qu\u00e9 es RLS en PostgreSQL y por qu\u00e9 encaja en arquitecturas multi-tenant<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">RLS es un mecanismo de seguridad a nivel de fila. A diferencia de los permisos tradicionales, que suelen controlar el acceso a tablas, esquemas o funciones, RLS permite aplicar una condici\u00f3n sobre cada fila de una tabla. Si una fila no cumple la pol\u00edtica definida para el rol que ejecuta la consulta, PostgreSQL la excluye de la operaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En una arquitectura multi-tenant, esta capacidad permite asociar cada registro a un identificador de cliente, organizaci\u00f3n o tenant. Despu\u00e9s, las pol\u00edticas de RLS verifican que el contexto de ejecuci\u00f3n solo pueda operar con las filas que pertenecen a ese tenant.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este enfoque no sustituye a un dise\u00f1o de permisos correcto, ni a una arquitectura segura de aplicaci\u00f3n. Sin embargo, a\u00f1ade una capa de control muy \u00fatil cuando se desea reducir el impacto de errores en consultas, APIs o servicios que acceden a la base de datos.<\/p>\n\n\n\n<h2 id=\"h-modelos-habituales-de-multi-tenancy-en-postgresql\" class=\"wp-block-heading\"><strong>Modelos habituales de multi-tenancy en PostgreSQL<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de aplicar RLS, conviene revisar el modelo de aislamiento de datos que utiliza la plataforma. PostgreSQL puede emplearse en diferentes aproximaciones multi-tenant, cada una con implicaciones distintas de operaci\u00f3n, seguridad y mantenimiento.<\/p>\n\n\n\n<h3 id=\"h-una-base-de-datos-por-cliente\" class=\"wp-block-heading\"><strong>Una base de datos por cliente<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Este modelo ofrece un aislamiento muy claro, pero puede incrementar la complejidad operativa cuando el n\u00famero de clientes crece. La gesti\u00f3n de actualizaciones, copias de seguridad, monitorizaci\u00f3n y despliegues requiere una estrategia espec\u00edfica.<\/p>\n\n\n\n<h3 id=\"h-un-esquema-por-cliente\" class=\"wp-block-heading\"><strong>Un esquema por cliente<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Separar tenants por esquemas puede facilitar cierta organizaci\u00f3n l\u00f3gica, aunque tambi\u00e9n implica gestionar permisos, migraciones y objetos duplicados. Es una opci\u00f3n intermedia que puede ser adecuada en algunos escenarios empresariales.<\/p>\n\n\n\n<h3 id=\"h-tablas-compartidas-con-identificador-de-tenant\" class=\"wp-block-heading\"><strong>Tablas compartidas con identificador de tenant<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"h-tablas-compartidas-con-identificador-de-tenant\">En este modelo, varios clientes comparten las mismas tablas y cada fila incluye una columna de identificaci\u00f3n, como tenant_id, organization_id o customer_id. Es aqu\u00ed donde RLS cobra especial importancia, porque permite definir pol\u00edticas que filtren las filas seg\u00fan ese identificador.<\/p>\n\n\n\n<h2 id=\"h-como-funciona-rls-en-tablas-compartidas\" class=\"wp-block-heading\"><strong>C\u00f3mo funciona RLS en tablas compartidas<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para utilizar RLS, la tabla debe incluir una columna que permita relacionar cada fila con su tenant. Despu\u00e9s, se habilita la seguridad a nivel de fila en la tabla y se crean pol\u00edticas que indiquen qu\u00e9 condiciones deben cumplirse para cada operaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ALTER TABLE facturas ENABLE ROW LEVEL SECURITY;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una pol\u00edtica b\u00e1sica podr\u00eda permitir que un rol de aplicaci\u00f3n acceda \u00fanicamente a las filas cuyo tenant_id coincida con el tenant definido en el contexto de la sesi\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CREATE POLICY facturas_por_tenant<br>ON facturas<br>USING (tenant_id = current_setting(&#8216;app.tenant_id&#8217;)::uuid)<br>WITH CHECK (tenant_id = current_setting(&#8216;app.tenant_id&#8217;)::uuid);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La cl\u00e1usula USING controla qu\u00e9 filas son visibles o modificables para operaciones como SELECT, UPDATE o DELETE. La cl\u00e1usula WITH CHECK verifica que las nuevas filas insertadas o actualizadas cumplan tambi\u00e9n la condici\u00f3n definida. En una aplicaci\u00f3n multi-tenant, ambas partes son importantes: no basta con evitar que un cliente lea datos de otro; tambi\u00e9n debe impedirse que inserte o modifique registros asociados a un tenant incorrecto.<\/p>\n\n\n\n<h2 id=\"h-politicas-roles-y-contexto-de-sesion\" class=\"wp-block-heading\"><strong>Pol\u00edticas, roles y contexto de sesi\u00f3n<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una implementaci\u00f3n empresarial de RLS debe definir con claridad la relaci\u00f3n entre roles de base de datos, usuarios de aplicaci\u00f3n y contexto de tenant. No existe un \u00fanico patr\u00f3n v\u00e1lido para todos los casos, pero s\u00ed varios criterios que ayudan a reducir riesgos.<\/p>\n\n\n\n<h3 id=\"h-definir-roles-con-privilegios-minimos\" class=\"wp-block-heading\"><strong>Definir roles con privilegios m\u00ednimos<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El rol que utiliza la aplicaci\u00f3n no deber\u00eda tener m\u00e1s permisos de los necesarios. RLS no debe convertirse en una excusa para conceder privilegios amplios. Es recomendable combinar GRANT, REVOKE y pol\u00edticas RLS de forma coherente, de modo que el acceso est\u00e9 limitado tanto a nivel de objeto como a nivel de fila.<\/p>\n\n\n\n<h3 id=\"h-separar-roles-administrativos-y-roles-de-aplicacion\" class=\"wp-block-heading\"><strong>Separar roles administrativos y roles de aplicaci\u00f3n<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Los roles administrativos, de mantenimiento o de migraci\u00f3n deben gestionarse de forma independiente. En PostgreSQL, determinados roles pueden eludir las pol\u00edticas RLS, por lo que conviene controlar cuidadosamente atributos como BYPASSRLS y evitar que est\u00e9n disponibles en cuentas de uso ordinario.<\/p>\n\n\n\n<h3 id=\"h-usar-variables-de-sesion-con-control-estricto\" class=\"wp-block-heading\"><strong>Usar variables de sesi\u00f3n con control estricto<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una pr\u00e1ctica habitual consiste en establecer el tenant activo en una variable de sesi\u00f3n, por ejemplo app.tenant_id, al inicio de cada petici\u00f3n o transacci\u00f3n. Esta variable debe fijarse desde una capa de confianza y no quedar expuesta a manipulaci\u00f3n directa por parte del usuario final.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En entornos con pools de conexiones, este punto requiere especial atenci\u00f3n. Si una conexi\u00f3n se reutiliza entre peticiones, el contexto de tenant debe inicializarse y limpiarse correctamente para evitar heredar valores de una solicitud anterior.<\/p>\n\n\n\n<h2 id=\"h-buenas-practicas-para-implementar-rls-en-postgresql\" class=\"wp-block-heading\"><strong>Buenas pr\u00e1cticas para implementar RLS en PostgreSQL<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Identificar de forma expl\u00edcita las tablas que contienen datos multi-tenant.<\/li>\n\n\n\n<li>Asegurar que todas las tablas compartidas incluyen una clave de tenant coherente.<\/li>\n\n\n\n<li>Crear pol\u00edticas diferenciadas para lectura, inserci\u00f3n, actualizaci\u00f3n y borrado cuando el caso de uso lo requiera.<\/li>\n\n\n\n<li>Aplicar el principio de m\u00ednimo privilegio a los roles de base de datos.<\/li>\n\n\n\n<li>Validar el comportamiento de RLS con pruebas automatizadas por tenant, rol y operaci\u00f3n.<\/li>\n\n\n\n<li>Revisar el impacto de las pol\u00edticas en el rendimiento de consultas cr\u00edticas.<\/li>\n\n\n\n<li>Documentar las pol\u00edticas y su relaci\u00f3n con los flujos de negocio de la aplicaci\u00f3n.<\/li>\n\n\n\n<li>Controlar de forma estricta los roles con capacidad de bypass o administraci\u00f3n.<\/li>\n<\/ul>\n\n\n\n<h3 id=\"h-probar-escenarios-positivos-y-negativos\" class=\"wp-block-heading\"><strong>Probar escenarios positivos y negativos<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las pruebas no deben limitarse a comprobar que un usuario ve sus propios datos. Tambi\u00e9n deben verificar que no puede acceder a filas de otros tenants, que no puede insertar registros con un tenant_id incorrecto y que las operaciones de actualizaci\u00f3n o borrado respetan las pol\u00edticas definidas.<\/p>\n\n\n\n<h3 id=\"h-revisar-indices-y-planes-de-consulta\" class=\"wp-block-heading\"><strong>Revisar \u00edndices y planes de consulta<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las pol\u00edticas RLS a\u00f1aden condiciones a las consultas. Por ello, es importante contar con \u00edndices adecuados sobre las columnas utilizadas en las pol\u00edticas, como tenant_id. En tablas grandes, una mala estrategia de indexaci\u00f3n puede afectar al rendimiento y dificultar la escalabilidad de la plataforma.<\/p>\n\n\n\n<h3 id=\"h-evitar-dependencias-opacas-en-la-logica-de-aplicacion\" class=\"wp-block-heading\"><strong>Evitar dependencias opacas en la l\u00f3gica de aplicaci\u00f3n<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">RLS debe complementar la l\u00f3gica de aplicaci\u00f3n, no ocultarla. El c\u00f3digo debe seguir siendo claro respecto al tenant con el que opera cada petici\u00f3n. Si la aplicaci\u00f3n depende de comportamientos impl\u00edcitos dif\u00edciles de auditar, la seguridad puede volverse m\u00e1s compleja de mantener.<\/p>\n\n\n\n<h2 id=\"h-riesgos-frecuentes-al-aplicar-rls\" class=\"wp-block-heading\"><strong>Riesgos frecuentes al aplicar RLS<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque RLS es una funcionalidad potente, algunos errores de dise\u00f1o pueden reducir su efectividad. Entre los m\u00e1s habituales se encuentran el uso de roles excesivamente privilegiados, la ausencia de pol\u00edticas WITH CHECK, el tratamiento incorrecto del contexto de sesi\u00f3n en pools de conexiones y la falta de pruebas espec\u00edficas de aislamiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n conviene tener en cuenta que RLS no corrige por s\u00ed solo problemas de autorizaci\u00f3n en la capa de aplicaci\u00f3n. Por ejemplo, una API debe seguir validando qu\u00e9 acciones puede realizar cada usuario dentro de su tenant. RLS refuerza el aislamiento de datos, pero no sustituye el modelo completo de permisos funcionales.<\/p>\n\n\n\n<h2 id=\"h-rls-como-capa-de-defensa-para-plataformas-empresariales\" class=\"wp-block-heading\"><strong>RLS como capa de defensa para plataformas empresariales<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para empresas que operan aplicaciones multi-tenant sobre PostgreSQL, RLS permite trasladar una parte cr\u00edtica del control de acceso al motor de base de datos. Esta aproximaci\u00f3n ayuda a reducir riesgos, mejora la consistencia de las reglas de aislamiento y facilita que el acceso a los datos est\u00e9 gobernado por pol\u00edticas expl\u00edcitas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La clave est\u00e1 en dise\u00f1ar las pol\u00edticas desde el inicio, integrarlas con la gesti\u00f3n de roles, probarlas de forma sistem\u00e1tica y revisarlas cuando evolucionen los modelos de datos o los requisitos de negocio. En arquitecturas empresariales, esa disciplina marca la diferencia entre una configuraci\u00f3n funcional y un modelo de seguridad mantenible.<\/p>\n\n\n\n<h2 id=\"h-preguntas-frecuentes-sobre-rls-en-postgresql\" class=\"wp-block-heading\"><strong>Preguntas frecuentes sobre RLS en PostgreSQL<\/strong><\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1789678933103\"><strong class=\"schema-faq-question\"><strong>\u00bfQu\u00e9 problema resuelve RLS en una aplicaci\u00f3n multi-tenant?<\/strong><\/strong> <p class=\"schema-faq-answer\">RLS ayuda a controlar qu\u00e9 filas puede consultar o modificar cada cliente, usuario o rol dentro de tablas compartidas, reforzando el aislamiento de datos entre tenants.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1789678942857\"><strong class=\"schema-faq-question\"><strong>\u00bfRLS sustituye a los permisos tradicionales de PostgreSQL?<\/strong><\/strong> <p class=\"schema-faq-answer\">No. RLS debe combinarse con una gesti\u00f3n adecuada de roles, permisos sobre objetos y controles de autorizaci\u00f3n en la aplicaci\u00f3n. Es una capa adicional de seguridad a nivel de fila.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1789678953275\"><strong class=\"schema-faq-question\"><strong>\u00bfEs necesario usar WITH CHECK en pol\u00edticas RLS?<\/strong><\/strong> <p class=\"schema-faq-answer\">En escenarios multi-tenant suele ser recomendable, porque permite validar que las filas insertadas o actualizadas cumplen la condici\u00f3n de tenant definida por la pol\u00edtica.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1789678962218\"><strong class=\"schema-faq-question\"><strong>\u00bfQu\u00e9 precauci\u00f3n debe tomarse con pools de conexiones?<\/strong><\/strong> <p class=\"schema-faq-answer\">El contexto de tenant debe establecerse y limpiarse correctamente en cada petici\u00f3n o transacci\u00f3n para evitar que una conexi\u00f3n reutilizada conserve valores anteriores.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1789678972065\"><strong class=\"schema-faq-question\"><strong>\u00bfRLS puede afectar al rendimiento?<\/strong><\/strong> <p class=\"schema-faq-answer\">Puede influir en el plan de consulta, ya que a\u00f1ade condiciones de filtrado. Por eso conviene revisar \u00edndices, consultas cr\u00edticas y pruebas de carga en tablas relevantes.<\/p> <\/div> <\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfSu empresa necesita reforzar el aislamiento de datos en PostgreSQL con un enfoque seguro, escalable y adaptado a sus aplicaciones multi-tenant? <a href=\"https:\/\/hopla.tech\/en\/contacto\/\">Contacte con el equipo de Hopla!<\/a> y analice el siguiente paso para su proyecto tecnol\u00f3gico<\/p>","protected":false},"excerpt":{"rendered":"<p>En una aplicaci\u00f3n multi-tenant, varios clientes comparten una misma plataforma, pero sus datos deben permanecer estrictamente aislados. Esta separaci\u00f3n no puede depender solo de la l\u00f3gica de la aplicaci\u00f3n. Cuando una consulta se construye de forma incorrecta, un filtro se omite o un servicio reutiliza credenciales con demasiados privilegios, el riesgo de exposici\u00f3n entre clientes [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":19415,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[284],"tags":[873,177,436,817],"class_list":["post-19417","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-postgresql","tag-aplicaciones-multi-tenant","tag-postgresql","tag-rls","tag-seguridad-de-datos"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v28.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>RLS en PostgreSQL para aplicaciones multi-tenant<\/title>\n<meta name=\"description\" content=\"RLS en PostgreSQL para aplicaciones multi-tenant: refuerce el aislamiento de datos por cliente con pol\u00edticas a nivel de fila.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hopla.tech\/en\/rls-postgresql-aplicaciones-multi-tenant\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RLS en PostgreSQL para aplicaciones multi-tenant: c\u00f3mo aislar los datos de cada cliente\" \/>\n<meta property=\"og:description\" content=\"RLS en PostgreSQL para aplicaciones multi-tenant: refuerce el aislamiento de datos por cliente con pol\u00edticas a nivel de fila.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hopla.tech\/en\/rls-postgresql-aplicaciones-multi-tenant\/\" \/>\n<meta property=\"og:site_name\" content=\"Hopla! Tech\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-17T21:04:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-17T21:04:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hopla.tech\/wp-content\/uploads\/2026\/09\/RLS-en-PostgreSQL-para-aplicaciones-multi-tenant-como-aislar-los-datos-de-cada-cliente.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Hopla!\u00a0Tech\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@HoplaSoftware\" \/>\n<meta name=\"twitter:site\" content=\"@HoplaSoftware\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hopla!\u00a0Tech\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/\"},\"author\":{\"name\":\"Hopla!\u00a0Tech\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/#\\\/schema\\\/person\\\/9cf81e385f7a2f68085449a2e16e1d22\"},\"headline\":\"RLS en PostgreSQL para aplicaciones multi-tenant: c\u00f3mo aislar los datos de cada cliente\",\"datePublished\":\"2026-09-17T21:04:19+00:00\",\"dateModified\":\"2026-09-17T21:04:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/\"},\"wordCount\":1723,\"publisher\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hopla.tech\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/RLS-en-PostgreSQL-para-aplicaciones-multi-tenant-como-aislar-los-datos-de-cada-cliente.webp\",\"keywords\":[\"aplicaciones multi-tenant\",\"postgresql\",\"RLS\",\"seguridad de datos\"],\"articleSection\":[\"Postgresql\"],\"inLanguage\":\"en-GB\"},{\"@type\":[\"WebPage\",\"FAQPage\"],\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/\",\"url\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/\",\"name\":\"RLS en PostgreSQL para aplicaciones multi-tenant\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hopla.tech\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/RLS-en-PostgreSQL-para-aplicaciones-multi-tenant-como-aislar-los-datos-de-cada-cliente.webp\",\"datePublished\":\"2026-09-17T21:04:19+00:00\",\"dateModified\":\"2026-09-17T21:04:20+00:00\",\"description\":\"RLS en PostgreSQL para aplicaciones multi-tenant: refuerce el aislamiento de datos por cliente con pol\u00edticas a nivel de fila.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#breadcrumb\"},\"mainEntity\":[{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678933103\"},{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678942857\"},{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678953275\"},{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678962218\"},{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678972065\"}],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#primaryimage\",\"url\":\"https:\\\/\\\/hopla.tech\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/RLS-en-PostgreSQL-para-aplicaciones-multi-tenant-como-aislar-los-datos-de-cada-cliente.webp\",\"contentUrl\":\"https:\\\/\\\/hopla.tech\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/RLS-en-PostgreSQL-para-aplicaciones-multi-tenant-como-aislar-los-datos-de-cada-cliente.webp\",\"width\":1200,\"height\":675,\"caption\":\"RLS en PostgreSQL para aplicaciones multi-tenant\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/hopla.tech\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"RLS en PostgreSQL para aplicaciones multi-tenant: c\u00f3mo aislar los datos de cada cliente\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/#website\",\"url\":\"https:\\\/\\\/hopla.tech\\\/\",\"name\":\"Hopla! Tech\",\"description\":\"The enterprise software and consultancy company\",\"publisher\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/#organization\"},\"alternateName\":\"Hopla!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/hopla.tech\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/#organization\",\"name\":\"Hopla! Tech\",\"alternateName\":\"Hopla!\",\"url\":\"https:\\\/\\\/hopla.tech\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/hopla.tech\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/svg-Hopla-by-BTW-b-2-1.png\",\"contentUrl\":\"https:\\\/\\\/hopla.tech\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/svg-Hopla-by-BTW-b-2-1.png\",\"width\":274,\"height\":115,\"caption\":\"Hopla! Tech\"},\"image\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/HoplaSoftware\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/hopla-software\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@hoplasoftware7485\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/#\\\/schema\\\/person\\\/9cf81e385f7a2f68085449a2e16e1d22\",\"name\":\"Hopla!\u00a0Tech\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/74a9053adf21148080273a18b879a3392f96e141e511a337179a4438f6bde966?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/74a9053adf21148080273a18b879a3392f96e141e511a337179a4438f6bde966?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/74a9053adf21148080273a18b879a3392f96e141e511a337179a4438f6bde966?s=96&d=mm&r=g\",\"caption\":\"Hopla!\u00a0Tech\"}},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678933103\",\"position\":1,\"url\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678933103\",\"name\":\"\u00bfQu\u00e9 problema resuelve RLS en una aplicaci\u00f3n multi-tenant?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"RLS ayuda a controlar qu\u00e9 filas puede consultar o modificar cada cliente, usuario o rol dentro de tablas compartidas, reforzando el aislamiento de datos entre tenants.\",\"inLanguage\":\"en-GB\"},\"inLanguage\":\"en-GB\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678942857\",\"position\":2,\"url\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678942857\",\"name\":\"\u00bfRLS sustituye a los permisos tradicionales de PostgreSQL?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. RLS debe combinarse con una gesti\u00f3n adecuada de roles, permisos sobre objetos y controles de autorizaci\u00f3n en la aplicaci\u00f3n. Es una capa adicional de seguridad a nivel de fila.\",\"inLanguage\":\"en-GB\"},\"inLanguage\":\"en-GB\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678953275\",\"position\":3,\"url\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678953275\",\"name\":\"\u00bfEs necesario usar WITH CHECK en pol\u00edticas RLS?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"En escenarios multi-tenant suele ser recomendable, porque permite validar que las filas insertadas o actualizadas cumplen la condici\u00f3n de tenant definida por la pol\u00edtica.\",\"inLanguage\":\"en-GB\"},\"inLanguage\":\"en-GB\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678962218\",\"position\":4,\"url\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678962218\",\"name\":\"\u00bfQu\u00e9 precauci\u00f3n debe tomarse con pools de conexiones?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"El contexto de tenant debe establecerse y limpiarse correctamente en cada petici\u00f3n o transacci\u00f3n para evitar que una conexi\u00f3n reutilizada conserve valores anteriores.\",\"inLanguage\":\"en-GB\"},\"inLanguage\":\"en-GB\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678972065\",\"position\":5,\"url\":\"https:\\\/\\\/hopla.tech\\\/rls-postgresql-aplicaciones-multi-tenant\\\/#faq-question-1789678972065\",\"name\":\"\u00bfRLS puede afectar al rendimiento?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Puede influir en el plan de consulta, ya que a\u00f1ade condiciones de filtrado. Por eso conviene revisar \u00edndices, consultas cr\u00edticas y pruebas de carga en tablas relevantes.\",\"inLanguage\":\"en-GB\"},\"inLanguage\":\"en-GB\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"RLS en PostgreSQL para aplicaciones multi-tenant","description":"RLS en PostgreSQL para aplicaciones multi-tenant: refuerce el aislamiento de datos por cliente con pol\u00edticas a nivel de fila.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hopla.tech\/en\/rls-postgresql-aplicaciones-multi-tenant\/","og_locale":"en_GB","og_type":"article","og_title":"RLS en PostgreSQL para aplicaciones multi-tenant: c\u00f3mo aislar los datos de cada cliente","og_description":"RLS en PostgreSQL para aplicaciones multi-tenant: refuerce el aislamiento de datos por cliente con pol\u00edticas a nivel de fila.","og_url":"https:\/\/hopla.tech\/en\/rls-postgresql-aplicaciones-multi-tenant\/","og_site_name":"Hopla! Tech","article_published_time":"2026-09-17T21:04:19+00:00","article_modified_time":"2026-09-17T21:04:20+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/hopla.tech\/wp-content\/uploads\/2026\/09\/RLS-en-PostgreSQL-para-aplicaciones-multi-tenant-como-aislar-los-datos-de-cada-cliente.webp","type":"image\/webp"}],"author":"Hopla!\u00a0Tech","twitter_card":"summary_large_image","twitter_creator":"@HoplaSoftware","twitter_site":"@HoplaSoftware","twitter_misc":{"Written by":"Hopla!\u00a0Tech","Estimated reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#article","isPartOf":{"@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/"},"author":{"name":"Hopla!\u00a0Tech","@id":"https:\/\/hopla.tech\/#\/schema\/person\/9cf81e385f7a2f68085449a2e16e1d22"},"headline":"RLS en PostgreSQL para aplicaciones multi-tenant: c\u00f3mo aislar los datos de cada cliente","datePublished":"2026-09-17T21:04:19+00:00","dateModified":"2026-09-17T21:04:20+00:00","mainEntityOfPage":{"@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/"},"wordCount":1723,"publisher":{"@id":"https:\/\/hopla.tech\/#organization"},"image":{"@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#primaryimage"},"thumbnailUrl":"https:\/\/hopla.tech\/wp-content\/uploads\/2026\/09\/RLS-en-PostgreSQL-para-aplicaciones-multi-tenant-como-aislar-los-datos-de-cada-cliente.webp","keywords":["aplicaciones multi-tenant","postgresql","RLS","seguridad de datos"],"articleSection":["Postgresql"],"inLanguage":"en-GB"},{"@type":["WebPage","FAQPage"],"@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/","url":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/","name":"RLS en PostgreSQL para aplicaciones multi-tenant","isPartOf":{"@id":"https:\/\/hopla.tech\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#primaryimage"},"image":{"@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#primaryimage"},"thumbnailUrl":"https:\/\/hopla.tech\/wp-content\/uploads\/2026\/09\/RLS-en-PostgreSQL-para-aplicaciones-multi-tenant-como-aislar-los-datos-de-cada-cliente.webp","datePublished":"2026-09-17T21:04:19+00:00","dateModified":"2026-09-17T21:04:20+00:00","description":"RLS en PostgreSQL para aplicaciones multi-tenant: refuerce el aislamiento de datos por cliente con pol\u00edticas a nivel de fila.","breadcrumb":{"@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#breadcrumb"},"mainEntity":[{"@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678933103"},{"@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678942857"},{"@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678953275"},{"@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678962218"},{"@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678972065"}],"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#primaryimage","url":"https:\/\/hopla.tech\/wp-content\/uploads\/2026\/09\/RLS-en-PostgreSQL-para-aplicaciones-multi-tenant-como-aislar-los-datos-de-cada-cliente.webp","contentUrl":"https:\/\/hopla.tech\/wp-content\/uploads\/2026\/09\/RLS-en-PostgreSQL-para-aplicaciones-multi-tenant-como-aislar-los-datos-de-cada-cliente.webp","width":1200,"height":675,"caption":"RLS en PostgreSQL para aplicaciones multi-tenant"},{"@type":"BreadcrumbList","@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/hopla.tech\/"},{"@type":"ListItem","position":2,"name":"RLS en PostgreSQL para aplicaciones multi-tenant: c\u00f3mo aislar los datos de cada cliente"}]},{"@type":"WebSite","@id":"https:\/\/hopla.tech\/#website","url":"https:\/\/hopla.tech\/","name":"Hopla! Tech","description":"The enterprise software and consultancy company","publisher":{"@id":"https:\/\/hopla.tech\/#organization"},"alternateName":"Hopla!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hopla.tech\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/hopla.tech\/#organization","name":"Hopla! Tech","alternateName":"Hopla!","url":"https:\/\/hopla.tech\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/hopla.tech\/#\/schema\/logo\/image\/","url":"https:\/\/hopla.tech\/wp-content\/uploads\/2024\/06\/svg-Hopla-by-BTW-b-2-1.png","contentUrl":"https:\/\/hopla.tech\/wp-content\/uploads\/2024\/06\/svg-Hopla-by-BTW-b-2-1.png","width":274,"height":115,"caption":"Hopla! Tech"},"image":{"@id":"https:\/\/hopla.tech\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/HoplaSoftware","https:\/\/www.linkedin.com\/company\/hopla-software\/","https:\/\/www.youtube.com\/@hoplasoftware7485"]},{"@type":"Person","@id":"https:\/\/hopla.tech\/#\/schema\/person\/9cf81e385f7a2f68085449a2e16e1d22","name":"Hopla!\u00a0Tech","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/74a9053adf21148080273a18b879a3392f96e141e511a337179a4438f6bde966?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/74a9053adf21148080273a18b879a3392f96e141e511a337179a4438f6bde966?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/74a9053adf21148080273a18b879a3392f96e141e511a337179a4438f6bde966?s=96&d=mm&r=g","caption":"Hopla!\u00a0Tech"}},{"@type":"Question","@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678933103","position":1,"url":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678933103","name":"\u00bfQu\u00e9 problema resuelve RLS en una aplicaci\u00f3n multi-tenant?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"RLS ayuda a controlar qu\u00e9 filas puede consultar o modificar cada cliente, usuario o rol dentro de tablas compartidas, reforzando el aislamiento de datos entre tenants.","inLanguage":"en-GB"},"inLanguage":"en-GB"},{"@type":"Question","@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678942857","position":2,"url":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678942857","name":"\u00bfRLS sustituye a los permisos tradicionales de PostgreSQL?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"No. RLS debe combinarse con una gesti\u00f3n adecuada de roles, permisos sobre objetos y controles de autorizaci\u00f3n en la aplicaci\u00f3n. Es una capa adicional de seguridad a nivel de fila.","inLanguage":"en-GB"},"inLanguage":"en-GB"},{"@type":"Question","@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678953275","position":3,"url":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678953275","name":"\u00bfEs necesario usar WITH CHECK en pol\u00edticas RLS?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"En escenarios multi-tenant suele ser recomendable, porque permite validar que las filas insertadas o actualizadas cumplen la condici\u00f3n de tenant definida por la pol\u00edtica.","inLanguage":"en-GB"},"inLanguage":"en-GB"},{"@type":"Question","@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678962218","position":4,"url":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678962218","name":"\u00bfQu\u00e9 precauci\u00f3n debe tomarse con pools de conexiones?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"El contexto de tenant debe establecerse y limpiarse correctamente en cada petici\u00f3n o transacci\u00f3n para evitar que una conexi\u00f3n reutilizada conserve valores anteriores.","inLanguage":"en-GB"},"inLanguage":"en-GB"},{"@type":"Question","@id":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678972065","position":5,"url":"https:\/\/hopla.tech\/rls-postgresql-aplicaciones-multi-tenant\/#faq-question-1789678972065","name":"\u00bfRLS puede afectar al rendimiento?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Puede influir en el plan de consulta, ya que a\u00f1ade condiciones de filtrado. Por eso conviene revisar \u00edndices, consultas cr\u00edticas y pruebas de carga en tablas relevantes.","inLanguage":"en-GB"},"inLanguage":"en-GB"}]}},"_links":{"self":[{"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/posts\/19417","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/comments?post=19417"}],"version-history":[{"count":1,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/posts\/19417\/revisions"}],"predecessor-version":[{"id":19418,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/posts\/19417\/revisions\/19418"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/media\/19415"}],"wp:attachment":[{"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/media?parent=19417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/categories?post=19417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/tags?post=19417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}