{"id":1350,"date":"2025-03-26T13:26:41","date_gmt":"2025-03-26T13:26:41","guid":{"rendered":"https:\/\/discovery.cevolution.co.uk\/ciam\/?p=1350"},"modified":"2025-11-01T15:54:22","modified_gmt":"2025-11-01T15:54:22","slug":"wordpress-openfga-and-keycloak","status":"publish","type":"post","link":"https:\/\/discovery.cevolution.co.uk\/ciam\/2025\/03\/26\/wordpress-openfga-and-keycloak\/","title":{"rendered":"Cooked to Perfection using WordPress, OpenFGA, and Keycloak"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>\n<p>For many years, building a SaaS application has centred around the <span class=\"popup-trigger popmake-1354\" data-popup-id=\"1354\" data-do-default=\"0\">B2C<\/span> model, with <span class=\"popup-trigger popmake-1185\" data-popup-id=\"1185\" data-do-default=\"0\">CIAM<\/span> integration mostly concerning the process of <span class=\"popup-trigger popmake-1087\" data-popup-id=\"1087\" data-do-default=\"0\">User Authentication<\/span> and <a data-type=\"page\" data-id=\"1146\" href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/authorize\/consent\/\" target=\"_blank\" rel=\"noreferrer noopener\">Consent<\/a>. <\/p>\n\n\n\n<p>In more recent times, the value of the <span class=\"popup-trigger popmake-418\" data-popup-id=\"418\" data-do-default=\"0\">B2B<\/span> market and the opportunity to capitalise on a more standard approach for <a data-type=\"page\" data-id=\"509\" href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/authorize\/access-control\/\" target=\"_blank\" rel=\"noreferrer noopener\">Access Control<\/a> have led many of the third-party CIAM vendors down the route of adding support for full-spectrum <a data-type=\"page\" data-id=\"9\" href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/authorize\/\" target=\"_blank\" rel=\"noreferrer noopener\">Authorization<\/a> into their SaaS solutions.<\/p>\n\n\n\n<p>Whilst vendors like Okta have recently released reference applications like <a href=\"https:\/\/auth0.com\/blog\/speed-up-your-customer-identity-journey-with-auth0-saastart\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>SaaStart<\/strong><\/a>, showcasing Auth0 features designed for <span class=\"popup-trigger popmake-418\" data-popup-id=\"418\" data-do-default=\"0\">B2B<\/span> application integration, together with Fine-Grained Authorization (a.k.a. <strong><a href=\"https:\/\/www.okta.com\/uk\/products\/fine-grained-authorization\/\" target=\"_blank\" rel=\"noreferrer noopener\">Okta FGA<\/a><\/strong>), these are hosted services that can be less than cost-effective. <\/p>\n\n\n\n<p>My name&#8217;s <span class=\"popup-trigger popmake-378\" data-popup-id=\"378\" data-do-default=\"0\">Peter Fernandez,<\/span> and in a recent article (below), I wrote about using open-source alternatives to reduce costs by capitalising on the infrastructure already likely to be a requirement for the SaaS solution you&#8217;re building. In this article, I&#8217;m going to discuss how I&#8217;m using WordPress, OpenFGA, and Keycloak to do just that \u2014 or as I like to call it, &#8220;Cooking by WOK&#8221; \ud83d\ude0e<\/p>\n\n\n\n<div class=\"wp-block-group is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-23441af8 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-discover-ciam wp-block-embed-discover-ciam\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"8EXJbHBzW2\"><a href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/2025\/02\/22\/diy-or-buy\/\">Build, Buy or DIY your CIAM Solution?<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;Build, Buy or DIY your CIAM Solution?&#8221; &#8212; Discover CIAM\" src=\"https:\/\/discovery.cevolution.co.uk\/ciam\/2025\/02\/22\/diy-or-buy\/embed\/#?secret=SKhVpkA3D0#?secret=8EXJbHBzW2\" data-secret=\"8EXJbHBzW2\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"wordpress\">WordPress<\/h2>\n\n\n<p>Famed for its popularity as a blogging platform, modern <a href=\"https:\/\/wordpress.org\/\" target=\"_blank\" rel=\"noopener\" title=\"\">WordPress<\/a> offers a comprehensive suite of functionality that can be used to build all sorts of solutions. It\u2019s not the most cutting-edge technology, but with over 800 million sites leveraging it, it does mean that almost 44% of all live websites on the internet are powered by it!<\/p>\n\n\n\n<p>Although better known for building blogs, building web applications with WordPress is definitely possible and something that folks have been talking about for some time (there are even companies like <a href=\"https:\/\/vipestudio.com\/en\/\"><em>Vipe Studio<\/em><\/a> and <a href=\"https:\/\/www.gravitykit.com\/\"><em>Gravity Kit<\/em><\/a> that provide professional development services and tools for building web applications using WordPress):<\/p>\n\n\n\n<div class=\"wp-block-group is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-23441af8 wp-block-group-is-layout-flex\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-tom-mcfarlin wp-block-embed-tom-mcfarlin\" style=\"margin-top:0;margin-bottom:0\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"MX5u8cew0S\"><a href=\"https:\/\/tommcfarlin.com\/building-web-applications-on-wordpress\/\">A Case for Building Web Applications on WordPress<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;A Case for Building Web Applications on WordPress&#8221; &#8212; Tom McFarlin\" src=\"https:\/\/tommcfarlin.com\/building-web-applications-on-wordpress\/embed\/#?secret=ZZI3FXcEI9#?secret=MX5u8cew0S\" data-secret=\"MX5u8cew0S\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-embed wp-block-embed-embed wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"VideoPress Video Player\" aria-label='VideoPress Video Player' width='500' height='281' src='https:\/\/video.wordpress.com\/embed\/UnswmqdX?hd=1&amp;cover=1' frameborder='0' allowfullscreen allow='clipboard-write'><\/iframe><script src='https:\/\/v0.wordpress.com\/js\/next\/videopress-iframe.js?m=1770107250'><\/script>\n<\/div><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-vipe-studio wp-block-embed-vipe-studio\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"MR7jeFq1sq\"><a href=\"https:\/\/vipestudio.com\/en\/wordpress-as-an-application-framework\/\">Don\u2019t Reinvent the Wheel: Use WordPress as an Application Framework<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;Don\u2019t Reinvent the Wheel: Use WordPress as an Application Framework&#8221; &#8212; Vipe Studio\" src=\"https:\/\/vipestudio.com\/en\/wordpress-as-an-application-framework\/embed\/#?secret=xRYWBTqASp#?secret=MR7jeFq1sq\" data-secret=\"MR7jeFq1sq\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>As with most things, however, WordPress isn&#8217;t a magic bullet, and using it for just <em>any<\/em> web application development is probably not where you&#8217;d want to start. <\/p>\n\n\n\n<p>However, if you have a <span class=\"popup-trigger popmake-1354\" data-popup-id=\"1354\" data-do-default=\"0\">B2C<\/span> SaaS application that&#8217;s particularly content-heavy and\/or requires theme management capability, then it could be a good option,\u00a0particularly given its rich out-of-the-box functionality and its extensive ecosystem of plugins.<\/p>\n\n\n\n<p>For <span class=\"popup-trigger popmake-418\" data-popup-id=\"418\" data-do-default=\"0\">B2B<\/span> SaaS application development \u2014 that requires a multi-tenancy approach, leverages both a vendor and a subscriber administration model, and typically requires <a data-type=\"page\" data-id=\"12\" href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/manage\/brand\/\" target=\"_blank\" rel=\"noreferrer noopener\">brand management<\/a> capability \u2014 <a href=\"https:\/\/developer.wordpress.org\/advanced-administration\/multisite\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>WordPress Multisite<\/em><\/a> gives you this, and more, ready-made out of the box, which you can use as a foundation for whatever solution you&#8217;re building. <\/p>\n\n\n\n<p>It&#8217;s also easy to scale; it&#8217;s a relatively straightforward process to deploy multiple instances of the WordPress engine anywhere, providing not only the ability to easily load-balance globally but also geographically in order to target specific regional growth.<\/p>\n\n\n\n<div class=\"wp-block-group has-base-color has-accent-4-background-color has-text-color has-background has-link-color wp-elements-504216168e49f1454b30c9c84517ce46 is-layout-flow wp-block-group-is-layout-flow\" style=\"border-radius:20px\">\n<p class=\"has-text-align-center\" style=\"padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\"><em>I typically view WordPress as a technology stack framework, and WordPress Multisite forms the foundation of the Discovery network of which <a href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/\" data-type=\"page\" data-id=\"36\" target=\"_blank\" rel=\"noreferrer noopener\">Discover CIAM<\/a> is a part.<\/em><\/p>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"keycloak\">Keycloak<\/h2>\n\n\n<p>Keycloak (<a href=\"https:\/\/www.keycloak.org\/\">https:\/\/www.keycloak.org\/<\/a>) is an open-source platform that provides Customer Identity and Access Management services that can be deployed as part of a DIY <span class=\"popup-trigger popmake-1185\" data-popup-id=\"1185\" data-do-default=\"0\">CIAM<\/span> integration.<\/p>\n\n\n\n<p>Keycloak works with any development platform and provides application developers with secure authentication and authorization capabilities, requiring minimal or no development effort at all.<\/p>\n\n\n\n<p>Keycloak is a Cloud Native Computing Foundation (CNCF) incubation project that effectively provides a combined <span class=\"popup-trigger popmake-415\" data-popup-id=\"415\" data-do-default=\"0\">IdP<\/span> and <span class=\"popup-trigger popmake-467\" data-popup-id=\"467\" data-do-default=\"0\">OAuth 2.0<\/span> Authorization Server in one, and supports the following out of the box:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><span class=\"popup-trigger popmake-397 \" data-popup-id=\"397\" data-do-default=\"0\">Single Sign On<\/span><\/strong><\/li>\n\n\n\n<li><strong><span class=\"popup-trigger popmake-523 \" data-popup-id=\"523\" data-do-default=\"0\">Social Login<\/span><\/strong><\/li>\n\n\n\n<li><strong><a href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/authenticate\/login\/federation\/\" data-type=\"page\" data-id=\"1136\" target=\"_blank\" rel=\"noreferrer noopener\">Federation<\/a><\/strong><\/li>\n\n\n\n<li><strong><a href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/authenticate\/login\/passwordless\/\" data-type=\"page\" data-id=\"1149\">Passwordless<\/a><\/strong><\/li>\n\n\n\n<li><span class=\"popup-trigger popmake-1879 \" data-popup-id=\"1879\" data-do-default=\"0\"><strong>Passkeys<\/strong><\/span><\/li>\n\n\n\n<li><strong><span class=\"popup-trigger popmake-428 \" data-popup-id=\"428\" data-do-default=\"0\">MFA<\/span><\/strong><\/li>\n\n\n\n<li><strong><span class=\"popup-trigger popmake-1623 \" data-popup-id=\"1623\" data-do-default=\"0\">RBAC<\/span><\/strong><\/li>\n\n\n\n<li><strong><span class=\"popup-trigger popmake-2149 \" data-popup-id=\"2149\" data-do-default=\"0\">Delegated Authorization<\/span><\/strong><\/li>\n\n\n\n<li>Centralized <strong><a href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/manage\/\" data-type=\"page\" data-id=\"18\" target=\"_blank\" rel=\"noreferrer noopener\">Management<\/a><\/strong><\/li>\n\n\n\n<li>Customized <strong><a href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/manage\/brand\/\" data-type=\"page\" data-id=\"12\" target=\"_blank\" rel=\"noreferrer noopener\">Branding<\/a><\/strong><\/li>\n\n\n\n<li><strong>Clustering<\/strong> for scale and availability<\/li>\n\n\n\n<li><strong>Extensibility<\/strong> through customised code and adapters<\/li>\n\n\n\n<li><strong><span class=\"popup-trigger popmake-1354 \" data-popup-id=\"1354\" data-do-default=\"0\">B2C<\/span><\/strong> and <strong><span class=\"popup-trigger popmake-418 \" data-popup-id=\"418\" data-do-default=\"0\">B2B<\/span><\/strong> SaaS solution support<\/li>\n<\/ul>\n\n\n\n<p>A popular open-source Identity and Access Management (<span class=\"popup-trigger popmake-3257\" data-popup-id=\"3257\" data-do-default=\"0\">IAM<\/span>) solution, it&#8217;s increasingly being used for Customer Identity and Access Management (<span class=\"popup-trigger popmake-1185\" data-popup-id=\"1185\" data-do-default=\"0\">CIAM<\/span>) due to its flexibility, robust features, and open-source nature \u2014 making it a compelling and cost-effective choice for managing user identities and access across various <span class=\"popup-trigger popmake-2946\" data-popup-id=\"2946\" data-do-default=\"0\">SaaS<\/span> solutions.<\/p>\n\n\n\n<div class=\"wp-block-group has-base-color has-accent-4-background-color has-text-color has-background has-link-color wp-elements-ad9997f1bbdd369ece745fc80c22ede9 is-layout-flow wp-block-group-is-layout-flow\" style=\"border-radius:20px\">\n<p class=\"has-text-align-center\" style=\"padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\"><em>According to the figures for 2025, Keycloak holds around 1.86% market share in the Identity and Access Management (<span class=\"popup-trigger popmake-3257\" data-popup-id=\"3257\" data-do-default=\"0\">IAM<\/span>) sector. Definitely a way behind the SaaS IAM solution market-leading vendors, but ahead of a lot of its competitors and, arguably, the leader in the DIY (Deploy It Yourself) space. <\/em><\/p>\n<\/div>\n\n\n\n<p>Whilst you can easily host a Keycloak service yourself, as part of the infrastructure required to support your <span class=\"popup-trigger popmake-1354\" data-popup-id=\"1354\" data-do-default=\"0\">B2C<\/span> and\/or <span class=\"popup-trigger popmake-418\" data-popup-id=\"418\" data-do-default=\"0\">B2B<\/span> SaaS solution, there are companies like <em><a href=\"https:\/\/phasetwo.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Phase Two<\/a><\/em>, <em><a href=\"https:\/\/www.loginfactor.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Login Factor<\/a><\/em> or <a href=\"https:\/\/skycloak.io\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>SkyCloak<\/em><\/a> that offer full to partially managed hosting options. <\/p>\n\n\n\n<p>For more on the benefits of a DIY (Deploy It Yourself) approach to CIAM, using Keycloak or one of the other open-source products, see the article entitled <a href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/2025\/02\/22\/diy-or-buy\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>Build, Buy or DIY your CIAM Solution?<\/strong><\/em><\/a><\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"openfga\">OpenFGA<\/h2>\n\n\n<p>Another open-source project, this time from the <a href=\"https:\/\/www.linuxfoundation.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Linux Foundation<\/a> that&#8217;s part of the CNCF (Cloud Native Computing Foundation), is <a href=\"https:\/\/openfga.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>OpenFGA<\/em><\/a>. OpenFGA \u2014 as in open-source Fine Grained Authorization \u2014 can be deployed as a service as part of a CIAM integration to provide <span class=\"popup-trigger popmake-2333\" data-popup-id=\"2333\" data-do-default=\"0\">ReBAC<\/span> as a modern complement to traditional <span class=\"popup-trigger popmake-1623\" data-popup-id=\"1623\" data-do-default=\"0\">RBAC<\/span> <a href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/authorize\/access-control\/\" data-type=\"page\" data-id=\"509\">access control<\/a>.<\/p>\n\n\n\n<p>Like Keycloak (<a href=\"#keycloak\">above<\/a>), an OpenFGA service can be hosted yourself, as part of the infrastructure required to support your <span class=\"popup-trigger popmake-1354\" data-popup-id=\"1354\" data-do-default=\"0\">B2C<\/span> and\/or <span class=\"popup-trigger popmake-418\" data-popup-id=\"418\" data-do-default=\"0\">B2B<\/span> SaaS solution; again, the benefits of a DIY (Deploy It Yourself) approach are outlined in my article entitled <a href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/2025\/02\/22\/diy-or-buy\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Build, Buy or DIY your CIAM Solution?<\/em><\/a> Alternatively, an organization such as Okta can provide a managed hosting service based on OpenFGA (see <a href=\"https:\/\/docs.fga.dev\/\">https:\/\/docs.fga.dev\/<\/a> for more details).<\/p>\n\n\n\n<p>You can read more about Relationship-Based Access Control (<span class=\"popup-trigger popmake-2333\" data-popup-id=\"2333\" data-do-default=\"0\">ReBAC<\/span>) in the article entitled <strong><a href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/2025\/03\/18\/authorized-access-control\/\" data-type=\"post\" data-id=\"2050\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Access In A Controlled Manner<\/em><\/a><\/strong>, below, where I talk about it, how it can complement the more traditional method of <span class=\"popup-trigger popmake-1623\" data-popup-id=\"1623\" data-do-default=\"0\">RBAC<\/span>, and also ABAC, and where it fits into the overall architecture of an access control system.<\/p>\n\n\n\n<div class=\"wp-block-group is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-23441af8 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-discover-ciam wp-block-embed-discover-ciam\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"6URNLuzV2g\"><a href=\"https:\/\/discovery.cevolution.co.uk\/ciam\/2025\/03\/18\/authorized-access-control\/\">Access In A Controlled Manner<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;Access In A Controlled Manner&#8221; &#8212; Discover CIAM\" src=\"https:\/\/discovery.cevolution.co.uk\/ciam\/2025\/03\/18\/authorized-access-control\/embed\/#?secret=ROvrpN0gsm#?secret=6URNLuzV2g\" data-secret=\"6URNLuzV2g\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Building a SaaS application with CIAM integrated as a DIY option can be a challenging prospect. In this article I&#8217;m going to explore how I&#8217;m using WordPress, Keycloak and OpenFGA to build B2B SaaS solutions with comprehensive CIAM integrations.<\/p>\n","protected":false},"author":1,"featured_media":2347,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"authenticate":"","authentication":"","authenticatedMethod":"","authenticatedMember":"","authorizedPermissions":[],"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[7],"tags":[28,27,59,26],"class_list":["post-1350","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-integration","tag-keycloak","tag-openfga","tag-wok","tag-wordpress"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/discovery-bucket-ha60ib.s3.eu-west-2.amazonaws.com\/wp-content\/uploads\/sites\/22\/2025\/03\/26132254\/image-54.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/discovery.cevolution.co.uk\/ciam\/wp-json\/wp\/v2\/posts\/1350","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/discovery.cevolution.co.uk\/ciam\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/discovery.cevolution.co.uk\/ciam\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/discovery.cevolution.co.uk\/ciam\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/discovery.cevolution.co.uk\/ciam\/wp-json\/wp\/v2\/comments?post=1350"}],"version-history":[{"count":47,"href":"https:\/\/discovery.cevolution.co.uk\/ciam\/wp-json\/wp\/v2\/posts\/1350\/revisions"}],"predecessor-version":[{"id":5281,"href":"https:\/\/discovery.cevolution.co.uk\/ciam\/wp-json\/wp\/v2\/posts\/1350\/revisions\/5281"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/discovery.cevolution.co.uk\/ciam\/wp-json\/wp\/v2\/media\/2347"}],"wp:attachment":[{"href":"https:\/\/discovery.cevolution.co.uk\/ciam\/wp-json\/wp\/v2\/media?parent=1350"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/discovery.cevolution.co.uk\/ciam\/wp-json\/wp\/v2\/categories?post=1350"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/discovery.cevolution.co.uk\/ciam\/wp-json\/wp\/v2\/tags?post=1350"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}