mindit.io logo
      • / retail

        Retail industry, mindit.io

        In the intricate world of retail, mindit.io stands out as your strategic ally.

      • / banking
        Woman using a card payment terminal, retail sector, mindit.io

        We partner with European banks on AI transformation, data-platform modernization, and regulatory-grade integration across Benelux, DACH, and UK.

      • / financial services

        Financial services: mindit.io data and AI

        Custom software and data platforms for asset managers, payments providers, and insurers across DACH and the US.

      • / healthcare

        Doctor with digital tablet in hospital, healthcare sector, mindit.io

        ML and integration solutions for hospitals, health-tech platforms, and national health systems, including Switzerland’s national health sector.

      • / hospitality
        Hospitality: mindit.io data and AI

        Operational and guest-experience software for hotels, restaurants, and global travel groups.

      • / foodtech
        Burger and fresh salad, food and beverage sector, mindit.io

        Product engineering for the food industry: from plant-based configurators to supply-chain analytics.

      • / manufacturing
        Aerial view of industrial conveyor belt, manufacturing sector, mindit.io

        Industrial software, IoT integration, and data platforms for manufacturers modernizing operations.

      • / publishing
        Publishing: mindit.io AI solutions

        ML platforms and editorial workflow systems for publishers, including Izzard Ink Publishing.

      • / real estate
        Modern residential buildings at dusk, real estate sector, mindit.io

        Property tech and data analytics for real-estate operators and asset managers.

      • / telco
        Person using smartphone, telecom sector, mindit.io

        Telecom-grade software for network optimization, customer-facing apps, and AI-driven insights.

    • / company
      • / about us

        mindit.io partners and people
        The partner of choice for data & product engineering to drive business growth & deliver an impact within your organization
      • / product engineering
        We specialize in Software Product Engineering, transforming your concepts into impactful products.
      • / technology
        mindit.io AI Native company
        250+ specialists skilled in software, BI, integration, offering end-to-end services from research to ongoing maintenance.
      • / methodology
        Custom software solutions, mindit.io
        We specialize in software product engineering, transforming your concepts into impactful products.
      • / careers
        Careers at mindit.io
        Our team needs one more awesome person, like you. Let’s grow together! Why not give it a try?
      • / do good
        mindit.io team member do good ESG initiatives by the sea
        We’re a team devoted to making the world better with small acts. We get involved and always stand for kindness.
      • / events
        Data Governance with Databricks: Building Trust in Your Data
      • / blog
        Governance as Code: How to Make Data Governance Stick
        AI in the Loop. AI, hold my beer! Watch this: inside our latest internal hackathon
      • / contact us
        Request a mindit.io webinar
        We would love to hear from you! We have offices and teams in Romania and Switzerland. How can we make your business thrive?
  • / get in touch

Governance as Code: How to Make Data Governance Stick

Data governance programmes fail for a predictable reason. The decisions get made once, recorded somewhere they are difficult to find, and then never applied consistently. A steward classifies a column as personal data. The classification lives in a spreadsheet. Six months later, a new pipeline loads the same column into a different table. Nobody checks the spreadsheet. The column goes unprotected.

The approach that Cristian Badet, Data Lead Solution Architect at mindit.io, presented in a recent Databricks webinar is designed to close that gap. He calls it governance as code.

The core idea

Every governance decision has one owner, is recorded once, and is applied by the platform every time something changes. Not by a person remembering to apply it. By the platform doing it automatically.

The mechanism is the data contract: a file, typically JSON or YAML, that lives in the same repository as the code. It describes a dataset’s structure, the business term and classification of each column, the quality rules, the owner, the retention policy, and any other governance attribute the organisation needs to track.

The data governance owner sets the standards. The security officer decides how sensitive data is protected. The data steward fills in the contract for each column. The engineer builds the pipeline. The deployment process reads the contract, validates it, and applies it to the table in Databricks: tags, descriptions, access rules, and quality checks, all from the same source file.

That is the governance decision made once and applied every time.

What happens at each stage of a data asset’s life

The contract follows a data asset from design to retirement.

At design and build, the steward marks the email column as personal data in the contract. The engineer builds the ingestion pipeline. When the deployment runs, it checks that all required fields in the contract are filled in, stops if any are missing, and creates the table with its tags and descriptions already applied.

At runtime, every data load is checked against the quality rules in the contract. Rows with empty email addresses are quarantined or dropped and reported, depending on what the contract specifies.

At review, a scheduled job compares the live table against the contract. If a new column has appeared from a source system, the job flags it. The steward sees it, classifies it, updates the contract, and the next deployment applies the classification.

At retirement, a new version of the table replaces the old one. The old table is marked as deprecated in the contract and its data is archived or deleted according to the retention rules already written there.

At every stage, the decisions are in the contract, not in someone’s head.

Why the pull request matters

One detail from Cristian’s presentation that is easy to overlook: every change to a data contract goes through a pull request in the repository, and the data owner approves it before it is merged.

This is not a bureaucratic step. It is the control point. It means that a governance decision cannot be changed without the owner’s knowledge, and the full history of every decision is preserved in version control. If a classification changes, you can see when it changed, who changed it, and why. That is the audit trail that compliance requires, produced automatically by the same process the engineering team already uses.

What this looks like on a single column

To make it concrete: the email column in the customer table.

The contract states that the column holds an email address, that it is personal data, and that it is subject to the organisation’s PII masking policy. On deployment, Databricks reads that contract, writes the description on the column, applies the personal data tag, and the masking rule fires on every query based on that tag, for humans and AI agents alike.

A weekly job checks whether the tag is still there. If someone changed it by hand, the job restores it on the next run. The governance decision holds without anyone having to manually enforce it.

That is the difference between governance that is documented and governance that is applied.

Distribute:

/turn your vision into reality

The best way to start a long-term collaboration is with a Pilot project. Let’s talk.