{"id":4068,"date":"2026-03-05T21:16:04","date_gmt":"2026-03-05T20:16:04","guid":{"rendered":"https:\/\/www.mxblue.nl\/data-protection-by-design-in-mendix\/"},"modified":"2026-03-25T11:12:41","modified_gmt":"2026-03-25T10:12:41","slug":"data-protection-by-design-in-mendix","status":"publish","type":"post","link":"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/","title":{"rendered":"Data Protection by Design in Mendix"},"content":{"rendered":"\n<section id=\"mxblue-post-base-block_675d2a1ebd6a40efe4b57eb40215a3cf\" class=\"relative p-section bg-white mxblue-post-base alignfull\">\n   <div class=\"container flex flex-col items-center gap-y-10\">\n\n      <div class=\"flex flex-col w-full gap-12 lg:w-[calc(100%-200px)]\">\n                     <div class=\"aspect-3-125\">\n               <img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"425\" src=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog--1024x425.jpg\" class=\"aspect-3-125 rounded-lg object-cover w-full\" alt=\"\" srcset=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog--1024x425.jpg 1024w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog--300x125.jpg 300w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog--768x319.jpg 768w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog--1536x638.jpg 1536w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog-.jpg 1704w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>            <\/div>\n               <\/div>\n\n      <div class=\"post-content w-full lg:w-[calc(100%-400px)]\">\n\n                     <ul class=\"!mb-4 seperator !flex-row\">\n               <li><a href=\"https:\/\/www.mxblue.nl\/en\/category\/blog-en\/\">Blog EN<\/a><\/li>            <\/ul>\n         \n         <h1 class=\"mb-4\">Data Protection by Design in Mendix<\/h1>\n         \n\n<h2 class=\"wp-block-heading\"><em>Why discipline is not a control mechanism<\/em> <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Reading time: \u00b18 minutes<\/em> <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Introduction <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How many of you have had a copy of production on your laptop in the past year? No trick question. Just curiosity.   Chances are that the answer is not zero. <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Production data is particularly helpful. It contains real customers, real edge cases, real inconsistencies; exactly the things that are always just missing in a synthetic dataset. And so we copy. Usually with the best intentions, and a healthy dose of suppression of our conscience. That in itself is not surprising; It is efficient and often the fastest way to understand a problem.     Physics also has few experiments without measurement data. <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But then follows a series of questions: <br\/><br\/> <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Which data is actually sensitive? <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>What attributes contain personal data, directly or indirectly, or contain business-sensitive information? <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>How do you anonymize or protect that data? <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>What do you do with references and derived values? <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>How do you know that you are not overlooking anything? <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>And if you had to do this again tomorrow, you would get the exact same result? <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In practice, these questions are rarely asked explicitly. The focus is on reproducing the bug or finalizing the user story; not on formalising a structural approach to data protection. Then the protection of sensitive data does not become a feature of the model, but a manual correction afterwards.   <\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"960\" style=\"aspect-ratio: 960 \/ 960;\" width=\"960\" controls=\"\" src=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/Blog-2-Stephan_social-media-kwaliteit.mp4\"><\/video><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">2. The conditions <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If protection of sensitive data is to be a mature design aspect, it must meet a number of conditions: <br\/><br\/> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. It must be transparent. Choices about sensitive attributes should be an explicit and visible part of the design, not implicitly hidden in scripts or in heads.  <\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">2. It must be predictable. The protection logic must be verifiable and reproducible. Determinism can be a conscious design choice, but it is not a requirement; Nor is that a coincidence.   <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3. It must be consistently applicable across environments. What is performed in one environment must be able to be repeated identically in another.  <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"864\" height=\"630\" src=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/image-1.png\" alt=\"\" class=\"wp-image-4061\" srcset=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/image-1.png 864w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/image-1-300x219.png 300w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/image-1-768x560.png 768w\" sizes=\"auto, (max-width: 864px) 100vw, 864px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">When there is no mechanism that facilitates or enforces these conditions, they remain dependent on discipline. And discipline is inversely proportional to project pressure.  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. The model <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If discipline is not a guarantee, the structure must do the work. And in a Mendix application, that structure starts with the domain model, the formal description of reality. Entities define what exists. Attributes define which properties are relevant. Protection of sensitive data cannot remain outside the model; it must be explicitly laid down in it.     <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This means that a choice is made for each entity and for each attribute. Will the value be preserved, erased or replaced? Does this always apply or only under certain conditions? These choices are not technical details, but policy choices. They determine how an organization handles sensitive information.     <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is where the fundamental advantage of a model-driven approach lies. By mirroring the domain model in runtime using <strong>ModelReflection<\/strong>, a structured overview of all entities and attributes is created. Based on this, a choice of protection can be made for each attribute.   Not spread over scripts, but central and insightful. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This configuration can also be exported to JSON and applied in other environments. This makes protection not just a technical implementation, but an explicit policy that is transferable and negotiable.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The result is a shift from IT solution to business instrument. Stakeholders can see which choices have been made: which data is retained, which is deleted, which is generated.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Avoiding these choices may simplify the conversation, but nothing is as persistent as reality. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. The implementation <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The choices that are recorded in the model are only valuable if they can also be applied systematically. Protection should not be a separate act; it must function as a mechanism. This mechanism is built around five design principles: scope and scalability, explicit rules, determinism, controlled generation and uniqueness.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We will now briefly go into technology. <strong>For some readers, this is a moment to refill their coffee and rejoin us in Chapter 5.<\/strong> <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.1 Scope and scalability <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The execution starts with an optional XPath scope per entity. Based on this, the total volume is first determined via an aggregated count, followed by processing in batches. Offset and batch size batching prevents memory spikes and makes large-scale refresh of test or acceptance data manageable.   <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.2 Explicit rules <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The configuration in the model is translated into an output model via RuleTypes. For each attribute, a strategy is explicitly chosen, such as:  <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>KEEP <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CLEAR <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>FIXED <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>HASH <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GENERALIZE <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GENERATE <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Each RuleType corresponds to a concrete, controllable transformation. There is no implied &#8220;best guess&#8221;. A missing or invalid configuration will result in an explicit error instead of silent deviation.   <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.3 Determinism and reproducibility <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Determinism is a conscious design option. When a rule is deterministic, a seed is calculated based on stable input, such as attribute name and original value, combined with a salt.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The seed is cryptographically derived via SHA-256 and reduced to a long. Length prefixing is used to avoid ambiguity in compound inputs.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The result is idempotence: the same input, the same configuration and the same salt produce the same outcome. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.4 Controlled generation <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Generated values use a controlled routing layer on top of Datafaker. Both native expressions and call-style invocations are supported, but always within guardrails.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Provider and method names are validated, risky methods are blocked, and only secure return and parameter types are accepted. This prevents a configuration field from turning into a generic Java invocation engine.  <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.5 Uniqueness <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Uniqueness is not blindly enforced. For String-like attributes, a controlled strategy is applied to avoid collisions within a batch, without global state or external storage.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In addition, existing data bucket-based can be redistributed via shuffling, optionally deterministic. This preserves the statistical distribution while individual values are no longer traceable.  <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"936\" height=\"634\" src=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/image-2.png\" alt=\"\" class=\"wp-image-4063\" srcset=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/image-2.png 936w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/image-2-300x203.png 300w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/image-2-768x520.png 768w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">5. The context <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">At MxBlue, we have translated the above approach into a Mendix module: <mark style=\"background-color:rgba(0, 0, 0, 0);color:#0693e3\" class=\"has-inline-color\"><strong><a href=\"https:\/\/marketplace.mendix.com\/link\/component\/257469\" target=\"_blank\" rel=\"noreferrer noopener\">DataProtection.<\/a><\/strong><\/mark> The module is not a universal solution for all forms of data protection. That would be suspicious.  It is intended for situations in which data is used outside of production and where explicit, model-driven choices are required. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The module is particularly suitable when: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>production data is refreshed to test or acceptance environments; <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>realistic but non-traceable data is required for demo or validation; <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>subsets of data should be shared with partners in a controlled manner; <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>pseudonymization is necessary for analysis without maintaining the full production profile; <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>organisations want to create transparency about protection choices made towards business and stakeholders. <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In these situations, the module adds structure where discipline would otherwise have to do the work. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, there are also situations where this module is not the right solution. The module is not intended when: <br\/><br\/>  <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the goal is to protect data in production itself against unauthorized access; <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>encryption or access control must be replaced; <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>legal interpretation of regulations is central to the; <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>cryptographic anonymization is required; <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>consent management must be set up. <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In these cases, the solution lies elsewhere in architecture. The module focuses on controlled transformation of data outside of a production context.  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Conclusion <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The problem described here is concrete. Production data is copied. Sensitive information needs to be modified. Without an explicit mechanism, this is done ad hoc.    <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>DataProtection module<\/strong> offers a solution for this. She makes protection choices visible in the model, makes them transferable between environments and systematically applies them to data.  This replaces a vulnerable manual step with a reproducible mechanism. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anyone who uses production data outside of production needs a structured way to adjust that data. This module provides that.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Author:<\/strong> <mark style=\"background-color:rgba(0, 0, 0, 0);color:#0693e3\" class=\"has-inline-color\"><strong>Stephan Wolbers &#8211; Head of Technology &amp; Innovation MxBlue|SUPERP<\/strong><\/mark><\/p>\n\n      <\/div>\n\n      \n   <\/div>\n<\/section>\n<section id=\"mxblue-updates-block_832fe889bcbb9ec881e706e97ffb46c4\" class=\"p-section bg-white p-section mxblue-updates alignfull\">\n   <div class=\"container\">\n      <div class=\"flex flex-col lg:flex-row gap-x-12 gap-y-4\">\n\n         <div class=\"w-full lg:w-1\/4\">\n            <div class=\"!w-full section-header !items-start !text-left\">\n               <h2 class=\"h3 !text-brand-primary\">Gerelateerde updates<\/h2>\n\n               <div class=\"wp-block-buttons\">\n                  <div class=\"wp-block-button is-style-link\" >\n                     <a href=\"https:\/\/www.mxblue.nl\/en\/updates\/\" class=\"wp-block-button__link wp-element-button\">\n                        <span>Alle updates<\/span>\n                     <\/a>\n                  <\/div>\n               <\/div>\n            <\/div>\n         <\/div>\n\n         <div class=\"w-full lg:w-3\/4\">\n\n            \n                           <div class=\"swiper slider-updates\">\n                  <div class=\"swiper-wrapper\">\n\n                                             <div class=\"swiper-slide\">\n                           \n<div class=\"flex flex-col items-start gap-y-4\">\n   <a href=\"https:\/\/www.mxblue.nl\/en\/why-commit-scope-is-indispensable\/\" class=\"relative block w-full overflow-hidden rounded-lg group aspect-4-5\">\n               <img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"425\" src=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog--1024x425.jpg\" class=\"absolute top-0 left-0 object-cover w-full h-full\" alt=\"\" srcset=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog--1024x425.jpg 1024w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog--300x125.jpg 300w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog--768x319.jpg 768w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog--1536x638.jpg 1536w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog-.jpg 1704w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>            <div class=\"absolute top-0 left-0 w-full h-full transition-opacity duration-300 opacity-0 group-hover:opacity-40 bg-gradient-to-b from-brand-primary to-brand-secondary\"><\/div>\n   <\/a>\n   \n   <ul class=\"seperator\">\n      \n            \n               <li class=\"text-[0.875rem]\"><a href=\"https:\/\/www.mxblue.nl\/updates?_categories=21\" class=\"transition-colors hover:text-brand-secondary font-pt\">Blog EN<\/a><\/li>            \n      <li><span class=\"text-[0.875rem] font-pt\">17 February 2026<\/span><\/li>\n   <\/ul> \n   \n   <a href=\"https:\/\/www.mxblue.nl\/en\/why-commit-scope-is-indispensable\/\" class=\"-mt-2\"><h3 class=\"h5\">Why Commit Scope is Indispensable<\/h3><\/a>\n<\/div>                        <\/div>\n                                             <div class=\"swiper-slide\">\n                           \n<div class=\"flex flex-col items-start gap-y-4\">\n   <a href=\"https:\/\/www.mxblue.nl\/en\/10-tips-voor-toegankelijke-mendix-apps-volgens-de-european-accessibility-act\/\" class=\"relative block w-full overflow-hidden rounded-lg group aspect-4-5\">\n               <img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"425\" src=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2025\/07\/Website-berichten-banner-8-1024x425.jpg\" class=\"absolute top-0 left-0 object-cover w-full h-full\" alt=\"\" srcset=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2025\/07\/Website-berichten-banner-8-1024x425.jpg 1024w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2025\/07\/Website-berichten-banner-8-300x125.jpg 300w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2025\/07\/Website-berichten-banner-8-768x319.jpg 768w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2025\/07\/Website-berichten-banner-8-1536x638.jpg 1536w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2025\/07\/Website-berichten-banner-8.jpg 1704w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>            <div class=\"absolute top-0 left-0 w-full h-full transition-opacity duration-300 opacity-0 group-hover:opacity-40 bg-gradient-to-b from-brand-primary to-brand-secondary\"><\/div>\n   <\/a>\n   \n   <ul class=\"seperator\">\n      \n            \n               <li class=\"text-[0.875rem]\"><a href=\"https:\/\/www.mxblue.nl\/updates?_categories=10\" class=\"transition-colors hover:text-brand-secondary font-pt\">Blog NL<\/a><\/li>            \n      <li><span class=\"text-[0.875rem] font-pt\">1 July 2025<\/span><\/li>\n   <\/ul> \n   \n   <a href=\"https:\/\/www.mxblue.nl\/en\/10-tips-voor-toegankelijke-mendix-apps-volgens-de-european-accessibility-act\/\" class=\"-mt-2\"><h3 class=\"h5\">10 Tips voor toegankelijke Mendix-apps volgens de European Accessibility Act<\/h3><\/a>\n<\/div>                        <\/div>\n                                             <div class=\"swiper-slide\">\n                           \n<div class=\"flex flex-col items-start gap-y-4\">\n   <a href=\"https:\/\/www.mxblue.nl\/en\/webinar-appcontrol-take-control-of-your-mendix-landscape\/\" class=\"relative block w-full overflow-hidden rounded-lg group aspect-4-5\">\n               <img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"425\" src=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/Webinar-2-1024x425.jpg\" class=\"absolute top-0 left-0 object-cover w-full h-full\" alt=\"\" srcset=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/Webinar-2-1024x425.jpg 1024w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/Webinar-2-300x125.jpg 300w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/Webinar-2-768x319.jpg 768w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/Webinar-2-1536x638.jpg 1536w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/03\/Webinar-2.jpg 1704w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>            <div class=\"absolute top-0 left-0 w-full h-full transition-opacity duration-300 opacity-0 group-hover:opacity-40 bg-gradient-to-b from-brand-primary to-brand-secondary\"><\/div>\n   <\/a>\n   \n   <ul class=\"seperator\">\n      \n            \n               <li class=\"text-[0.875rem]\"><a href=\"https:\/\/www.mxblue.nl\/updates?_categories=28\" class=\"transition-colors hover:text-brand-secondary font-pt\">Event<\/a><\/li>            \n      <li><span class=\"text-[0.875rem] font-pt\">25 March 2026<\/span><\/li>\n   <\/ul> \n   \n   <a href=\"https:\/\/www.mxblue.nl\/en\/webinar-appcontrol-take-control-of-your-mendix-landscape\/\" class=\"-mt-2\"><h3 class=\"h5\">Webinar AppControl: Take control of your Mendix landscape.<\/h3><\/a>\n<\/div>                        <\/div>\n                     \n                  <\/div>\n                  <div class=\"swiper-pagination\"><\/div>\n               <\/div>\n                     <\/div>\n\n      <\/div>\n   <\/div>\n<\/section>\n<section id=\"mxblue-cta-block_4c91b5d7afbb4df3f3b7d4719f54653a\" class=\"mxblue-block relative flex flex-col bg-brand-neutral-medium md:flex-row mxblue-cta alignfull\">\n\n   <div class=\"relative top-0 h-full aspect-video md:absolute bg-alert-light left-0 md:w-2\/5\">\n      \n      <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 183.81 132.68\" class=\"absolute h-[72px] w-auto -bottom-[29px] left-1\/2 z-10 md:w-[100px] md:-translate-y-1\/2 md:translate-x-0 md:top-1\/2 -translate-x-1\/2 md:-right-[50px] md:left-auto\">\n         <polygon class=\"fill-brand-heading\" points=\"22.22 132.68 64.25 45.89 80.8 80.06 55.31 132.68 77.53 132.68 91.91 103 106.28 132.68 128.5 132.68 103.02 80.06 119.56 45.89 161.59 132.68 183.81 132.68 119.56 0 91.91 57.11 64.25 0 0 132.68 22.22 132.68\" \/>\n      <\/svg>\n\n      <img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"981\" src=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2022\/12\/Kantoor-MxBlue-2.jpg\" class=\"absolute top-0 left-0 object-cover w-full h-full\" alt=\"\" srcset=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2022\/12\/Kantoor-MxBlue-2.jpg 1920w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2022\/12\/Kantoor-MxBlue-2-300x153.jpg 300w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2022\/12\/Kantoor-MxBlue-2-1024x523.jpg 1024w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2022\/12\/Kantoor-MxBlue-2-768x392.jpg 768w, https:\/\/www.mxblue.nl\/wp-content\/uploads\/2022\/12\/Kantoor-MxBlue-2-1536x785.jpg 1536w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/>   <\/div>\n\n   <div class=\"container flex justify-end\">\n      <div class=\"w-full md:px-4 md:py-12 md:w-3\/5\">\n         <div class=\"flex flex-col gap-y-8 p-section\">\n            \n\n<h2 class=\"wp-block-heading\">Make it happen with MxBlue<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Curious about the opportunities we see for your organization? Want to know more about the possibilities of Mendix? We can talk about that for hours, but we will keep it short. Promise.   <\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.mxblue.nl\/en\/contact\/\">Get in touch<\/a><\/div>\n<\/div>\n\n         <\/div>\n      <\/div>\n   <\/div>\n\n<\/section>","protected":false},"excerpt":{"rendered":"","protected":false},"author":5,"featured_media":3928,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","footnotes":""},"categories":[21],"tags":[],"class_list":["post-4068","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-en"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Data Protection by Design in Mendix - MxBlue<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Data Protection by Design in Mendix - MxBlue\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/\" \/>\n<meta property=\"og:site_name\" content=\"MxBlue\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-05T20:16:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-25T10:12:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog-.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1704\" \/>\n\t<meta property=\"og:image:height\" content=\"708\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dieuwke Groot\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dieuwke Groot\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/data-protection-by-design-in-mendix\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/data-protection-by-design-in-mendix\\\/\"},\"author\":{\"name\":\"Dieuwke Groot\",\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/#\\\/schema\\\/person\\\/c8608753cf240287ea9e4e641b49e6cc\"},\"headline\":\"Data Protection by Design in Mendix\",\"datePublished\":\"2026-03-05T20:16:04+00:00\",\"dateModified\":\"2026-03-25T10:12:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/data-protection-by-design-in-mendix\\\/\"},\"wordCount\":1289,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/data-protection-by-design-in-mendix\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mxblue.nl\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Stephan-blog-.jpg\",\"articleSection\":[\"Blog EN\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/data-protection-by-design-in-mendix\\\/\",\"url\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/data-protection-by-design-in-mendix\\\/\",\"name\":\"Data Protection by Design in Mendix - MxBlue\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/data-protection-by-design-in-mendix\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/data-protection-by-design-in-mendix\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mxblue.nl\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Stephan-blog-.jpg\",\"datePublished\":\"2026-03-05T20:16:04+00:00\",\"dateModified\":\"2026-03-25T10:12:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/data-protection-by-design-in-mendix\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/data-protection-by-design-in-mendix\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/data-protection-by-design-in-mendix\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mxblue.nl\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Stephan-blog-.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mxblue.nl\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Stephan-blog-.jpg\",\"width\":1704,\"height\":708},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/data-protection-by-design-in-mendix\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\",\"item\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data Protection by Design in Mendix\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/\",\"name\":\"MxBlue\",\"description\":\"Mendix en Manufacturing - de digitale versneller \",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/#organization\",\"name\":\"MxBlue\",\"url\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mxblue.nl\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/cropped-favicon-mxblue.png\",\"contentUrl\":\"https:\\\/\\\/www.mxblue.nl\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/cropped-favicon-mxblue.png\",\"width\":512,\"height\":512,\"caption\":\"MxBlue\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.mxblue.nl\\\/en\\\/#\\\/schema\\\/person\\\/c8608753cf240287ea9e4e641b49e6cc\",\"name\":\"Dieuwke Groot\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ffb8b456770820e39cb882e14ccf802532256bdf82437dd7decf0d8b1324b60e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ffb8b456770820e39cb882e14ccf802532256bdf82437dd7decf0d8b1324b60e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ffb8b456770820e39cb882e14ccf802532256bdf82437dd7decf0d8b1324b60e?s=96&d=mm&r=g\",\"caption\":\"Dieuwke Groot\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Data Protection by Design in Mendix - MxBlue","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:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/","og_locale":"en_US","og_type":"article","og_title":"Data Protection by Design in Mendix - MxBlue","og_url":"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/","og_site_name":"MxBlue","article_published_time":"2026-03-05T20:16:04+00:00","article_modified_time":"2026-03-25T10:12:41+00:00","og_image":[{"width":1704,"height":708,"url":"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog-.jpg","type":"image\/jpeg"}],"author":"Dieuwke Groot","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Dieuwke Groot","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/#article","isPartOf":{"@id":"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/"},"author":{"name":"Dieuwke Groot","@id":"https:\/\/www.mxblue.nl\/en\/#\/schema\/person\/c8608753cf240287ea9e4e641b49e6cc"},"headline":"Data Protection by Design in Mendix","datePublished":"2026-03-05T20:16:04+00:00","dateModified":"2026-03-25T10:12:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/"},"wordCount":1289,"publisher":{"@id":"https:\/\/www.mxblue.nl\/en\/#organization"},"image":{"@id":"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog-.jpg","articleSection":["Blog EN"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/","url":"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/","name":"Data Protection by Design in Mendix - MxBlue","isPartOf":{"@id":"https:\/\/www.mxblue.nl\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/#primaryimage"},"image":{"@id":"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog-.jpg","datePublished":"2026-03-05T20:16:04+00:00","dateModified":"2026-03-25T10:12:41+00:00","breadcrumb":{"@id":"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/#primaryimage","url":"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog-.jpg","contentUrl":"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2026\/02\/Stephan-blog-.jpg","width":1704,"height":708},{"@type":"BreadcrumbList","@id":"https:\/\/www.mxblue.nl\/en\/data-protection-by-design-in-mendix\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"","item":"https:\/\/www.mxblue.nl\/en\/"},{"@type":"ListItem","position":2,"name":"Data Protection by Design in Mendix"}]},{"@type":"WebSite","@id":"https:\/\/www.mxblue.nl\/en\/#website","url":"https:\/\/www.mxblue.nl\/en\/","name":"MxBlue","description":"Mendix en Manufacturing - de digitale versneller ","publisher":{"@id":"https:\/\/www.mxblue.nl\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mxblue.nl\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.mxblue.nl\/en\/#organization","name":"MxBlue","url":"https:\/\/www.mxblue.nl\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mxblue.nl\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2023\/01\/cropped-favicon-mxblue.png","contentUrl":"https:\/\/www.mxblue.nl\/wp-content\/uploads\/2023\/01\/cropped-favicon-mxblue.png","width":512,"height":512,"caption":"MxBlue"},"image":{"@id":"https:\/\/www.mxblue.nl\/en\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.mxblue.nl\/en\/#\/schema\/person\/c8608753cf240287ea9e4e641b49e6cc","name":"Dieuwke Groot","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ffb8b456770820e39cb882e14ccf802532256bdf82437dd7decf0d8b1324b60e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ffb8b456770820e39cb882e14ccf802532256bdf82437dd7decf0d8b1324b60e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ffb8b456770820e39cb882e14ccf802532256bdf82437dd7decf0d8b1324b60e?s=96&d=mm&r=g","caption":"Dieuwke Groot"}}]}},"_links":{"self":[{"href":"https:\/\/www.mxblue.nl\/en\/wp-json\/wp\/v2\/posts\/4068","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mxblue.nl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mxblue.nl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mxblue.nl\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mxblue.nl\/en\/wp-json\/wp\/v2\/comments?post=4068"}],"version-history":[{"count":8,"href":"https:\/\/www.mxblue.nl\/en\/wp-json\/wp\/v2\/posts\/4068\/revisions"}],"predecessor-version":[{"id":4143,"href":"https:\/\/www.mxblue.nl\/en\/wp-json\/wp\/v2\/posts\/4068\/revisions\/4143"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mxblue.nl\/en\/wp-json\/wp\/v2\/media\/3928"}],"wp:attachment":[{"href":"https:\/\/www.mxblue.nl\/en\/wp-json\/wp\/v2\/media?parent=4068"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mxblue.nl\/en\/wp-json\/wp\/v2\/categories?post=4068"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mxblue.nl\/en\/wp-json\/wp\/v2\/tags?post=4068"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}